Ssl шифрование что это
Всё о SSL-сертификатах простыми словами: устройство, типы, выбор
Если вы уже сталкивались с созданием собственного сайта, то наверняка краем уха слышали про сертификат SSL и HTTPS — поэтому в нашем новом посте расскажем, как защитить данные посетителей сайта, чем HTTPS отличается от HTTP, что такое SSL-сертификат и какие виды сертификатов существуют?
Что такое SSL-сертификат
SSL (Secure Sockets Layer — уровень защищённых сокетов) — это протокол шифрования, который позволяет кодировать данные для более безопасного обмена.
Проще говоря, сертификат обеспечивает зашифрованное соединение между человеком и используемым сайтом. Когда вы смотрите видео на YouTube, загружаете фотографию в Facebook или открываете Instagram, ваш браузер и сервер обмениваются информацией.
Благодаря SSL информация, которая передаётся, защищена от посторонних: администратора Wi-Fi сети, провайдера, оператора и других лиц — значит она не может быть перехвачена и использована в мошеннических целях. Кроме того, SSL-сертификат выступает в качестве подтверждения надёжности ресурса и даёт возможность проверить, кто является его настоящим владельцем.
Можно сказать, что SSL-сертификат — это своего рода уникальная цифровая подпись сайта.
Такой сертификат нужен всем сайтам, которые в каком-либо виде работают с персональными данными пользователей: от логинов и паролей до более подробных. В первую очередь это, конечно, банки, платёжные системы, интернет-магазины и коммерческие платформы.
Проверить наличие SSL несложно. Для этого достаточно посмотреть на адресную строку в браузере. Слева от адреса сайта вы увидите значок с изображением закрытого замка.
А если на сайт установлен OV или EV сертификат, то при клике на замочек, появятся данные об организации, которой принадлежит сайт.
В таких типах сертификатов во вкладке «Подробнее» вы найдёте следующую информацию:
Разница между HTTP и HTTPS
Как вы уже знаете, каждый вбитый в поисковую строку запрос проходит путь от вас (пользователя) к серверу и обратно. Такая коммуникация возможна благодаря работе протокола HTTP. Аббревиатура расшифровывается как Hypertext Transfer Protocol. И всем он хорош — только данные не шифрует, а значит злоумышленники могут перехватить вашу личную информацию (данные банковских карт, пароли, реквизиты).
Для безопасности данных был внедрён протокол HTTPS — HyperText Transfer Protocol Secure (то есть защищённый протокол HTTP). В этом случае передача данных осуществляется по такому же протоколу, но с криптографическим шифрованием, о чём говорит дополнительная буква «S». HTTPS работает благодаря SSL/TLS-сертификату.
SSL/TLS-сертификат ― это цифровая подпись сайта. С её помощью подтверждается его подлинность.
Перед тем как установить защищённое соединение, браузер запрашивает этот SSL-сертификат и обращается к центру сертификации, чтобы подтвердить легальность документа. Если он действителен, то браузер и сервер доверяют друг другу и договариваются о разовом шифре. Так происходит каждую сессию, то есть каждый раз при обмене запросами и ответами. Вот откуда взялась и что означает «S» в HTTPS.
Каким сайтам нужен SSL?
SSL-сертификат необходимо подключать к сайтам, которые работают с финансами и персональными данными пользователей. Это интернет-магазины, банки, платёжные системы, социальные сети, почтовые сервисы и любые другие проекты.
SSL-сертификат лучше ставить с самого начала, чтобы иметь более высокие позиции в поисковых системах. Если всё же изначально не использовался сертификат, то переехать можно быстро, а вот поисковики могут увидеть это только спустя пару месяцев. Тем более сегодня поставить SSL можно и бесплатно.
Какие виды SSL-сертификатов есть и кто их выдаёт?
Есть специальные центры сертификации или как ещё называют — удостоверяющие центры (УЦ). Вы могли встречать названия таких УЦ: Symantec, Comodo, GlobalSign, Thawte, GeoTrust, DigiCert. Они подтверждают подлинность ключей шифрования с помощью сертификатов электронной подписи.
Кроме того, есть проекты, CloudFlare или LetsEncrypt, где можно получить сертификат бесплатно и самостоятельно. Такой сертификат выпускается на 3 месяца и далее требует продления. Однако во время их установки и дальнейшей работы есть ряд нюансов, которые стоит учитывать. Например, при выборе сертификата Cloudflare учтите, что он выдаётся сразу на 50 сайтов. Тем самым сертификат будет защищать не только ваш домен, но и ещё несколько чужих, что несёт за собой риски безопасности. Также у Cloudflare нет печати доверия. Если говорить о недостатках LetsEncrypt, то сюда можно отнести поддержку далеко не всех браузеров, отсутствие гарантии сохранности данных сайта и печати доверия.
Печать доверия — это особый знак, позволяющий посетителям видеть, что соединение с вашим сайтом и все передаваемые данные надёжно защищены.
Итак, существует несколько типов SSL-сертификатов по источнику подписи и типу проверки данных.
Так вот, разница между самоподписанными сертифкатами и, выданными УЦ, как раз и заключается в том, что браузер знаком с УЦ и доверяет ему, и при использовании такого сертификата ваш посетитель никогда не увидит огромное уведомление о небезопасности ресурса. Купить такой SSL-сертификат можно как напрямую в УЦ, так и через хостинг-провайдеров.
Подписанные доверенным центром сертификаты, в свою очередь, тоже подразделяются по типу проверки данных:
Сертификаты всех указанных типов обеспечивают шифрование трафика между сайтом и браузером. Кроме того, у них есть дополнительные опции:
Какой SSL-сертификат выбрать?
Итак, мы определились с тем, что SSL-сертификаты различаются между собой не только брендом и ценой. Сегодняшний ассортимент предложений предусматривает широкий круг задач, для которых может потребоваться SSL.
Например, если вы просто хотите уберечь пользователей вашего веб-сайта от навязчивых предупреждений браузера о посещении непроверенного сайта, будет достаточно за несколько минут получить простой DV (Domain Validation) сертификат. Если же вы используете свою интернет-площадку для операций, требующих повышенного уровня безопасности данных компании и клиентов — стоит задуматься об EV (Extended Validation) сертификате. А если вы используете не один, а несколько веб-адресов для сайта или сайтов компании — для вас на рынке представлены сертификаты Wildcard и SAN.
Для выбора оптимального сертификата для определённого сайта нужно изучить, что предлагают центры сертификации, обращая внимание на следующие аспекты:
4 причины установить SSL-сертификат
Безопасность данных
Конечно же, стоит начать с этого пункта, ведь в этом заключается основная цель использования SSL-сертификатов. Если вы работаете с персональными данными пользователей, вам просто необходимо их шифровать при передаче к серверу. Само по себе использование сертификата не лекарство от всех бед, злоумышленники могут перехватить данные ещё до момента передачи их на сервер на заражённом компьютере или устройстве посетителя сайта. Однако использование протокола шифрования — значительный вклад в снижение уязвимости сайта.
Доверие к сайту
Пользователи привыкают, что все крупные проекты используют SSL-сертификаты. Надпись «Защищено» и замочек дают посетителю сайта представление о том, что он и его данные находятся в безопасности.
Поддержка сторонних сервисов
Некоторые платёжные системы (Яндекс.Деньги) и сервисы (Голосовой помощник Google Chrome) работают только с сайтами с HTTPS протоколом. Если специфика вашей работы подразумевает взаимодействие с аналогичными сервисами, рекомендуем вам установить SSL-сертификат.
Фактор ранжирования
Google не раз заявлял, что поддержка HTTPS протокола станет одним из факторов ранжирования. Для Яндекса сайты по HTTP и HTTPS протоколам участвуют в ранжировании на равных, однако, поисковик обозначает, что подключать SSL стоит, если на сайте можно совершать покупки и другие финансовые операции.
SSL-сертификат от авторитетного УЦ говорит о надёжной защите пользовательских данных — это не только хороший способ заслужить доверие пользователей и поисковых систем, но и большой вклад в стабильное продвижение и развитие сайта.
Ssl шифрование что это
Добрый день, уважаемые подписчики, уверен, что в подавляющем большинстве вы слышали такие слова как сертификат безопасности или шифрования, либо SSL сертификат, и я уверен, что большинство из вас даже знает их назначение., если нет, то я вам об этом очень подробно расскажу на личных примерах, все как полагается, после этого вы уже будите более тонко понимать все рубежи безопасности, которые предоставляют нам SSL сертификаты, без них сейчас уже не возможно представить современный IT мир, с его банковскими переводами, электронной почтой smime или интернет магазинами.
Что такое SSL и TLS
Secure Socket Layer или ssl это, технология, призванная сделать доступ к сайтам более надежным и безопасным. Сертификат шифрования позволяет, надежно защитить трафик, передаваемый между браузером пользователя и веб ресурсом (сервером), к которому браузер обращается, все это происходит за счет протокола https. Сделано, это все после того, как бурное развитие интернета привело к огромному количеству сайтов и ресурсов, которые требуют от пользователя ввод личных, персональных данных:
Именно эти данные и являются добычей для хакеров, сколько уже было громких дел, с кражей персональной информации и сколько еще будет, ssl сертификат шифрования, призван это минимизировать. Разработкой технологии SSL выступила компания Netscape Communications, позднее она представила Transport Layer Security или проще TLS, это протокол основанный по спецификации SSL 3.0. И Secure Socket Layer и Transport Layer Security призваны обеспечить передачу данных между двумя узлами по интернету.
SSL и TLS не имеют принципиальных различий в своей работе, могут даже быть использованы на одном сервере одновременно, делается это исключительно из соображений обеспечения работы новых устройств и браузеров, так и устаревших, где Transport Layer Security не поддерживается.
Для примера откройте сайт Яндекса, я это делаю в Google Chrome, там на против адресной строки есть значок замка, щелкаем по нему. Тут будет написано, что подключение к веб-сайту защищено и можно нажать подробнее.
сразу видим значок Secure TLS connection, как я и говорил, большая часть интернет ресурсов именно на этой технологии. Давайте посмотрим сам сертификат, для этого жмем View certificate.
В поле о сведениях о сертификате видим его предназначение:
История версий сертификатов шифрования
Всегда нужно знать историю, как сертификат шифрования эволюционировал и какие у него выходили версии. Так как зная это и принцип работы, будет проще искать решение проблем.
Принцип работы TLS и SSL
Давайте разбираться как работает протоколы SSL и TLS. Начнем с основ, все сетевые устройства имеют четко прописанный алгоритм общения друг с другом, называется он OSI, который порезан на 7 уровней. В ней есть транспортный уровень отвечающий за доставку данных, но так как модель OSI это некая утопия, то сейчас все работаю по упрощенной модели TCP/IP, из 4 уровней. Стек TCP/IP, сейчас стандарт передачи данных в компьютерных сетях и он включает в себя, большое количество известных вам протоколов прикладного уровня:
Список можно продолжать очень долго, так их более 200 наименований. Ниже представлена схема сетевых уровней.
Ну и схема стека SSL/TLS, для наглядности.
Теперь все тоже самое простым языком, так как не всем понятны эти схемы и принцип работы ssl и tls не понятен. Когда вы открываете например мой блог pyatilistnik.org, то вы обращаетесь по прикладному протоколу http, при обращении сервер видит вас и передает на ваш компьютер данные. Если это представить схематично, то это будет простая матрешка, прикладной протокол http, кладется в стек tcp-ip.
Если бы на Pyatilistnik.org стоял бы сертификат шифрования TLS, то матрешка протоколов была бы посложнее и выглядела бы вот так. Тут прикладной протокол http, кладется в SSL/TLS, который в свою очередь кладется в стек TCP/IP. Все тоже самое, но уже зашифровано, и если хакер перехватит эти данные по пути их передачи, то получит всего навсего цифровой мусор, а вот расшифровать данные может только та машина, которая устанавливала соединение с сайтом.
Этапы установки соединения SSL/TLS
Вот еще одна красивая и наглядная схема создания защищенного канала.
Установка соединения SSL/TLS на уровне сетевых пакетов
Ну и подробно про каждый этап обмена сетевых сообщений протоколов SSL/TLS.
Как получить ssl сертификат безопасности
Давайте теперь поймем где взять сертификат шифрования, или как получить ssl сертификат безопасности. Способов конечно несколько, есть как платные, так и бесплатные.
Бесплатный способ получить tls сертификат безопасности
Этот способ, подразумевает использование самоподписного сертификата (self-signed), его можно сгенерировать на любом веб-сервере с ролью IIS или Apache. Если рассматривать современные хостинги, то в панелях управления, таких как:
там это штатный функционал. Самый большой плюс в самоподписных сертификатах шифрования, это то, что они бесплатные и начинаются, сплошные минусы, так как никто кроме вас не доверяет этому сертификату, вы наверняка видели в браузерах вот такую картину, где сайт ругается на сертификат безопасности.
Если у вас самоподписный сертификат, используется исключительно для внутренних целей, то это нормально, а вот для публичных проектов, это будет огромный минус, так как ему никто не доверяет и вы лишитесь большого числа клиентов или пользователей, которые у видя ошибку сертификата безопасности в браузере, сразу его закроют.
Давайте смотреть как можно получить ssl сертификат безопасности, для этого формируется запрос на выпуск сертификата, называется он CSR запрос (Certificate Signing Request). Делается это чаще всего у специальной компании в веб форме, которая спросит вас несколько вопросов, про ваш домен и вашу компанию. Как только вы все внесете, сервер сделает два ключа, приватный (закрытый) и публичный (открытый). Напоминаю открытый ключ не является конфиденциальным, поэтому вставляется в CSR запрос. Вот пример Certificate Signing Request запроса.
Все эти не понятные данные легко можно интерпретировать специальными CSR Decoder сайтами.
Состав CSR запроса
Как только Certificate Signing Request сгенерирован, можно начинать оформлять заявку на выпуск сертификата шифрования. Центр сертификации будет производить проверку, всех данных указанных вами в CSR запросе, и если все хорошо, вы получите свой ssl сертификат безопасности и вы его сможете использовать для https. Теперь ваш сервер, автоматом сопоставит выпущенный сертификат, со сгенерированным приватным ключом, все вы можете шифровать трафик подключения клиента к серверу.
Что такое центр сертификации
Что такое CA — Certification Authority или центр сертификации, читайте по ссылке слева, я подробно рассказал об этом там.
Какие данные содержит в себе SSL сертификат
В сертификате хранится следующая информация:
Какие существуют виды SSL сертификатов шифрования
Основных видов сертификатов безопасности три:
Назначение Domain Validation — DV
И так сертификаты шифрования, подтверждающие только домен ресурса, это самые распространенные в сети сертификаты, их делают всех быстрее, автоматически. Когда вам нужно проверить такой сертификат безопасности, отправляется email с гиперссылкой, кликая по которой подтверждается выпуск серта. Хочу отметить, что письмо вам отправят, только не подтвержденный email (approver email), указанный при заказе сертификата шифрования.
approver email так же имеет требования, логично, что если вы заказываете сертификаты шифрования для домена, то и электронный ящик должен быть из него, а не mail или rambler, либо он должен быть указан в whois домена и еще одно требование название approver email, должно быть по такому шаблону:
Сертификат tls-ssl подтверждающие доменное имя выпускаются, когда CA произвел валидацию того, что заказчик обладает правами на доменное имя, все остальное, что касается организации в сертификате не отображается.
Назначение Organization Validation — OV
Сертификаты шифрования tls-ssl, будет содержать название вашей организации, его получить частное лицо просто не сможет, его культурно пошлют регистрировать ИП. Делается он от 3 до десяти рабочих дней, все зависит от центра сертификации, который его будет выпускать.
Назначение Extendet Validation — EV
И так, вы направили CSR запрос на выпуск сертификата шифрования для вашей организации, CA начинает проверять, реально ли ИП рога и копыта существуют, как в CSR и принадлежит ли ей домен указанный в заказе.
Сам сертификат шифрования extendet Validation — EV, самый дорогой и получается всех сложнее, у них кстати есть green bar, вы его точно видели, это когда на сайте в адресной строке посетитель видит зеленую стоку с названием организации. Вот пример клиент банка от сбербанка.
К расширенным сертификатам шифрования (extendet Validation — EV) самое большое доверие, это и логично вы сразу видите, что компания существует и прошла жесткие требования к выдаче сертификата. SSL cертификаты extendet Validatio делаются CA, только при выполнении двух требований, что организация владеет нужным доменом и, что она сама существует в природе. При выпуске EV SSL сертификатов, существует строгий регламент, в котором описаны требования перед выпуском EV сертификата
Типы SSL сертификатов шифрования
список сертификатов, у которых есть такая поддержка, IDN доменов:
Полезные утилиты:
В будущих статьях, мы еще сами по настраиваем CA и будем на практике использовать SSL/TLS сертификаты шифрования.
Персональный сайт Антона Южанинова
Инструменты пользователя
Инструменты сайта
Боковая панель
Содержание
Введение в SSL и сертификаты
Эта статья была написана в конце 1990-х или начале 2000-х годов. И хотя базовые принципы изложенные в данной статье до сих пор применимы, я рекомендую обратиться к более современным статьями на эту тему.
1. Введение
Протокол SSL (Secure Sockets Layer protocol, протокол защищенных сокетов) [SSL3] предоставляет способ для аутентификации, контроля целостности, и конфиденциальности при использовании Web.
2. Методы криптографии
Для понимания SSL необходимо понимать, что такое алгоритмы шифрования, хэш-функции и цифровые подписи. Эти вопросы хорошо раскрыты в книге «Прикладная криптография» [Schneier], и являются основой для обеспечения конфиденциальности, контроля целостности и аутентификации.
Алгоритмы шифрования
Предположим, что Алиса хочет отправить сообщение банку о перечислении некоторой суммы денег, включающее информацию, которую она хочет скрыть от других, такую как номер счета и сумма. Алиса хочет, чтоб сообщение было секретным. Криптографические алгоритмы могут быть использованы для преобразования её сообщения в зашифрованный вид. Как только сообщение стало нечитаемым, оно может стать понятным только при помощи секретного ключа. Без секретного ключа сообщение бесполезно, потому что требуется слишком много времени, чтоб расшифровать его. Существуют два основных типа алгоритмов основанных на ключах: симметричные и с открытым ключом.
Симметричные алгоритмы, часто называемые традиционными, требуют, чтоб у отправителя и получателя был одинаковый ключ, секретная информация, которая используется для шифрования и дешифрования сообщения. Только те, кто имеют ключ (отправитель и получатель) могут прочитать сообщение. Если Алиса и банк знают секретный ключ, они могут отправлять друг другу приватные сообщения. Проблема в том, что Алиса и банк должны выбрать ключ до того начнут обмениваться сообщениями.
Дрогой подход использовать криптографию с открытым ключом. Алгоритмы с открытым ключом (называемые ассиметричными алгоритмами) решают проблему обмена ключами, они разработаны таким образом, что ключ, используемый для дешифрования отличается от ключа используемого для шифрования. Это позволяет обмениваться секретными сообщениями без определения общего ключа: открытый ключ можно опубликовать, а второй нужно сохранить в секрете (закрытый ключ). Любой может зашифровать сообщение, используя открытый ключ, но только обладатель закрытого ключа сможет прочитать его. Таким образом, любой может послать зашифрованное сообщение тому, кто сгенерировал пару ключей и сделал известным открытый ключ (оставив закрытый ключ у себя). Если у Алисе есть открытый ключ банка, она сможет послать ему зашифрованное сообщение. Только банк сможет дешифровать его.
Однонаправленные Хэш-функции
Такие суммы называются однонаправленными хэш-функциями, или характерными признаком сообщения (message digest). Хэш-функции используются для создания короткого, с фиксированной длиной представления длинного сообщения с переменной длинной. Алгоритмы хэш-функций разработаны так, чтоб для разных сообщений иметь разные значения, и так что было крайне сложно по значению хэш-функции восстановить исходное сообщение. Они так же сделаны так, чтоб было практически невозможно создать два сообщения, имеющие одинаковое значение хэш-функцию (чтобы исключить возможность замены одного сообщение на другое с таким же значением хэш-функцией).
Цифровые подписи
Когда Алиса посылает сообщение банку, банк должен быть уверенным в том, что сообщение действительно от неё, что никто другой не мог производить операции с её счетом. Если она сможет сделать цифровую подпись, которую никто кроме неё не сможет сделать, и включит её в сообщение, то банк сможет доверять такому сообщению от неё.
Цифровая подпись создается шифрованием значения хэш-функции сообщения, вместе с другой информацией, такой как серийный номер, с помощью закрытого ключа отправителя. Кто угодно может дешифровать (проверить) подпись используя открытый ключ, но только обладатель закрытого ключа сможет создать подпись (зашифровать). Включение в подпись значения хэш-функции делает её действительной только для данного сообщения и позволяет убедиться в том, что никто не изменил сообщение. Чтобы убедиться в том, что нельзя будет перехватить сообщение и отправить его повторно позже цифровая подпись должна включать уникальный серийный номер. Алиса не сможет утверждать банку, что не посылала сообщение, т. к. только она может его подписать.
3. Сертификаты
Хотя Алиса может послать банку секретное сообщение, подписать его, и быть уверенной, что оно не будет изменено, ей нужно быть уверенной, что открытый ключ в действительности принадлежит банку. Банк тоже должен быть уверенным в том, что цифровая подпись действительно принадлежит Алисе. Если каждый имеет сертификат, в котором сказано кто его владелец, содержится открытый ключ и все это подписано доверенной организацией, то они могут полагать, что они связываются действительно с теми, с кем предполагалось. Такая доверенная организация называется центром сертификации (Certificate Authority, CA), и сертификаты используются для аутентификации.
Содержимое сертификата
Субъект: | отличительное имя, открытый ключ |
Кем выдан: | отличительное имя, подпись |
Сроки действия: | дата начала действия, дата окончания действия |
Служебная информация: | версия, порядковый номер |
Расширения: |
Отличительное имя используется для идентификации в определенном контексте (например, человек может иметь личный сертификат и сертификат как сотрудник фирмы). Отличительные имена определены в стандарте X.509 [Kaufman], в котором определены имена, их аббревиатуры и требования к содержанию. Центр сертификации может определить правила, в которых определено какие поля обязательны, а какие нет. Могут так же определяться требования к содержимому полей. Например, браузер Netscape требует, чтоб в поле Common Name сертификата сервера было регулярное выражение для его доменного имени (например *.opengroup.org).
общее имя (CN) | Имя субъекта, например CN=Frederick Hirsch |
Организация или компания (O) | Имя данной организации, например O=The Open Group |
Организационная единица (OU) | Имя организационной единицы, отдела, подразделения и т. п., например, OU=Research Institute |
Город/Расположение (L) | Город, в котором расположен субъект, например Cambridge |
Область/Район (SP) | Область/Район, например Massachusetts |
Страна (C) | Страна (код ISO), например US |
Двоичный формат сертификата определяется с помощью нотации ASN.1 [ASN.1]. Эта нотация определяет, как содержимое сертификата преобразуется в двоичный вид. Двоичный формат сертификата определен с использованием правил DER, которые основаны на более общих правила BER. Двоичная форма может быть преобразована с использованием кодирования base64 в текст (ASCII ) для тех случаев, когда нельзя использовать двоичный формат. Такой вид называется PEM (Privacy Enhanced Mail) и сертификат помещается между линиями:
Центры сертификации
Центр сертификации подтверждает, что владелец закрытого ключа, действительно тот, чье имя указано в сертификате. Центр сертификации должен проверить данные, указанные в запросе перед выдачей сертификата. Если Алиса послала запрос на персональный сертификат, центр сертификации должен проверить, что это действительно та Алиса, чье имя будет указано в сертификате.
Цепочки сертификации
Центр сертификации может так же выдать сертификат другому центру сертификации. Проверяя сертификат, Алисе так же нужно будет проверить сертификат того, кто выдал предыдущий сертификат и так далее пока не дойдет до того сертификата, которому доверяет. Она может решить, что доверяет только ограниченному количеству центров сертификации, для уменьшения риска, что один из цепочки сертификатов плохой.
Создание корневого центра сертификации
Есть ряд компаний, таких как VeriSign [VeriSign] которые играют роль корневых центров сертификации. Они предоставляют методики для запроса сертификатов, имеют правила для проверки информации, выдачи сертификатов и управления ими. Хотя это опасно в Интернете, в интранете может быть полезно, когда организации имеют простой способ для аутентификации серверов и пользователей.
Управление сертификатами
Организация центра сертификации это ответственность, требующая объединения административных, управленческих и технических систем. Центр сертификации не только выдает сертификаты, но и управляет ими. Это значит, он должен определять сроки действия сертификатов, продлять их и поддерживать списки выданных сертификатов, которые недействительны (certificate revocation lists, CRL). Если Алиса работает в компании и имеет сертификат как сотрудник, то когда она увольняется, сертификат должен быть отозван. Сертификат может быть широко распространен, и нельзя в нем самом указать, что он был отозван. При проверке действительности сертификата необходимо связаться с центром сертификации, выдавшим этот сертификат для того, чтобы проверить, не был ли он отозван, но часто эту часть процесса нужно выполнять вручную. В системах, где отзывы сертификатов имеют значение, необходимо убедиться, что список отозванных сертификатов проверяется.
Когда используется центр сертификации, который по умолчанию не известен браузеру, необходимо установить сертификат центра сертификации, чтобы было можно проверять сертификаты серверов, выданные этим центром. Это может быть опасно, поскольку, установив один раз такой сертификат, браузер будет принимать любые сертификаты выданные этим центром. Цепочки сертификатов позволяют предоставлять сертификаты вместе с сертификатами тех, кто их выдал, чтобы можно было проверить сертификат, даже если сертификаты промежуточных центров сертификации не были установлены в браузере (или на сервере).
4. SSL
Протокол позволяет использовать по выбору различные алгоритмы для шифрования, хеширования, цифровой подписи. Это позволяет выбрать алгоритм исходя из юридических, экспортных или других ограничений, а так же позволяет протоколу использовать преимущества новых алгоритмов. Выбор согласуется между клиентом и сервером на стадии установки сеанса.
Существует несколько версий протокола SSL.
Версия | Источник | Описание | Поддержка в браузерах |
---|---|---|---|
SSL 2.0 | опубликовано Netscape | исходный протокол | Netscape 3.0, Internet Explorer 3.0 |
SSL 3.0 | устаревший Internet Draft | версия, предотвращающая некоторые атаки, добавлены новые алгоритмы и поддержка цепочек сертификатов | Netscape 3.0, Internet Explorer 3.0 |
TLS 2.0 | IETF draft | пересмотренный SSL 3.0 | none |
Обзор протокола
Однажды установленное сеанс может быть использовано повторно, чтобы избежать потерь производительности из-за многошаговой процедуры установки соединения.
Установка сеанса
Установка сеанса начинается с работы протокола квитирования (handshake sequence) между клиентом и сервером. Эта последовательность может зависеть от того, настроен ли сервер предоставлять сертификат, и требует ли он наличие сертификата у клиента. Возможно так же, для согласования параметров алгоритма шифрования потребуются дополнительные шаги. В этом документе описывается типичный сценарий, а остальные возможности SSL не рассматриваются.
Протокол квитирования используется клиентом и сервером для:
Рис. 1. Упрощенный порядок квитирования (Handshake)
Согласование набора параметров шифрования позволяет выбрать клиенту и серверу такие параметры, которые они оба поддерживают. Спецификация SSL 3.0 определяет 31 набора параметров. Набор параметров шифрования состоит из:
Метод обмена ключами определяет, как клиент и сервер согласуют общий ключ для симметричного алгоритма шифрования. The key exchange method defines how the shared secret symmetric cryptography В SSL 2.0 для обмена ключей используется RSA. В SSL 3.0 возможен выбор между RSA, при использовании сертификатов, и методом обмена ключами по Диффи-Хеллману (Diffie-Hellman) для обмена ключами без сертификатов и без предыдущей связи между клиентом и сервером [Kaufman].
Выбор метода обмена ключами включает решение использовать или не использовать цифровые подписи при обмене ключами, и какой способ цифровой подписи использовать. Подпись закрытым ключом защищает от атак человек по середине (man-in-the-middle-attack) во время обмена информацией, используемой для выработки общего ключа.
В SSL используются симметричные алгоритмы шифрования для шифрования данных в течение сеанса. Возможны 9 вариантов, включая отказ от шифрования:
Выбор функции хеширования определяет, как будет создаваться хеш блока данных. SSL поддерживает:
Протокол квитирования предоставляет множество возможностей, но наиболее распространенная последовательность включает обмен сертификатами и обмен ключами по методу Деффи-Хеллмана. В других случаях порядок квитирования отличается, как описано в спецификации SSL. Последовательность квитирования использует три протокола, протокол квитирования SSL (SSL Handshake Protocol) для открытия сеанса между клиентом и сервером, протокол согласования параметров шифрования (SSL Change Cipher Spec protocol) для согласования набора криптоалгоритмов и их параметров и протокол извещения (SSL Alert Protocol) для обмена сообщениями об ошибках между клиентом и сервером. Эти протоколы инкапсулированы в протокол записи SSL (SSL Record Protocol) как данные прикладного уровня. Инкапсулированный протокол передается как данные нижележащим протоколом, которые не анализирует эти данные. Инкапсулированный протокол ничего не знает о нижних протоколах.
Инкапсуляция управляющего протокола в протокол записи означает, что повторное согласование параметров сеанса будет выполняться по защищенному каналу. Если нет активного сеанса, то используется нулевой набор параметров шифрования, т. е. до установки сеанса не сообщения будут шифроваться, и их целостность не будет проверяться.
Рис. 2. Стек протоколов SSL
Передача данных
Протокол записи SSL используется для передачи данных прикладного уровня и управляющих данных протокола SSL, возможно разбивая эти данные на более мелкие фрагменты или объединяя несколько сообщений от вышележащего уровня в один блок. Возможно сжатие данных, затем вычисляются коды аутентичности сообщения (MAC) и данные шифруются, перед передачей их с использованием нижележащего надежного транспортного протокола.
Рис. 3. Протокол записи SSL
SSL использует хэш-функции сообщения и порядковые номера для вычисления кодов аутентичности сообщения (MAC, Message Authentication Code), которые шифруются, что предотвращает атаки повтора. Блоки протокола записи, сжатые блоки и зашифрованные блоки содержат идентификатор исходного протокола, длину сообщения и данные.
Использование SSL
5. Реализация SSL
отя возможно написать реализацию SSL «с нуля» по спецификации, значительно проще взять один из готовых пакетов. Дополнительно, из-за патентов необходимо лицензировать некоторые криптографические библиотеки, по крайней мере, в США. Библиотеки SSL содержат функции для шифрования, вычисления хэш-функций, и средства для работы с сертификатами. Каждый пакет так же должен содержать лицензированный модуль для работы с открытыми ключами в США, поскольку существует патент на использование криптографии с открытым ключом.
Есть два известных пакета для работы с несимметричным алгоритмом RSA:
Эти пакеты для работы с открытыми ключами включают полный набор несимметричных алгоритмов (включая RSA и метод обмена ключами Деффи-Хеллмана), симметричные алгоритмы, хэш-функции. Они могут быть использованы в реализациях SSL. Наиболее известные библиотеки для работы с SSL:
Литература для дальнейшего изучения
Общие вопросы
Elgamal
Taher Elgamal, Jeff Treuhaft, Frank Chen, Securing Communications on the Intranet and Over the Internet, Netscape Communications Corporation, July 1996. http://www.go-digital.net/whitepapers/securecomm.html
Kaliski
Burton S. Kaliski Jr., An Overview of the PKCS Standards, An RSA Laboratories Technical Note, Revised November 1, 1993. http://www.rsa.com/rsalabs/pubs/PKCS/
Kaufman
Charlie Kaufman, Radia Perlman, Mike Speciner, Network Security: PRIVATE Communication in a PUBLIC world, Prentice Hall, 1995.