Применение шифрования
Шифрование на открытом ключе (ассиметричное шифрование)
В 1970-х годах появилась новая система шифрования, называемая шифрованием на ассиметричном (открытом) ключе. Она называется ассиметричной, потому что не требует использования идентичных ключей отправителем и получателем шифрованного сообщения. Она является системой с открытым ключом, так как один из ключей не содержится в секрете.
Давайте остановимся на этом поподробнее. Шифрование на открытом ключе использует два различных ключа, составляющих пару, но не идентичных. В шифровании с симметричным ключом каждый ключ является уникальным. Пара ключей открытый/секретный работает сообща: один ключ предназначен для шифрования данных, а другой – для расшифровки, и наоборот. Секретный ключ должен содержаться в секретности в целях безопасности, а открытый ключ может передаваться по небезопасному соединению без угрозы для системы. Следовательно, система шифрования на открытом ключе решает одну из главных проблем старых систем шифрования, заключающуюся в безопасном способе передачи ключа шифрования другой стороне.
Как правило, открытые ключи используются только для зашифровки данных. Расшифровать их сможет только тот пользователь, чей компьютер содержит соответствующий секретный ключ. Эта система построена на математических принципах, используемых в шифрах с открытыми ключами и обеспечивающих существование одного и только одного уникального секретного ключа, соответствующего уникальному открытому ключу. Следовательно, если выполняется шифрование данных пользователя на общем ключе, можете быть уверены, что только пользователь, владеющий второй, секретной, половиной ключа, сможет их расшифровать.
Первым коммерческим алгоритмом шифрования на открытом ключе был алгоритм RSA (сокращение представляет собой первые буквы фамилий трех специалистов, которые разработали шифр и впоследствии создали свою собственную компанию RSA Security, Inc.). Данный алгоритм использовался в Netscape в качестве компонента первой версии SSL (это был единственный шифр, используемый в Netscape), который в итоге фактически стал частью стандарта, когда Netscape открыли SSL для общего пользования. Microsoft изначально использовал шифрование RSA в операционной системе Windows NT, оно используется и в Windows 2000. Ключи RSA являются основными возможностями шифрования в Windows 2000/IIS.
Комбинирование методов шифрования
Несмотря на то, что шифрование на открытом ключе имеет преимущество с точки зрения безопасности обмена ключами, его недостатком является скорость работы. Системы шифрования с ассиметричными ключами работают гораздо медленнее, чем системы с симметричными ключами. Они применяются только для шифрования небольших объемов данных, их не рекомендуется использовать в случае больших объемов информации при шифровании в реальном времени в сеансах безопасного соединения.
Стандарты SSL/TLS и IPSec, применяемые для шифрования данных в режиме реального времени в интернете, комбинируют алгоритмы ассиметричного и симметричного шифрования для использования преимуществ каждого. Например, на практике шифрование на открытом ключе не используется для шифрования данных в сессии безопасного соединения, так как оно работает медленно в сравнении с шифрованием на секретном ключе такой же длины.
Вместо этого для аутентификации, шифрования и отправки ключа для симметричного шифра RC4 или AES (объем данных относительно невелик) используется шифрование с открытым ключом. Симметричный шифр используется для шифрования данных сеанса (данные, объем которых измеряется мегабайтами). На принимающей стороне программное обеспечение сначала расшифровывает симметричный ключ, после чего использует его для расшифровки полезных данных.
Комбинирование методов шифрования повышает общий уровень безопасности системы шифрования. Посредством ассиметричного шифрования для доставки ключей сессии симметричного шифрования система может использовать отдельный симметричный ключ для каждого сеанса. Разумеется, это можно делать как при помощи SSL, так и IPSec. Программное обеспечение выбирает симметричный ключ случайным образом. Таким образом, раскрытие одного ключа сеанса связи (что происходит крайне редко) не влияет на следующую установку сеанса.
Цифровые подписи и инфраструктура открытого ключа
Шифрование на общем ключе привело к введению цифровых сертификатов, используемых для аутентификации на веб-сайтах с протоколами SSL/TLS и IPSec. Цифровой сертификат представляет собой цифровой документ (небольшой файл), заверяющий подлинность и статус владельца для пользователя или компьютерной системы. Например, бизнес-сертификат подтверждает тот факт, что компания обладает определенным открытым ключом. Цифровые сертификаты помогают автоматизировать распределение открытых ключей в протоколе шифрования с открытым ключом. Когда другому компьютеру необходимо произвести обмен данными с вашей системой, он осуществляет доступ к цифровому сертификату, содержащему ваш открытый ключ.
Набор продуктов и процессов, необходимых для безопасного создания, управления и распределения цифровых сертификатов, называется инфраструктурой открытого ключа (PKI). Одним из компонентов PKI является компьютер, называемый сервером сертификатов. Объединение, включающее сервер сертификатов и создающее сертификаты, называется бюро сертификатов (CA). CA несет ответственность за подтверждение подлинности сертификата и принадлежности его физическому лицу или организации перед созданием сертификата.
Существуют компании, например, Verisign и SSL.com, являющиеся коммерческими CA. Эти организации за определенную плату выпускают сертификаты для отдельных лиц и компаний. Если организация взяла на себя роль своего собственного бюро сертификатов и выпускает свои сертификаты, то необходим программный продукт Microsoft Sertificate Server, но придется установить этот компонент и управлять им на отдельном сервере в целях безопасности. Руководство многих компаний предпочитает оплатить услугу по получению сертификатов вместо покупки своего собственного оборудования и выделения необходимых ресурсов для самостоятельного выпуска сертификатов.
Стандарт цифровых сертификатов X.509 обеспечивает совместимость с протоколами SSL/TLS и IPSec, используемыми в Microsoft Windows 2000 и IIS. Согласно этому стандарту цифровой сертификат X.509 v3 должен содержать четыре объекта.
- Отличительное имя (Distinguished Name, DN) организации, от которой получен сертификат (т.е. имя, введенное в поле Name сертификата).
- Открытый ключ отдельного лица или организации, идентифицируемый сертификатом.
- Цифровую подпись, полученную от секретного ключа бюро сертификатов, предусмотренного соответствующим сервером сертификатов.
- Отметки о дате, означающие даты выпуска и срок действия сертификата.
Имея эту информацию, два узла в виртуальной частной сети или веб-сервер и правильно настроенный веб-браузер могут отправлять и получать потоки данных, которые будут расшифрованы только ими.
Установление доверия к бюро сертификатов осуществляется по решению персонала или руководства компании. В интернете, как правило, принимается сертификат Verisign. После вынесения решения о доверии корневой сертификат СА нужно установить на серверах и клиентах, осуществляющих взаимную аутентификацию. Корневым сертификатом называется сертификат, содержащий открытый ключ CA, которому будут сопоставляться отдельно выпущенные и подписанные сертификаты с применением концепции открытого ключа для подтверждения подлинности сертификатов. Например, браузер авторизует цифровой сертификат веб-сайта, сопоставляя подпись сертификата с открытым ключом корневого сертификата CA, установленного в браузере. С помощью этой проверки браузер определяет, что сайт на самом деле принадлежит компании или организации, которую он представляет (в силу доверия к бюро сертификатов).