Основы безопасности
Давайте сначала рассмотрим три репрезентативные проблемы, которые могут возникнуть при передаче данных в Интернете, Фактически, все методы, упомянутые ниже, предлагаются для решения этих трех проблем.
постукивание
Подделка
отказываться от
Шифрование с симметричным ключом
ПредположениеA
через ИнтернетB
Отправлять данные, если данные не зашифрованы, данные могут быть использованы злоумышленникамиX
Видеть
Следовательно, данные, которые должны храниться в секрете, должны быть зашифрованы, а затем отправлены.
- Шифрование данных с помощью зашифрованного текста
- отправить зашифрованный текст на
B
-
B
Используйте ключ для расшифровки изA
Полученный зашифрованный текст, так что вы можете получить исходные данные - Поскольку данные зашифрованы, они в безопасности, даже если их перехватит злонамеренная третья сторона.
Очень важной особенностью «шифрования с симметричным ключом» является то, что для шифрования и дешифрования используется один и тот же ключ.
Возвращаясь к сцене только что, предположим,B
Ключа для расшифровки нет, поэтомуA
Необходимо отправить ключи через Интернет наB
- но
X
Также возможно увидеть этот ключ - следовательно,
X
Этот ключ также можно использовать для расшифровки зашифрованного текста.
Приведенный выше сценарий приведет к новой проблеме, которая называется «проблемой доставки ключей», так как же решить эту проблему?
шифрование с открытым ключом
Чтобы решить вышеуказанную «проблему доставки ключа», мы вводим новый метод — «шифрование с открытым ключом», на следующем рисунке показаны основные особенности «шифрования с открытым ключом».
- Ключ, используемый для шифрования, называется «открытым ключом», а ключ, используемый для дешифрования, называется «закрытым ключом».
- Шифрование с открытым ключом, как правило, требует больше времени для шифрования и расшифровки, чем «шифрование с симметричным ключом».
Давайте посмотрим на весь процесс «шифрования с открытым ключом».
получательB
Создаются открытый ключ и закрытый ключ, открытый ключ отправляетсяA
-
A
ИспользоватьB
Полученный открытый ключ шифрует данные и отправляет зашифрованный текст вB
-
B
Расшифровать с помощью закрытого ключа изA
Получил зашифрованный текст, получил исходные данные
Во время этого процесса
- Шифрованный текст и открытый ключ также могут быть перехвачены злонамеренной третьей стороной X
- Но закрытый ключ
B
законсервированный,X
Не удалось получить, естественно нет возможности расшифровать шифртекст - Это хорошее решение «проблемы доставки ключей».
Проблемы с шифрованием с открытым ключом
- Как шифрование, так и дешифрование требуют времени, для решения этой проблемы существует метод под названием «гибридное шифрование».
- надежность открытого ключа
Гибридное шифрование
Шифрование со смешанными ключами в два этапа
- Передать ключ через шифрование с открытым ключом
- Передавайте данные с помощью более быстрого шифрования с симметричным ключом
атака «человек посередине»
Чтобы лучше понять проблемы надежности шифрования с открытым ключом, давайте вернемся к сценарию передачи открытого ключа.
A
на самом деле получилX
поддельный открытый ключ, отправленный ему, ноA
Не удалось обнаружить
наконец,X
Зашифруйте данные ответа своим ключом и отправьте ихA
, так что хотяA
,B
Обе стороны могут успешно завершить общение, но злонамеренная третья сторонаX
Может видеть расшифрованные данные запроса и данные ответа, а такжеA
,B
Ни одна из сторон не знала.
Этот метод кражи данных путем тайной замены открытого ключа известен как «атака посредника», и корень проблемы заключается в следующем.A
Не удалось подтвердить, что открытый ключ, который они получили, был созданB
партия создана. Как избежать атаки «человек посередине»? Давайте обсудим это в разделе, посвященном цифровым сертификатам, а затем объясним некоторые необходимые знания.
код аутентификации сообщения
Код аутентификации сообщения называется на английском языкеMAC
,MAC
Может пониматься как хеш-значение строки, состоящей из ключа и зашифрованного текста.
Код аутентификации сообщения может быть решен, хотя伪造
проблема, но все же неизбежная否认
вопрос
цифровой подписи
чтобы решить эту否认
Проблема, давайте посмотрим на метод "цифровой подписи" далее
Цифровой сертификат
Хотя описанный выше метод позволяет избежать窃听
,伪造
,否认
И так далее, но избежать атаки «человек посередине» по-прежнему невозможно, потому что мы все еще не можем проверить владельца открытого ключа, поэтому нам нужна система «цифрового сертификата» для проверки владельца. открытого ключа.
Далее рассмотрим процесс подачи заявки на получение цифрового сертификата.Называем Digital Certificate Authority (Центр сертификации)CA
Теперь, когда B подал заявку на получение цифрового сертификата, как использовать цифровой сертификат для проверки того, что открытый ключ PB принадлежит B?
Теперь можно проверить, что PB принадлежит B, но как проверить, что PC принадлежит доверенному CA?
Фактически центр сертификации формирует древовидную структуру, а вышестоящий орган создает сертификат для нижестоящего органа, то есть, если он подлежит проверке, то это восходящая сертификация от уровня к уровню, т.е. и последняя цепочка доверия — это Root CA, он использует самоподпись, а его подпись — это безусловное доверие.
HTTPS
Как только вы полностью поймете, что было сказано выше, вам будет легко понятьHTTPS
, который использует вышеупомянутые две технологии «смешанного шифрования» + «цифровой сертификат» для обеспечения безопасности и надежности всего процесса связи.
HTTPS
На самом деле он добавляет слой между транспортным уровнем и прикладным уровнем.SSL/TLS
, дляTCP
Шифрование и дешифрование передаваемого контента
Давайте посмотрим на подробный рабочий процесс ниже
Реализация прокси-сервера «человек посередине» с помощью Node
На данный момент мы все знаем HTTPS, цифровые сертификаты и другие сопутствующие знания, и мы можем внедрить посреднический прокси-сервис. Вот ссылка. Если вам интересно, вы можете увидеть, какРеализация прокси-сервера «человек посередине» с помощью Node