Электронная почта является сегодня не просто способом доставки сообщений. Ее смело можно назвать важнейшим средством коммуникации, распределения информации и управления различными процессами в бизнесе. Но всегда ли мы можем быть уверены в корректности и безопасности ее работы?
На самом деле уязвимость электронной почты — это большая проблема.
Электронная почта — один из старейших сетевых сервисов. Появилась она в 1982 году, а ведь в то время вопросы безопасности в Интернете стояли не так остро, как сейчас. Если верить исследованиям компании Mimecast, около 94% опрошенных компаний полностью бессильны в борьбе с утечкой информации через электронную почту.
Новостные ленты регулярно пестрят сообщениями о взломанных электронных почтах политиков, спортсменов, артистов и других публичных людей. Подобных ситуаций можно было бы избежать, для этого всего лишь надо знать о возможности шифровать электронные письма.
Ведь стоит это недорого, а работает надежно.
Что вы можете сделать для защиты электронной почты?
В прошлой статье «Как при помощи токена сделать Windows домен безопаснее? Часть 1» мы рассказали, как настроить безопасный вход в домен. Напомнили, что такое двухфакторная аутентификация и каковы ее преимущества.
В этой статье мы поговорим о защите электронной почты.
Стандартные почтовые протоколы не включают очевидных механизмов защиты, которые гарантировали бы авторство писем и обеспечивали простую и легкую проверку. Такая ситуация с защитой почтовых систем дает возможность злоумышленникам создавать письма с фальшивыми адресами. Поэтому нельзя быть на 100% уверенным в том, что человек, данные которого указаны в поле «От кого», действительно является автором письма. Также тело электронного письма легко изменить, т. к. нет средств проверки целостности и при передаче через множество серверов письмо может быть прочитано и изменено.
Один из способов обеспечить конфиденциальность переписки — шифрование сообщений, а один из способов проверить целостность письма и установить авторство — подписание его электронной подписью.
Зашифрованное сообщение будет доступно для прочтения только тем получателям, у которых имеется закрытый ключ, соответствующий открытому, при помощи которого было зашифровано сообщение. Любой другой получатель не сможет даже открыть письмо.
Как работает протокол S/MIME?
Протокол S/MIME (Secure/Multipurpose Internet Mail Extensions) обеспечивает аутентификацию, целостность сообщения, сохранение авторства и безопасность данных.
S/MIME идентифицирует обладателя открытого ключа с помощью сертификата X.509.
S/MIME обеспечивает защиту от трех типов нарушений безопасности:
- перлюстрации (вскрытия и просмотра писем без ведома автора и получателя);
- искажения (изменения текста писем);
- фальсификации (подмены писем).
Для защиты от искажения почтового сообщения или фальсификации в S/MIME используется цифровая подпись. Наличие цифровой подписи гарантирует нам то, что сообщение не было изменено в процессе передачи. Кроме того, не позволяет отправителю сообщения отказаться от своего авторства.
Однако цифровая подпись сама по себе не гарантирует передачу сообщений с обеспечением конфиденциальности. В S/MIME эту функцию выполняет шифрование. Грубо говоря, оно осуществляется с помощью асимметричного криптографического алгоритма.
Спецификация S/MIME определяет два типа файлов в формате MIME: один для цифровых подписей, другой для шифрования сообщений. Оба типа базируются на синтаксисе криптографических сообщений стандарта PKCS#7.
Если сообщение должно быть зашифровано, а шифртексту должны быть присвоены некоторые атрибуты, то используются вложенные конверты. Внешний и внутренний конверты предназначаются для защиты цифровой подписи, а промежуточный конверт — для защиты шифртекста.
При работе с S/MIME необходимо иметь два ключа — открытый и закрытый. Ключи сопровождает сертификат, то есть информация о пользователе, позволяющая определить, что он — именно тот, за кого себя выдает. Сертификат можно сравнить с неким электронным паспортом, своеобразным удостоверением личности.
Для отправки зашифрованного сообщения необходимо получить открытый ключ получателя сообщения и, грубо говоря, зашифровать сообщение с его использованием.
На рисунке показаны этапы шифрования сообщения электронной почты в S/MIME:
- Алиса создает сообщение, которое она хочет зашифровать и отправить Бобу. Решает его отправить Бобу. Клиент обмена сообщениями, видя, что письмо нуждается в шифровании, генерирует случайный ключ шифрования (закрытый ключ, который обычно называется сеансовым ключом, впоследствии новый случайный ключ генерируется каждый раз, когда отправляется зашифрованное сообщение) и зашифровывает с его помощью сообщение.
- Сеансовый ключ шифруется с помощью открытого ключа получателя и прикрепляется к сообщению, а это значит, что расшифровать его может только закрытый ключ Боба.
- Зашифрованный текст и зашифрованный ключ отправляются Бобу посредством SMTP (Simple Mail Transfer Protocol).
- Почтовый клиент Боба использует закрытый ключ Боба для расшифровки зашифрованного ключа и получает расшифрованный сеансовый ключ. Здесь гарантируется секретность, т. к. для расшифровки сеансового ключа, необходимого для расшифровки сообщения, может быть использован только закрытый ключ Боба.
- Почтовый клиент Боба использует расшифрованный сеансовый ключ для расшифровки почтового сообщения, результатом этого является расшифрованное исходное сообщение, которое было отправлено Алисой.
Шифрование не защищает сообщение от подделки и изменения содержания в процессе передачи. Поэтому вместе с шифрованием для защиты электронного письма необходимо использовать электронную подпись.
На рисунке показаны этапы аутентификации и обнаружения подделки сообщения с использованием электронной подписи:
- Алиса создает сообщение и подписывает его электронной подписью. Почтовый клиент видя, что сообщение должно быть подписано, генерирует хеш сообщения Алисы (в результате получается хеш d — «digest»).
- Хеш подписывается клиентом обмена сообщениями с использованием закрытого ключа Алисы. Это означает, что только ее открытый ключ будет способен проверить подпись на этом хеше.
- Подписанный хеш вместе с сообщением отправляется Бобу.
- Почтовый клиент Боба использует открытый ключ Алисы для проверки подписи хеша и убеждается, что подпись на хеше правильная.
- Почтовый клиент Боба вычисляет новый хеш на основе отправленного Алисой текста (результат в хеше d).
- После этого почтовый клиент Боба сравнивает проверенный хеш и заново вычисленный в пункте 5. Это позволяет узнать Бобу, является ли цифровая подпись действительной. Если два хеша одинаковые, то сообщение действительно пришло от Алисы и не было подделано в процессе передачи.
Microsoft Outlook и другие почтовые клиенты для шифрования и подписания электронных писем используют протокол S/MIME. Если получатель и отправитель зашифрованного электронного письма используют разные почтовые клиенты, то это не означает, что они не смогут читать зашифрованные письма друг друга. Мы для примера рассмотрим процесс настройки почтового клиента Microsoft Outlook, как наиболее распространенного в корпоративной среде. Другие почтовые клиенты тоже можно использовать для шифрования и подписи сообщений. Их настройка в целом похожа, но могут быть нюансы.
Как настроить защиту сообщений в Microsoft Outlook с помощью Рутокен ЭЦП PKI?
А теперь за дело. Настроим шифрование и подписание писем.
Для примера я буду использовать устройство для безопасного хранения ключей и сертификатов Рутокен ЭЦП PKI .
Как на токене появились ключи и сертификаты, мы подробно объяснять не будем. Вы можете получить их в удостоверяющем центре или создать самостоятельно, как описано в одной из наших прошлых статей.
Для начала, используя панель Рутокен, сохраните сертификат в локальном хранилище и установите для него параметр «по умолчанию».
На вкладке «Сертификаты» щелкните по названию необходимого сертификата, нажмите «По умолчанию». Также установите флажок в строке с этим сертификатов, в столбце «Зарегистрирован».
В Microsoft Outlook выберите пункт меню «Файл» и подпункт «Параметры».
Выберите пункт «Центр управления безопасностью» и нажмите «Параметры центра управления безопасностью...».
Выберите пункт «Защита электронных писем» и установите необходимые флажки.
Нажмите «Параметры».
Измените имя конфигурации, выберите сертификаты для подписи и шифрования.
После этого все письма, отправленные с помощью MS Outlook, будут автоматически зашифрованы и подписаны.
Для начала обмена электронными письмами необходимо отправить сертификат получателю зашифрованного письма. Для этого можно отправить ему письмо с файлом сертификата или письмо, подписанное электронной подписью.
Мы отправим подписанное письмо.
Для подписания письма электронной подписью перейдите на вкладку «Параметры» и нажмите «Шифрование» (чтобы письмо было только подписано). Все просто!
Получателю необходимо добавить вас в контакты Outlook и ответить на ваше письмо зашифрованным и подписанным письмом. После этого вы сможете обмениваться с получателем зашифрованными письмами, и никто кроме вас двоих прочитать их не сможет.
Иногда необходимо подписать только файл, приложенный к письму. Это можно сделать, подписав сам файл в одном из популярных приложений Microsoft Word или Microsoft Excel.
Мы рассмотрим процесс подписания файла в приложении Microsoft Word.
Как подписать файл в Microsoft Word?
Защитить файл от изменений можно с помощью электронной подписи.
Открытый ключ автора документа должен быть распространен среди всех пользователей,
которые будут работать с подписанным документом. Обычно это реализуется с помощью рассылки сертификата открытого ключа всем пользователям из списка контактов.
Как это работает?
Есть документ, который необходимо подписать. С помощью специального ПО из содержания документа и закрытого ключа создается уникальная символьная последовательность. Эта последовательность и является электронной подписью. Она всегда уникальна для данного пользователя и данного документа.
Электронная подпись — это реквизит документа, который позволяет установить факт искажения информации в электронном документе с момента формирования электронной подписи и подтвердить принадлежность ее владельцу.
Электронная подпись может быть равносильна собственноручной подписи на бумажном документе, поэтому очень важно, чтобы вашу электронную подпись не смог поставить злоумышленник.
Чтобы обезопасить свою электронную подпись, закрытый ключ электронной подписи необходимо хранить на токене или смарт-карте. Тогда ваша электронная подпись будет защищена PIN-кодом и даже в случае кражи токена или смарт-карты, злоумышленник не сможет ей воспользоваться.
Давайте для примера подпишем любой документ в формате DOCX.
Я буду использовать приложение Microsoft Word 2016.
Вам потребуется токен или смарт-карта. Я для примера буду использовать Рутокен ЭЦП 2.0.
Для начала откройте документ, который необходимо подписать.
Выберите пункт «Файл» и нажмите «Защита документа».
Выберите пункт «Добавить цифровую подпись».
Откроется окно подписи. Оно позволяет добавить личные сертификаты, которые будут использоваться при формировании подписи. Один из сертификатов выбран автоматически.
В раскрывающемся списке выберите тип подтверждения и при необходимости внесите цель подписания документа.
Нажмите «Изменить» и выберите необходимый сертификат.
После выбора сертификата нажмите «Подписать» и укажите PIN-код токена. Подпись сохранится в документе. В строке состояния отобразится значок, свидетельствующий о том, что данный документ создан с подписью.
Теперь, если кто-то изменит документ, то ему придется подписать его заново. А это значит, что вы всегда будете знать, кто является автором последней версии документа. И будете понимать, была ли изменена ваша версия документа.
Это, в свою очередь, позволит сделать обмен документами более безопасным и «прозрачным».
Резюмируем
В результате произведенных настроек вы можете отправлять сообщения которые будут:
- отправлены именно вами;
- прочитаны только выбранными получателями;
- защищены от изменений при передаче;
- созданы и подписаны именно вами.
В следующей статье мы расскажем, что такое Bitlocker, как он может защитить вашу информацию от злоумышленников и как его настроить.