14.02.2023, 15:26
|
#16
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
Цитата:
Сообщение от Владимир Максимов
- Кластер DAX2012 (несколько десятков АОС).
- Пакетное задание DAX (любой из этих АОС теоретически может быть назначен пакетным сервером) при выполнении обращается к неким внешним ресурсам, используя при этом логин и пароль.
- Этих ресурсов несколько десятков.
То есть аксапта должна уметь расшифровать хранящийся пароль и передать его внешнему ресурсу при авторизации.
Так вот в чем собственно вопрос: - каким образом организовывать шифрование-дешифрование
- каким образом организовывать хранение и доступ к ключам шифрования
Обычный подход в таких случаях следующий: - на любом хосте генерится экспортируемый (!) самоподписанный сертификат с использованием асимметричного алгоритма шифрования, такого как RSA или Diffie–Hellman (например, RSA2048), лучше всего со сроком действия лет на 100. В справке по развертыванию D365FO есть рекомендации по настройкам генерации сертификатов. Сгенерить сертификат можно с помощью PowerShell, см. New-SelfSignedCertificate
- сам сертификат на хосте, где он сгенерирован, экспортируется с закрытым ключом в pfx-файл (скажем, с помощью MMC-оснастки Certificates), при этом закрытый ключ защищается паролем.
- экспортированный сертификат с закрытым ключом на всех хостах, где им нужно будет что-то расшифровывать, импортируется в cert:\LocalMachine\My в терминах PowerShell (он же Computer\Personal в MMC-оснастке Certificates)
- на закрытый ключ с помощью MMC-оснастки Certificates или с помощью PowerShell дается доступ на чтение той учетке или доменной группе, под которой запускаются сервисы AOS-ов. По умолчанию доступ будет только у LocalSystem, локального администратора и того, кто импортировал сертификат.
- на открытом ключе сертификата зашифровываются приватные данные и сохраняются в базе или еще где, да хоть на сетевой шаре.
- в коде, где нужно прочитать приватные данные, тому же RSACryptoServiceProvider говорится "расшифруй массив байт". Класс сам из зашифрованных данных извлекает отпечаток сертификата, сам запрашивает его закрытый ключ на хосте и расшифровывает данные (если что не так - будет исключение)
- после использования расшифрованных данных не забыть выжечь их в оперативной памяти каленым железом, чтобы кто-нить дамп не снял
- profit!
|
|
За это сообщение автора поблагодарили: Logger (3), LETTO (1), raz (10), S.Kuskov (10), sukhanchik (15), fed (10). |