Шифрование в Exchange Online

Хакерский инструмент

Вне всякого сомнения, читатели этой статьи знакомы с Интернетом. Как известно, Интернет — весьма опасное место, в любой момент вы можете потерять контроль над размещенной там информацией. Какими бы ни были ваши мотивы, стремление защитить свои данные может быть фактором, препятствующим переходу на Exchange Online. В предлагаемой статье описаны особые типы шифрования, которые можно использовать в Exchange Online, и способы применения каждого из них.

Вас может также заинтересовать статья «Взлом Bitlocker», в которой мы пытались разобраться возможен ли взлом шифрования дисков Windows.

Что такое шифрование

Прежде чем углубиться в детали шифрования в Exchange Online, коротко остановлюсь на собственно шифровании. Шифрование — процесс искажения информации таким образом, чтобы понять ее мог только целевой получатель. Шифрование никому не мешает перехватывать ваши сообщения, но должно сделать их непонятными любому постороннему лицу, завладевшему сообщениями.

Существует множество способов зашифровать сообщение, поэтому сначала рассмотрим самую простую форму шифрования. Например, нужно отправить очень секретную для шестиклассника информацию Jimmy likes Kim и хочется, чтобы она ни в коем случае не попала в руки учительницы, которая могла бы повергнуть школьника в смущение, прочитав сообщение вслух всему классу. Необходимо сделать так, чтобы учительница, если и перехватит сообщение, не могла разобрать его, но тот, кому предназначено сообщение, понял бы все. Шестиклассник мог бы воспользоваться шифром Julius Caesar, чтобы зашифровать свое сообщение. Этот простой шифр смещает каждую букву на определенное число позиций в алфавите. Мы воспользуемся смещением 3. Чтобы зашифровать первую букву, «j», перемещаем ее на 3 позиции по алфавиту, и она становится буквой «т». После обработки остальных букв сообщение jimmy likes kim превращается в mlppb olnhv nip.

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

Данному шифру свойственна и другая проблема. Как одноклассники могут согласовать между собой правила шифрования? В нашем примере можно было бы обсудить их на перемене: «Добавим 3 к каждой букве в сообщении». Но если шифр более сложный, эти «правила», скорее всего, потребуется записать. Кроме того, чем дольше используются одни и те же правила, тем проще учительнице их разгадать и в будущем читать перехваченные сообщения. Возможно, вы решите добавлять +1 к каждой букве в первый день месяца, а во второй — добавлять +2. Можно постоянно придумывать новые способы усложнить шифр, но если изменения происходят закономерно, то злоумышленник, перехватывающий сообщения, сможет эту закономерность обнаружить.

С подобной проблемой сталкивались все, кто когда-либо применял шифрование. Одной из причин поражения Германии во Второй мировой войне была попытка решить эту проблему с помощью шифровальной машины Энигма. Она представляла собой сложный механизм для создания новых «правил шифрования» (или шифра) каждый день. Идея состояла в том, что если у меня и у вас есть по машине Энигма, то можно ежедневно формировать набор очень сложных правил шифрования, и никто посторонний не догадается, какими будут эти правила. Однако англичанину по имени Алан Тюринг удалось разгадать, как работает машина Энигма, и союзники научились понимать все вражеские сообщения.

шифровальная машина Энигма
Шифровальная машина Энигма

Единственный способ получить абсолютно неуязвимый шифр предполагает использование одноразового криптографического ключа. Одноразовый криптографический ключ представляет собой действительно случайный набор правил шифрования сообщений. Вернемся к нашему примеру шифрования слова Jimmy. Вместо того чтобы смещать каждую букву в сообщении на +3, мы будет смешать ее на случайную величину. Пусть наш одноразовый криптографический ключ состоит из пяти случайных чисел, 16, 5, 9, 23 и 2. Результатом шифрования jimmy с использованием этого одноразового криптографического ключа будет znvja.

Вот это — абсолютно неуязвимый шифр. Если вы отправите друзьям сообщение znvja, то уверяю, что никто без одноразового криптографического ключа не сможет догадаться, что вы имели в виду jimmy.

Если одноразовый криптографический ключ так хорош, то почему же его не используют для шифрования всех сообщений? На то есть три причины. Прежде всего, попробуйте-ка воспользоваться им сами. Выберите слово из пяти букв, затем запишите пять случайных чисел. Используйте пять случайных чисел, чтобы зашифровать слово из пяти букв… Потребовалось немало времени, не так ли? И это всего одно короткое слово! А представьте себе, что требуется зашифровать, например, эту статью. Вы уже прочли около десяти тысяч символов вместе с пробелами. То есть для шифрования этой статьи потребуется приблизительно в пять тысяч раз больше времени, чем для слова из пяти букв. Надежное шифрование — очень сложная работа, даже для компьютеров.

Вторая проблема с одноразовым криптографическим ключом заключается в том, что на обеих сторонах, как передающей, так и принимающей, необходимо иметь одинаковый набор случайных чисел. Это нетрудно, если два человека видятся каждый день. Но если вы видитесь каждый день, то зачем шифровать сообщения, пересылаемые друг другу? Просто поговорите наедине. Шифрование требуется, когда люди встречаются нечасто и приходится передавать друг другу сообщения по каналу, доступному для всех (например, через Интернет или по радио). Возможно, при встрече вы можете создать очень большой одноразовый криптографический ключ, и каждый возьмет с собой его копию. Все идет хорошо, пока одноразовый криптографический ключ действует, но что произойдет после того, как он будет исчерпан?

Таким образом, мы подходим к третьей проблеме, свойственной одноразовому криптографическому ключу. Поскольку я уже многократно употреблял словосочетание «одноразовый криптографический ключ», вы, вероятно, уже догадались, какая это проблема; его можно использовать лишь однажды. Если попытаться использовать прежний одноразовый криптографический ключ для нового сообщения, то злоумышленники, которые пытаются прочитать вашу корреспонденцию, смогут расшифровать ваш код. Это можно доказать сложными математическими выкладками, но я предлагаю поверить мне на слово. Если использовать один и тот же одноразовый ключ для шифрования слова sales, а затем повторно для слова patch, то опытные шифровальщики смогут разгадать закономерность. Вероятно, у вас возникает вопрос: каким же образом работает мой браузер при посещениях зашифрованного веб-сайта? Существует ли способ, с помощью которого мой компьютер может обмениваться одноразовым криптографическим ключом с сервером? Ответ одновременно и да, и нет.

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

Что такое асинхронный ключ шифрования

В 70-х годах прошлого века несколько действительно сообразительных инженеров нашли удачное математическое решение. Если взять два очень больших простых числа и перемножить их, то впоследствии чрезвычайно трудно найти первоначальные числа. Покажем это на примере небольших чисел.

5 и 7 — простые числа (то есть делятся только на 1 и на самих себя). Умножая 5 на 7, получаем 35. Каждый может умножить 5 на 7 и получить 35, это просто. Однако гораздо сложнее выяснить, какие два простых числа были перемножены, чтобы получить 35. Впрочем, с числом 35 это несложно. Но поверьте на слово, при использовании очень больших простых чисел этот метод эффективен.

Так или иначе, это математическое решение позволило нам задействовать «асинхронное шифрование». Моих знаний недостаточно, чтобы объяснить подробности метода, но если использовать произведение двух больших простых чисел (35) в формуле для шифрования сообщения, то реально расшифровать сообщение можно, лишь зная заранее два исходных простых числа (5 и 7). Это означает, что можно иметь «открытый ключ», публикуемый для общего доступа. Люди, желающие вступить со мной в шифрованную связь, могут воспользоваться этим ключом, чтобы отправить мне зашифрованное сообщение.

Что дальше? Как ответить на это сообщение? Если человек, отправивший мне сообщение, не опубликовал открытого ключа, с помощью которого я мог бы зашифровать ответное сообщение, то разговор получится односторонним, не так ли? Вспомните, что ранее мы рассматривали проблему передачи одноразового криптографического ключа человеку, не находящемуся в непосредственной близости. Шифрование с открытым ключом оказывается превосходным решением.

Обмен данными по протоколу SSL в Интернете

Вот как происходит обмен данными по протоколу SSL в Интернете:

  1. Я назначаю и публикую «открытый ключ», который может использоваться любым лицом для шифрования отправляемых мне сообщений.
  2. Чтобы организовать шифрованный обмен сообщениями со мной, вам следует применить этот открытый ключ для шифрования версии одноразового криптографического ключа и отправить его мне.
  3. Теперь мы оба располагаем безопасным одноразовым криптографическим ключом, с помошью которого можно сделать обмен данными конфиденциальным.

На практике процесс несколько сложнее, но это описание дает приемлемое общее представление. Далее я приведу более подробную характеристику различных типов шифрования, используемых в Exchange Online, и покажу, как применить их с максимальной пользой.

Типы шифрования Exchange Online

Существует пять различных типов шифрования, которые используются в Exchange Online: BitLocker, TLS, Office 365 Message Encryption, Information Rights Management и S/MIME. О каждом из пяти типов шифрования мы поговорим отдельно и рассмотрим, какие задачи они решают и как настроить их для применения.

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

Сделав эту оговорку, я перехожу к первому типу шифрования, используемому в Exchange Online,— BitLocker.

Шифрование BitLocker

BitLocker — технология шифрования дисков, реализованная в Windows Server 2008 и более поздних версиях (а также в Windows Vista и более новых клиентских операционных системах). BitLocker обеспечивает шифрование сохраненных данных электронной почты с помощью алгоритма Advanced Encryption Standard (AES). Если злоумышленнику каким-то невероятным образом удастся взломать центр обработки данных Office 365 и выкрасть жесткий диск с базой данных Exchange Online, ему не удастся получить доступ к данным на этом жестком диске без ключа шифрования.

AES — протокол шифрования с синхронным ключом (то есть для шифрования и восстановления данных используется один ключ). Я не буду вдаваться в подробности шифрования этого типа, так как пользователю Exchange Online не предоставляется никаких возможностей настройки. Однако вы можете получить дополнительные сведения об AES в статье в Википедии (Advanced encryption standard).

BitLocker — одна из причин для перехода на Office 365, ведь значительная часть работы по настройке Exchange уже выполнена за вас.

BitLocker уже настроен на клиенте, и все хранящиеся данные зашифрованы. У пользователя нет возможности проверить это напрямую, но продукция Microsoft соответствует требованиям независимых процедур аудита. Дополнительные сведения по этому вопросу можно найти на сайте Office 365 Trust Center.

Шифрование TLS

Следующий тип шифрования, который мы рассмотрим,— TLS. Протокол защиты транспортного уровня Transport Layer Security (TLS) позволяет двум отдельным организациям Exchange обмениваться почтовыми сообщениями через шифрованный канал связи. TLS функционирует очень похоже на механизм SSL в браузере. Это означает, что администратору не составит особого труда настроить TLS.

Прежде чем приступить к настройке TLS в Exchange Online, обозначим различия между TLS в Exchange Online и Domain Security в Exchange 2010 и 2013.

Domain Security — набор функций в локальной версии Exchange, реализованный в Exchange 2010 и Outlook 2007 и задуманный в качестве экономичной альтернативы для S/MIME и иных решений безопасности на уровне сообщений. В Domain Security функциональность Mutual TLS сочетается с клиентскими уведомлениями, чтобы показать пользователю, что его сообщение передается через безопасное соединение. Клиентские уведомления Domain Security недоступны в Exchange Online.

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

Настройка TLS сводится к созданию соединителя отправки и получения и последующей подгонке к конкретной партнерской организации.

  1. В портале Exchange Admin Console (ЕАС) в Office 365 перейдите к mail flow > connectors (поток обработки почты > соединители). В разделе Inbound Connectors («Соединители входящей почты») щелкните символ «+», чтобы добавить новый соединитель.
  2. Назначьте соединителю имя и выберите тип partner. Укажите Force TLS («Принудительное применение TLS») в качестве режима безопасности соединения.
  3. В разделе доменных ограничений выберите один из вариантов: None, restrict domains by certificate («Ограничить домены по сертификату») или restrict domains by IP addresses («Ограничить домены по IP-адресу»),
  4. В разделе доменов щелкните символ «+», чтобы добавить домен (домен электронной почты, такой как @contoso.com).
  5. Нажмите кнопку Save («Сохранить») и убедитесь, что соединитель активен.
  6. Процесс настройки Outbound connector («Соединители исходящей почты») происходит аналогично.
  7. В портале Exchange Admin Console (ЕАС) в Office 365 перейдите к mail flow > connectors. В разделе Outbound Connectors («Соединители исходящей почты») щелкните символ «+», чтобы добавить новый соединитель.
  8. Назначьте соединителю имя и выберите тип partner.
  9. В разделе безопасности домена выберите Self-signed certificate («Самоподписывающийся сертификат») или Trusted certification authority (СА) («Доверенный центр сертификации») в зависимости от того, использует ваш партнер стороннии оошии сертификат или самоподписывающийся сертификат. Можно указать Recipient certificate matches domain («Сертификат получателя соответствует домену»), чтобы получить дополнительный уровень безопасности. Перечисленные домены должны соответствовать общему имени (CN) в теме сертификата. Дополнительные имена субъектов (SAN) неприемлемы.
  10. Добавьте домен с использованием символа «+» в разделе доменов, а затем сохраните новый соединитель.

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

Протокол TLS шифрует поток сообщений, передаваемый между организациями через Интернет. Сообщения, передаваемые через TLS, не шифруются в пользовательских клиентах Outlook или где-либо в клиенте Exchange Online (кроме упомянутого выше шифрования хранимых данных с использованием BitLocker). TLS не защитит от администратора-злоумышленника, который неправомерно назначит себе разрешения для доступа к чьему-то почтовому ящику.

Итак, мы рассмотрели два типа шифрования для Exchange Online — BitLocker и TLS. В следующей статье я представлю алгоритм шифрования сообщений Office 365, именно о нем вспоминает большинство пользователей, когда речь заходит о шифровании почтовых сообщений.

Дима (Kozhuh)

Эксперт в кибербезопасности. Работал в ведущих компаниях занимающихся аналитикой компьютерных угроз. Анонсы новых статей в Телеграме.

Добавить комментарий