Задать вопрос
Nigrimmist
@Nigrimmist
Asp.net senior developer

Безопасное программное шифрование строки в windows?

Задача : есть опенсурсная программа. В её ui пользователь вводит пароль. Пароль нужно сохранить на диск. Зашифрованым. .net/C#

Но вопрос больше концептуальный - есть ли какой-то способ устойчиво зашифровать пароль (хэширование не подходит) чтобы его не смогла расшифровать сторонняя программа с таким же правами и под этим же пользователем на этом же компьютере?
Подразумевается, что метод генерации приватного ключа известен ибо опенсорс. + внешнего сервера для связи нет.

зы : Есть ли какие-то варианты кроме мастер-пароля, вводимого юзером перед началом работы с программой? Может быть есть что-то типа DPAPI,но с привязкой к процессу/исполняемому файлу? А не к пользователю в системе? Или тут допустим вариант закрытой .dll для метода криптографии + обфускация?
  • Вопрос задан
  • 822 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Scorpi
@Scorpi
вариант закрытой .dll для метода криптографии + обфускация

Других вариантов нет
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Neuroware
@Neuroware
Программист в свободное от работы время
используйте токен - электронный ключ, все остальное легко вскрыть если есть доступ к исходному ПО
Ответ написан
Комментировать
enkryptor
@enkryptor
software developer (TS/JS, python, C#)
Задача сформулирована не полностью. Когда и при каких условиях сама программа (а не злоумышленник) должна расшифровывать пароль? И должна ли? Почему не подходит хэширование?

Шифрование предполагает создание шифротекста на основе исходной строки плюс некоего ключа. Ключ может быть ассиметричным, но он должен быть. Зашифровать без ключа нельзя по определению.

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

Войдите, чтобы написать ответ

Похожие вопросы