Ты логика права.
Типичное шифрование PKI:
cryptoAlgorithm(plaintext, public key) = ciphertext
cryptoAlgorithm(ciphertext, private key) = plaintext
Для некоторых алгоритмов алгоритм cryptoAlgorithm представляет собой одну и ту же процедуру отправки и получения.
Итак ... для каждого получателя вам нужен цифровой сертификат, который будет содержать его открытый ключ.
Хранение сертификата GAL
Я думаю, можно настроить GAL, чтобы пользователи могли публиковать сертификаты. У меня сложилось общее впечатление, что способ настройки и использования GAL зависит от компании.
S / MIME & PGP
Я согласен с постом, что S / MIME - это то, что вы хотите для Outlook.
Также обратите внимание - если ваши пользователи используют Outlook Web, а не клиент Outlook, они не смогут получать зашифрованные электронные письма. По крайней мере, с 2000 года, но я подозреваю, что и 2003 год тоже. Это огромная проблема с юзабилити, и у меня нет хорошего обходного пути.
Общая микробезопасность
У Microsoft есть свой особый способ действий (без шуток ...). Они есть
ничем не отличается в мире PKI. Пользовательские сертификаты должны быть четко помечены с возможностью шифрования. Я знаю, что он должен иметь поле KeyUsage KeyEncipherment. И может быть еще одно расширение, требуемое Microsoft. Наличие неправильно отформатированного пользовательского сертификата может означать, что получатель не сможет прочитать почту, когда она прибудет, потому что Outlook не согласится с тем фактом, что почта была зашифрована. Потратьте некоторое время на серьезное интеграционное тестирование и планируйте поработать с множеством групп пользователей. Всякий раз, когда моей команде приходилось интегрироваться с продуктом Microsoft, были неприятные сюрпризы, особенно в отношении того, как настроен сертификат.
Библиотеки и инструменты
Я рекомендую BouncyCastle - я не использовал его, но люди, которым я доверяю, клянутся им. Мне лично понравился инструментарий Phaos, когда мне приходилось писать этот материал, но я устарел. Я знаю, что это стоит серьезных денег и может быть слишком дорого для вашего доллара.
OpenSSL - еще один замечательный инструмент, который полезен не только для SSL. Он отлично подходит для генерации тестовых сертификатов, но я не могу вспомнить, поддерживает ли он также шифрование электронной почты S / MIME.
Для большинства библиотек вы должны иметь возможность взять открытый текст и сертификат и поместить их в функцию, которая генерирует сообщение S / MIME. Они могут также потребовать алгоритм шифрования.