вторник, 6 октября 2015 г.

Шифрование писем S/MIME для Microsoft Exchange


S/MIME (Secure/Multipurpose Internet Mail Extensions) — стандарт для шифрования и подписи в электронной почте с помощью открытого ключа. Предназначена для обеспечения криптографической безопасности электронной почты. Обеспечиваются аутентификация, целостность сообщения и гарантия сохранения авторства, безопасность данных (посредством шифрования).

Данная статья это пошаговая инструкция по использованию S/MIME клиентами Microsoft Exchange.



Как это работает?

У нас есть два пользователя, которые хотят обмениваться зашифрованными сообщениями:

ivanov@exchange.lin.by
petrov@exchange.lin.by

Для начала, нужно выписать каждому из них сертификат с закрытым ключом. Это может быть как доменный центр сертификации, так и публичный. В данной статье мы будем использовать бесплатный сертификат COMODO. Получить его надо для обоих пользователей.

Далее пользователи должны обменяться открытыми ключами. Проще всего это сделать отправив друг-другу подписанное сообщение. После этого они пользователи получат возможность обмениваться зашифрованными письмами. Сам процесс шифрования и дешифрования выглядит стандартно:



Получение сертификатов COMODO.


1. Переходим по ссылке и нажимаем на кнопку:



2. Заполняем поля, ставим галочку внизу около поля "Accept".



3. Получаем уведомление, что ссылка на сертификат ушла на почтовый адрес.


4. На адрес ivanov@exchange.lin.by пришло письмо с большой красной кнопкой. Жмем на нее:



5. После того, как ссылка откроется в браузере, надо посмотреть сертификат:



6. Импортируем сертификат с закрытым ключом и прячем его в надежном месте. Его надо будет установить на все устройства, с которых необходимо читать зашифрованные сообщения.


7. Повторяем пункты 1-6 для пользователя petrov@exchange.lin.by

Настройка Outlook 2013

1. Импорт сертификата с приватным ключом. Для этого надо пройти по пути:

Файл - Настройки - Центр управления безопасностью - Защита электронной почты. 

В появившемся окне нажать кнопку "Импорт/Экспорт", указать путь к файлу сертификата и пароль:



В появившемся окне нажимаем "ОК":




Импорт завершен. Теперь необходимо настроить сертификат для подписи сообщений. Для этого в окне "Защита электронной почты" нажимаем кнопку "Параметры". Выполняем настройки как на скриншоте:


Если вы планируете обмениваться зашифрованными письмами с внутренними пользователями, то можете опубликовать открытый ключ в глобальном списке адресов. Для этого надо нажать одноименную кнопку в окне "Защита электронной почты". После этого для пользователя на сервере Exchange будут заполнены параметры "UserSMimeCertificate" и "UserCertificate". После обновления адресной книги все локальные пользователи, для которых выполнена настройка S/MIME, смогут отправлять для ivanov@exchange.lin.by зашифрованные сообщения. 

Вместо публикации сертификата в GAL можно отправить для petrov@exchange.lin.by подписанное сообщение. Оно будет содержать открытый ключ и пользователю останется только его установить. Делается это прямо из Outlook.

Такую же операцию необходимо проделать для пользователя petrov@exchange.lin.by. На этом подготовительный этап завершен.

2. Теперь выполним отправку зашифрованного сообщения из Outlook. Для этого, в первую очередь, надо добавить в контакты пользователя, которому хотим отправить сообщение. Выполнить это надо даже в том случае, если он находится в адресной книге на сервере. Иначе мы получим ошибку о невозможности отправки зашифрованного письма.

Далее создаем письмо. Получателя выбираем именно из контактов! Затем нажимаем кнопку с замочком и письмо улетает.



Отправка зашифрованных писем через браузер


Из браузера выполнить отправку зашифрованного письма немного сложнее, но только в первый раз. К сожалению, работать с S/MIME можно только с помощью Internet Explorer. Для этого надо в OWA перейти в настройки и выбрать соответствующий пункт меню:



Если этого пункта меню нет, необходимо выполнить на сервере Microsoft Exchange:
Set-OWAVirtualDirectory -identity "owa (Default Web Site)" -SMimeEnabled $true 


При первом запуске будет предложено установить расширение для работы с S/MIME. Соглашаемся и перезапускаем браузер. Снова переходим в настройки - "параметры S/MIME" и включаем автоматический выбор сертификата, который мы уже установили ранее:





После этого создаем новое письмо, переходим в дополнительные настройки сообщения и активируем шифрование:



На этом все, отправляем зашифрованное письмо адресату.

Отправка зашифрованных писем с помощью мобильных устройств


На мобильных устройствах отправка зашифрованных сообщений выполняется аналогично. Алгоритм для всех будет один, скриншоты на примере Windows Phone 8.1:

1. Получаем письмо с цифровой подписью и устанавливаем сертификат (почтовый клиент должен предложить это выполнить)




2. После установки сертификата появится возможность отправлять зашифрованные сообщения:





Как видим, вопрос достаточно объемный, но в итоге ничего сложного. Пробуйте настроить, если не получится - задавайте вопросы в комментариях. Удачи и всего хорошего! :)


6 комментариев:

  1. Добрый день Артём, спасибо за хороший мануал. У меня на эту тему как раз возник вопрос и надеюсь Вы сможете мне подсказать. Клиет хочет что бы из 40 пользователей только 5 общались с внешним миром зашифровыванными сообщениями, правильно ли я понимаю что все 5 должны получить собственный официальный сертификат? Возможно ли шифрование одним общим организационным. Какой именно сертификат используется в таких случаях? На что нужно обратить внимание?


    Спасибо заранее. :)

    С Уважением.

    Сергей

    ОтветитьУдалить
    Ответы
    1. Добрый день, Сергей!

      1. Сертификат может быть выдан вашим доменным ЦС, но тогда на устройства, которые не в домене, надо будет установить корневой сертификат. Это довольно неудобно, поэтому лучше использовать сертификат доверенного ЦС. Ничего сложного в этом нет - его можно получить бесплатно.
      2. Всем пользователям нужен свой сертификат, так как в нем указан почтовый адрес отправителя (как раз одна из его функций - подтверждение адреса отправителя). Несколько email указать в нем не получится - не поддерживает стандарт.

      Имейте в виду, что шифровать ваши пользователи будут письма с помощью открытого ключа, который они должны предварительно получить от адресатов! И, в свою очередь, они должны всем им сообщить свой открытый ключ.

      Удалить
  2. Артём, спасибо что ответили так быстро.
    К сожалению тема сертификатов для меня новая и если позволите я задам ещё пару вопросов :)
    1. Сертификат доверенного ЦС как Вы описали в мануале был получен от Comodo(пока только для одного юзера)
    2. Сертификат был получен, и установлен локально на машине, те. в настройках Оутлука выбран для подписи и шифрования сертификат полученный от Comodo.
    3. После первого не шифрованного но подписанного письма я создал контакт отправителя и привязал к нему полученный из подписи сертификат. Правильно?
    Вопрос, в какой момент я шифрую полученным из подписи (пункт 3) его открытым кючем ответ, где этот сертификат виден, нужно ли указывать открытый ключ тк в свойствах оутлука я вижу только свой Comodo сертификат или происходит автоматически при создании контакта и я должен подвязать в контакт эскпортированный сертификat и на этом всё?
    4.
    Следущим шагом мне удалось обменяться зашифровыными сообщениями но создать новое, не получилось.
    Выдает ошибку
    "Microsoft Outlook had problems encrypting this message because the following recipients had missing or invalid certificates, or conflicting or unsupported encryption capabilities”
    Но если я отвечаю на полученное сообщение через «Ответить» работает без проблем.
    Вчём может быть проблема? Причем происходит это на 3х версиях Оутлука (2007, 2010, 2013) и разных машинах.
    Какие виды сертификатов по опыту вы можете посоветовать. Означает в моем случае мы должны каждому пользователю если хотим официальный и надежный (в пклане ЦС) сертификат преобретать отдельно? Или возможно одно общие решение для всей компании или домена? И можем мы шифровать на нужных компах одним сертификатом.
    Спасибо заранее :) (только за одно прочтение текста) если еще найдете время ответить буду благодарен :)
    Хорошего дня. Сергей

    ОтветитьУдалить
    Ответы
    1. Что-то не то. Примерный алгоритм такой:

      1. Получаем сертификат для пользователя tema@lin.by от Comodo.
      2. Устанавливаем закрытый и открытый ключ на устройстве пользователя tema@lin.by
      3. Отправляем ПОДПИСАННОЕ открытым ключем сообщение от tema@lin.by к sergej@lin.by
      4. Устанавливаем открытый ключ из этого письма на клиенте sergej@lin.by
      5. Отправляем от пользователя sergej@lin.by тестовое зашифрованное сообщение на tema@lin.by

      Попробуйте повторно пройти по всем шагам в инструкции - возможно вы что-то упустили.

      Удалить
  3. Артём, извините что не сразу ответил, вроде всё получилось, сертификат шифрует, всё работает. Остальное это вроде-бы баг Оутлука.

    Спасибо еще раз.

    Сергей :)

    ОтветитьУдалить
    Ответы
    1. Сергей, спасибо за спасибо :)

      Мне очень приятно узнать, что время на написание статьи я потратил не зря!

      Удалить