Обложка канала

IsChemist

2435 @ischemist

Персональный канал Антона Моргунова - химика, который поступил в Гарвард, MIT, Стэнфорд, Калтех и Коламбию.

IsChemist

6 лет назад
Открыть в
Что такое сертификат безопасности

Сразу скажу — я не эксперт и имею лишь поверхностное понимание. Но, думаю, это лучше, чем ничего.

Часть 1. Как работает интернет?

Любой сайт, по своей сути, это текст, окруженный HTML тегами. Если мы остановимся здесь, все сайты для нас будут “односторонними”: все данные приходят к нам, от нас ничего не уходит. Мы не можем менять контент сайта, только если мы не владельцы сайта.

Чтобы добавить возможность авторизации, обмена данными, отправки форм и т. п., необходим сервер, на котором будет база данных, и с которым будет взаимодействовать сайт. Например, когда вы вводите данные своей карты для оплаты на сайте, вам нужно, чтобы эти данные как-то дошли до сервера. В интернете такой обмен данными происходит через REST API. Иными словами, вы ввели данные и они отправляются через POST запрос, который содержит небольшую техническую информацию и саму суть месседжа. Например: “номер карты”: “4983….”, “CVC”: 111 и так далее.

По сути, этот пакет информации уходит с вашего компа и идет по глобальной сети до самого сервака. Поскольку ваш компьютер не соединен напрямую с сервером, запрос пойдет через разные узлы, например, через провайдера. И любой посредник в этой цепи будет видеть, что “Антон из Астаны” отправил POST запрос на IP: (адрес сервака) с данными “номер карты”: “4983….”, “CVC”: 111.

Так работает HTTP.

Часть 2. HTTPS

Однако, в начале 2000х, технологии криптографии, ранее доступные лишь спецслужбам, начали вылезать в сеть и ребята сварганили HTTPS. В чем суть? У сервака есть свой условный сертификат, подписанный (верифицированный) независимой стороной (Certification Authority), который состоит из приватного и публичного ключа. С помощью приватного ключа можно расшифровывать и зашифровывать информацию. С помощью публичного ключа можно только зашифровать что-то. В итоге, сервак публикует публичный ключ и вы, когда хотите отправить POST запрос, прежде чем отправить его, автоматически зашифруете его, используя публичный ключ сервака. Теперь, ваш POST запрос выглядит как: “HDAIFHD13819SDKJAJHF3728yAFHKAJKAFH” (аля набор символов, для чтения которых, нужно либо а) знать алгоритм шифрования б) потратить лет 100 на подбор алгоритма). И отныне ваш провайдер увидит ваш запрос, но не будет знать его содержания.

Часть 3. Сертификат безопасности

По сути, сейчас гос-во хочет занять роль независимой конторы, которая подписывает сертификаты. Зачем? А затем, что оно сможет (через провайдеров) направлять запросы на всем известные сайты через самостоятельно созданные и самостоятельно подписанные сертификаты, а значит, при желании, сможет расшифровывать весь трафик. (так называемая MAN IN THE MIDDLE атака)

Вы спросите, а что мешает другим Certification Authorities подписывать какие-попало сертификаты, в т.ч. созданные самими собой? Репутация. Как только такой случай станет известным (а рано или поздно он станет), этот CA добавят в черные листы всех браузеров и их деятельность закончится раз и навсегда.

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

UPD: поправил функции CA