Обработка паролей
В настоящее время имя пользователя и учетные данные пароля являются наиболее распространенными учетными данными, используемыми для проверки подлинности. Несмотря на то что другие типы учетных данных, такие как сертификаты и биометрические данные, начинают находить свой путь в мире систем и сетей, они часто резервируются паролем. И, даже если используются сертификаты, их ключи шифрования должны быть защищены. Таким образом, имена пользователей и пароли будут продолжать использоваться для учетных данных в обозримом будущем.
Учитывая, что пароли и ключи шифрования будут находиться на некоторое время, важно, чтобы программные системы использовали их в безопасном режиме. Если сеть или компьютерная система должны оставаться безопасными, пароли должны быть защищены от злоумышленников. Сначала это может показаться тривиальным. Однако система за системой и сеть за сетью были скомпрометированы, так как злоумышленник смог перехватить пароли пользователей. Проблемы варьируются от пользователей, совместного использования паролей с кем-либо, до программного обеспечения, которое может быть проникнуто злоумышленником.
Невозможно хранить секретную информацию в программном обеспечении в совершенно безопасном режиме. И поскольку хранение паролей и ключей шифрования в программной системе никогда не может быть полностью безопасным, рекомендуется не хранить их в программной системе.
Тем не менее, если пароли должны храниться в программной системе, как правило, существуют меры предосторожности, которые могут быть приняты. Основная мера предосторожности заключается в том, чтобы сделать его как можно труднее для злоумышленника, чтобы обнаружить пароль. Как и в случае с запиранием дверей дома, если кто-то захотел вломиться, почти невозможно предотвратить это. Но, надеюсь, вы подняли уровень сложности достаточно, чтобы злоумышленник предпочёл найти более лёгкую добычу.
Существует множество способов сделать работу злоумышленника по обнаружению паролей сложнее. Однако степень того, что на самом деле можно сделать, обычно является компромиссом с тем, с чем пользователи сети или системы готовы жить. Например, предположим, что "единый вход" не используется, и пользователь запрашивает пароль при каждом запуске приложения. В большинстве случаев это создаст значительное бремя для пользователей, и они, вероятно, жалуются. Не только это, но отсутствие единого входа неэффективно и приведет к снижению производительности пользователей. Поэтому, в практическом плане, пароль, как правило, не запрашивается у пользователя, кроме как во время входа в систему.
Учитывая, что пароли обычно должны храниться в программной системе, важно убедиться, что пароли хранятся как можно безопаснее и что удобство для пользователей сохраняется. Дополнительные сведения см. в следующих разделах:
Заметка
После завершения использования паролей в приложениях очистите конфиденциальную информацию из памяти, вызвав функцию SecureZeroMemory.