Ldap Comp Matching
Поскольку мы - крупная фирма и у нас все как у взрослых - то решили двигаться к идеалу. Для УЦ решили сделать каталог выпущенных сертификатов, наподобие того, что есть для PGP. Естественно, путь сей усеян граблями разной длины и жесткости. Среди прочих:
- DN для УЦ CryptoPro жестко фиксирован и имеет email в конце - ну что делать, стали использовать что есть. Никакой древовидности создать из этого нельзя, конечно.
- Для безопасности к нашему УЦ обращаются только люди, комьпьютеры изолированы сетевым способом - поэтому и экспорт запускается с помощью функций УЦ КриптоПро и с помощью нашей софтины(кому надо - обращайтесь), которая экспортит в LDAP. То, что было написано у КриптоПро - работает с AD, а не с произвольным LDAP-каталогом.
- Оказалось, что поиск в LDAP работает на ура - пока дело касается классов и атрибутов. А вот поиск частей атрибутов - уже сложнее. Хотя бы тем, что кодировка в сертификате не может быть изменена LDAP-сервером, а стало быть и поиск по ней неясно как выполнять. Далее выяснилось, что согласно rfc - серийный номер - Integer, но при этом 20 октетов содержит. То есть 2^60. Ну поскольку все кругом 32b - поиск и работа с такими серийниками затруднены. Даже в части ExactMatching не очень ясно как это делать.
- Также, поскольку сертификат содержит персональную информацию типа email, выставление базы сертификатов всем грозит спамом и атакой на почту. (заметка от ИБ). Стало быть, надо дать доступ на RO только держателям этих самых сертификатов. Ботаем LDAP на SSL, понимаем, что он берет закрытый ключ из pem файла. А CryptoPro Хранит все в спец хранилищах и как оттуда доставать приватный ключ для OpenLdap - мало понятно.
- Естественно вопросы производительности, а еще если учитывать что Web приложение потребуется в любом случае (на основе DSML) - то конечно и это тюнить надо.
соотв. что получилось
- Пользователи УЦ в Каталоге лежат как cn=<ID>,dc…. <ID> - номер пользователя в УЦ
- чтобы обойти comp_matching - берем черновик для хранения и реализуем сами. Конечно, с модификациями.
- Для доступа привлекаем базу паролей из другого приложения компании
Посмотрим, что из этого всего выйдет.