Что означают буквы https в начале адреса сайта
Протокол https: что это такое и зачем он нужен
Аббревиатура HTTP/HTTPS, которая стоит перед всеми адресами сайтов в интернете, означает, в переводе, протокол передачи гипертекста. Это набор правил и транспорт для обмена данными между компьютером-клиентом и сервером, который позволяет им понимать запросы и ответы друг друга.
Что значит https, сравнение с версией http
Первая версия http была нужна, чтобы в ответ на запрос компьютера сервер мог понять команду и загрузить сайт либо выполнить другое действие: войти в личный кабинет, провести оплату, загрузить комментарий или открыть ссылку. Отличие нового варианта https в последней букве: “s” значит “secure”, безопасность.
Безопасность в https
В техническом плане разница в дополнительном шифровании. В HTTPS надстроен протокол SSL/TLS, который кодирует все данные, а ключ известен только компьютеру пользователя и серверу. При этом длина ключа может быть от 40 до 256 бит и сам он меняется при каждом новом соединении.
Зачем нужен https пользователю и владельцу сайта
Первое назначение HTTPS — безопасность данных. Шифрование и подтверждение подлинности адресата позволяют отправлять пароли и личные данные без опасений стать жертвой мошенничества. Сейчас такой подход становится нормой в Интернете, и это приводит к ещё одной тенденции.
Поисковые системы всё чаще отдают предпочтение защищённым сайтам — это выражается и в специальных значках, которые видны пользователям и предупреждают о небезопасных источниках, и в ранжировании при поиске.
HTTPS и Яндекс
Хотя Яндекс прямо не заявляет о влиянии ssl протокола на ранжирование, они учитывают комплекс показателей, включая безопасность. Такой сайт вызывает большее доверие пользователей и, соответственно, при прочих равных считается предпочтительным при поисковой выдаче.
При переходе на https Яндекс может сохранить ряд накопленной статистики и “веса” сайта, чтобы уменьшить ущерб от смены имени. Для этого обе версии надо объединить в зеркало и сообщить о переадресации в панели Яндекс. Вебмастер.
HTTPS и Google
Гугл уже давно заявляет о предпочтении сайтов с защищённым протоколом. В их браузере (Google Chrome) появляются устрашающие предупреждения при переходе на сайт без https. Чтобы в поисковике индексировалась основная версия сайта с https, нужно добавить её через Google Search Console.
С декабря 2019 года компания планирует пойти ещё дальше: предполагается автоматически блокировать любой смешанный контент. То есть если сайт защищён, но на нём есть отдельные элементы (скрипты, стили, аудио/видео контент) с http, они не будут работать.
Делая выводы, HTTPS протокол — это новая версия системы обмена данными между сервером и компьютером-клиентом. Для пользователя она означает безопасность при отправке своих персональных данных. Для владельца сайта — большее доверие со стороны гостей и лучшее отношение поисковых систем.
Переход на https
Для перевода на https надо в первую очередь получить SSL сертификат. Такую услугу предоставляет ряд сертификационных центров, обычно предлагают на выбор один из 3-х протоколов:
Помимо коммерческих, есть бесплатный сервис по получению сертификатов Let’s Encrypt.
Чтобы облегчить процесс интеграции, лучше заранее проверить, с какими центрами умеет работать хостинг, на котором хранится сайт. Как правило, у провайдеров есть и готовые инструкции по установке сертификата.
Подключение SSL-сертификата Let’s Encrypt на сайт
Порядок подключения бесплатного Let’s Encrypt SSL будет рассмотрен на примере Макхоста.
HTTP и HTTPS: чем отличаются эти протоколы и что означают
Для абсолютно любого проекта, собирающегося развиваться и продвигаться в глобальной сети, важно правильно построить систему передачи данных. И этот аспект напрямую связан с механизмами отправки гипертекста. Именно о них и пойдет речь в этом обзоре. Мы разберемся, чем отличается протокол HTTP от HTTPS, что представляют собой в принципе. Выясним, в каких случаях логично использовать тот или иной вариант.
”Студия 17” занимается не только разработкой, но и оказывает оперативную и качественную техническую поддержку проектов. Если вы всё таки решили попробовали настроить переезд сайта на безопасный протокол самостоятельно, то специалисты “Студии 17” рекомендуют:
Сделать резервную копию всего сайта.
Сохранить старую версию файла htaccess.
Два этих пункта впоследствии помогут восстановить сайт при неправильной настройке регулярного выражения.
На случай если вы не привыкли рисковать, то мы предлагаем обратиться за помощью в нашу техническую поддержку.
Разбираем основы
Когда пользователь посещает веб-ресурс, в этой коммуникации участвуют три переменные. Это сам человек (его домашний компьютер, телефон с которого идет запрос), браузер, как посредник, а также сервер. Чтобы передать сведения на него, необходимо использовать проводник. Именно им и является один из озвученных методов. Он нужен для преображения потока информации в тот вид, который будет понятен для сервера. Ответ получается в таком же виде, и его уже адаптирует для наших глаз браузер.
Итак, HTTP, HTTPS, что это. Всего лишь протокол, передающий сведения. И он может быть как просто проводником, отправляющим символы, так и защитником. Способом повысить безопасность с помощью шифрования. Появляется вторая роль. И если на одних сайтах значение этого аспекта не слишком великого, то на альтернативных, где мы вводим и оставляем свои платежные реквизиты или личную информацию – очень не хочется остаться без защиты.
HTTP и его суть
Данная методика схожа с приложением. При отправке информации не создается какого-то структурирования, градации. Просто данные идут одним потоком. Также совершенно нет учета прошлого опыта сессии. То есть, не поднимаются логи, ничего не считывается. Значит, каждое новое обращение будет независимым. На практике, различия HTTP и HTTPS вытекают из этого аспекта. Первый вариант просто быстрее, информации меньше, обработка не занимает много времени. Соответственно, если у сайта в принципе есть в наличие проблемы с оптимизацией, это способ хоть в небольшой мере ускорит работу.
Когда выгоден такой метод
Становится понятно, что главным аспектом выступает скорость. Увеличение темпа работы. Но современные веб-структуры с нормальной оптимизацией и так не жалуются на оперативность. Выиграть в ответе и загрузке получится буквально 0,1-0,2 миллисекунды. Это не слишком существенно, но может сыграть злую шутку с безопасностью. Это второй момент, который подчеркивает выгоду метода. Ведь если прятать совершенно нечего, если на проекте не принимаются никакие данные пользователя, то серьезно защищать и нечего.
Но что это означает на практике? А то, что никакие платежные операции, заполнение форм личной информации, отправки авторского контента – все это будет передаваться в открытом виде. Да и даже простая регистрация уже станет нежелательным моментом. И что это получается за ресурс? Как минимум точно без возможной коммерции и даже простейших способов монетизации. Да и любой крупный сайт по-умолчанию ставит серьезную защиту.
Да, раньше статичные HTML страницы практически во всех случаях обходились без шифрования. Но сейчас таких сайтов практически нет. Остались лишь жалкие отголоски былых времен. И реальная выгода уже становится какой-то аморфной.
Что означает HTTPS в адресе сайта
Если в браузере в адресной строке мы видим предыдущий вариант, HTTP – это означает, что мы имеем дело с Hypertext Transfer Protocol. Второй же способ просто добавляет одну букву – S, что означает, Secure.Безопасный, защищенный, надежный.
На первый взгляд, различия несущественные. Этот проводник также обращается к серверу, берет сведения и отправляет их обратно. Но теперь вся информация шифруется, кодируется. И после попадания на точку прибытия, происходит мгновенная дешифровка. Так становится возможным обеспечить защиты от несанкционированных проникновений и доступа. Используется метод постоянной авторизации, увидеть данные могут только две стороны, адресат и отправитель. Никто другой не способен вмешаться в цепочку. Такое достигается благодаря тому, что новый вариант используется SSL-сертификат. Это ключевые отличия HTTPS от HTTP. Надежность. Допустимо передавать конфиденциальные данные, реквизиты для оплаты покупок или счетов. Ведь когда мы рассчитываемся за что-то в сети, фактически происходит отправка всех нужных для кражи денег сведений. Номер карты, код, дата и имя. А также и иные средства, интернет-кошельки, например. Если пространство не защищено, то ни в коем случае нельзя проводить транзакции.
Даже более, почти все современные сайты подразумеваются возможность регистрации. И пусть проект не предлагает платных услуг, а служит посредником или агентом, даже частным клубом по интересам, все же возможность авторизоваться есть. И это тоже сведения, которые необходимо защищать. Иначе аккаунт пользователя будет находиться под угрозой. Доверия к системе, которая не пытается сохранить в неприкосновенности личные профили клиентов, не будет. Грамотный переход на HTTPS вам помогут осуществить опытные специалисты Студии 17 в Воронеже.
Итак, запомнили, что означает HTTPS, расшифровка – Hypertext Transfer Protocol с припиской – Secure.
Дополнительное замечание
Не стоит путать сам протокол передачи зашифрованного потока и понятие SSL. Это просто сертификат, на базе которого и работает механизм.
Что думает Google об этих методиках передачи
Этот поисковик мы берем в качестве эталона, но под ним легко можно подразумевает и все аналоги. В частности для Рунета – это Яндекс. Все поисковые машины имеют на этот счет примерно схожее мнение.
Они полагают, что сайты с Secure протоколами более безопасны. Это логично. Но также считается, что подобные ресурсы лучше. То есть, более современные, надежные, оптимизированные, удобные для использования. Поисковик считает все это синонимами. И по своим соображениям накладывает санкции, если видит что-то отличное от его мнения. Поэтому для владельца сайта разница между HTTPS и HTTP будет еще и в отношении Google. Он будет снижать позиции страниц по отношению к выдаче конкурентов, причем даже если контент на ресурсе будет более релевантным. Поисковик в последнюю очередь отправит пользователя в место с пониженной степенью безопасности. Даже если запрос в принципе не подразумевает оплату или торговые отношения.
Последствия использования незащищенных протоколов могут быть следующие:
Стоит понимать, что для использования шифрования необходима грамотная оптимизация. Это ключевое условия. Ведь если задержка шифра занимает буквально 0,1-0,2 миллисекунды при хорошо отлаженной внутренней структуре, то на плохом сайте время отклика вырастает до 0,5-1 миллисекунд. А иной раз еще и больше. В итоге поисковая машина справедливо полагает, что если на виртуальном ресурсе есть шифрования, значит и с оптимизацией все в порядке. Да еще и на HTTP и HTTPS порты используются разные. Устаревший 80 в первом случае и 443 во втором.
Что такое протокол HTTPS и принципы его работы
В статье мы расскажем, что означает HTTPS в адресе сайта (расшифровка HTTPS), как работает этот протокол и зачем вообще переходить на безопасное соединение.
Что такое защищенное соединение HTTPS
Миллионы интернет-пользователей постоянно обмениваются информацией. Это могут быть как дружеские беседы, весёлые картинки, рабочие переписки, так и банковские и паспортные данные, номера договоров и другая конфиденциальная информация. Работа всей всемирной паутины основана на протоколе HTTP. Благодаря нему пользователи могут передавать данные.
Сначала HTTP (HyperText Transfer Protocol) использовался только как протокол передачи гипертекста (текста с перекрёстными ссылками). Однако позже стало понятно, что он отлично подходит для передачи данных между пользователями. Протокол был доработан для новых задач и стал использоваться повсеместно.
Несмотря на свою функциональность у HTTP есть один очень важный недостаток ― незащищённость. Данные между пользователями передаются в открытом виде, злоумышленник может вмешаться в передачу данных, перехватить их или изменить. Чтобы защитить данные пользователей, был создан протокол HTTPS.
HTTPS работает благодаря SSL/TLS-сертификату. SSL/TLS-сертификат ― это цифровая подпись сайта. С её помощью подтверждается его подлинность. Перед тем как установить защищённое соединение, браузер запрашивает этот документ и обращается к центру сертификации, чтобы подтвердить легальность документа. Если он действителен, то браузер считает этот сайт безопасным и начинает обмен данными. Вот откуда взялась и что означает S в HTTPS.
Система HTTPS похожа на провод, который состоит из двух слоёв: медная сердцевина и оболочка. Медная сердцевина ― основная часть провода, по которой идёт ток. Оболочка защищает контакты от внешних воздействий. Так, медная сердцевина ― это HTTP-протокол, а защитная оболочка ― это SSL-сертификат. Такое сотрудничество создаёт безопасное HTTPS-соединение.
Данные вашего сайта под защитой
Установите SSL-сертификат, и ваш сайт будет работать по безопасному соединению HTTPS
Ключи шифрования
Кроме подтверждения подлинности сайта, SSL-сертификат шифрует данные. После того как браузер убедился в подлинности сайта, начинается обмен шифрами. Шифрование HTTPS происходит при помощи симметричного и асимметричного ключа. Вот что это значит:
Чтобы установить HTTPS-соединение, браузеру и серверу надо договориться о симметричном ключе. Для этого сначала браузер и сервер обмениваются асимметрично зашифрованными сообщениями, где указывают секретный ключ и далее общаются при помощи симметричного шифрования.
Итак, какова функция протокола HTTPS?
Также стоит упомянуть, какой порт используется протоколом HTTPS по умолчанию. HTTPS использует для подключения 443 порт — его не нужно дополнительно настраивать
Схема работы HTTPS
Итак, протокол HTTPS предназначен для безопасного соединения. Чтобы понять, как устанавливается это соединение и как работает HTTPS, рассмотрим механизм пошагово.
Для примера возьмём ситуацию: пользователь хочет перейти на сайт REG.RU, который работает по безопасному протоколу HTTPS.
Как работает HTTPS протокол
Зачем устанавливать HTTPS
Как мы говорили ранее, главная задача HTTPS — обеспечение безопасности передачи данных. Однако существует ещё несколько причин перейти на защищённое соединение:
Незащищённое соединение в Google Chrome
Визуальное обозначение привлекает внимание пользователей и заставляет отказаться от посещения сайта, поэтому есть риск потерять потенциальных клиентов.
Доверие. Сайты, которые заботятся о данных пользователей, вызывают доверие со стороны клиентов. Это добавляет лояльности аудитории.
SEO-оптимизация. Поисковые системы с недоверием относятся к сайтам, работающим по HTTP-протоколу. Даже при грамотной SEO-оптимизации можно не достичь желаемых показателей.
Сайты не обязаны работать исключительно по HTTPS-протоколу. Однако защита данных ― это важный элемент современной интернет-коммуникации. Когда сайт работает по небезопасному соединению, в браузере может отображаться ошибка «Подключение не защищено». Если вы пользователь, и встретили такое сообщение на просторах интернета, лучше покиньте небезопасный ресурс. Как исправить ошибку «Ваше подключение не защищено», если вы владелец сайта? Не стоит пренебрегать безопасностью клиентов, которые доверяют организациям свои личные данные. Закажите SSL-сертификат и переведите сайт на безопасное соединение HTTPS. Если вы уже выполняли эти настройки ранее, но на сайте всё равно сообщение об ошибке, следуйте инструкции.
Защитите данные с помощью SSL
Защитите данные на вашем сайте от мошенников. Установите SSL-сертификат, чтобы сайт работал по HTTPS-протоколу.
Как HTTPS обеспечивает безопасность соединения: что должен знать каждый Web-разработчик
Как же все-таки работает HTTPS? Это вопрос, над которым я бился несколько дней в своем рабочем проекте.
Будучи Web-разработчиком, я понимал, что использование HTTPS для защиты пользовательских данных – это очень и очень хорошая идея, но у меня никогда не было кристального понимания, как HTTPS на самом деле устроен.
Как данные защищаются? Как клиент и сервер могут установить безопасное соединение, если кто-то уже прослушивает их канал? Что такое сертификат безопасности и почему я должен кому-то платить, чтобы получить его?
Трубопровод
Перед тем как мы погрузимся в то, как это работает, давайте коротко поговорим о том, почему так важно защищать Интернет-соединения и от чего защищает HTTPS.
Когда браузер делает запрос к Вашему любимому веб-сайту, этот запрос должен пройти через множество различных сетей, любая из которых может быть потенциально использована для прослушивания или для вмешательства в установленное соединение.
С вашего собственного компьютера на другие компьютеры вашей локальной сети, через роутеры и свитчи, через вашего провайдера и через множество других промежуточных провайдеров – огромное количество организаций ретранслирует ваши данные. Если злоумышленник окажется хотя бы в одной из них — у него есть возможность посмотреть, какие данные передаются.
Как правило, запросы передаются посредством обычного HTTP, в котором и запрос клиента, и ответ сервера передаются в открытом виде. И есть множество весомых аргументов, почему HTTP не использует шифрование по умолчанию:
• Для этого требуется больше вычислительных мощностей
• Передается больше данных
• Нельзя использовать кеширование
Но в некоторых случаях, когда по каналу связи передается исключительно важная информация (такая как, пароли или данные кредитных карт), необходимо обеспечить дополнительные меры, предотвращающие прослушивание таких соединений.
Transport Layer Security (TLS)
Сейчас мы собираемся погрузиться в мир криптографии, но нам не потребуется для этого какого-то особенного опыта — мы рассмотрим только самые общие вопросы. Итак, криптография позволяет защитить соединение от потенциальных злоумышленников, которые хотят воздействовать на соединение или просто прослушивать его.
TLS — наследник SSL — это такой протокол, наиболее часто применяемый для обеспечения безопасного HTTP соединения (так называемого HTTPS). TLS расположен на уровень ниже протокола HTTP в модели OSI. Объясняя на пальцах, это означает, что в процессе выполнения запроса сперва происходят все “вещи”, связанные с TLS-соединением и уже потом, все что связано с HTTP-соединением.
TLS – гибридная криптографическая система. Это означает, что она использует несколько криптографических подходов, которые мы и рассмотрим далее:
1) Асиметричное шифрование (криптосистема с открытым ключом) для генерации общего секретного ключа и аутентификации (то есть удостоверения в том, что вы – тот за кого себя выдаете).
2) Симметричное шифрование, использующее секретный ключ для дальнейшего шифрования запросов и ответов.
Криптосистема с открытым ключом
Криптосистема с открытым ключом – это разновидность криптографической системы, когда у каждой стороны есть и открытый, и закрытый ключ, математически связанные между собой. Открытый ключ используется для шифрования текста сообщения в “тарабарщину”, в то время как закрытый ключ используется для дешифрования и получения исходного текста.
С тех пор как сообщение было зашифровано с помощью открытого ключа, оно может быть расшифровано только соответствующим ему закрытым ключом. Ни один из ключей не может выполнять обе функции. Открытый ключ публикуется в открытом доступе без риска подвергнуть систему угрозам, но закрытый ключ не должен попасть к кому-либо, не имеющему прав на дешифровку данных. Итак, мы имеем ключи – открытый и закрытый. Одним из наиболее впечатляющих достоинств ассиметричного шифрования является то, что две стороны, ранее совершенно не знающие друг друга, могут установить защищенное соединение, изначально обмениваясь данными по открытому, незащищенному соединению.
Клиент и сервер используют свои собственные закрытые ключи (каждый – свой) и опубликованный открытый ключ для создания общего секретного ключа на сессию.
Это означает, что если кто-нибудь находится между клиентом и сервером и наблюдает за соединением – он все равно не сможет узнать ни закрытый ключ клиента, ни закрытый ключ сервера, ни секретный ключ сессии.
Как это возможно? Математика!
Алгоритм Ди́ффи — Хе́ллмана
Одним из наиболее распространенных подходов является алгоритм обмена ключами Ди́ффи — Хе́ллмана (DH). Этот алгоритм позволяет клиенту и серверу договориться по поводу общего секретного ключа, без необходимости передачи секретного ключа по соединению. Таким образом, злоумышленники, прослушивающие канал, не смогу определить секретный ключ, даже если они будут перехватывать все пакеты данных без исключения.
Как только произошел обмен ключами по DH-алгоритму, полученный секретный ключ может использоваться для шифрования дальнейшего соединения в рамках данной сессии, используя намного более простое симметричное шифрование.
Немного математики…
Математические функции, лежащие в основе этого алгоритма, имею важную отличительную особенность — они относительно просто вычисляются в прямом направлении, но практически не вычисляются в обратном. Это именно та область, где в игру вступают очень большие простые числа.
Пусть Алиса и Боб – две стороны, осуществляющие обмен ключами по DH-алгоритму. Сперва они договариваются о некотором основании root (обычно маленьком числе, таком как 2,3 или 5 ) и об очень большом простом числе prime (больше чем 300 цифр). Оба значения пересылаются в открытом виде по каналу связи, без угрозы компрометировать соединение.
Напомним, что и у Алисы, и у Боба есть собственные закрытые ключи (из более чем 100 цифр), которые никогда не передаются по каналам связи.
По каналу связи же передается смесь mixture, полученная из закрытых ключей, а также значений prime и root.
Таким образом:
Alice’s mixture = (root ^ Alice’s Secret) % prime
Bob’s mixture = (root ^ Bob’s Secret) % prime
где % — остаток от деления
Таким образом, Алиса создает свою смесь mixture на основе утвержденных значений констант (root и prime), Боб делает то же самое. Как только они получили значения mixture друг друга, они производят дополнительные математические операции для получения закрытого ключа сессии. А именно:
Вычисления Алисы
(Bob’s mixture ^ Alice’s Secret) % prime
Вычисления Боба
(Alice’s mixture ^ Bob’s Secret) % prime
Результатом этих операций является одно и то же число, как для Алисы, так и для Боба, и это число и становится закрытым ключом на данную сессию. Обратите внимание, что ни одна из сторон не должна была пересылать свой закрытый ключ по каналу связи, и полученный секретный ключ так же не передавался по открытому соединению. Великолепно!
Для тех, кто меньше подкован в математическом плане, Wikipedia дает прекрасную картинку, объясняющую данный процесс на примере смешивания цветов:
Обратите внимание как начальный цвет (желтый) в итоге превращается в один и тот же “смешанный” цвет и у Боба, и у Алисы. Единственное, что передается по открытому каналу связи так это наполовину смешанные цвета, на самом деле бессмысленные для любого прослушивающего канал связи.
Симметричное шифрование
Обмен ключами происходит всего один раз за сессию, во время установления соединения. Когда же стороны уже договорились о секретном ключе, клиент-серверное взаимодействие происходит с помощью симметричного шифрования, которое намного эффективнее для передачи информации, поскольку не требуется дополнительные издержки на подтверждения.
Используя секретный ключ, полученный ранее, а также договорившись по поводу режима шифрования, клиент и сервер могут безопасно обмениваться данными, шифруя и дешифруя сообщения, полученные друг от друга с использованием секретного ключа. Злоумышленник, подключившийся каналу, будет видеть лишь “мусор”, гуляющий по сети взад-вперед.
Аутентификация
Алгоритм Диффи-Хеллмана позволяет двум сторонам получить закрытый секретный ключ. Но откуда обе стороны могут уверены, что разговаривают действительно друг с другом? Мы еще не говорили об аутентификации.
Что если я позвоню своему приятелю, мы осуществим DH-обмен ключами, но вдруг окажется, что мой звонок был перехвачен и на самом деле я общался с кем-то другим?! Я по прежнему смогу безопасно общаться с этим человеком – никто больше не сможет нас прослушать – но это будет совсем не тот, с кем я думаю, что общаюсь. Это не слишком безопасно!
Для решения проблемы аутентификации, нам нужна Инфраструктура открытых ключей, позволяющая быть уверенным, что субъекты являются теми за кого себя выдают. Эта инфраструктура создана для создания, управления, распространения и отзыва цифровых сертификатов. Сертификаты – это те раздражающие штуки, за которые нужно платить, чтобы сайт работал по HTTPS.
Но, на самом деле, что это за сертификат, и как он предоставляет нам безопасность?
Сертификаты
В самом грубом приближении, цифровой сертификат – это файл, использующий электронной-цифровую подпись (подробнее об этом через минуту) и связывающий открытый (публичный) ключ компьютера с его принадлежностью. Цифровая подпись на сертификате означает, что некто удостоверяет тот факт, что данный открытый ключ принадлежит определенному лицу или организации.
По сути, сертификаты связывают доменные имена с определенным публичным ключом. Это предотвращает возможность того, что злоумышленник предоставит свой публичный ключ, выдавая себя за сервер, к которому обращается клиент.
В примере с телефоном, приведенном выше, хакер может попытаться предъявить мне свой публичный ключ, выдавая себя за моего друга – но подпись на его сертификате не будет принадлежать тому, кому я доверяю.
Чтобы сертификату доверял любой веб-браузер, он должен быть подписан аккредитованным удостоверяющим центром (центром сертификации, Certificate Authority, CA). CA – это компании, выполняющие ручную проверку, того что лицо, пытающееся получить сертификат, удовлетворяет следующим двум условиям:
1. является реально существующим;
2. имеет доступ к домену, сертификат для которого оно пытается получить.
Как только CA удостоверяется в том, что заявитель – реальный и он реально контролирует домен, CA подписывает сертификат для этого сайта, по сути, устанавливая штамп подтверждения на том факте, что публичный ключ сайта действительно принадлежит ему и ему можно доверять.
В ваш браузер уже изначально предзагружен список аккредитованных CA. Если сервер возвращает сертификат, не подписанный аккредитованным CA, то появится большое красное предупреждение. В противном случае, каждый мог бы подписывать фиктивные сертификаты.
Так что даже если хакер взял открытый ключ своего сервера и сгенерировал цифровой сертификат, подтверждающий что этот публичный ключ, ассоциирован с сайтом facebook.com, браузер не поверит в это, поскольку сертификат не подписан аккредитованным CA.
Прочие вещи которые нужно знать о сертификатах
Расширенная валидация
В дополнение к обычным X.509 сертификатам, существуют Extended validation сертификаты, обеспечивающие более высокий уровень доверия. Выдавая такой сертификат, CA совершает еще больше проверок в отношении лица, получающего сертификат (обычно используя паспортные данные или счета).
При получение такого сертификата, браузер отображает в адресной строке зеленую плашку, в дополнение к обычной иконке с замочком.
Обслуживание множества веб-сайтов на одном сервере
Поскольку обмен данными по протоколу TLS происходит еще до начала HTTP соединения, могут возникать проблемы в случае, если несколько веб-сайтов расположены на одном и том же веб-сервере, по тому же IP-адресу. Роутинг виртуальных хостов осуществляется веб-сервером, но TLS-соединение возникает еще раньше. Единый сертификат на весь сервер будет использоваться при запросе к любому сайту, расположенному на сервере, что может вызвать проблемы на серверах с множеством хостов.
Если вы пользуетесь услугами веб-хостинга, то скорее всего вам потребуется приобрести выделенный IP-адрес, для того чтобы вы могли использовать у себя HTTPS. В противном случае вам придется постоянно получать новые сертификаты (и верифицировать их) при каждом обновлении сайта.
По этой теме много данных есть в википедии, есть курс на Coursera. Отдельное спасибо ребятам из чата на security.stackexchange.com, которые отвечали на мои вопросы сегодня утром.
1)Спасибо хабраюзеру wowkin за отличную ссылку по теме (видео переведено и озвученно хабраюзером freetonik):
2) По результатам развернувшейся в коменатариях дискуссии (спасибо за участие хабраюзерам a5b, Foggy4 и Allen) дополняю основную статью следующей информацией:
По данным netcraft на базе свежего SSL survey (2.4 млн SSL сайтов, июнь 2013), большинство SSL соединений не используют Perfect forward secrecy алгоритмы: news.netcraft.com/archives/2013/06/25/ssl-intercepted-today-decrypted-tomorrow.html
Особенно ситуация плоха в случае с IE (даже 10 версии), который поддерживает Диффи-Хеллмана только на эллиптических кривых (RSA и ECDSA сертификаты), либо классический Диффи-Хеллман с более редкими сертификатами DSS (DSA).
По подсчетам netcraft 99,7 % соединений с IE и по 66% — с Chrome, Opera и Firefox не будут использовать Диффи-Хеллмана.
На Hacker News в обсуждении это тоже заметили.
Also (and I made the same mistake in my talk. ), yes, explaining DH is important, but now it kind of sounds like in TLS both sides figure out the master secret using DH (and, in your talk, specifically, regular DH, not EC-based DH), when in reality that depends on the ciphersuite, and the vast majority of TLS connections don’t work that way. From what I understand to be most TLS configurations in the wild, the pre-master secret is encrypted using the server’s public key. (RFC 5246: 7.4.7.1, 8.1.1)