Что такое HTTP-протокол?
Полное название протокола HTTP — «Протокол передачи гипертекста», что переводится как «Протокол передачи гипертекста», который находится на прикладном уровне четырехуровневой модели TCP/IP.
Протокол HTTP связывается между клиентом и сервером посредством метода запрос/ответ.
Все это выглядит великолепно, но у протокола HTTP есть фатальный недостаток:недостаточно безопасно.
Передача информации по протоколу HTTP осуществляется полностью в открытом виде без какого-либо шифрования, что равносильно «полосатости» в сети. Какие проблемы это может вызвать? Проведем аналогию:
Сяохуэй — клиент, а коллега Сяохуэй — Сяохун — сервер.Однажды Сяохуэй попытался отправить запрос Сяохуну.
Однако, поскольку информация о передаче представлена в виде обычного текста, эта информация может быть злонамеренно перехвачена или даже изменена посредником. Такое поведение называетсяатака «человек посередине».
Как его зашифровать?
Xiaohui и Xiaohong могут договориться оСимметричное шифрованиеметодом и согласовываем случайно сгенерированный ключ. В последующих сообщениях отправитель информации использует ключ для шифрования информации, а получатель информации использует тот же ключ для расшифровки информации.
Это абсолютно безопасно? Не совсем.
Хотя мы шифруем открытый текст в последующих сообщениях, первое сообщение с согласованным методом шифрования и ключом по-прежнему остается открытым текстом.Если первое сообщение было перехвачено, ключ будет передан посреднику, посреднику. Все последующие сообщения все еще могут быть расшифрованы.
что нам делать? Не волнуйтесь, мы можем использоватьАсимметричное шифрование, чтобы обеспечить дополнительный уровень защиты при передаче ключа.
Набор секретных клавиш в асимметричном шифровании, включая открытый ключ и закрытый ключ. Обычный текст может быть зашифрован открытым ключом, расшифрованным закрытым ключом; или зашифрован с закрытым ключом и расшифрован с открытым ключом.
Когда Xiaohui и Xiaohong устанавливают связь, Xiaohong сначала отправляет свой открытый ключ Key1 Xiaohui:
Получив открытый ключ Сяохун, Сяохун генерирует ключ Key2 для симметричного шифрования и шифрует Key2 с помощью только что полученного открытого ключа Key1 (здесь немного хитрости) и отправляет его Xiaohong:
Сяохун использует свой асимметрично зашифрованный закрытый ключ, чтобы разблокировать шифрование открытого ключа Key1 и получает содержимое Key2. С этого момента они могут использовать Key2 для симметричной зашифрованной связи.
В процессе коммуникации, даже если посредник в самом начале перехватит открытый ключ Key1, поскольку он не знает, что такое закрытый ключ, его невозможно расшифровать.
Что такое плохая идея? Хотя посредник не знает, что такое закрытый ключ Сяохуна, но после перехвата открытого ключа Сяохуна Key1 он может сам украсть еще одну пару открытых ключей и закрытых ключей и отправить свой собственный открытый ключ Key3 Сяохуи.
Сяохуэй не знал, что открытый ключ был тайно изменен, думая, что Key3 был открытым ключом Сяохун. Таким образом, согласно предыдущему процессу, самостоятельно сгенерированный ключ симметричного шифрования Key2 шифруется с помощью Key3 и отправляется в Xiaohong.
На этот раз посредник снова перехватил сообщение.Посредник сначала использовал свой закрытый ключ, чтобы разблокировать шифрование Key3, получил Key2, а затем повторно зашифровал его с помощью Key1, первоначально отправленного Xiaohong, а затем отправил его Xiaohong.
Таким образом, хотя последующее общение между двумя людьми симметрично зашифровано с помощью Key2, посредник уже владеет Key2, поэтому его можно легко расшифровать.
Каково решение? Вам нужно снова зашифровать открытый ключ? Это приведет только к бесконечной дилемме.
В настоящее время нам необходимо представить третью сторону, авторитетный центр сертификации (ЦС), чтобы решить эту проблему.
Что такое сертификат? Сертификат содержит следующую информацию:
Ради иллюстрации мы упростили здесь и перечислили только некоторую ключевую информацию. Что касается полезности этой информации о сертификате, мы можем понять это, посмотрев на конкретный процесс связи.
Процесс выглядит следующим образом:
1. Как Сяохун на стороне сервера, сначала отправьте ее открытый ключ в центр сертификации и подайте заявку на получение сертификата в центре сертификации.
2. Сам центр сертификации также имеет пару открытый ключ и закрытый ключ. Организация использует свой собственный закрытый ключ для шифрования Key1 и создает подпись сертификата с помощью такой информации, как URL-адрес сервера.Подпись сертификата также шифруется закрытым ключом организации. После того, как сертификат изготовлен, организация отправляет сертификат на сервер Xiaohong.
3. Когда Сяохуэй запрашивает у Сяохун связь, Сяохун больше не возвращает напрямую свой открытый ключ, а возвращает сертификат, на получение которого она подала заявку, Сяохуэй.
4. После того, как Xiaohui получит сертификат, первое, что нужно сделать, это проверить подлинность сертификата. Следует отметить,Основные браузеры и операционные системы сохранили имена и открытые ключи всех авторитетных центров сертификации.. Поэтому Xiaohui нужно только знать, какая организация выдала сертификат, а затем он может локально найти соответствующий открытый ключ и расшифровать подпись сертификата.
Затем Сяо Хуэй самостоятельно генерирует подпись сертификата в соответствии с теми же правилами подписи.Если две подписи совпадают, сертификат действителен.
После успешной проверки Xiaohui может снова безопасно использовать открытый ключ организации для расшифровки открытого ключа Key1 сервера Xiaohong.
5. Как и прежде, Сяохуэй создает свой собственный симметричный ключ шифрования Key2, шифрует Key2 с помощью открытого ключа сервера Key1 и отправляет его Xiaohong.
6. Наконец, Сяохун расшифровывает шифрование своим закрытым ключом и получает симметричный ключ шифрования Key2. Таким образом, они начали использовать Key2 для симметричной зашифрованной связи.
При таком процессе мы могли бы также подумать о том, есть ли у посредника еще место для вреда?
Примечание. Недавно запущенный протокол TLS представляет собой обновленную версию протокола SSL 3.0, и общий принцип такой же, как у протокола SSL.
----КОНЕЦ----
Друзья, которым понравилась эта статья, приглашаем обратить внимание на номер пабликапрограммист маленький серый, смотрите больше захватывающего контента