Назад | Перейти на главную страницу

Хранить секрет

У меня есть служба .NET Windows, которая должна хранить секрет на машине и защищать этот секрет от локальных системных администраторов. Это нормально, если у администратора домена есть доступ.

Этот секрет не введен пользователем. Он создается во время установки, и установку можно автоматизировать.

Первой моей мыслью было использовать EFS. Если бы я запустил свою службу Windows как учетную запись домена и сохранил секрет в зашифрованном файле EFS, даже локальные системные администраторы не могли получить доступ к файлу, если они не были также администраторами домена и не использовали сертификат восстановления EFS.

Есть ли лучший вариант? Есть ли способ сделать это, не требуя, чтобы служба Windows запускалась как учетная запись домена?

Я думаю, что для этого подойдет криптография с открытым ключом.

Создайте секрет, а затем зашифруйте его открытым ключом. Сохраните его локально. Делитесь ею везде, всем кому небезразлично. Если ваше начальное шифрование достаточно хорошее, нет проблем с доступом локальных администраторов к зашифрованному секрету.

Это предполагает, конечно, что вы не передаете закрытый ключ для криптографии своим локальным администраторам :)

Реестр создан для этого. Вы можете указать разрешения на ключевом уровне.