Хранение ключей в Windows
От: Doom100500 Израиль  
Дата: 27.04.22 06:14
Оценка:
Привет.

Есть система, установленная на Windows. Работает на производстве и выполняет производственные задачи. Время от времени заливает отчёты на наш FTP.
Возникло требование отчёты шифровать и передавать по SFTP, для этого нужно как-то хранить в системе приватный ключ.
Сервис, который этим занимается дотнетовский, следовательно может быть легко декомпилирован. Пробовал обфуксацию, но на моём рабочем лаптопе его убивает антивирь при запуске, значит антивирь может сработать у клиента (антивирь клиента мы не можем контролировать, и не имеем права просить его добавлять нас в исключения).

Нарыл это: https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.protecteddata?redirectedfrom=MSDN&view=dotnet-plat-ext-6.0 , что является дотнетовским интерфейсом к DPAPI, что вроде как создано как раз для таких целей:
https://ru.wikipedia.org/wiki/Data_Protection_API

Но всё равно не понятно: ключ, даже запротекченный надо где-то сохранять, чтобы сервис переживал перезагрузки, а значит зная где он лежит, можно вызвать тот же самый API и расшифровать ключ.
s_additionalEntropy = { 9, 8, 7, 6, 5 }; — можно узнать декомпилируя сервис. Просить юзера каждый запуск вводить пароль расшифровки нельзя. Система запускается с автологином (производство и производственные задачи).

Как же хранить этот ключ в таких условиях?
Или просто сделать на от***сь и не париться?
Спасибо за внимание
Отредактировано 27.04.2022 6:16 Doom100500 . Предыдущая версия . Еще …
Отредактировано 27.04.2022 6:15 Doom100500 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.