Подтвердить что ты не робот

Как HTTPS обеспечивает безопасность?

Я хочу знать, как работает HTTPS. Независимо от того, зашифрованы ли данные или зашифрован путь (через которые передаются данные). Я буду благодарен, если кто-то предоставит мне детали реализации.

4b9b3361

Ответ 1

Очень просто, HTTPS использует Secure Socket Layer для шифрования данных, которые передаются между клиентом и сервером. SSL использует алгоритм RSA https://en.wikipedia.org/wiki/RSA_(cryptosystem), технологию асимметричного шифрования. Точные детали того, как работает алгоритм, сложны, но в основном он использует тот факт, что хотя умножение двух больших простых чисел вместе легко, разложить результат обратно в составляющие простые числа очень и очень сложно. Как работает шифрование SSL/RSA:

Сервер генерирует два больших простых числа и умножает их вместе. Это называется "открытым ключом". Этот ключ доступен любому клиенту, который хочет безопасно передавать данные на сервер. Клиент использует этот "открытый ключ" для шифрования данных, которые он хочет отправить. Теперь, поскольку это асимметричный алгоритм, открытый ключ не может быть использован для расшифровки передаваемых данных, а только для их шифрования. Чтобы расшифровать, вам нужны исходные простые числа, и только на сервере они есть ("закрытый ключ"). При получении зашифрованных данных сервер использует свой закрытый ключ для расшифровки передачи.

В случае, если вы просматриваете Интернет, ваш браузер предоставляет серверу свой открытый ключ. Сервер использует этот ключ для шифрования данных, отправляемых в ваш браузер, который затем использует свой закрытый ключ для расшифровки.

Так что да, все данные, передаваемые на сервер или с сервера по протоколу HTTP, зашифрованы и хорошо зашифрованы. Типичные реализации SSL используют 128 или 256 цифр для своих ключей. Чтобы сломать это, вам нужно действительно огромное количество вычислительных ресурсов.

Насколько я знаю, запрос на ресурс сервера не зашифрован - используйте httpfox https://addons.mozilla.org/en-US/firefox/addon/6647/ или Wireshark http://www.wireshark.org/ или что-то, чтобы подтвердить.

Ответ 2

Двумя способами.

  • Обеспечивая шифрование всей информации, передаваемой между вами и веб-сайтом. Это делается с помощью процесса обмена ключами с использованием RSA (который обменивает "сеансовый ключ", который используется для фактического шифрования).

  • Попытка продемонстрировать доверие на веб-сайте, который вы посещаете. Сертификаты предоставляются доменам, и идея заключается в том, что на вашем компьютере вы доверяете только сертификатам из разных авторитетных источников. Тогда вы можете (теоретически) быть уверены, что когда выдается сертификат для "вашего банка", это действительно веб-сайт "Ваш банк", а не какой-либо другой веб-сайт. На практике очень мало людей заботятся/замечают этот аспект SSL.

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

Ответ 3

Вы можете прочитать все подробности в TLSv1 RFC-2246.


Для анализа безопасности, в частности, следующий раздел:

F. Анализ безопасности

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

дополнительное содержимое отключено

Ответ 4

Я думал, что это было очень сжатое понятное для человека объяснение: http://robertheaton.com/2014/03/27/how-does-https-actually-work/

Вот моя обобщенная версия:

Основные понятия:

  • Асимметричный алгоритм криптографии - шифрование с открытым ключом, закрытое ключевое дешифрование.
  • Алгоритм симметричной криптографии - открытый ключ шифрование и дешифрование.

Рукопожатие:

  • Hello. Клиентский алгоритм криптографии и поддерживаемая SSL-версия.
  • Сертификат Exchange. Сервер отправляет сертификат для идентификации себя и открытого ключа сертификата.
  • Обмен ключами. Клиент использует открытый ключ сертификата для шифрования открытого открытого открытого ключа клиента (используя согласованный алгоритм асимметричной криптографии с шага 1) и отправляет его на сервер. Сервер расшифровывает его с помощью своего закрытого ключа (используя асимметричный алгоритм криптографии).
  • Обмен данными. Этот открытый ключ теперь известен как клиенту, так и серверу. Он используется для последующих запросов/ответов для шифрования и дешифрования как на клиенте, так и на сервере (симметричный алгоритм криптографии).

Ответ 5

Сервер и клиент не имеют контроля над путём, который используется для передачи данных. Используемый путь - это вопрос для сетевого уровня (Internet Protocol - IP), а не для безопасности транспортного уровня (TLS)

Данные сами зашифровываются, и есть также средства проверки аутентификации сервера, как упоминалось Noon Silk.

http://en.wikipedia.org/wiki/Transport_Layer_Security