AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2023, 16:16   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
С регистрацией на сайте беда. Админов поймать невозможно, чтобы ускорить процесс. Поэтому работаю "почтальоном"

-------------------------------

Немного поясню:
  • Кластер DAX2012 (несколько десятков АОС).
  • Пакетное задание DAX (любой из этих АОС теоретически может быть назначен пакетным сервером) при выполнении обращается к неким внешним ресурсам, используя при этом логин и пароль.
  • Этих ресурсов несколько десятков.
То есть аксапта должна уметь расшифровать хранящийся пароль и передать его внешнему ресурсу при авторизации. Так как АОСов много, использовать стандартное шифрование мы не можем, так как ключ шифрования хранится в реестре сервера и нам нужно будет хранить для каждого АОСа свой экземпляр зашифрованного пароля.

Так вот в чем собственно вопрос:
  • каким образом организовывать шифрование-дешифрование
  • каким образом организовывать хранение и доступ к ключам шифрования
  • если кто то ткнет меня в ресурсы или в код будет вообще шикарно
Цитата:
Сообщение от Товарищ ♂uatr Посмотреть сообщение
Вы рассматривали вариант с использованием сертификатов и открытых/закрытых ключей?
Мы рассматриваем любую приемлемую схему

Цитата:
Сообщение от axm2017 Посмотреть сообщение
Вопрос где мы собираемся хранить/держать пароли (будет ли их пользователь вводить или как то иначе)?
Атрибуты подключения будут заводится руками пользователем при регистрации связи с ресурсом.

Цитата:
Сообщение от axm2017 Посмотреть сообщение
Депонирование ключей нужно ли при этом?
Тут я не могу придумать сценарий когда это понадобится.
Старый 13.02.2023, 16:47   #2  
axm2017 is offline
axm2017
Участник
 
2,066 / 296 (14) ++++++
Регистрация: 15.05.2017
Хранить данные для доступа в зашифрованном симметричным алгоритмом виде в табличке.
При работе пакета сессия при запуске обращается к сетевому ресурсу (файл в сети с паролем расшифровки), доступ к которому есть только у пользователей группы пакетные задания/АОСы.
Старый 14.02.2023, 12:04   #3  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
324 / 903 (31) +++++++
Регистрация: 23.10.2012
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Есть массив паролей (несколько десятков тысяч) они лежат в таблице Dax2012. Их нужно зашифровать.
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
[*]каким образом организовывать хранение и доступ к ключам шифрования
Ощущение, что Вы "уперлись" в проблему созданную каким-то одним из множества вариантов решения бизнес-задачи (см. DDD). Как звучит бизнес задача?
Здесь Kerebros так и просится в качестве хранилища аутентификационных данных и инструмента для валидации.

Последний раз редактировалось Товарищ ♂uatr; 14.02.2023 в 12:08.
Старый 14.02.2023, 15:26   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
  • Кластер 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).
Старый 16.02.2023, 15:53   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от gl00mie Посмотреть сообщение
самоподписанный сертификат с использованием асимметричного алгоритма шифрования
Поправьте меня если я не прав, но на АОС для доступа к контейнеру с закрытым ключом нужен ПИН. А если так, то опять встает вопрос - как этот ПИН безопасно хранить?
Старый 22.02.2023, 16:29   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Поправьте меня если я не прав, но на АОС для доступа к контейнеру с закрытым ключом нужен ПИН
Требовать каждый раз ПИН или еще что - это одна из опций защиты закрытого ключа, которая имеет смысл, скажем, для клиент-банка. В общем же случае никаких ПИНов не требуется, доступ определяется обычными ACL, как и к файлам на диске. По описанным выше принципам настроено использование сертификатов в D365FO и не только: импортируете с закрытым ключом в cert:\LocalMachine\My, раздаете права доступа на закрытый ключ учеткам или их группам - и готово. Посмотрите, как работают те же SSL-сертификаты. Дали доступ к закрытому ключу, указали отпечаток сертификата в настройках (чтобы приложение знало, какой сертификат грузить) - и готово, никто ж не вводит никакие ПИНы при перезапуске веб-серверов, или того же SQL Server, или любой другой службы, которая умеет использовать SSL-сертификаты.
Старый 22.02.2023, 16:54   #7  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Ребят, я за рулем, на всякий случай ещё этот вариант рассмотрите https://ru.wikipedia.org/wiki/MTProto
Старый 22.02.2023, 16:54   #8  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Позже будут подробности
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kurthatlevik: DAX2012 R3 – Playing with Retail CRT Blog bot DAX Blogs 0 28.10.2015 20:11
kurthatlevik: DAX2012 R3 – Playing with Retail CRT Blog bot DAX Blogs 0 21.05.2015 15:11
Отсутствие контроля активности и приостановки финансовых аналитик при реверсе в DAX2012 titov DAX: Программирование 1 04.05.2015 15:32
DAX2012 - перепоставки по закупкам Starling DAX: Функционал 2 18.03.2014 13:56
Проблемы с кэшированием inventSum в DAX2012 fed DAX: Администрирование 20 19.11.2012 17:56

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:33.