19. Системные знания – цифровой сертификат

Концепции, связанные с криптографией


Обычный текст: сообщение, которое может быть понято отправителем, получателем и любым другим лицом, имеющим доступ к сообщению.
Зашифрованный текст: после того, как простое текстовое сообщение закодировано определенным образом, получается зашифрованное текстовое сообщение.
Шифрование: Преобразование обычных текстовых сообщений в зашифрованные текстовые сообщения.
Расшифровка: Преобразование зашифрованных сообщений в сообщения открытого текста.
Алгоритм: возьмите входной текст и создайте выходной текст.
Алгоритм шифрования: Алгоритм, используемый отправителем для шифрования.
Алгоритм дешифрования: Алгоритм, используемый получателем для дешифрования.
Ключ: сообщение
, которое есть только у отправителя и получателя Криптография с симметричным ключом: один и тот же ключ используется для шифрования и дешифрования.
Криптография с асимметричным ключом: для шифрования и дешифрования используются разные ключи, разделенные на открытые ключи и закрытые ключи.

Криптография с асимметричным ключом: для шифрования и дешифрования используются разные ключи, разделенные на

алгоритм симметричного шифрования с открытым ключом и закрытым ключом.


• В алгоритме симметричного шифрования ключ, используемый для шифрования, и ключ, используемый для дешифрования, одинаковы, и один и тот же ключ используется как для шифрования, так и для дешифрования.
• Обе взаимодействующие стороны используют один и тот же ключ для шифрования и дешифрования содержимого сеанса, то есть часть содержимого, подлежащая шифрованию, будет иметь тот же
результат, что и оригинал, после двойного симметричного шифрования с использованием одного и того же ключа.
• Например:
В соответствии со свойством XOR:
(A ⊕ B) ⊕ B = AA
, получается следующий метод шифрования, где C — зашифрованный текст, P — открытый текст, K — константа, согласованная обеими сторонами, и соответствующий Тогда метод дешифрования
C = P ⊕ KK P = C ⊕ KK . Это простой алгоритм алгоритма с симметричным ключом, в котором операция XOR представляет собой симметричный алгоритм шифрования и дешифрования, а K является ключом.


асимметричный алгоритм шифрования


• Ключи алгоритма асимметричного шифрования и дешифрования появляются парами.Зашифрованный текст, зашифрованный открытым ключом, может быть расшифрован только соответствующим закрытым ключом; зашифрованный текст, подписанный закрытым ключом, может быть
проверен соответствующим открытым ключом. В принципе, приватные ключи не могут передаваться по сети.
• Когда две стороны общаются, они должны сначала передать открытый ключ в паре ключей другой стороне. Этот ключ может передаваться по незащищенному каналу; при передаче данных они должны сначала
использовать свой собственный ключ для шифрования, а другая сторона Расшифровать можно только с помощью переданного вами ключа.
• Например:
где C представляет зашифрованный текст, P представляет собой открытый текст, x — открытый ключ, y — закрытый ключ,
и если предположить, что xy = 1, существует более низкий метод шифрования и дешифрования.

 


Крипто-мини-игра – Раунд 1


«Сяо Кэ» -> «Сяо Фу»: Привет
«Сяо Фу» -> «Ся Кэ»: Здравствуйте, я Сяо Фу.
Поскольку сообщения передаются в Интернете, кто-то может притвориться «Сяо Фу». Отправить сообщение к Сяоке. Таким образом, произойдет следующая ситуация:
«Сяоке» -> «Хакер»: Привет // Хакер перехватывает сообщение, отправленное «Сяоке» Сяофу на маршрутизаторе между
сообщениями «Сяоке» и «Сяофу», а затем притворяется « Сяофу»
«Хакер» -> «Сяоке»: Здравствуйте, я Сяофу
«Сяоке». После получения сообщения я не был уверен, что сообщение было отправлено «Сяофу». Некоторые «хакеры» также могут притворяться «маленькими». серверы» и отправьте
это сообщение.
Так как же подтвердить, что информацию отправил «Сяофу»? 

Крипто-мини-игра – Раунд 2

«Сяо Кэ» -> «Сяо Фу»: Привет
«Сяо Фу» -> «Сяо Кэ»: Привет, я Сяо Фу
«Сяо Кэ» -> «Сяо Фу»: Докажи мне, что ты Сяо Фу
" " Сяофу"->"Сяоке": Привет, я Сяофу {Привет, я Сяофу}[Закрытый ключ|RSA]
//{Привет, я Сяофу}[Закрытый ключ|RSA] означает результат шифрования "Привет, я am Xiaofu» с закрытым ключом.
Чтобы доказать «Сяо Кэ», что он «Сяо Фу», «Сяо Фу» шифрует строку своим собственным секретным ключом, а затем отправляет открытый текст + зашифрованный зашифрованный текст
«Сяо Кэ».
После получения сообщения «Сяо Кэ» использует открытый ключ, который у него есть, для расшифровки содержимого {Привет, я Сяофу}[закрытый ключ|RSA] с открытым ключом, а затем объединяет расшифрованный контент
с «Привет, я Сяофу». " сравнение.
Поскольку контент, зашифрованный «Сяофу» с помощью закрытого ключа, может быть расшифрован только с помощью открытого ключа, а закрытый ключ хранится только в «Сяофу», поэтому, если расшифрованный контент
может быть сопоставлен это означает, что информация должна быть отправлена. из «Сяофу».

Крипто-мини-игра – Раунд 3

«Сяо Кэ» -> «Сяо Фу»: Привет
«Сяо Фу» -> «Сяо Кэ»: Привет, я Сяо Фу
«Сяо Кэ» -> «Сяо Фу»: Докажи мне, что ты Сяо Фу
" " Сяоке"->"Сяоке": Здравствуйте, я Сяофу {Привет, я Сяофу}[Закрытый ключ|RSA]
"Сяоке"->"Сяоке": {Номер моей учетной записи — aaa, Пароль — 123, пришлите мне мой информация о балансе} [Открытый ключ|RSA]
«Сяофу» -> «Сяоке»: {Ваш баланс составляет 100 юаней}[Закрытый ключ|RSA]
Обратите внимание на приведенную выше информацию {ваш баланс составляет 100 юаней}[закрытый ключ|RSA] ], это контент, зашифрованный «маленьким сервером» с помощью закрытого ключа.
Как мы уже говорили, открытый ключ публикуется, поэтому его знают все. Таким образом, помимо «Сяо Кэ», другие люди также могут использовать открытый ключ для
расшифровки {ваш баланс составляет 100 юаней}[закрытый ключ|RSA]. Поэтому эту информацию нельзя сохранить конфиденциальной;
в реальных процессах приложения эта проблема обычно решается путем введения симметричного шифрования. См. следующую демонстрацию:

Крипто-мини-игра, раунд 4

«Сяо Кэ» -> «Сяо Фу»: Привет
«Сяо Фу» -> «Сяо Кэ»: Привет, я Сяо Фу
«Сяо Кэ» -> «Сяо Фу»: Докажи мне, что ты Сяо Фу
" " Сяофу"->"Сяофу": Здравствуйте, я Сяофу {Привет, я Сяофу}[Закрытый ключ|RSA]
"Сяоке"->"Сяофу": {Наш последующий процесс связи: используйте симметричное шифрование. Вот симметричное шифрование алгоритм и ключ} [Открытый ключ | RSA] //
Часть, выделенная красным шрифтом, представляет собой конкретное содержимое алгоритма и ключа симметричного шифрования. Клиент отправляет их в службу поддержки клиентов.
"Сяофу"->"Сяоке": {ОК, получено! }[Ключ|Алгоритм симметричного шифрования]
«Сяоке» -> «Сяофу»: {Номер моего счета — aaa, пароль — 123, пришлите мне информацию о моем балансе}[Ключ|Алгоритм симметричного шифрования ]
«Сяофу» -> «Сяоке»: {Ваш баланс составляет 100 юаней} [Ключ | Алгоритм симметричного шифрования]
После того, как «Сяофу» подтвердит личность «Сяофу», «Сяоке» сам выбирает один из них. Алгоритм симметричного шифрования и ключ шифруются
открытым ключом и отправляются на «маленький сервер».
Алгоритм и ключ симметричного шифрования зашифрованы открытым ключом, поэтому даже если зашифрованный контент будет перехвачен «хакером», поскольку закрытого ключа нет, «хакер»
не сможет алгоритма симметричного шифрования. и ключ Это может Гарантируется, что только сервер может знать алгоритм и ключ симметричного шифрования. «Сяофу» и «Сяоке» могут
использовать симметричные алгоритмы шифрования и ключи для шифрования содержимого сообщения.

Криптоигры – проблемы наследия

«Сяофу» хочет передать открытый ключ внешнему миру, так как же «Сяофу» отправит открытый ключ «Сяогу»? Мы можем придумать два следующих метода:
а) поместить открытый ключ по адресу загрузки где-нибудь в Интернете и заранее передать его «Сяо Кэ» для загрузки;
б) каждый раз, когда он начинает общаться с «Сяо Кэ», «Сяо Кэ» «Отправьте открытый ключ в «Сяоке»
. Однако оба метода имеют определенные проблемы:
для метода а) «Сяоке» не может определить, опубликован ли адрес загрузки «Сяоке»; кроме того, все «Сяоке»
Необходимо также, чтобы все клиенты не могли .
С методом б) также есть проблема, потому что любой может самостоятельно сгенерировать пару открытого и закрытого ключей, и он может прикинуться «маленьким сервером», отправив свой собственный открытый ключ «маленькому гостю»
.

концепция сертификата

• Цифровой сертификат («цифровой сертификат» или «сертификат открытого ключа») относится к цифровому сертификату, который отмечает идентификационную информацию взаимодействующих сторон при общении через Интернет. Он используется для идентификации личности другой стороны в Интернете. По сути, это электронный документ, функция которого состоит в том, чтобы доказать, что что-то действительно является таким-то и таким-то.
• CA (Центр сертификации) также называется «Центр сертификации». Авторитетная организация, ответственная за выдачу цифровых сертификатов и управление ими. Вообще говоря, центр сертификации должен пользоваться доверием и признанием всех отраслей и общественности, поэтому он должен быть достаточно авторитетным.

Классификация сертификатов

Классификация по держателю:
• Персональный сертификат: Сертификат, выданный физическому лицу центром ЦС, который представляет только личность. Сертификат содержит личную информацию и личный открытый ключ.
• Сертификат организации: Сертификат, выданный центром ЦС организации, представляет собой удостоверение организации и содержит информацию об организации и открытый ключ подразделения.
• Системный сертификат: сертификат, выданный центром сертификации прикладной системе или устройству, представляющий удостоверение системы и содержащий системную информацию и открытый ключ системы.
Классификация по использованию сертификата:
• Сертификат подписи: Сертификат подписи можно использовать только для подписи и проверки подписей.Для безопасности ключа пара ключей обычно генерируется и сохраняется в небольшом клиенте.
• Сертификат шифрования: Сертификат шифрования может использоваться только для шифрования, при котором пара ключей генерируется центром сертификации и отправляется пользователю для хранения с помощью алгоритма и протокола защиты. В то же время центр сертификации также
сохраняет пару ключей. для управления и восстановления.

Формат сертификата

Сертификаты доступны в форматах кодировки PEM и DER. PEM сохраняется с использованием символов в кодировке Base64, а формат DER сохраняется в двоичном формате.
Сертификат содержит открытый ключ и закрытый ключ, соответствующий открытому и закрытому ключам, используемым в алгоритмах асимметричного шифрования. Обычно суффикс .crt используется для идентификации открытого ключа, а суффикс .key — для идентификации закрытого ключа.
Существует также способ сохранить вместе открытый и закрытый ключи с суффиксом, обычно .pfx (используется Microsoft) или .p12.

Содержание сертификата

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

Цепочка доверия сертификатов


CA (центр сертификации): аббревиатура центра аутентификации цифровых сертификатов.
Корневой центр сертификации: находится на вершине цепочки доверия, а его открытый ключ сертификата импортируется в различные операционные
системы по умолчанию. Промежуточный центр сертификации в системах и браузерах
: в середине Цепочка доверия, корневой ЦС или другие промежуточные ЦС. Выданный сертификат
также может продолжать выдавать субсертификаты.
Индивидуальный: в конце цепочки доверия сертификаты, выданные промежуточным ЦС или корневым ЦС. 

Доверительные отношения между сертификатами могут быть вложенными.
Например, C доверяет A1, A1 доверяет A2, A2
доверяет A3... Это называется цепочкой доверия сертификатов.
Пока вы доверяете первому сертификату в цепочке,
всем последующим сертификатам можно доверять.

 

Список отзыва сертификатов

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

Как работают сертификаты 

В процессе отправки открытого ключа «Сяо Кэ» «Сяо Фу» будет использовать открытый ключ и
личную информацию Сяо Фу для создания дайджеста сообщения с помощью алгоритма хеширования;
чтобы предотвратить обмен дайджестом, «Сяо Фу» «Фу» также будет использовать ЦС для предоставления. Закрытый
ключ шифрует дайджест сообщения для формирования цифровой подписи;
и, наконец, исходную информацию перед тем, как алгоритм хеширования объединяется
с цифровой подписью для формирования цифрового сертификата.

Когда «Сяо Кэ» получит цифровой сертификат, он будет использовать открытый ключ, предоставленный центром сертификации, для расшифровки цифровой подписи в цифровом сертификате и получения дайджеста сообщения, а затем использовать открытый ключ «Сяо Фу» и личную информацию в цифровой сертификат. Хэшируйте, чтобы получить еще одну сводку сообщения, а затем сравните две сводки сообщений. Если они одинаковы, это доказывает, что эти вещи действительно являются «маленькими серверами», в противном случае это не так. 

Концепция SSL


SSL (Secure Sockets Layer) основан на уровне шифрования протокола HTTPS. Он построен на надежном протоколе передачи (например, TCP) и обеспечивает базовые функции, такие как инкапсуляция, сжатие и шифрование данных для протоколов высокого уровня. Протокол SSL разделен на следующие два уровня:
Роль уровня протокола записи SSL заключается в обеспечении базовых служб безопасности для протоколов высокого уровня. Протокол записи SSL специально разработан для протокола HTTP, чтобы протокол передачи гипертекста HTTP мог работать на SSL. Записывайте и инкапсулируйте различные протоколы высокого уровня, а также конкретно реализуйте операции, связанные с безопасностью, такие как сжатие и распаковка, шифрование и дешифрование, вычисление и проверка MAC.
Уровень протокола SSL-квитирования включает в себя протокол SSL HandShake, протокол изменения шифра SSL
, протокол данных приложения и протокол оповещений SSL
. Эти протоколы на уровне квитирования используются для обмена информацией управления SSL, позволяя протоколам приложений
аутентифицировать друг друга перед передачей данных, согласовывать алгоритмы шифрования, генерировать ключи и т. д. Функция протокола установления связи SSL заключается в координации статуса гостя и сервера, чтобы обе стороны могли добиться синхронизации статуса. 

Односторонняя аутентификация SSL

Процесс аутентификации клиента на сервере

Двусторонняя аутентификация SSL

 Процесс взаимной аутентификации между клиентом и сервером

 

Guess you like

Origin blog.csdn.net/weixin_49765221/article/details/124254769