Как зашифровать письмо в outlook
Шифрование S/MIME. Чтобы использовать шифрование S/MIME, отправитель и получатель должны иметь почтовое приложение, которое поддерживает стандарт S/MIME. Outlook поддерживает стандарт S/MIME
Кнопка "Зашифровать" и обновления для шифрования электронной почты
После обновления Office шифрование электронной почты в Outlook стало еще лучше.
Вместо кнопки Разрешения кнопка Зашифровать .
Новая кнопка Шифрование содержит оба варианта шифрования (S/MIME и IRM). Параметр S/MIME отображается только при настройке сертификата S/MIME в Outlook.
Шифрование с помощью S/MIME
Прежде чем приступить к этой процедуре, необходимо добавить сертификат в ключнуюchain на компьютере. После настройки сертификата подписи на компьютере его необходимо настроить в Outlook.
В меню Файлвыберите пункт Параметры > центре > управленияПараметры .
В левой области выберите Безопасность электронной почты.
В области Зашифрованная электроннаяпочта выберите Параметры.
В области Сертификаты и алгоритмыщелкните Выбрать и выберите сертификат S/MIME.
Если вы — Office с подпиской Microsoft 365, вот что нового для вас:
Если на вашем компьютере установлен сертификат S/MIME, вы увидите шифрование с помощью S/MIME.
В Outlook 2019 г. и Outlook 2016,
В Outlook 2019 и 2016г.
Откройте вкладку Файл. Выберите Параметры >центр управления > управления Параметры.
Чтобы изменить дополнительные параметры, такие как использование особого сертификата, нажмите кнопку Параметры.
Важно: Office 2010 больше не поддерживается. Перейдите на Microsoft 365, чтобы работать удаленно с любого устройства и продолжать получать поддержку.
На вкладке Файл последовательно выберите Параметры > Центр управления безопасностью > Параметры центра управления безопасностью.
Чтобы изменить дополнительные параметры, такие как использование особого сертификата, нажмите кнопку Параметры.
Вначале создадим персональный сертификат, содержащий вышеуказанные сертификаты, открытый и закрытый ключи, а также другую информацию. Запускаем программу, переходим на вкладку Ключи и сертификаты, выбираем Создать, заполняем необходимые поля и жмем Далее:
Произойдет генерация ключей, создание сертификатов и их запись в базу данных программы. Если была выбрана опция Опубликовать после создания, сертификат будет опубликован на сервере CyberSafe, где ваш открытый ключ будет доступен для скачивания другим пользователям.
Теперь экспортируем необходимые нам для работы с Outook сертификаты в отдельные файлы:
Сертификаты в CyberSafe создаются на основе библиотеки OpenSSL, код создания сертификата приведен ниже:
procedure TOpenSSL.CreateSignedCert(const FileName: String; OutFiles: TStringList;
const Password: String;
ValidDays: Integer; KeySize: Integer; const ExtendedKeyUsage: String;
const CommonName, Email, Organization, OrganizationalUnit, Country: String;
const CAFileSpec, CAPFXFileSpec, CAPrivateKeyPassword: String;
ARandomFileSpec: String = '';
ProgressProc: TProgressProc = nil; LogMsgProc: TLogMsgProc = nil);
var
TmpPrivateKeyFileSpec, TmpPublicKeyFileSpec: String;
TmpCerFileSpec, TmpPfxFileSpec, TmpCsrFileSpec, TmpCASerialFileSpec, TmpExtFileSpec, TmpPemFileSpec: String;
TmpCAPrivateKeyFileSpec: String;
Subj: String;
TempDir: String;
Aborted: Boolean;
WasError: Boolean;
OutPublicKeyFileSpec: String;
begin
WasError := True;
TempDir := GetTempDir;
try
CheckIsFileExists(CAFileSpec);
// Извлекаем приватный ключ из корневого сертификата
TmpCAPrivateKeyFileSpec := TempDir + ChangeFileExt(ExtractFileName(CAPFXFileSpec), '') + '.privateKey.pem';
ExportPrivateKeyFromPfx(CAPFXFileSpec, TmpCAPrivateKeyFileSpec, CAPrivateKeyPassword);
// Все файлы создаем во временном каталоге, и только после успешного создания всех — // переносим на место постоянного хранения
TmpPrivateKeyFileSpec := TempDir + FileName + '.privateKey.pem';
TmpPublicKeyFileSpec := TempDir + FileName + '.publicKey.pem';
TmpCerFileSpec := TempDir + FileName + '.cer';
TmpPemFileSpec := TempDir + FileName + '.pem';
TmpPfxFileSpec := TempDir + FileName + '.pfx';
TmpCsrFileSpec := TempDir + FileName + '.csr';
TmpCASerialFileSpec := TempDir + FileName + '.srl';
Subj := GetSubj(CommonName, Email, Organization, OrganizationalUnit, Country);
Aborted := False;
if Assigned(ProgressProc) then
ProgressProc(13, 4, Aborted, Format('%s (%d %s). ', [StKeysGenerate, KeySize, StBit]));
if Aborted then
Exit;
CreatePrivateKey(TmpPrivateKeyFileSpec, TmpPublicKeyFileSpec, KeySize, ARandomFileSpec);
if Assigned(ProgressProc) then
ProgressProc(13, 5, Aborted, Format('%s. ', [StGenerateCertificate]));
if Aborted then
Exit;
if Assigned(ProgressProc) then
ProgressProc(13, 6, Aborted, Format('%s. ', [StCreateCertificateRequest]));
// Создаем запрос — .csr
RunOpenSSLConsole(Format(
'req -new -key "%s" -out "%s" -days %d -subj %s',
[TmpPrivateKeyFileSpec, TmpCsrFileSpec, ValidDays, Subj]
), True, nil, nil);
if Assigned(ProgressProc) then
ProgressProc(13, 7, Aborted, Format('%s. ', [StCreateExtensionsFile]));
if Assigned(ProgressProc) then
ProgressProc(13, 8, Aborted, Format('%s. ', [StCreateSignedCertificate]));
// На основе запроса создаем сертификат, подписаный корневым сертификатом
RunOpenSSLConsole(Format(
'x509 -req -days %d -passin pass:%s -in "%s" -CAform DER -CA "%s" -CAkey "%s" -CAserial "%s" -CAcreateserial -out "%s" -outform DER -extfile "%s"',
[ValidDays, Password, TmpCsrFileSpec, CAFileSpec, TmpCAPrivateKeyFileSpec, TmpCASerialFileSpec, TmpCerFileSpec, TmpExtFileSpec]
), False, nil, nil);
if Assigned(ProgressProc) then
ProgressProc(13, 9, Aborted, Format('%s. ', [StConvertCertificate]));
// Конвертируем cer => pem для следующей крманды экспорта в pfx
RunOpenSSLConsole(Format(
'x509 -in "%s" -inform DER -out "%s" -outform PEM',
[TmpCerFileSpec, TmpPemFileSpec]
), False, nil, nil);
if Assigned(ProgressProc) then
ProgressProc(13, 10, Aborted, Format('%s. ', [StCreatePFX]));
// Делаем pfx из полученного pem и ключей
RunOpenSSLConsole(Format(
'pkcs12 -password pass:%s -export -in "%s" -inkey "%s" -name "%s" -out "%s"',
[Password, TmpPemFileSpec, TmpPrivateKeyFileSpec, FileName, TmpPfxFileSpec]
), False, nil, nil);
OutPublicKeyFileSpec := TmpPublicKeyFileSpec + '.signed';
if Assigned(ProgressProc) then
ProgressProc(13, 11, Aborted, Format('%s. ', [StExportPublicKey]));
ExportPublicKeyFromPfx(TmpPfxFileSpec, OutPublicKeyFileSpec, Password);
// А результат добавляем в список файлов
OutFiles.Add(TmpCerFileSpec);
OutFiles.Add(TmpPfxFileSpec);
OutFiles.Add(TmpPrivateKeyFileSpec);
OutFiles.Add(TmpPublicKeyFileSpec);
OutFiles.Add(OutPublicKeyFileSpec);
WasError := False;
finally
// Удаляем временные файлы
if WasError then
begin
CheckDeleteFile(TmpCerFileSpec);
CheckDeleteFile(TmpPfxFileSpec);
CheckDeleteFile(TmpPrivateKeyFileSpec);
CheckDeleteFile(TmpPublicKeyFileSpec);
CheckDeleteFile(OutPublicKeyFileSpec);
end;
CheckDeleteFile(TmpCsrFileSpec);
CheckDeleteFile(TmpCASerialFileSpec);
CheckDeleteFile(TmpExtFileSpec);
CheckDeleteFile(TmpPemFileSpec);
CheckDeleteFile(TmpCAPrivateKeyFileSpec);
end;
end;
Далее открываем Outlook и идем: Файл > Параметры > Центр управления безопасностью > Параметры центра управления безопасностью > Защита электронной почты. В разделе Шифрованная электронная почта отмечаем галками пункты:
На этом, в принципе, все:). Однако давайте убедимся в том, что у нас все работает правильно и выполним проверку шифрования “на себя”.
Создадим новый контакт. Идем Главная > Контакты > Создать контакт. На вкладке Общие достаточно заполнить поля Полное имя и Эл. почта, после чего переходим на вкладку Сертификаты, где нажимаем Импорт:
В проводнике Windows находим свой сертификат в формате *.cer
Если отправленное письмо не отображается во входящих, перейдите на вкладку Отправка и получение и нажмите Обновить папку.
Проверка функции шифрования “на себя” выполнена.
Получив такое письмо от другого пользователя добавляем его в Контакты (Адресную книгу). Далее необходимо экспортировать X.509 сертификат пользователя в файл и установить его в хранилище Windows. Для этого в поле с общей информацией о письме нажимаем на значок цифровой подписи и выбираем Сведения > Подробности > Показать сертификат > Состав > Копировать в файл и следуем инструкциям Мастера экспорта сертификатов. Экспортированный сертификат добавляем к контакту пользователя также, как мы делали это при проверке функции шифрования “на себя”.
В завершении хотелось бы добавить, что сделать свой открытый ключ доступным для других пользователей можно опубликовав его на публичных серверах ключей, таких как сервер CyberSafe. Естественно, там также можно попробовать найти открытые ключи интересующих вас пользователей, не дожидаясь, пока они вам их пришлют.
Поэтому в таком случае подлинность открытого ключа должна быть проверена по его электронному отпечатку. Один из самых простых способов сверить отпечаток – созвониться с владельцем открытого ключа по скайпу или по телефону.
Вначале создадим персональный сертификат, содержащий вышеуказанные сертификаты, открытый и закрытый ключи, а также другую информацию. Запускаем программу, переходим на вкладку Ключи и сертификаты, выбираем Создать, заполняем необходимые поля и жмем Далее:
Произойдет генерация ключей, создание сертификатов и их запись в базу данных программы. Если была выбрана опция Опубликовать после создания, сертификат будет опубликован на сервере CyberSafe, где ваш открытый ключ будет доступен для скачивания другим пользователям.
Теперь экспортируем необходимые нам для работы с Outook сертификаты в отдельные файлы:
Сертификаты в CyberSafe создаются на основе библиотеки OpenSSL, код создания сертификата приведен ниже:
procedure TOpenSSL.CreateSignedCert(const FileName: String; OutFiles: TStringList;
const Password: String;
ValidDays: Integer; KeySize: Integer; const ExtendedKeyUsage: String;
const CommonName, Email, Organization, OrganizationalUnit, Country: String;
const CAFileSpec, CAPFXFileSpec, CAPrivateKeyPassword: String;
ARandomFileSpec: String = '';
ProgressProc: TProgressProc = nil; LogMsgProc: TLogMsgProc = nil);
var
TmpPrivateKeyFileSpec, TmpPublicKeyFileSpec: String;
TmpCerFileSpec, TmpPfxFileSpec, TmpCsrFileSpec, TmpCASerialFileSpec, TmpExtFileSpec, TmpPemFileSpec: String;
TmpCAPrivateKeyFileSpec: String;
Subj: String;
TempDir: String;
Aborted: Boolean;
WasError: Boolean;
OutPublicKeyFileSpec: String;
begin
WasError := True;
TempDir := GetTempDir;
try
CheckIsFileExists(CAFileSpec);
// Извлекаем приватный ключ из корневого сертификата
TmpCAPrivateKeyFileSpec := TempDir + ChangeFileExt(ExtractFileName(CAPFXFileSpec), '') + '.privateKey.pem';
ExportPrivateKeyFromPfx(CAPFXFileSpec, TmpCAPrivateKeyFileSpec, CAPrivateKeyPassword);
// Все файлы создаем во временном каталоге, и только после успешного создания всех — // переносим на место постоянного хранения
TmpPrivateKeyFileSpec := TempDir + FileName + '.privateKey.pem';
TmpPublicKeyFileSpec := TempDir + FileName + '.publicKey.pem';
TmpCerFileSpec := TempDir + FileName + '.cer';
TmpPemFileSpec := TempDir + FileName + '.pem';
TmpPfxFileSpec := TempDir + FileName + '.pfx';
TmpCsrFileSpec := TempDir + FileName + '.csr';
TmpCASerialFileSpec := TempDir + FileName + '.srl';
Subj := GetSubj(CommonName, Email, Organization, OrganizationalUnit, Country);
Aborted := False;
if Assigned(ProgressProc) then
ProgressProc(13, 4, Aborted, Format('%s (%d %s). ', [StKeysGenerate, KeySize, StBit]));
if Aborted then
Exit;
CreatePrivateKey(TmpPrivateKeyFileSpec, TmpPublicKeyFileSpec, KeySize, ARandomFileSpec);
if Assigned(ProgressProc) then
ProgressProc(13, 5, Aborted, Format('%s. ', [StGenerateCertificate]));
if Aborted then
Exit;
if Assigned(ProgressProc) then
ProgressProc(13, 6, Aborted, Format('%s. ', [StCreateCertificateRequest]));
// Создаем запрос — .csr
RunOpenSSLConsole(Format(
'req -new -key "%s" -out "%s" -days %d -subj %s',
[TmpPrivateKeyFileSpec, TmpCsrFileSpec, ValidDays, Subj]
), True, nil, nil);
if Assigned(ProgressProc) then
ProgressProc(13, 7, Aborted, Format('%s. ', [StCreateExtensionsFile]));
if Assigned(ProgressProc) then
ProgressProc(13, 8, Aborted, Format('%s. ', [StCreateSignedCertificate]));
// На основе запроса создаем сертификат, подписаный корневым сертификатом
RunOpenSSLConsole(Format(
'x509 -req -days %d -passin pass:%s -in "%s" -CAform DER -CA "%s" -CAkey "%s" -CAserial "%s" -CAcreateserial -out "%s" -outform DER -extfile "%s"',
[ValidDays, Password, TmpCsrFileSpec, CAFileSpec, TmpCAPrivateKeyFileSpec, TmpCASerialFileSpec, TmpCerFileSpec, TmpExtFileSpec]
), False, nil, nil);
if Assigned(ProgressProc) then
ProgressProc(13, 9, Aborted, Format('%s. ', [StConvertCertificate]));
// Конвертируем cer => pem для следующей крманды экспорта в pfx
RunOpenSSLConsole(Format(
'x509 -in "%s" -inform DER -out "%s" -outform PEM',
[TmpCerFileSpec, TmpPemFileSpec]
), False, nil, nil);
if Assigned(ProgressProc) then
ProgressProc(13, 10, Aborted, Format('%s. ', [StCreatePFX]));
// Делаем pfx из полученного pem и ключей
RunOpenSSLConsole(Format(
'pkcs12 -password pass:%s -export -in "%s" -inkey "%s" -name "%s" -out "%s"',
[Password, TmpPemFileSpec, TmpPrivateKeyFileSpec, FileName, TmpPfxFileSpec]
), False, nil, nil);
OutPublicKeyFileSpec := TmpPublicKeyFileSpec + '.signed';
if Assigned(ProgressProc) then
ProgressProc(13, 11, Aborted, Format('%s. ', [StExportPublicKey]));
ExportPublicKeyFromPfx(TmpPfxFileSpec, OutPublicKeyFileSpec, Password);
// А результат добавляем в список файлов
OutFiles.Add(TmpCerFileSpec);
OutFiles.Add(TmpPfxFileSpec);
OutFiles.Add(TmpPrivateKeyFileSpec);
OutFiles.Add(TmpPublicKeyFileSpec);
OutFiles.Add(OutPublicKeyFileSpec);
WasError := False;
finally
// Удаляем временные файлы
if WasError then
begin
CheckDeleteFile(TmpCerFileSpec);
CheckDeleteFile(TmpPfxFileSpec);
CheckDeleteFile(TmpPrivateKeyFileSpec);
CheckDeleteFile(TmpPublicKeyFileSpec);
CheckDeleteFile(OutPublicKeyFileSpec);
end;
CheckDeleteFile(TmpCsrFileSpec);
CheckDeleteFile(TmpCASerialFileSpec);
CheckDeleteFile(TmpExtFileSpec);
CheckDeleteFile(TmpPemFileSpec);
CheckDeleteFile(TmpCAPrivateKeyFileSpec);
end;
end;
Далее открываем Outlook и идем: Файл > Параметры > Центр управления безопасностью > Параметры центра управления безопасностью > Защита электронной почты. В разделе Шифрованная электронная почта отмечаем галками пункты:
На этом, в принципе, все:). Однако давайте убедимся в том, что у нас все работает правильно и выполним проверку шифрования “на себя”.
Создадим новый контакт. Идем Главная > Контакты > Создать контакт. На вкладке Общие достаточно заполнить поля Полное имя и Эл. почта, после чего переходим на вкладку Сертификаты, где нажимаем Импорт:
В проводнике Windows находим свой сертификат в формате *.cer
Если отправленное письмо не отображается во входящих, перейдите на вкладку Отправка и получение и нажмите Обновить папку.
Проверка функции шифрования “на себя” выполнена.
Получив такое письмо от другого пользователя добавляем его в Контакты (Адресную книгу). Далее необходимо экспортировать X.509 сертификат пользователя в файл и установить его в хранилище Windows. Для этого в поле с общей информацией о письме нажимаем на значок цифровой подписи и выбираем Сведения > Подробности > Показать сертификат > Состав > Копировать в файл и следуем инструкциям Мастера экспорта сертификатов. Экспортированный сертификат добавляем к контакту пользователя также, как мы делали это при проверке функции шифрования “на себя”.
В завершении хотелось бы добавить, что сделать свой открытый ключ доступным для других пользователей можно опубликовав его на публичных серверах ключей, таких как сервер CyberSafe. Естественно, там также можно попробовать найти открытые ключи интересующих вас пользователей, не дожидаясь, пока они вам их пришлют.
Поэтому в таком случае подлинность открытого ключа должна быть проверена по его электронному отпечатку. Один из самых простых способов сверить отпечаток – созвониться с владельцем открытого ключа по скайпу или по телефону.
Последний месяц, в связи с недавними событиями — закрытием почтового сервиса с шифрованием LavaBit, заявлениями Гугла, что Gmail не гарантирует безопасность данных, переходом крупнейших email-сервисов Германии на шифрование писем, в Интернете все чаще стали говорить об обеспечении конфиденциальности частной переписки. Начнем с простых решений.
SecureGmail
Большинство из нас пользуется почтой от GMail, поэтому хорошо бы научить его шифрованию писем. К счастью, уже есть расширение для Google Chrome — SecureGmail.
Пользоваться легко — при создании защищенного письма необходимо указать пароль и подсказку, в случае, если пароль забыт:
Одним из недостатков расширения является то, что получатель должен знать этот пароль, чтобы расшифровать письмо:
Пока что существует только расширение для Google Chrome, которое должно быть установлено и у получателя, и у отправителя. Кроме того, нельзя ответить на расшифрованное письмо, необходимо создавать новое, а также зашифрованное письмо не попадает в черновики. Но несмотря на эти недостатки, SecureGmail — неплохой инструмент для обеспечения безопасной переписки прямо из GMail.
Encrypted Communication
Для Firefox существует аналогичный аддон — Encrypted Communication. Принцип работы такой же, плагин должен быть установлен и у отправителя, и у получателя.
PGP (Pretty Good Privacy)
Для настройки понадобится:
-
(GnuPG), GPGTools (OS X) или Gpg4win (Windows)
- Почтовые клиенты Thunderbird или Postbox — OpenPGP аддон для Thunderbird и Postbox для Chrome или Firefox и веб-приложений Gmail, Outlook, Yahoo и т.д.
После этого необходимо экспортировать ключи, сохранив в безопасное место. Теперь при создании письма можно выбрать пункт «Encrypt Message»:
Для поддержки веб-приложений электронной почты необходимо настроить Mailvelope, который доступен в виде расширений для Chrome и Firefox. Процесс описан в видео:
Такая настройка шифрования писем занимает больше времени, однако сделав это один раз, можно ощутить все преимущества способа: одной парой ключей можно пользоваться и в десктоп-клиентах, и в веб-почте, кроме того, PGP-шифрование зарекомендовало себя с положительной стороны.
Читайте также: