Когда я читал главу о безопасности передачи данных RabbitMQ, я упомянул протокол ssl.Я потратил много времени на введение использования openssl для генерации некоторых серий секретных ключей и сертификатов.Если нет соответствующей основы, это будет сложно чтобы понять.В этой статье будет кратко изложена безопасность данных.Связанные концепции и применение HTTPS в браузере.
Через введение вы узнаете:
- Основные понятия безопасности данных
- Алгоритм шифрования
- Цифровые сертификаты и центры сертификации
- Базовое введение в ssl и openssl
- https-приложение
Основные понятия безопасности данных
Если данные должны быть переданы в сети, возникнут проблемы с безопасностью, поскольку любой может получить пакеты данных, которые вы отправляете, и, таким образом, получить ваши данные, данные должны быть зашифрованы, а для отправителя данных это также может быть Проверка личности, кроме того, целостность данных также необходимо учитывать.
Подводя итог определению безопасности:
- Конфиденциальность: только вы и те, кому вы разрешили, можете видеть или понимать данные;
- Целостность: данные не были повреждены или изменены;
- Надежность: убедитесь, что сообщение отправлено другой стороной, а не фальшивомонетчиком;
Алгоритм шифрования
Шифрование является распространенным методом обеспечения безопасности данных.Существует множество готовых алгоритмов шифрования.Эти алгоритмы проверены и протестированы,и их очень сложно взломать.Поэтому вообще нет необходимости разрабатывать алгоритмы и можно использовать напрямую , Основные понятия и характеристики общих алгоритмов, не затрагивая детали реализации алгоритма.
хэш
Хэш — это алгоритм хеширования, который преобразует входные данные любой длины в выходные данные фиксированной длины с помощью алгоритма хэширования, а на выходе — хеш-значение.Распространенные хеш-алгоритмы включают MD5 и SHA.
MD5 — это алгоритм 5-го обзора сообщения, который называется алгоритмом дайджеста-сообщения 5. Он в основном используется для обеспечения целостности передачи информации.Вход представляет собой информацию переменной длины, а выход — 128-битную строку фиксированной длины.
Этот алгоритм безопасного хеширования SHA, называемый алгоритмом безопасного хеширования, и MD5, так же, как эволюционировал из MD4, MD5, и самая большая разница заключается в его дайджесте MD5, чем в длине 32 бита.
Также важно отметить, что вероятность того, что любые два документа получат одну и ту же строку, практически равна 0.
Симметричное шифрование
Шифрование заключается в преобразовании исходных данных в нечто непонятное посредством какого-либо преобразования.Для симметричного шифрования эта операция обратима.Кроме того,алгоритм шифрования не может работать в одиночку,и должна быть комбинация ключей.Ключи шифрования и дешифрования являются ключами же., в настоящее время популярными алгоритмами симметричного шифрования являются DES, AES.
DES — это стандарт шифрования данных, который называется Data Encryption Standard.Это официальный стандарт шифрования данных для неконфиденциальных данных, принятый правительством США с использованием решения, разработанного корпорацией IBM.Алгоритм DES имеет три входных параметра: ключ, Данные и режим:
- Ключ длиной 8 байт является рабочим ключом алгоритма DES;
- Данные также составляют 8 байтов, то есть данные, которые необходимо зашифровать или расшифровать;
- Режим — это рабочий метод DES: шифрование или дешифрование;
Если режим — шифрование, используйте ключ для шифрования данных и сгенерируйте зашифрованную форму данных (64 бита) в качестве результата вывода DES. Если режим — расшифровка, используйте ключ для расшифровки данных в зашифрованной форме и восстановления их в простой форме Данные (64 бита) в качестве вывода DES.
AES — это Advanced Encryption Standard, который называется Advanced Encryption Standard.Это стандарт алгоритма шифрования следующего поколения с высокой скоростью и высоким уровнем безопасности.Он может использовать 128, 192 и 256-битные ключи.
Преимущество алгоритма симметричного шифрования в том, что оно быстрое, а недостаток в том, что управление ключами неудобно и требует общего ключа.
Асимметричное шифрование
По сравнению с симметричным шифрованием, асимметричное шифрование и дешифрование — это не один и тот же ключ, один из которых называется открытым ключом, а другой — закрытым ключом. Открытый ключ общедоступен и его знают все, а закрытый ключ известен только вам.
Содержимое, зашифрованное с помощью открытого ключа, может быть расшифровано только с помощью соответствующего закрытого ключа. И наоборот, содержимое, зашифрованное с помощью закрытого ключа, может быть расшифровано только с помощью соответствующего открытого ключа.Обычно используемые алгоритмы асимметричного шифрования включают RSA и ECC.
Алгоритм RSA — это первый алгоритм, который можно использовать как для шифрования, так и для цифровой подписи, он также прост в понимании и эксплуатации и широко используется.
Преимущество алгоритма асимметричного шифрования в том, что управление ключами очень удобно, а недостаток в том, что он медленный.
цифровой подписи
Цифровая подпись в основном гарантирует надежность и не может быть подделана.Используются технологии хеширования и асимметричного шифрования, представленные ранее.
Сначала сгенерируйте хеш-строку hash1 для подписываемых данных, а затем зашифруйте ее своим закрытым ключом, чтобы зашифровать (hash1), который является цифровой подписью данных. Когда другим нужно проверить, отправлены ли данные вами, им нужно только расшифровать вашу подпись с помощью вашего открытого ключа, чтобы получить хеш1, и сравнить его с хэшем2, рассчитанным на основе данных, чтобы убедиться, что они непротиворечивы.
Для асимметричного шифрования и цифровых подписей, если вы не сталкивались с ними раньше, вы можете не понять их хорошо.Вы можете прочитать соответствующие статьи для дальнейшего понимания.При дальнейшем внедрении приложений https будет объяснен процесс применения.
Цифровые сертификаты и центры сертификации
Чтобы облегчить передачу открытого ключа и ключа, он обычно хранится в цифровом сертификате.Чтобы обеспечить надежность сертификата, он обычно выдается профессиональным центром сертификации.
Рассмотрим такой сценарий, пользователь А хочет посетить Mi.com, но из-за ошибки он написан как ni.com Предположим, что ni.com — это веб-сайт, созданный преступниками, имитирующий Mi.com, и содержащий поддельный цифровой сертификат. Если браузер Подлинность цифрового сертификата может быть проверена, и пользователю будет предложено, что сертификат является ненормальным, чтобы предотвратить потерю пользователя.
Центр сертификации является органом, выдающим сертификат. Он отвечает за выпуск сертификатов, сертификацию сертификатов и управление выданными сертификатами. Он сформулировал конкретные шаги для проверки и идентификации личности пользователя и подписания сертификата пользователя для обеспечения подлинности и открытого ключа. владельца сертификата.
Чтобы подать заявку на сертификат, вы должны сначала обратиться в ЦС. После того, как ЦС подтвердит личность заявителя, он назначит открытый ключ, а затем свяжет открытый ключ с идентификационной информацией заявителя и будет использовать закрытый ключ ЦС для подписи. Заявителю выдается свидетельство об образовании.
Если вы хотите определить подлинность сертификата, используйте открытый ключ ЦС для проверки подписи на сертификате.После прохождения проверки и в течение срока действия сертификат считается действительным.
Поэтому при настройке ssl требуется открытый ключ корневого сертификата ЦС для проверки подлинности сертификата.
Базовое введение в ssl и openssl
SSL — это протокол для обеспечения безопасной передачи данных, openssl — это инструмент, включающий в себя реализацию различных протоколов и алгоритмов.
ssl
Для обеспечения безопасности передачи данных относительно простым методом является использование асимметричного шифрования.Если обе стороны аутентифицируют цифровой сертификат друг друга, каждый раз, когда они передают данные, они будут использовать открытый ключ другой стороны для шифрования, тогда только другая сторона может ее расшифровать, тем самым обеспечив целостность информации.Безопасность. Но для повседневных приложений (таких как просмотр веб-страниц) есть две проблемы:
- Асимметричное шифрование работает медленно и потребляет ресурсы;
- Невозможно требовать от каждого пользователя подавать заявку на получение цифрового сертификата, потому что это громоздкий процесс;
SSL (Secure Sockets Layer) решает вышеуказанные проблемы с помощью протокола рукопожатия и транспортного протокола, который представляет собой протокол между транспортным уровнем (например, TCP/IP) и уровнем приложений (например, HTTP) для шифрования и подписи данных.
Он был разработан Netscape. К 1999 году SSL стал стандартом де-факто в Интернете из-за его широкого применения. В том же году IETF стандартизировала SSL, и после стандартизации название было изменено на TLS (Transport Layer Security), что называется «Безопасность транспортного уровня» на китайском языке. Безопасность транспортного уровня», поэтому их можно рассматривать как разные фазы одного и того же.
Основная идея SSL является использование асимметричного шифрования для установления ссылки (фаза рукопожатия) и использует симметричное шифрование для передачи данных (фаза передачи). Это не только обеспечивает безопасность распределения ключей, но также обеспечивает эффективность связи.
Конкретная процедура, введя приложение HTTPS, будет описано подробно.
openssl
openssl — это набор инструментов с открытым исходным кодом, который в основном включает 3 компонента:
- openssl: многоцелевой инструмент командной строки
- libcrypto: библиотека алгоритмов шифрования, в которой реализованы часто используемые алгоритмы шифрования;
- libssl: библиотека приложения модуля шифрования, реализующая протоколы ssl и tls;
Вот несколько примеров, иллюстрирующих его использование.
1. Используйте шифрование MD5
2. Генерация случайных чисел
3. Симметричное шифрование
4. Создайте пару ключей
https-приложение
Протокол HTTPS, грубо говоря, представляет собой комбинацию протокола HTTP и протокола SSL/TLS, HTTPS можно примерно понимать как: HTTP через SSL.
Https должен выполнить рукопожатие перед установкой соединения Socket.Односторонняя аутентификация отличается от двусторонней аутентификации.
Специфический процесс в сети много, я выйдутблогерСхема, иллюстрирующая процесс двусторонней аутентификации:
В следующей статье мы поговорим о производительности и безопасности RabbitMQ.
Добро пожаловать, чтобы отсканировать QR-код ниже, обратите внимание на мою личную общедоступную учетную запись WeChat и просмотрите другие статьи ~