Исходники по языку программирования CSharp
Если вы столкнулись с проблемой и хотите поделиться своим опытом, знаниями или у вас есть интересная статья с иностранного сайта, предложение новой темы, статью которую Вы хотите видеть в ближайшем будущем, расскажите нам об этом и мы обязательно поделимся этими знаниями со всеми. Возможно, для других ваши знания, опыт и советы окажутся очень ценными и помогут вовремя найти правильный выход или не совершить ошибок.Так же если у вас есть предложение о сотрудничестве, пожелания, указать на нарушения сайта или просто сказать слова благодарности, все это вы можете сделать через форму обратной связи. Читать дальше
Показаны сообщения с ярлыком Secure. Показать все сообщения
Показаны сообщения с ярлыком Secure. Показать все сообщения
String to SecureString
.NET-строки не являются безопасными так как являются неизменными после их создания, и после окончания работы с ними вы не можете направить туда сборщик мусора. Это ограничение означает, что строка подвержена риску заражения при сканировании памяти и других атаках, в том числе при чтении текстовым редактором файла подкачки и дампа памяти. Поэтому при хранении паролей и конфиденциальной информации, вам приходится брать на себя ответственность за сохранность и безопасность этих данных, поскольку они хранятся в памяти ещё некоторое время и могут быть обнаружены. Эту проблему можно избежать при помощи объектов «SecureString», которые первоначально присутствуют в «.NET Framework 2.0».
«SecureString» - это текстовый объект, подобный обычной строке, но он хранится в памяти в зашифрованном виде, с помощью Data Protection API (DPAPI). Ключ, который используется для шифрования строки, генерируется случайным образом и хранится в той части памяти, которая никогда не записывается на диск. Кроме того, вы не можете напрямую задать значение «SecureString» в строку, потому что для этого потребуется пароль или другая конфиденциальная информация для существования в памяти. Вместо этого, вы должны устанавливать значения защищенной строки по одному символу за один раз, так как нет других надежных средств, чтобы установить значение.
С помощью метода «MakeReadOnly», можно сделать экземпляр неизменяемым, чтобы предотвратить его дальнейшую модификацию. Класс «SecureString» также имеет возможность освобождения по запросу. При вызове метода «SecureString.Dispose()» данные пароля, находящиеся в памяти, перезаписываются. Это гарантирует, что вся информация о пароле будет стерта из памяти и никто не сможет ею воспользоваться.
Хотя эта особенность делает «SecureString» неудобной для использования, она же делает ваши строки более безопасными.
«SecureString» - это текстовый объект, подобный обычной строке, но он хранится в памяти в зашифрованном виде, с помощью Data Protection API (DPAPI). Ключ, который используется для шифрования строки, генерируется случайным образом и хранится в той части памяти, которая никогда не записывается на диск. Кроме того, вы не можете напрямую задать значение «SecureString» в строку, потому что для этого потребуется пароль или другая конфиденциальная информация для существования в памяти. Вместо этого, вы должны устанавливать значения защищенной строки по одному символу за один раз, так как нет других надежных средств, чтобы установить значение.
С помощью метода «MakeReadOnly», можно сделать экземпляр неизменяемым, чтобы предотвратить его дальнейшую модификацию. Класс «SecureString» также имеет возможность освобождения по запросу. При вызове метода «SecureString.Dispose()» данные пароля, находящиеся в памяти, перезаписываются. Это гарантирует, что вся информация о пароле будет стерта из памяти и никто не сможет ею воспользоваться.
Хотя эта особенность делает «SecureString» неудобной для использования, она же делает ваши строки более безопасными.
Copyright © 2011-2015 Справочник по C#. Все права защищены.



