Apache Версия 2.0 Сервера HTTP
хорошая вещь о стандартах - то, что есть так многие, чтобы выбрать из. И если Вы действительно не любите все стандарты, Вы только должны ждать другой год, пока тот не возникает, Вы ищете.
-- A. Tanenbaum , "Введение в Компьютерные Сети"
как введение эта глава нацелена на читателей, которые являются знакомыми с Сетью, HTTP, и Apache, но не эксперты безопасности. Это не предназначено, чтобы быть категорическим гидом для протокола SSL, и при этом это не обсуждает определенные методы для руководящих свидетельств в организации, или важных юридических проблемах патентов и импортирует и экспортных ограничений. Скорее это предназначено, чтобы обеспечить общий фон mod_ssl пользователям, сплачивая различные понятия, определения, и примеры как отправная точка для дальнейшего исследования.
представленное содержание главным образом получено, с разрешением автором, от статьи
Introducing SSL and Certificates using SSLeay
от
Frederick J. Hirsch
, Открытого Научно-исследовательского института Группы, который был издан в
Web Security: A Matter of Trust
, Журнал Всемирной Паутины, Объем 2, Выходит 3, Лето 1997. Пожалуйста пошлите любую положительную обратную связь
Frederick Hirsch
(оригинальный автор статьи) и вся отрицательная обратная связь к
Ralf S. Engelschall
(
mod_ssl
автор).
Понимание SSL требует понимания шифровальных алгоритмов, функции обзора сообщения (иначе. односторонний или функции мешанины), и цифровые подписи. Эти методы - предмет всех книг (см. например [ AC96 ]), и обеспечивают основание для секретности, целостности, и установления подлинности.
предположим, что Алиса хочет послать сообщение ее банку, чтобы передать немного денег. Алиса хотела бы, чтобы сообщение было частным, так как это будет включать информацию, типа ее номера счета и передавать количество. Одно решение состоит в том, чтобы использовать шифровальный алгоритм, техника, которая преобразовала бы ее сообщение в зашифрованную форму, нечитабельную кроме теми, это предназначено для. Однажды в этой форме, сообщение может только интерпретироваться с помощью секретного ключа. Без ключа сообщение бесполезно: хорошие шифровальные алгоритмы делают это настолько трудным для злоумышленников расшифровать оригинальный текст, что это не стоит их усилие.
есть две категории шифровальных алгоритмов: обычный и общественный ключ.
любой может зашифровать сообщение, используя общественный ключ, но только владелец частного ключа будет в состоянии прочитать это. Таким образом, Алиса может послать частные сообщения владельцу ключевой пары (банк), зашифровав это использующий их общественный ключ. Только банк будет в состоянии расшифровать это.
хотя Алиса может зашифровать ее сообщение, чтобы сделать это частным, есть все еще беспокойство, что кто - то мог бы изменить ее оригинальное сообщение или заменить этим с различным, чтобы передать деньги себе, например. Один способ гарантировать целостность сообщения Алисы состоит в том, чтобы создать краткое резюме ее сообщения и послать это банку также. По получении сообщения, банк создает его собственное резюме и сравнивает это с тем, который Алиса послала. Если они соглашаются тогда, что сообщение было получено неповрежденное.
резюме, типа этого называют a обзор сообщения , односторонняя функция или функция мешанины . обзоры сообщения используются, чтобы создать короткий, представления неподвижной длины дольше, сообщения переменной длины. Алгоритмы обзора разработаны, чтобы произвести уникальные обзоры для различных сообщений. Обзоры сообщения разработаны, чтобы сделать слишком трудным, чтобы определить сообщение от обзора, и также невозможный найти два различных сообщения, которые создают тот же самый обзор - таким образом устранение возможности заменения одним сообщением для другого, поддерживая тот же самый обзор.
другой вызов, перед которым Алиса оказывается, находит способ послать обзор банку надежно; когда это достигнуто, целостность связанного сообщения уверена. Один способ сделать это состоит в том, чтобы включить обзор в цифровую подпись.
когда Алиса посылает сообщение банку, банк должен гарантировать, что сообщение - действительно от нее, таким образом злоумышленник не просит сделку, вовлекающую ее счет. A цифровая подпись , созданный Алисой и включенный с сообщением, удовлетворяет этой цели.
цифровые подписи созданы, зашифровав обзор сообщения, и другой информации (, типа числа последовательности) с частным ключом отправителя. Хотя любой может расшифровать подпись, используя общественный ключ, только подписывающее лицо знает частный ключ. Это означает, что только они, возможно, подписали это. Включение обзора в подписи означает, что подпись только хороша для того сообщения; это также гарантирует целостность сообщения, так как никто не может изменить обзор и все еще подписать это.
чтобы принимать меры против перехвата и повторного использования подписи злоумышленником позднее, подпись содержит уникальное число последовательности. Это защищает банк от мошеннического требования от Алисы, что она не посылала сообщение - только она, возможно, подписала это (неотказ).
хотя Алиса, возможно, послала частное сообщение банку, подписала это, и гарантировала целостность сообщения, она все еще должна убедиться, что она действительно общается с банком. Это означает, что она должна убедиться, что общественный ключ, который она использует, соответствует частному ключу банка. Точно так же банк также должен проверить, что подпись сообщения действительно соответствует подписи Алисы.
если каждая сторона имеет свидетельство, которое утверждает идентичность других, подтверждает общественный ключ, и подписано агентством, которому доверяют, то они оба будут уверены, что они общаются, с кем они думают, что они. Такое агентство, которому доверяют, называют a Власть Свидетельства , и свидетельства используются для установления подлинности.
свидетельство связывает общественный ключ с реальной идентичностью человека, сервера, или другого юридического лица, известного как предмет. Как показано в Table 1 , информация о предмете включает совпадающую информацию (выдающееся название), и общественный ключ. Это также включает идентификацию и подпись Власти Свидетельства, которая выпустила свидетельство, и промежуток времени, в течение которого свидетельство является действительным. Это может иметь дополнительную информацию (или расширения) так же как административная информация для использования Власти Свидетельства, типа регистрационного номера.
предмет | Выдающееся Название, Общественный Ключ |
---|---|
выпускающий | Выдающееся Название, Подпись |
период Законности | Не Перед Датой, Не После Даты |
Административная Информация | версия, Регистрационный номер |
Расширенная Информация | Основные Ограничения, Флаги Netscape, и т.д. |
выдающееся название используется, чтобы обеспечить идентичность в определенном контексте - например, человек мог бы иметь личное свидетельство так же как один для их идентичности как служащий. Выдающиеся названия определены по стандарту X.509 [ X509 ], который определяет области, полевые названия, и сокращения имели обыкновение обращаться к областям (см. Table 2 ).
Область отличительного имени | Abbrev. | описание | пример |
---|---|---|---|
Общее Название | КОМПЬЮТЕРНАЯ СЕТЬ | заверенное название | Среднее число CN=Joe |
организация или Компания | O |
название связано с этим
организация |
O=Snake Oil, Ltd. |
Организационная Единица | OU |
название связано с этим
единица организации, типа отдела |
Институт OU=Research |
город/Местоположение | L | название расположено в этом Городе | Город L=Snake |
государство/Область | С- | название расположено в этом государстве/Области | ST=Desert |
страна | C | название расположено в этой Стране (кодекс Международной Организации по Стандартизации) | C=XZ |
Власть Свидетельства может определить политику, определяющую, который различал, полевые названия являются дополнительными, и которые требуются. Это может также поместить требования в полевое содержание, как могут пользователи свидетельств. Как пример, браузер Netscape требует, чтобы Общее Название для свидетельства, представляющего сервер имело название, которое соответствует образцу группового символа для названия области того сервера, типа
*.snakeoil.com
.
двоичный формат свидетельства определен, используя примечание ASN.1 [ X208 ] [ PKCS ]. Это примечание определяет, как определить содержание, и кодирующие правила определяют, как эта информация переведена на двухчастную форму. Двойное зашифровывание свидетельства определено, используя Выдающиеся Правила Зашифровывания (DER), которые являются основанными на более общих Основных Правилах Зашифровывания (ЧАСТОТА ОШИБОК ПО БИТАМ). Для тех передач, которые не могут обращаться с набором из двух предметов, двухчастная форма может быть переведена на форму ASCII при использовании зашифровывания Base64 [ MIME ]. Эту закодированную версию называют закодированным PEM (название прибывает от "Секретности Расширенная Почта"), когда помещено между начинаются и линии разделителя конца как иллюстрировано в следующем примере.
-----BEGIN CERTIFICATE----- MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzEL MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQFAAOB gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt 2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7 dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ== -----END CERTIFICATE-----
первым подтверждением информации в запросе свидетельства перед предоставлением свидетельства, Власть Свидетельства уверяет идентичность частного ключевого владельца ключевой пары. Например, если Алиса просит личное свидетельство, Власть Свидетельства должна сначала удостовериться, что Алиса действительно - человек требования запроса свидетельства.
Власть Свидетельства может также выпустить свидетельство для другой Власти Свидетельства. Исследуя свидетельство, Алиса, возможно, должна исследовать свидетельство о выпускающем, для каждой родительской Власти Свидетельства, до достижения того, в котором она уверена. Она может решить доверять только свидетельствам с ограниченной цепью выпускающих, уменьшать ее риск "плохого" свидетельства в цепи.
как отмечено ранее, каждое свидетельство требует, чтобы выпускающий утверждал законность идентичности предмета свидетельства, до высокопоставленной Власти Свидетельства (Калифорния). Это представляет проблему: Так как это - то, кто ручается за свидетельство о высокопоставленной власти, которая не имеет никакого выпускающего? В этом уникальном случае, "самоподписано" свидетельство, таким образом выпускающий свидетельства - то же самое как предмет. В результате нужно осуществить дополнительную заботу в доверии самоподписанному свидетельству. Широкая публикация общественного ключа полностью власть уменьшает риск в доверии этому ключу - было бы очевидно, если бы кто - то еще предал гласности ключ, утверждающий быть властью. Браузеры предварительно сконфигурированы, чтобы доверять известным властям свидетельства.
множество компаний, типа Thawte и VeriSign утвердились как Власти Свидетельства. Эти компании обеспечивают следующие услуги:
также возможно создать вашу собственную Власть Свидетельства. Хотя опасно в интернет-окружающей среде, это может быть полезным в пределах Интранета, где организация может легко проверить тождества людей и серверов.
установление Власти Свидетельства - ответственность, которая требует тела, административного, технического, и структуры управления. Власти Свидетельства не только выпускают свидетельства, они также управляют ими - то есть, они определяют, как долго свидетельства действительны, они возобновляют их, и они держат списки свидетельств, которые были уже выпущены, но больше не действительны (Списки Аннулирования Свидетельства, или CRLs). Скажите, что Алиса имеет право на свидетельство как служащий компании. Скажите также, что свидетельство должно отмениться, когда Алиса оставляет компанию. Так как свидетельства - объекты, которые разданы, невозможно сказать от свидетельства одного, что это отменилось. Исследуя свидетельства на законность, поэтому, необходимо связаться с выходящей Властью Свидетельства проверить CRLs - это не обычно автоматизированная часть процесса.
если Вы используете Власть Свидетельства, которая не формируется в браузеры по умолчанию, необходимо загрузить свидетельство Власти Свидетельства в браузер, позволяя браузер утвердить свидетельства сервера, подписанные той Властью Свидетельства. Выполнение так может быть опасным, так как когда-то загружено, браузер примет все свидетельства, подписанные той Властью Свидетельства.
Безопасный протокол Слоя Гнезд - слой протокола, который может быть помещен между надежным ориентируемым на связь протоколом слоя сети (например. TCP/IP) и прикладной слой протокола (например. HTTP). SSL предусматривает безопасную коммуникацию между клиентом и сервером, позволяя взаимное установление подлинности, использование цифровых подписей для целостности, и шифрования для секретности.
протокол разработан, чтобы поддержать диапазон выборов для определенных алгоритмов, используемых для криптографии, обзоров, и подписей. Это позволяет выбор алгоритма для определенных серверов быть сделанным основанным на юридическом, экспорта или других проблем, и также позволяет протоколу использовать в своих интересах новые алгоритмы. О выборах договариваются между клиентом и сервером в начале установления сессии протокола.
версия | источник | описание | Поддержка Браузера |
---|---|---|---|
SSL v2.0 | Стандарт Продавца (от Корпорации Netscape) [ SSL2 ] | Сначала протокол SSL, для какого выполнения существует |
- НЕ УТОЧНЕНО Навигатор 1.x/2.x
- MS ТО ЕСТЬ 3.x - Lynx/2.8+OpenSSL |
SSL v3.0 | интернет-Проект С истекшим сроком (от Корпорации Netscape) [ SSL3 ] | пересмотры, чтобы предотвратить определенные нападения безопасности, добавьте non-RSA шифры, и поддержку цепям свидетельства |
- НЕ УТОЧНЕНО Навигатор 2.x/3.x/4.x
- MS ТО ЕСТЬ 3.x/4.x - Lynx/2.8+OpenSSL |
TLS v1.0 | Предложенный интернет-Стандарт (от IETF) [ TLS1 ] | пересмотр SSL 3.0, чтобы обновить слой МАКИНТОША к HMAC, добавьте дополнение блока для блочных шифров, стандартизации заказа сообщения и большего количества аварийных сообщений. | - Lynx/2.8+OpenSSL |
есть множество версий протокола SSL, как показано в Table 4 . как отмечено там, одна из выгод в SSL 3.0 - то, что это добавляет поддержку погрузки цепи свидетельства. Эта особенность позволяет серверу передавать свидетельство сервера наряду со свидетельствами выпускающего браузеру. Цепь, загружающая также разрешает браузеру утверждать свидетельство сервера, даже если свидетельства Власти Свидетельства не установлены для промежуточных выпускающих, так как они включены в цепь свидетельства. SSL 3.0 - основание для Транспортной Безопасности Слоя [ TLS ] стандарт протокола, в настоящее время в развитии Интернетом, Проектируя Целевую группу (IETF).
сессия SSL установлена следующим за последовательностью рукопожатия между клиентом и сервером, как показано в Figure 1 . эта последовательность может измениться в зависимости от того, формируется ли сервер, чтобы обеспечить свидетельство сервера или просить свидетельство клиента. Хотя случаи существуют, где дополнительные шаги рукопожатия требуются для управления информацией шифра, эта статья суммирует один общий сценарий: см. спецификацию SSL для полного диапазона возможностей.
как только сессия SSL была установлена, это может многократно использоваться, таким образом избегая, чтобы штраф работы повторения многих шагов должен был начать сессию. Для этого сервер назначает каждую сессию SSL уникальный идентификатор сессии, который прячется про запас в сервере и который клиент может использовать на предстоящих связях, чтобы уменьшить рукопожатие (пока сессия identifer не истекает в тайнике сервера).
Figure 1
: Упрощенная Последовательность Рукопожатия SSL
элементы последовательности рукопожатия, как используется клиентом и сервером, упомянуты ниже:
первый шаг, Переговоры Набора Шифра, позволяет клиенту и серверу выбирать Набор Шифра, приемлемый ими обоими. Спецификация протокола SSL3.0 определяет 31 Набор Шифра. Набор Шифра определен следующими компонентами:
эти три элемента описаны в секциях, которые следуют.
ключевой обменный метод определяет, как разделенный секретный симметрический ключ криптографии, используемый для прикладной передачи данных будет согласован клиентом и сервером. SSL 2.0 использования, которые ключ RSA обменивает только, в то время как SSL 3.0 поддержки выбор ключевых обменных алгоритмов, включая ключевой обмен RSA, когда свидетельства используются, и ключевой обмен Diffie-Hellman для того, чтобы обменять ключи без свидетельств и без предшествующей коммуникации между клиентом и сервером.
одна переменная в выборе ключевых обменных методов - цифровые подписи - действительно ли использовать их, и если так, какой подписи, чтобы использовать. Подписание с частным ключом обеспечивает гарантию против "человека в среднем нападении" в течение информационного обмена, используемого в производстве разделенного ключа [ AC96 , p516].
SSL использует обычный алгоритм криптографии (симметрическая криптография) описанный ранее для того, чтобы зашифровать сообщения на сессии. Есть девять выборов, включая выбор, чтобы не выполнить никакого шифрования:
здесь "Си-би-си" обращается к Сцеплению блоков Шифра, что означает, что часть предварительно зашифрованной шифрограммы используется в шифровании текущего блока. "DES" обращается к Стандарту Шифрования Данных [ AC96 , ch12], который имеет множество вариантов (включая DES40 и 3DES_EDE). "Идея" - один из лучших и cryptographically самых сильных доступных алгоритмов, и "RC2" - составляющий собственность алгоритм от RSA DSI [ AC96 , ch13].
выбор функции обзора определяет, как обзор создан от рекордной единицы. SSL поддерживает следующее:
обзор сообщения используется, чтобы создать Кодекс Установления подлинности Сообщения (МАКИНТОШ), который зашифрован с сообщением, чтобы обеспечить целостность и предотвратить против нападений переигровки.
последовательность рукопожатия использует три протокола:
эти протоколы, так же как прикладные данные протокола, заключены в капсулу в Протокол Отчета SSL , как показано в Figure 2 . скрытый протокол передан как данные в соответствии с более низким протоколом слоя, который не исследует данные. Скрытый протокол не имеет никакого знания основного протокола.
Figure 2
: Стек Протокола SSL
герметизация протоколов контроля SSL в соответствии с рекордным протоколом означает, что, если активная сессия пересмотрена, протоколы контроля будут переданы надежно. Если не было никакой сессии прежде, то Пустой набор шифра используется, что означает, что нет никакого шифрования, и сообщения не имеют никаких обзоров целостности, пока сессия не была установлена.
Протокол Отчета SSL, показанный в Figure 3 , используется, чтобы передать заявление и данные Контроля SSL между клиентом и сервером, возможно фрагментируя эти данные в меньшие единицы, или комбинируя многократные высокоуровневые сообщения данных протокола в единственные единицы. Это может сжать, приложить подписи обзора, и зашифровать эти единицы перед передачей их использующий основной надежный транспортный протокол (Примечание: в настоящее время все главное выполнение SSL испытывает недостаток в поддержке сжатию).
Figure 3
: Протокол Отчета SSL
одно общее использование SSL должно обеспечить Сеть коммуникация HTTP между браузером и webserver. Этот случай не устраняет использование необеспеченного HTTP. Безопасная версия - главным образом простой HTTP по SSL (названный HTTPS), но с одним главным различием: это использует схему URL
https
а не
http
и различный порт сервера (по умолчанию 443). Это главным образом - какой
mod_ssl
обеспечивает к Вам для Apacheского webserver...
Прикладная Криптография, 2-ой Выпуск, Wiley, 1996. См. http://www.counterpane.com/ для различного другие материалы Брюсом Шнеиром.
спецификация Абстрактного Примечания Синтаксиса Один (ASN.1), 1988. См. например http://www.itu.int/rec/recommendation.asp?type=items&lang=e&parent=T-REC-X.208-198811-I .
Справочник - Опознавательная Структура. см. например http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-X.509 .
Общественные Ключевые Стандарты Криптографии (PKCS), Лаборатории RSA Технические Примечания, См. http://www.rsasecurity.com/rsalabs/pkcs/ .
Многоцелевые интернет-Расширения Почты (ПАНТОМИМА) Часть Один: Формат интернет-Тел Сообщения, RFC2045. См. например http://ietf.org/rfc/rfc2045.txt .
Протокол SSL, 1995. См. http://www.netscape.com/eng/security/SSL_2.html .
Версия 3.0 Протокола SSL, 1996. См. http://www.netscape.com/eng/ssl3/draft302.txt .
Версия 1.0 Протокола TLS, 1999. См. http://ietf.org/rfc/rfc2246.txt .