Безопасность электронной почты с помощью цифровых сертификатов (часть 2)

Опубликовано: 11 Марта, 2023
Безопасность электронной почты с помощью цифровых сертификатов (часть 2)

  • Безопасность электронной почты с помощью цифровых сертификатов (часть 5)

Симметричные ключевые алгоритмы

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

Криптография с симметричным ключом имеет несколько недостатков:

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

Основное преимущество криптографии с симметричным ключом — высокая скорость, с которой она может работать. Шифрование с симметричным ключом очень быстрое, часто в 1000–10 000 раз быстрее, чем асимметричные алгоритмы.

Алгоритмы асимметричного ключа

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

Рассмотрим следующий пример: если Линда хочет отправить сообщение Нуно с помощью криптографии с открытым ключом, она создает сообщение, а затем шифрует его с помощью открытого ключа Нуно. Единственный возможный способ расшифровать этот зашифрованный текст — использовать закрытый ключ Нуно, и единственным пользователем, имеющим доступ к этому ключу, является Нуно. Поэтому Линда не может даже сама расшифровать сообщение после того, как зашифрует его. Если Нуно хочет отправить ответ Линде, он просто шифрует сообщение с помощью открытого ключа Линды, а затем Линда читает сообщение, расшифровывая его своим закрытым ключом.

Алгоритмы асимметричного ключа также обеспечивают поддержку технологии цифровой подписи. По сути, если Нуно хочет убедить других пользователей, что сообщение с его именем действительно было отправлено им, он сначала создает дайджест сообщения, используя алгоритм хеширования (подробнее об этом ниже). Затем Нуно шифрует этот дайджест, используя свой закрытый ключ. Любой пользователь, который хочет проверить подпись, просто расшифровывает дайджест сообщения с помощью открытого ключа Nuno, а затем проверяет точность расшифрованного дайджеста сообщения. Цифровые подписи обсуждаются более подробно в следующей части этой серии статей.

Ниже приведен список основных преимуществ криптографии с асимметричным ключом:

  • Добавление новых пользователей требует генерации только одной пары открытого и закрытого ключей. Эта же пара ключей используется для связи со всеми пользователями асимметричной криптосистемы. Это делает алгоритм чрезвычайно масштабируемым;
  • Пользователей гораздо проще удалить из асимметричных систем. Асимметричные криптосистемы предоставляют механизм отзыва ключа, который позволяет аннулировать ключ, эффективно удаляя пользователя из системы;
  • Регенерация ключа требуется только в том случае, если закрытый ключ пользователя скомпрометирован. Если пользователь покидает сообщество, системный администратор просто должен аннулировать ключи этого пользователя. Никакие другие ключи не скомпрометированы, поэтому повторное создание ключа не требуется для любого другого пользователя;
  • Шифрование с асимметричным ключом может обеспечить целостность, аутентификацию и неотказуемость. Если пользователь не передает свой закрытый ключ другим лицам, может быть показано, что сообщение, подписанное этим пользователем, является точным и полученным из определенного источника, и впоследствии его нельзя будет опровергнуть;
  • Распределение ключей — простой процесс. Пользователи, которые хотят участвовать в системе, просто делают свой открытый ключ доступным для всех, с кем они хотят общаться. Не существует метода, с помощью которого можно получить закрытый ключ из открытого ключа;
  • Никакой ранее существовавший канал связи не должен существовать. Два человека могут безопасно общаться с самого начала. Асимметричная криптография не требует ранее существовавших отношений для обеспечения безопасного механизма обмена данными. Это верно в большинстве случаев, но не при использовании Outlook для шифрования сообщений, как мы увидим позже.

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

Самая известная криптосистема с открытым ключом названа в честь ее создателей. В 1977 году (да, почти 40 лет назад!) Рональд Ривест, Ади Шамир и Леонард Адлеман предложили алгоритм открытого ключа RSA, который и сегодня остается мировым стандартом. Они запатентовали свой алгоритм и создали коммерческое предприятие, известное как RSA Security, для разработки основных реализаций своей технологии безопасности.

Алгоритм RSA зависит от вычислительной сложности, связанной с разложением на множители больших простых чисел. — это разложение простого числа на произведение меньших простых чисел (простое число — это натуральное число больше 1, которое не имеет положительных делителей, кроме 1 и самого себя). Каждый пользователь криптосистемы генерирует пару открытого и закрытого ключей, используя этот алгоритм.

Алгоритмы хеширования

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

Хеш-функции имеют очень простую цель: они берут потенциально длинное сообщение и генерируют уникальное выходное значение, полученное из содержимого сообщения. Это значение обычно называют . Дайджесты сообщений могут создаваться отправителем сообщения и передаваться получателю вместе с полным сообщением по двум причинам. Во-первых, получатель может использовать ту же хеш-функцию для повторного вычисления дайджеста сообщения из полного сообщения. Затем они могут сравнить вычисленный дайджест сообщения с переданным, чтобы убедиться, что сообщение, отправленное отправителем, совпадает с сообщением, полученным получателем. Если дайджесты сообщений не совпадают, это означает, что сообщение было каким-то образом изменено во время передачи. Во-вторых, дайджест сообщения можно использовать для реализации алгоритма цифровой подписи.

В большинстве случаев размер дайджеста сообщения составляет 128 бит или больше. Обычно, чем длиннее дайджест сообщения, тем надежнее проверка его целостности.

Ниже приведены некоторые из наиболее распространенных алгоритмов хеширования, используемых сегодня:

  • Дайджест сообщения 2 (MD2);
  • Дайджест сообщения 5 (MD5);
  • Алгоритм безопасного хеширования (SHA-0, SHA-1 и SHA-2). Это стандартные государственные хеш-функции, разработанные Национальным институтом стандартов и технологий (NIST) и указанные в официальном правительственном издании Secure Hash Standard (SHS), также известном как Федеральный стандарт обработки информации (FIPS) 180;
  • Хэшированный код аутентификации сообщения (HMAC).

Инфраструктура открытых ключей

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

Сертификаты

Цифровые сертификаты обеспечивают взаимодействующим сторонам уверенность в том, что люди, с которыми они общаются, действительно являются теми, за кого себя выдают. Цифровые сертификаты, по сути, являются утвержденными копиями открытого ключа человека. Когда пользователи проверяют, что сертификат был подписан доверенным центром сертификации (ЦС), они знают, что открытый ключ является законным. Цифровые сертификаты содержат определенную идентифицирующую информацию, и их конструкция регулируется международным стандартом X.509. Сертификаты, соответствующие X.509, содержат следующие данные:

  • Версия X.509, которой соответствует сертификат;
  • Серийный номер (от создателя сертификата);
  • Идентификатор алгоритма подписи (указывает метод, используемый центром сертификации для цифровой подписи содержимого сертификата);
  • Имя эмитента (идентификация центра сертификации, выдавшего сертификат);
  • Срок действия (указывает дату и время начала и дату и время окончания, в течение которых сертификат действителен;
  • Имя субъекта (содержит различающееся имя объекта, которому принадлежит открытый ключ, содержащийся в сертификате);
  • Открытый ключ субъекта (содержание сертификата, фактический открытый ключ, который владелец сертификата использовал для установки защищенных соединений)

Центры сертификации (ЦС) — это связующее звено, связывающее воедино инфраструктуру открытых ключей. Эти нейтральные организации предлагают услуги нотариального заверения цифровых сертификатов. Чтобы получить цифровой сертификат от авторитетного ЦС, мы должны подтвердить свою личность, чтобы ЦС был удовлетворен. Некоторые из основных центров сертификации включают Symantec, Thawte, GeoTrust, GlobalSign, Comodo Limited, GoDaddy и DigiCert.

Ничто не мешает организации просто создать магазин в качестве ЦС. Однако сертификаты, выданные ЦС, хороши только в том случае, если доверие было оказано выдавшему их ЦС. Это важный момент, который следует учитывать при получении цифрового сертификата от третьего лица. Если мы не признаем и не доверяем имени центра сертификации, выпустившего сертификат, мы вообще не должны доверять сертификату. PKI опирается на иерархию доверительных отношений. Если мы настроим наш браузер так, чтобы он доверял ЦС, он автоматически будет доверять всем цифровым сертификатам, выданным этим ЦС. Разработчики браузеров предварительно настраивают браузеры так, чтобы они доверяли основным центрам сертификации, чтобы не возлагать это бремя на пользователей.

Вывод

Во второй части этой серии статей мы рассмотрели алгоритмы симметричного и асимметричного ключей и что такое инфраструктура открытых ключей. Далее мы подробно рассмотрим цифровые подписи и S/MIME.

  • Безопасность электронной почты с помощью цифровых сертификатов (часть 5)