Nano Hash - криптовалюты, майнинг, программирование

Как я могу защитить строки, например, C #

можно ли защитить строки в C #, чтобы предотвратить ... я называю это «атаками на строки»?

Вот образец:

...
const String username = "friend";
const String password = "letmein";
String encoded = Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));

WebRequest request = WebRequest.Create("http://xxx.xxx.xxx.xxx/");
WebResponse response = request.GetResponse();

Stream dataStream = response.GetResponseStream();  
StreamReader reader = new StreamReader(dataStream); 
string responseFromServer = reader.ReadToEnd(); 

lbl_status.Text = responseFromServer;

reader.Close();  
response.Close();
...

Если я компилирую и запускаю его, с помощью Sysinternals Process Explorer я могу читать сохраненные строки.

Снимок экрана Sysinternals Process Explorer

Есть ли способ зашифровать строки?

Привет мок


  • @AlexRiabov Как вы думаете, как HTTPS помешает Process Explorer видеть строки? 10.07.2018
  • Защитить когда? Во время выполнения? В исходном коде? 10.07.2018
  • Проверьте stackoverflow.com/questions/1570422/ для дальнейшей защиты . 10.07.2018
  • Вот почему никогда не следует жестко кодировать пароли в исходном коде. Вместо этого используйте файл конфигурации и зашифруйте его, запросив у пользователя пароль для расшифровки. Еще лучше, просто спросите у пользователя пароль HTTP напрямую и даже не сохраняйте его. 10.07.2018
  • Начните с построения модели угроз. Кто является злоумышленником и кто подвергается атаке? Если ваш злоумышленник является владельцем компьютера, он не является злоумышленником своего собственного компьютера. У них есть машина, и они все видят на ней. Если они атакуют чужой ресурс, тогда да, у вас проблема. Но создайте правильную модель угрозы, чтобы вы знали, что такое атака, и так далее. 10.07.2018
  • Независимо от того, как вы запутаете эту строку в своем двоичном файле, вы вызываете URL-адрес HTTP, поэтому Fiddler и др. Скажут мне, что именно отправлено на конечную точку. Он будет делать то же самое для HTTPS, если я настрою его на. 10.07.2018
  • @mason, вы правы, меня сбил с толку WebRequest, который вроде совершенно не имеет отношения к вопросу 10.07.2018
  • Тем не менее, я почти уверен, что вы не исследовали этот вопрос, потому что вы не упомянули точно названный класс SecureString. Пожалуйста, изучите немного, прежде чем спрашивать здесь. Как вводить существительные в вопросе в поисковике. 10.07.2018
  • @EricLippert SecureString здесь не поможет, поскольку он защищает только секреты в памяти, но не тогда, когда пароль жестко закодирован. Process Explorer может по-прежнему видеть простой текст, как и раньше, или, если он каким-то образом запутан, все остальное может сделать декомпилятор. 10.07.2018
  • @EricLippert извини, друг мой, я определенно исследую! Каждый PlainText вы можете увидеть на этой вкладке String с Process Explorer. 10.07.2018

Ответы:


1

Спасибо @Alejandro!

Ответ на мой вопрос - «НЕТ».

Вот почему никогда не следует жестко кодировать пароли в исходном коде.

10.07.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..