Шифрование - это способ ограничения доступа к данным, передаваемым по сети. Шифрование связано с кодированием данных, переводом их в представление, которое может быть прочитано только системами, обладающими «ключом» к схеме кодирования.

Исходный текст, известный как «открытый текст», шифруется при помощи ключа шифрования по схеме, реализованной на программном или аппаратном уровне. Результатом становится закодированный текст (cipher). Чтобы воссоздать открытый текст, закодированный текст необходимо расшифровать по той же схеме шифрования и при помощи соответствующего ключа.

Когда люди задумываются о безопасности, первое, что приходит им на ум, - шифры. Происходит это в основном благодаря шпионским романам и фильмам о второй мировой войне. Однако шифрование далеко не всегда было применимо к сетевой безопасности. Традиционно шифрование данных для передачи по сети требовало применения обеими сторонами одного и того же ключа шифрования, известного в качестве совместно используемого секретного, или закрытого, ключа. Сквозное шифрование можно относительно эффективно использовать только в том случае, если вы контролируете обе стороны канала и можете гарантировать, что всем участникам обмена доступен один и тот же ключ шифрования. По этой причине шифрование использовалось преимущественно для передачи данных между точками сети, находящимися под управлением одной инстанции: в военных сетях, частных сетях, отдельных системах, либо в случаях, когда стороны обмена могли прийти к соглашению относительно метода шифрования и ключей. Шифрование, требующее предварительного согласования и совместного использования секретного ключа, носит название симметричного шифрования.

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


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

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

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

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