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

Принцип Доверия (Trust) в HTTPS.

Тема в разделе "Безопасность", создана пользователем TEXHO, 19 июл 2016.

  1. TEXHO

    TEXHO Member

    Сообщения:
    141
    Симпатии:
    0
    Сейчас уже, наверное, больше половины серверов перебрались с http на https протокол. Зачем? Ну, это мол круто, секъюрно.

    В чем же заключается эта секъюрность? На эту тему уже написана куча статей, в том числе и на Хабре. Но я бы хотел добавить еще одну.

    Почему решил написать

    Я, вообще, по специальности Android разработчик, и не особо шарю в криптографии и протоколах защиты информации. Поэтому когда мне пришлось столкнуться с этим непосредственно, я был немного в шоке от размера пропасти в моих теоретических знаниях.

    Я начал рыться в разных источниках, и оказалось, что в этой теме не так просто разобраться, и тут недостаточно просто прочитать пару статей на Хабре или Вики, при чем я нигде не встретил абсолютно исчерпывающего и понятного источника, чтобы сослаться и сказать — Вот это Библия. Поэтому у меня это немного разобраться заняло кучу времени. Так вот, разобравшись, я решил поделиться этим, и написать статью для таких же новичков, как и я, или просто для людей, которым интересно зачем в строке URL иногда стоит https, а не http.

    Что значить защищенный канал связи?

    Чтобы канал передачи данных считался защищенным, должны выполняться 3 основные принципа:

    Доверие (Trust) — взаимная аутентификацию абонентов при установлении соединения.
    Шифрование (Crypting) — защита передаваемых по каналу сообщений от несанкционированного доступа. То есть, говорить и слушать во время диалога можете только вы и ваш собеседник.
    Обеспечение целостности — подтверждение целостности поступающих по каналу сообщений, т.е. сообщения не могут подвергаться полной или частичной замене информации.

    В этой статье я хотел бы рассказать подробно только о механизме Доверия.

    Что значить Доверие (Trust)?

    Вы можете доверять вашему собеседнику только если точно знаете, что он — тот, за кого себя выдает.
    Самый простой пример — вы знаете собеседника лично, более сложный — вы знаете кого-то кто лично знает вашего предполагаемого собеседника и этот кто-то гарантирует что собеседнику можно доверять.

    Жизненный пример

    Представим, Вы хотите купить квартиру.
    Для этого Вы находите Риэлтора, который занимается продажей квартир.
    Риэлтор говорит, что он работает с неким Застройщиком, и предлагает квартиру от этого Застройщика.
    Застройщик говорит, что жилье, которое он строит будет, сдано, и те кто заплатил за него деньги Риэлтору, получит его в собственность, и легальность строительства и право собственности будет обеспечена Государством.
    Итого у нас есть 4 субъекта Вы, Риэлтор, Застройщик, Государство.
    Для того чтобы сделка успешно состоялась и никто никого не обманул Государство создало законы, определяющие документы, которые гарантируют легальность сделок, и механизм печати или подписи, который гарантирует подлинность этих документов.

    У Вас есть примеры этих документов и печатей, вы можете их взять у Государства.
    Вы имеете право требовать у Риэлтора оригиналы документов на строительство.
    Риэлтор берет документы Застройщика, которые подкреплены документами Государства и убеждается, что квартиры можно продавать — они легальны.
    Застройщик же в свою очередь получает документы у Государства.
    Т.е. теперь вы можете смело вести диалог только с Риэлтором, основываясь на его документах, скрепленных печатями Застройщика и Государства!

    [​IMG]

    Доверие в HTTPS

    А теперь поменяем имена действующих лиц из Жизненного примера.
    Вы = Клиент (Client)
    Риэлтор = Сервер (Server)
    Застройщик = Промежуточный Центр Сертификации (Intermediate CA)
    Государство = Главный Центр Сертификации (Root CA)

    [​IMG]

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

    Она может давать некоторые полномочия , и они будут подписывать документы от имени Главного Центра.

    Перейдем к математике

    Были упомянуты слова: подпись, сертификат и т.д. Как это реализовать? В помощь приходит

    Чтобы не вдаваться в подробности и не объяснять дискретную математику и криптографию, уясним пару вещей:

    1) Коротко и о главном об асимметричном шифровании.
    Есть 2 ключа — Публичный и Приватный (Public Key and Private Key). Собственно, ключи — это просто большие числа.
    Если сообщение шифруется Публичным, то его может расшифровать только соответствующий ему Приватный ключ.
    И наоборот:
    Если сообщение шифруется Приватным, то его может расшифровать только соответствующий ему Публичный ключ.
    Приватный ключ никому не дается, Публичный — собственно, публичный.

    2)— это часть документа, зашифрованная Приватным ключем Подписчика (Issuer). Если ее можно расшифровать Публичным Ключем Подписчика, то можно с уверенностью утверждать, что именно Подписчик ее шифровал.

    3) — это обычно файл, чаще всего с расширением .cer или .pem.
    В нем содержится:

    Информация о владельце (Subject)
    Инфомация о Подписчике (Issuer)
    Информация о подписи (Версия SSL, алгоритм)
    Хэш подписи (Certificate Fingerprints)
    Public Key
    Цифровая подпись (Signature)
    Срок годности (Expires)
    И еще много информации, в зависимости от версии, но остальное нам пока не нужно.


    [+] Пример Сертификата



    Что же происходит на каждом из субъектов

    1) Начнем с Root CA

    Генерируется Private Key
    Генерируется Public Key
    Добавляется информация о CA, задается срок годности
    С

Поделиться этой страницей