Страницы: 1
RSS
Может ли The Bat! использовать для TLS-соединений системные хранилища сертификатов?, Не удается добиться принятия нового сертификата почтового сервера (TLS) в режиме CryptoAPI
 
The Bat! 3.99.29, система XP SP3. 29 мая обновился сертификат серверов HostGator, на одном из которых у меня почта. The Bat! при TLS-соединении стал сообщать об отсутствии доверенного корневого сертификата. Записал новый сертификат сервера, полученный посредством OpenSSL, в файл; при открывании файла в CertMgr в окошке также было сообщение об отсутствии корневого сертификата.

Сертификат сервера выдан Comodo, на их сайте предлагается скачать и установить файлы AddTrustExternalCARoot.crt и PositiveSSLCA2.crt. Я установил их в Local Computer Store, после чего CertMgr при открывании сертификата стал отображать его валидность ("The certificate is OK"), однако The Bat! продолжал выдавать сообщение об ошибке. Переключение режима S/MIME между Internal Implementation и Microsoft CryptoAPI эффекта не давало.

Я обратился в службу поддержки RitLabs, сотрудник которой сообщил, что The Bat! вообще не использует для проверки сертификаты из системных хранилищ, и необходимо импортировать корневой сертификат в адресную книгу. Напрямую (в окне адресной книги) этого сделать не удалось ("No addresses have been imported"). Получилось только кружным путем - через импорт в окне "Edit Personal Certificates" в свойствах аккаунта, и кнопку "Add to Trusted" на вкладке Certification Path. После этого The Bat! стал принимать сертификат сервера, опять-таки независимо от режима S/MIME (Internal Implementation или Microsoft CryptoAPI).

Получается, что The Bat! всегда использует собственную базу сертификатов? Сотрудник техподдержки обосновывал такой подход якобы большей степенью безопасности, однако мне это не совсем понятно - база сертификатов располагается в каталогах текущего пользователя, и доступна этому пользователю (а также всем программам, которые запущены от его имени, с его ведома или без) для модификации, в то время как системные хранилища доступны рядовому пользователю только для чтения. Кто-нибудь может объяснить смысл такой политики?

Или это проблема только версий 3.x, и в версиях 4 и 5 уже возможна нормальная работа в режиме MS CryptoAPI, без привлечения локальной базы сертификатов?
 
Сделав бэкап данных, попробовал версию 5.0.36. В режиме Internal Implementation и с сертификатом Comodo в адресной книге сертификат сервера принимался нормально, после удаления из адресной книги приниматься перестал. После переключения в режим CryptoAPI вновь стал приниматься нормально (в системных хранилищах есть сертификаты Comodo).

Был приятно удивлен тем, что размер пятой версии в памяти всего на несколько мегабайт больше, чем третьей (33 Мб против 27), а сразу после запуска, пока нет работы с базами - почти вдвое меньше (15 Мб), и размер файлов данных после переиндексации увеличился всего на пару процентов (177 Мб против 174). На фоне современных традиций, когда простейшие программы занимают десятки мегабайт памяти, такая аккуратность в разработке The Bat! очень радует.

Сапгрейдил лицензию, пока доволен.
 
Упс, выяснилось, что в режиме CryptoAPI версии 5.0 и 5.1 вообще не проверяют сертификатов сервера в TLS-соединении - после удаления корневого сертификата сервера из всех системных хранилищ (Current User и Local Computer) сообщений об ошибке сертификата не выдается. Однако, в истории изменений для версии 4.1 есть такая строка:

[-] (#0001736) TLS did use certificates from The Bat! address books even when CryptoAPI was used. Now, when CryptoAPI is selected, The Bat! uses Windows Certificate store to verify server's certificate.

Такое впечатление, что в Ritlabs уже давно левая рука не знает, что делает правая. И в документации, что характерно, об этом ни слова. Похоже, нужно как-то выходить на разработчиков, чтобы прояснять такие моменты.
Страницы: 1