Раздел 2. Практика выполнения функций оплаты проекта. Подробное объяснение информационной безопасности, безопасности платежей и безопасности интерфейса.

Концепция информационной безопасности

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

Информационная безопасность включает в себя 5 основных элементов

(1) Конфиденциальность: гарантируйте, что информация не будет передана неавторизованным лицам или процессам.
(2) Целостность: только люди с разрешением могут изменять данные и определять, были ли они изменены.
(3) Доступность: авторизованные лица могут получить доступ к данным, когда это необходимо, то есть злоумышленники не могут захватить все ресурсы и помешать работе авторизатора.
(4) Управляемость: информационный поток и поведение в пределах разрешенной области действия можно контролировать.
(5) Возможность проверки: Обеспечить основу и средства для расследования возникающих проблем информационной безопасности.
В сферу информационной безопасности входят: безопасность оборудования, безопасность данных, безопасность контента и поведенческая безопасность.

Основываясь на пяти вышеупомянутых элементах, мы знаем, что наша конечная цель — защитить безопасность данных от фальсификации и незаконного доступа. Подводя итог, можно выделить следующие моменты:

(1) Контроль доступа. Убедитесь, что другой участник разговора (человек или компьютер) имеет полномочия делать то, что он утверждает.
(2) Сертификация. Убедитесь, что ресурс (человек или компьютер) на другой стороне разговора соответствует заявленному.
(3) Полнота. Убедитесь, что полученная информация соответствует отправленной.
(4)Аудит. Обеспечение того, чтобы любая произошедшая транзакция могла быть проверена впоследствии, и что и отправитель, и получатель считали, что обмен произошел, является так называемой неотказуемость.
(5) Конфиденциальность. Обеспечьте защиту конфиденциальной информации от прослушивания.

Техническая система информационной безопасности

Для достижения цели мер безопасности в главе «Безопасность системного архитектора» представлена ​​полная техническая система, а именно: с точки зрения технологии реализации система информационной безопасности включает в себя базовое оборудование безопасности, безопасность компьютерной сети, безопасность операционной системы, безопасность баз данных, безопасность терминального оборудования и другие многогранные технологии.
(1) В дополнение к технологиям защиты физической среды, применяемым для обеспечения физической безопасности, базовое оборудование безопасности включает в себя чипы паролей, карты шифрования, удостоверения личности и т. д. Состояние здания, компьютерного зала и аппаратного оборудования соответствует требованиям механической защиты информационной системы. Благодаря выборочным мерам по защите от электромагнитных помех и электромагнитных утечек оборудования электропитания и компонентов информационной системы достигаются соответствующие цели безопасности.
(2) Безопасность компьютерной сети – это меры безопасности информации во время передачи по сети, которые используются для предотвращения и мониторинга несанкционированного уничтожения, изменения и кражи данных. Обычно это включает в себя физическую изоляцию, брандмауэр и контроль доступа, зашифрованную передачу, аутентификацию, цифровую подпись, дайджест, технологию туннелирования и VPN, предотвращение вирусов и управление поведением в Интернете, аудит безопасности и другие технологии реализации.
(3) Безопасность операционной системы означает, что операционная система не имеет ошибок в конфигурации, лазеек, бэкдоров, троянских коней и т. д., что может предотвратить несанкционированный доступ пользователей к компьютерным ресурсам и обычно используется для выражения требований безопасности для операционная система. Механизм безопасности операционной системы включает в себя механизм идентификации и аутентификации, механизм контроля доступа, управление наименьшими привилегиями, механизм доверенного пути, механизм обеспечения работы, механизм защиты хранилища, механизм защиты файлов, механизм аудита безопасности и т. д.
(4) Безопасность базы данных можно грубо разделить на две части: безопасность системы управления базой данных и безопасность прикладной системы базы данных, которые в основном включают целостность физической базы данных, целостность логической базы данных, безопасность элементов, возможность аудита, контроль доступа, аутентификацию личности. , Доступность, контроль вывода, многоуровневая защита, устранение скрытых каналов и другие сопутствующие технологии.
(5) Терминальное оборудование безопасности подразделяется на телефонные шифровальные машины, факсимильные шифровальные машины, асинхронные шифровальные машины и т. д. с точки зрения терминального оборудования телекоммуникационной сети.

В приведенной выше системе мы уделяем больше внимания пунктам (2) и (4) с точки зрения чистого кода.

Шифрование и дешифрование и цифровые сертификаты

Технология шифрования имеет долгую историю.С момента передачи и хранения информации в древние времена использовалась технология шифрования. С тех пор в течение длительного времени технологии шифрования и дешифрования широко использовались в специальных областях, таких как военная промышленность, политика, дипломатия и финансы.После длительного периода исследований и разработок сформировалась относительно законченная дисциплина - криптография.

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

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

Симметричное шифрование

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

Обычно используемые алгоритмы симметричного шифрования: DES и IDEA.

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

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

Например, если в системе n пользователей и между каждыми двумя пользователями необходимо установить криптографическую связь, то каждый пользователь в системе должен владеть (n-1)/2 ключами, а общее количество ключей, необходимых в система равна n*(n-1)/2. Для 10 пользователей каждый пользователь должен иметь 9 ключей, всего в системе 45 ключей. Для 100 пользователей каждый пользователь должен иметь 99 ключей, всего в системе 4950 ключей. Здесь рассматривается только ситуация, когда для связи между пользователями используется только один сеансовый ключ.Если в разных сеансах потребуется изменить разные ключи, общее количество ключей будет еще больше. Генерация, управление и распространение такого большого количества ключей является неразрешимой проблемой.

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

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

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

Существует множество алгоритмов шифрования с асимметричным ключом, таких как RSA, рюкзачный шифр, МакЭлис, Диффе Хеллман, Рабин, Онг Фиат Шамир, алгоритм доказательства с нулевым разглашением, эллиптическая кривая, EIGamal и т. д. Наиболее часто используемый алгоритм асимметричного шифрования — RSA.

Ключ шифрования и ключ дешифрования, используемые в алгоритмах асимметричного шифрования, различны и называются алгоритмами без общего ключа или алгоритмами с асимметричным ключом. В 1976 году Дайм и Хеллман из Стэнфордского университета предложили алгоритм шифрования с открытым ключом, который использует разные ключи для шифрования и дешифрования. Пусть P — открытый текст, C — зашифрованный текст, E — общедоступный алгоритм шифрования, а D — алгоритм дешифрования, управляемый секретным ключом.Эти параметры удовлетворяют следующим трем условиям:
(1) D (E §) = П.
(2) D не может быть получено из E.
(3) Атака с использованием выбранного открытого текста (выбор любой пары открытый текст-зашифрованный текст для определения неизвестного секрета) не может взломать E. Рассчитайте C=E§ при шифровании и P=D© при расшифровке. Шифрование и дешифрование являются взаимными. Использование открытого шифрования и расшифровки с закрытым ключом может обеспечить конфиденциальную связь; использование шифрования с закрытым ключом и расшифровки с открытым ключом может обеспечить цифровые подписи.

Ключевой менеджмент

В прошлом люди всегда полагались на сохранение в секрете алгоритмов шифрования и ключей, чтобы повысить надежность и эффективность конфиденциальности. С развитием современной криптографии большинство алгоритмов шифрования стали общедоступными. Некоторые типичные алгоритмы (такие как DES, IDEA, RSA и т. д.) стали международными стандартами и получили широкое признание. Люди могут получить подробную информацию об алгоритмах разными способами, и уже существует множество программных и аппаратных устройств, использующих эти алгоритмы.

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

Распределение и управление симметричными ключами

Распределение ключей обычно необходимо для решения двух задач: одна — внедрить механизм автоматического распределения ключей для повышения эффективности системы; другая — максимально сократить количество ключей, находящихся в системе. Эти две проблемы также могут быть решены одновременно. Так как же разумно распределить ключи? Два пользователя A и B могут получить общий ключ четырьмя способами:
(1) Ключ, выбранный A, отправляется другой стороне B физическими средствами.
(2) Третья сторона выбирает секрет и отправляет его А и Б соответственно физическими средствами.
(3) A и B заранее уже имеют секретный ключ. После того, как одна сторона выбирает новый ключ, она шифрует новый ключ с помощью существующего ключа и отправляет его
другой стороне.
(4) У каждой из трех сторон A, B и C есть секретный канал. После того, как C выбирает секрет, он отправляет его через соответствующие секретные каналы A и B. Первые два метода называются ручной передачей. Если всем N пользователям в сети требуется поддержка служб шифрования, любой паре пользователей, которые хотят общаться, нужен общий ключ, в результате чего количество ключей достигает N (N-1) 2. В третьем методе, получив один ключ, злоумышленник может получить и все последующие ключи, что создает скрытую угрозу безопасности. Общим недостатком этих трех методов является то, что когда N велико, стоимость распространения ключей также становится очень большой. Однако эта технология бесцентрового управления ключами очень полезна в локальном масштабе всей сети. Как показано на рисунке 4-3, N представляет собой случайное число.
Вставьте сюда описание изображения

Четвертый метод используется чаще. Третья сторона C — это KDC, который распределяет ключи пользователям. Каждый пользователь и KDC имеют общий ключ, то есть главный ключ. Затем каждой паре сеансовых ключей пользователя назначается главный ключ для конфиденциального общения между пользователями. Сеансовый ключ уничтожается сразу после завершения связи. Хотя количество сеансовых ключей в этом методе составляет N(N-1)/2, количество главных ключей составляет только N(N-1)/2, которые можно отправить физическими средствами. Как показано на рисунке 4-4, N представляет собой случайное число, а Ks представляет сеансовый ключ.
Вставьте сюда описание изображения
Итак, что такое КДК? Его полное название (Центр распространения ключей, Центр распространения ключей) — это очень эффективная схема автоматического распределения ключей. В схеме KDC каждый пользователь сохраняет только свой собственный закрытый ключ SK и открытый ключ PKKDC KDC, а во время связи он получает открытые ключи других пользователей PK или симметричные ключи, которые можно использовать только при определенном общении через KDC. K алгоритма шифрования. Предположим, что есть два пользователя A и B, оба зарегистрированные пользователи KDC. У них есть закрытые ключи SKA и SKB соответственно, а соответствующие открытые ключи — PKA и PKB соответственно. Теперь А хочет поговорить с Б. Если для шифрования этого разговора используется алгоритм шифрования с симметричным ключом, процесс распределения ключей показан на рисунке 16-2.
Вставьте сюда описание изображения
Сначала пользователь А отправляет в KDC запрос SKA(A, B), зашифрованный его собственным секретным ключом SKA, указывая, что он хочет поговорить с B.

После того, как KDC получает этот запрос, он генерирует ключ K симметричного криптографического алгоритма на основе определенного алгоритма, который может использоваться для секретных переговоров между A и B, а затем возвращает ответ PK(K, PKB(A, K)) A. Это ответное сообщение зашифровано открытым ключом PKA А. Конечно, только пользователь А может правильно интерпретировать его и извлечь ключ K сеанса с B.

В то же время существует также часть информации PKB (A, K), указывающая, что пользователь A хочет поговорить с B, и ключ K, который зашифрован открытым ключом B PKB. Пользователь А отправляет эту часть информации Б, а Б расшифровывает сеансовый ключ после его получения.

На этом процесс автоматического распределения ключей завершен. После этого обе стороны A и B могут использовать ключ K для осуществления зашифрованной связи.

Управление ключами системы шифрования с открытым ключом

Ключевые методы управления включают следующие четыре формы:

1. Публичный выпуск.
Публичный выпуск означает, что пользователь отправляет свой открытый ключ каждому другому пользователю или передает его определенной группе. Например: PGP (PrettyGood Privacy) использует алгоритм RSA. Многие пользователи могут прикреплять свои открытые ключи к сообщениям и отправлять их в общий доступ. Хотя этот метод прост, у него есть очень большой недостаток: любой может подделать пароль. ключ публикуется. Если пользователь выдает себя за пользователя А и отправляет или передает свой открытый ключ другому пользователю от имени А, прежде чем А обнаружит самозванца, тот сможет расшифровать все зашифрованные сообщения, отправленные А, и даже получить аутентификацию с помощью поддельного ключа.

2. Таблица общедоступного каталога
Таблица общедоступного каталога относится к динамической таблице каталога открытого открытого ключа, а доверенный объект или организация (администратор общего каталога) несет ответственность за создание и поддержание таблицы открытого каталога и распространение открытых ключей. . Администратор создает каталог для каждого пользователя в таблице каталогов, который включает в себя два элемента данных: имя пользователя и открытый ключ пользователя, а также регулярно публикует и обновляет таблицу каталогов. Каждый пользователь регистрирует свой открытый ключ у администратора лично или посредством защищенной аутентификации, имеет доступ к каталогу в электронном виде и может заменить ключ на новый в любое время. Однако, как только злоумышленник получит секретный ключ администратора этого общедоступного каталога, он также столкнется с риском подделки.

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

4. Сертификат открытого ключа.
Сертификат открытого ключа может в определенной степени решить некоторые недостатки вышеупомянутых стратегий. Сертификат открытого ключа устанавливается для пользователя центром сертификации CA (Центр сертификации).Элементы данных включают в себя открытый ключ, соответствующий секрету пользователя, личность пользователя, метку времени и т. д. Все элементы данных утверждаются центром сертификации с использованием его сертификата открытого ключа. собственный После подписи секретным ключом формируется сертификат, то есть сертификат имеет вид CA-ESKcA[T, IDA, PKA]. T — текущая временная метка, IDA — идентификатор пользователя A, PKA — открытый ключ A, SKca — секретный ключ CA, а CA — сертификат, созданный пользователем A. Пользователь отправляет свой открытый ключ другому пользователю через сертификат открытого ключа, и получатель может использовать открытый PKa ЦС для проверки сертификата. Таким образом, обмен открытыми ключами между пользователями осуществляется посредством сертификатов без необходимости обращения в агентство по управлению открытыми ключами, что позволяет избежать неудобств и рисков безопасности, вызванных единым управлением агентства.

Из четырех вышеперечисленных форм четвертый способ является лучшим.Так что же такое цифровой сертификат?

Что такое цифровой сертификат?

Цифровые сертификаты предоставляют механизм установления связи между открытым ключом и объектом, которому принадлежит соответствующий закрытый ключ. В настоящее время наиболее часто используемый формат цифровых сертификатов определяется международным стандартом ITU-T X.509 v3.
В цифровых сертификатах используется система открытых ключей, то есть пара совпадающих ключей используется для шифрования и дешифрования. Каждый пользователь сохраняет свой закрытый ключ и использует его для расшифровки и подписи; он также устанавливает открытый ключ, который публикуется им самим и используется группой пользователей для шифрования и проверки подписи.

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

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

инфраструктура открытых ключей

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

В PKI существует три типа объектов: объекты управления, конечные объекты и хранилища сертификатов . Объект управления — это ядро ​​PKI и поставщик услуг PKI; конечный объект — пользователь PKI и пользователь услуг PKI; библиотека сертификатов — это распределенная база данных, используемая для хранения и поиска сертификатов и CRL.

CA и орган регистрации (RA) — это два типа объектов управления. Центр сертификации является единственным объектом в структуре PKI, который может выдавать и отзывать сертификаты, а также поддерживает жизненный цикл сертификата; центр сертификации отвечает за обработку запросов пользователей и после проверки действительности запроса отправляет его в центр сертификации имени пользователя. RA может быть реализован отдельно или объединен в CA. В качестве объектов управления CA и RA предоставляют услуги распределения открытых ключей конечным объектам в форме сертификатов.

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

Хранилище сертификатов может быть реализовано с использованием Интернета, хранилища файловых серверов (FTP, FSTDFS, miniIO и т. д.) или каталога. Поскольку объектами, доступ к которым осуществляется в хранилище сертификатов, являются сертификаты и CRL, их целостность гарантируется цифровыми подписями, поэтому операции в хранилище сертификатов могут передаваться по каналам без специальной защиты безопасности.

Среду PKI можно разделить на три уровня. Самый нижний уровень — транспортный уровень , который обеспечивает надежную передачу сообщений PKI вверх. Это может быть протокол транспортного уровня или протокол прикладного уровня. Средний уровень — это уровень службы криптографии , который предоставляет базовые службы криптографии, такие как шифрование, дешифрование, цифровые подписи и дайджесты сообщений. Он может быть реализован с помощью таких методов, как RSA и MD5. Самый высокий уровень — это уровень службы сертификатов , который использует службы шифрования и передачи, предоставляемые двумя предыдущими уровнями, для предоставления пользователям таких услуг, как запрос сертификата, выдача, выпуск, отзыв и обновление.

Цифровой сертификат X.509: стандарт X.509, разработанный ISO/ITU, ANSI, IETF и другими организациями, конкретно определяет формат цифровых сертификатов. Этот стандарт разработан для обеспечения совместимости между системами, использующими цифровые сертификаты. Теоретически сертификат X.509, созданный для одного приложения, может использоваться в любом другом приложении, соответствующем стандарту X.509. Элементы данных, которые он содержит:
① Номер версии. Используется для различения разных номеров версий X.509.
②Серийный номер. Центр сертификации присваивает каждому сертификату уникальный цифровой номер, а серийный номер каждого сертификата, выданного одним и тем же центром сертификации, уникален.
③Идентификатор алгоритма подписи. Используется для указания алгоритма открытого ключа и алгоритма HASH, используемых центром сертификации при выдаче сертификатов, и должен быть зарегистрирован в Международной организации по стандартизации.
④Название эмитента. Имя центра сертификации, создавшего и подписавшего сертификат.
⑤Срок действия. Срок действия сертификата включает две даты: дату вступления сертификата в силу, а также дату и время истечения срока действия сертификата. Действительно между двумя указанными моментами времени.
⑥Имя субъекта. Имя владельца сертификата, место оказания услуги и другая информация.
⑦Информация об открытом ключе субъекта. Включает открытый ключ субъекта, идентификатор алгоритма, использующего этот открытый ключ, и соответствующие параметры.
⑧Уникальный идентификатор эмитента. Этот элемент данных является необязательным и используется для уникальной идентификации эмитента, когда имя ЦС повторно используется для другого объекта.
⑨Уникальный идентификатор субъекта. Этот элемент данных также является необязательным и используется для уникальной идентификации субъекта, когда его имя повторно используется для другого объекта.
⑩Расширить домен. Включает один или несколько расширенных элементов данных.
⑪Подпись. Центр сертификации использует свой собственный закрытый ключ для цифровой подписи хеш-значения каждого из вышеуказанных элементов данных.

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

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

Предполагая, что пользователи A и B завершили публичный обмен, систему шифрования с открытым ключом можно использовать для создания общего сеансового ключа в соответствии со следующими шагами:
(1) A будет использовать идентификатор IDA, полученный путем публичного добавления B и уникального идентификатор для этого бизнеса. Одноразовое случайное число N отправляется B.
(2) Если A определяет, что другой стороной является B, то B использует общедоступное шифрование N A и еще одно вновь сгенерированное случайное число N, поскольку только B может расшифровать шифрование в D.
(3) А использует общедоступную PKB B для шифрования N и возвращает его B, чтобы B мог поверить, что другая сторона действительно является A.
(4) A отправляет M=EpxB[ESKA[K]] B, где K — секрет сеанса. Открытое шифрование B используется для того, чтобы гарантировать, что только B может интерпретировать результат шифрования. Секретное шифрование A используется для того, чтобы гарантировать, что только B может интерпретировать результат шифрования.A может быть отправлено.
(5) B восстанавливает сеансовый ключ с помощью DpxA[DsKR[M].
Конфиденциальность и аутентификация этого процесса распространения очень надежны, что может предотвратить как пассивные, так и активные атаки.

Если объяснить этот отрывок простым языком, что означает шифрование с открытым ключом путем распределения ключа одноключевой криптосистемы? Приведем случай для иллюстрации.

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

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

  1. Сяо Мин и Сяо Хун генерируют по паре открытого и закрытого ключей, например, используя алгоритм RSA. Открытый ключ является общедоступным и может быть передан кому угодно, тогда как закрытый ключ является конфиденциальным и может использоваться только вами.
  2. Сяо Мин отправляет свой открытый ключ Сяо Хун, а Сяо Хун отправляет свой открытый ключ Сяо Мин. Таким образом, они могут шифровать сообщения друг друга, используя открытые ключи друг друга.
  3. Сяо Мин случайным образом генерирует симметричный ключ, например, используя алгоритм AES. Этот симметричный ключ является сеансовым ключом для их связи и используется для шифрования и дешифрования их сообщений.
  4. Сяо Мин использует открытый ключ Сяо Хуна для шифрования симметричного ключа, а затем отправляет зашифрованный результат Сяо Хуну. Таким образом, только Сяохун может использовать свой собственный секретный ключ для расшифровки и получения симметричного ключа.
  5. Сяохун использует свой закрытый ключ для расшифровки сообщения, отправленного Сяомин, и получает симметричный ключ. Затем она использует этот симметричный ключ для шифрования своего сообщения, например «Получено, не опаздывайте», а затем отправляет его Сяо Мину.
  6. Сяо Мин использует симметричный ключ для расшифровки сообщения, отправленного Сяо Хуном, и получает простой текст. Затем он также использует симметричный ключ для шифрования своего ответа, например: «Хорошо, я буду вовремя», а затем отправляет его Сяохуну.
  7. Сяохун использует симметричный ключ для расшифровки ответа, отправленного Сяомином, и получает открытый текст. Затем они могут приступить к шифрованию и дешифрованию своих сообщений с использованием симметричного ключа.

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

цифровая подпись

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

Только при достижении вышеперечисленных пунктов система передачи и хранения информации может быть безопасной и надежной, а передаваемая и хранимая в ней информация – достоверной и достоверной.

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

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

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

Уже существует большое количество алгоритмов цифровой подписи, таких как алгоритм цифровой подписи RSA, EI Gamal, Fiat-Shamir, Guillon-Oucsquerrter, DSS (стандарт цифровой подписи, стандарт цифровой подписи), DSA (алгоритм цифровой подписи, алгоритм цифровой подписи). , эллиптические кривые и т. д.

Условия цифровой подписи

Подобно рукописным подписям людей, система цифровой подписи предоставляет услуги обеим общающимся сторонам, позволяя A отправлять подписанное сообщение P B, чтобы достичь следующих целей:
(1) B может проверить, что сообщение P действительно исходит от A. .
(2) А не может отказаться от отправки Р в будущем.
(3) B не может сфабриковать или изменить сообщение P.

Пригодная к использованию цифровая подпись должна обеспечивать следующие условия:

(1) 签名是可信的. Подпись убеждает получателя документа в том, что подписавший тщательно подписал документ
(2) 签名不可伪造. Подпись доказывает, что документ тщательно подписал именно подписавший, а не кто-либо другой.
(3) 签名不可重用. Подпись является частью документа, и преступники не могут переместить ее в другой документ
(4) 签名的文件是不可改变的. После подписания документа его нельзя изменить. (5) Подпись является неоспоримой. Подписи и документы — это физические вещи. Подписавшийся не может впоследствии заявить, что он не подписывал. В реальной жизни ни одно из этих свойств подписей не является полностью верным. Подписи можно подделать, подписи можно украсть из статьи и перенести в другую статью, а документы можно изменить после их подписания. Выполнение подобных действий на компьютере также сопряжено с некоторыми проблемами. Во-первых, компьютерные файлы легко копировать. Даже если чью-то подпись сложно подделать (например, графическое изображение рукописной подписи), действительную подпись легко вырезать и вставить из одного документа в другой. Такая подпись бессмысленна: во-вторых, файл после подписания легко модифицировать и не оставит следов модификации. Для решения этих проблем возникла технология цифровой подписи.

Симметричная ключевая подпись

Подпись на основе симметричного ключа показана на рисунке 4-6. Предположим, что BB — арбитр, которому A и B взаимно доверяют. KA и KB — это ключи между A, B и BB соответственно, а KBB — это секрет, который есть только у BB. P — сообщение, отправленное A B, а t — временная метка. BB интерпретирует сообщение A {A,K. (B, RA, t, P)} позже генерирует подписанное сообщение Ke (A, t, P) и компонует его в сообщение K, отправляемое B. (А, Р, т, П, Ке (А, т, П)). B может расшифровать сообщение, прочитать сообщение P и сохранить доказательства Ки (A, t, P). Поскольку связь между A и B осуществляется через посредника BB, нет необходимости сомневаться в личности другой стороны. А в силу существования доказательств KB(A,t,P) A не может отрицать отправку сообщения P, а B не может изменить полученное сообщение P, поскольку BB может расшифровать Kbb(A,t,P) на месте во время арбитраж и получить отправленное сообщение Лицо, время отправки и исходное сообщение P.。

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

Предположим, Сяо Мин и Сяо Хун хотят использовать симметричные подписи ключей, чтобы гарантировать подлинность и целостность своих сообщений, но у них нет общего ключа и нет безопасного центра распространения ключей. Они могут предпринять следующие шаги:

  1. Сяо Мин и Сяо Хун устанавливают канал шифрования с симметричным ключом с доверенной третьей стороной Сяо Бай, например, используя алгоритм AES. Сяо Мин и Сяо Бай имеют общий ключ Ка, Сяо Хун и Сяо Бай имеют общий ключ Ка, а у Сяо Бай также есть свой собственный ключ Ки. Эти ключи назначаются заранее безопасным способом.
  2. Сяо Мин хочет отправить Сяо Хуну сообщение P, например: «Я люблю тебя». Сначала он шифрует его открытым ключом Сяобая и получает зашифрованный текст C. Он также генерирует случайное число Ra и временную метку t, указывающую время отправки. Он упаковал всю эту информацию в сообщение, зашифровал его с помощью общего ключа, своего и Сяобая, а затем отправил Сяобаю.
  3. После того, как Сяобай получает сообщение Сяомина, он расшифровывает ka, используя общий ключ его и Сяомина, и получает личность Сяомина, личность Сяохуна, случайное число Ra, временную метку t и зашифрованный текст C. Сяобай использует свой закрытый ключ для расшифровки зашифрованного текста C и получает сообщение P. Сяобай использует свой собственный ключ Kbb для шифрования личности, временной метки и сообщения Сяомина и получения подписи S. Затем Сяобай использует открытый ключ ребенка для шифрования P в зашифрованный текст C. Сяобай упаковывает личность Сяомина, случайное число, временную метку, открытый текст и подпись в сообщение и шифрует его с помощью симметричного ключа, общего с Сяохуном, а затем отправляет его Сяохуну. .
  4. После того, как Сяохун получает сообщение Сяобая, она расшифровывает его с помощью своего общего ключа и общего ключа Сяобая и получает личность Сяомина, случайное число, метку времени, зашифрованный текст и подпись. Сяохун использует свой личный ключ для расшифровки зашифрованного текста и получает сообщение P. Сяохун использует открытый ключ Сяобая для расшифровки подписи и получает личность, временную метку и сообщение Сяомина. Сяохун сравнивает, соответствует ли расшифрованное сообщение сообщению в подписи. Если они совпадают, это означает, что сообщение не было подделано и было отправлено Сяомин. Сяохун также может проверить временную метку, чтобы узнать, является ли сообщение последним, чтобы предотвратить атаки повторного воспроизведения.

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

Так сколько же ключей в приведенном выше случае? Давайте проанализируем еще раз: всего выше упомянуто шесть клавиш, и они классифицируются по характеристикам функций.

Шифрование и дешифрование

  • Ка, симметричный ключ Сяо Мина и Сяо Бая, используется для шифрования и дешифрования связи между ними, и только они оба знают это.
  • Kb, симметричный ключ Сяохуна и Сяобая, используется для шифрования и дешифрования связи между ними, и только они оба знают его.
  • Закрытый ключ Сяохуна, используемый для шифрования и дешифрования сообщений Сяобая, известен только ему.
  • Открытый ключ Сяохуна используется для шифрования и дешифрования сообщений Сяохуна, и каждый может его знать.

Использование подписи

  • Kbb, закрытый ключ Сяобая, используется для шифрования и дешифрования его собственной подписи, и только он знает это.
  • Открытый ключ Сяобая используется для шифрования и дешифрования подписи Сяобая, и его может знать каждый.

Как видно из вышеизложенного, открытые ключи и закрытые ключи появляются парами.Эти ключи используются для обеспечения конфиденциальности, целостности, аутентичности и неотказуемости сообщений. Симметричный ключ относится к технологии шифрования, которая использует один и тот же ключ для шифрования и дешифрования, например Ka и Kb. Асимметричный ключ относится к технологии шифрования, которая использует разные ключи для шифрования и дешифрования, такие как открытый ключ и закрытый ключ Сяобая. Открытый ключ относится к ключу, который может быть раскрыт кому угодно, а закрытый ключ относится к ключу, который может храниться только у вас.

Как метод подписи симметричного ключа обеспечивает безопасную передачу данных?

Это метод двойного шифрования, повышающий безопасность сообщений. Разберем поэтапно

Сяо Мин

(1) Сначала используйте открытый ключ Сяобая 加密 (исходное сообщение P) для получения зашифрованного текста C
(2) Затем используйте его собственный и общий ключ Сяобая Ka (симметричный ключ) 加密M (личная информация Сяохуна, зашифрованный текст C, случайное число N, временная метка t) чтобы получить зашифрованный текст M1
(3) Отправьте (собственную личность Сяо Мина, M) Сяо Бай

нуб

(1) Сяобай получает зашифрованный текст M1 и использует Ka 解密 для получения M (личная информация Сяохуна, зашифрованный текст C, случайное число N, метка времени t)
(2) Используйте закрытый ключ Сяобая kbb 解密C для получения исходного открытого текста P
(3) Используйте личный ключ Сяобая kbb C ключ kbb 加密(加签) (личность Сяо Мина, временная метка, P) для получения информации о подписи S
​​(4) Использовать открытый ключ Сяохуна加密 P для получения зашифрованного текста C
(4) Использовать Kb 加密(личность Сяо Мина, временную метку, случайное число, подпись, зашифрованный текст) и отправьте его Сяохуну в посылке.

Сяохун

(1) После получения Сяохун использует Kb 解密 для получения (личности Сяомина, временной метки, случайного числа, подписи, зашифрованного текста)
(2) На основе полученной информации используйте открытый ключ Сяобая для 验证签名проверки достоверности

Во-первых, давайте проанализируем взаимодействие между Сяо Мином и Сяо Бай. Мы видим, что, используя режим двухуровневого шифрования, Сяо Мин сначала шифрует сообщение с помощью открытого ключа Сяо Бая, чтобы гарантировать, что только Сяо Бай сможет его расшифровать и предотвратить перехват или подделка сообщения. Затем используйте общий ключ Ka между вами и Сяобаем, чтобы зашифровать его, чтобы Сяобай мог распознать, что сообщение пришло от Сяомина, и не дать другим подделать или выдать себя за сообщение. Таким образом, Сяо Мин может отправить дважды зашифрованный зашифрованный текст C Сяо Байю и попросить Сяо Бая переслать его Сяо Хуну. После того, как Сяобай получит зашифрованный текст C, он может сначала расшифровать его с помощью общего ключа Ka, своего и Сяомина, чтобы получить сообщение, зашифрованное открытым ключом Сяобая, а затем расшифровать его своим собственным секретным ключом, чтобы получить исходное сообщение P. Таким образом, Xiaobai может убедиться, что сообщение отправлено Сяомин и не было изменено.

Затем Сяобай может подписать сообщение своим собственным ключом Kbb, зашифровать его открытым ключом Сяохуна, а затем зашифровать его с помощью общего ключа Kb своего и Сяохуна, чтобы получить новый зашифрованный текст D и отправить его Сяобай. После того, как Сяохун получит зашифрованный текст D, она может сначала расшифровать его с помощью своего общего ключа Kb и Сяобая, чтобы получить сообщение и подпись, зашифрованные открытым ключом Сяохуна, а затем расшифровать его с помощью своего собственного закрытого ключа, чтобы получить сообщение P и подпись S. Затем Сяо Хун может использовать открытый ключ Сяо Бая, чтобы расшифровать подпись S и получить личность, временную метку и сообщение Сяо Мина. Таким образом, Сяохун может подтвердить, что сообщение пришло от Сяомина, не было подделано и является последним.

Как Сяохун проверила личность Сяомин после получения сообщения и как она проверила подпись?

Позвольте мне объяснить вам, как Сяо Хун подтвердил личность и подпись Сяо Мина после получения сообщения:

  • Проверьте личность Сяо Мина: в сообщении, которое получил Сяо Хун, было случайное число Ра. Это случайное число было сгенерировано Сяо Мином, и только Сяо Мин и Сяо Бай знали его. Сяохун может использовать открытый ключ Сяобая для расшифровки подписи S ​​и получения личности, временной метки и сообщения Сяомина. Сяохун может сравнить, соответствует ли расшифрованное сообщение сообщению в подписи. Если они совпадают, это означает, что сообщение не было подделано и было отправлено Сяомин. Сяохун также может проверить временную метку, чтобы узнать, является ли сообщение последним, чтобы предотвратить атаки повторного воспроизведения. Сяохун также может зашифровать Ра с помощью открытого ключа Сяобая, а затем отправить его Сяобаю, который сможет расшифровать его своим собственным секретным ключом и получить Ра. Сяобай может использовать Ра для сравнения с Ра, отправленным Сяомином ранее. Если они совпадают, это означает, что Сяохун действительно получил сообщение Сяомина, и оно является последним. Таким образом, Сяобай может выступать в качестве доверенной третьей стороны, подтверждающей личность Сяомина и подлинность сообщения.
  • Проверка подписи: в сообщении, полученном Сяохуном, есть подпись S. Эта подпись была получена Сяобаем с использованием его собственного ключа Ки для шифрования личности, временной метки и сообщения Сяомина. Сяохун может использовать открытый ключ Сяобая для расшифровки подписи S ​​и получения личности, временной метки и сообщения Сяомина. Сяохун может сравнить, соответствует ли расшифрованное сообщение сообщению в подписи. Если они совпадают, это означает, что подпись действительна и была сгенерирована Сяобаем. Сяохун также может проверить временную метку, чтобы узнать, является ли сообщение последним, чтобы предотвратить атаки повторного воспроизведения. Таким образом, Сяохун может проверить правильность и полноту подписи и предотвратить ее отрицание Сяомином или Сяобаем.

Как распределяются эти ключи?

Эти ключи распространяются центром распространения ключей (KDC) или центром сертификации (CA). Центр распространения ключей — это доверенная третья сторона, которая может генерировать и распространять симметричные ключи для взаимодействующих сторон, а также может предоставлять билеты и подписи взаимодействующим сторонам для проверки личности другой стороны. Центр сертификации — это организация, специально ответственная за выпуск и управление сертификатами открытых ключей. Он может предоставлять открытые ключи и сертификаты взаимодействующим сторонам, а также может предоставлять подписи и проверки для открытых ключей и сертификатов.

  • Ка, симметричный ключ Сяо Мина и Сяо Бая, распространяется Центром распространения ключей (KDC). KDC — это доверенная третья сторона, которая может генерировать и распространять симметричные ключи для взаимодействующих сторон, а также может предоставлять билеты и подписи взаимодействующим сторонам для проверки личности другой стороны.
  • Kb, симметричный ключ Xiaohong и Xiaobai, также распространяется KDC, как указано выше.
  • Kbb, закрытый ключ Сяобая, был сгенерирован самим Сяобаем. Закрытый ключ Сяобая используется для шифрования и дешифрования его собственной подписи. Только он знает его и не может быть передан кому-либо.
  • Открытый ключ Сяобая генерируется самим Сяобаем и соответствует закрытому ключу Сяобая. Открытый ключ Сяобая используется для шифрования и дешифрования подписи Сяобая. Любой может узнать его и опубликовать публично или зарегистрировать в центре сертификации (CA).
  • Закрытый ключ Сяобая генерируется самим Сяобаем и соответствует открытому ключу Сяобая. Закрытый ключ Сяобая используется для шифрования и дешифрования сообщений Сяобая. Только он знает его и не может быть передан кому-либо.
  • Открытый ключ Сяохун генерируется самой Сяохун и соответствует закрытому ключу Сяохун. Открытый ключ Сяохун используется для шифрования и дешифрования сообщений Сяохуна. Любой может знать его и опубликовать его публично или зарегистрировать в центре сертификации.

Как работают случайные числа и временные метки? Например, как он проверяет личность Сяо Мина и подлинность сообщения? Или как предотвратить атаки повтора или своевременность?

  • Подтвердите личность Сяо Мина: когда Сяо Мин отправляет сообщение Сяо Бай, будет сгенерировано случайное число Ra. Это случайное число генерируется самим Сяо Мином, и его знают только Сяо Мин и Сяо Бай. После того, как Сяобай получит сообщение Сяомина, он зашифрует Ра открытым ключом Сяобая, а затем отправит его Сяохуну, который перешлет его Сяомину. После того, как Сяо Мин получит ответ Сяо Бая, он расшифрует его с помощью закрытого ключа Сяо Бая и получит Ра. Сяо Мин может использовать Ра для сравнения с Ра, который он сгенерировал ранее. Если они совпадают, это означает, что Сяо Бай действительно получил сообщение Сяо Мина, и оно самое последнее. Таким образом, Сяо Мин может проверить личность Сяо Бая и подлинность сообщения.
  • Проверьте подлинность сообщения: когда Сяо Мин отправляет сообщение Сяо Бай, будет сгенерирована временная метка t, указывающая время отправки. После того, как Сяобай получит сообщение Сяомина, он будет использовать свой собственный ключ Ки для шифрования личности, временной метки и сообщения Сяобай, чтобы получить подпись S. Сяобай отправляет подпись S Сяохуну и просит Сяохуна переслать ее Сяомину. После того, как Сяомин получит ответ Сяобая, он будет использовать открытый ключ Сяобая для расшифровки подписи S ​​и получения личности, временной метки и сообщения Сяомина. Сяо Мин может сравнить, соответствует ли расшифрованное сообщение сообщению, которое он отправил ранее. Если они совпадают, это означает, что сообщение не было подделано и было подписано Сяо Мином. Сяо Мин также может проверить временную метку, чтобы узнать, является ли сообщение последним, чтобы предотвратить атаки повторного воспроизведения. Таким образом, Сяо Мин сможет проверить подлинность и целостность сообщения.
  • Предотвращение атак повторного воспроизведения. Атаки повторного воспроизведения относятся к другим людям, использующим ранее перехваченные или записанные сообщения, чтобы выдать себя за Сяо Мина или Сяо Бая. Если нет случайных чисел и временных меток, другие могут использовать предыдущие сообщения, чтобы обмануть Сяо Мина или Сяо Бая, заставив их думать, что это последние новости. Но если у вас есть случайное число и временная метка, то другие не смогут воспроизвести сообщение, поскольку случайное число и временная метка являются одноразовыми, а отправляемое сообщение каждый раз разное и имеет срок действия. Если случайное число или временная метка не совпадают или истекают, Сяо Мин или Сяо Бай могут идентифицировать атаку повтора и отказаться принимать сообщение.

подпись с открытым ключом

В симметричной криптосистеме ключ шифрования и ключ дешифрования могут быть получены друг из друга. Открытые ключи делают систему небезопасной. Система криптографии с открытым ключом может легко решить проблему обмена ключами. В криптографии с открытым ключом ключ дешифрования и ключ шифрования различны, и их трудно вывести из другого.
Система цифровой подписи, использующая алгоритм шифрования с открытым ключом, показана на рисунке 4-7. Если сторона A откажется, B может уничтожить D. § и использовать открытый ключ E A для расшифровки и получения P, тем самым доказывая, что P было отправлено A. Если B подделал сообщение P, когда A просит B показать оригинал D. §, B не может его вынуть.
Вставьте сюда описание изображения
На самом деле описанный выше процесс очень прост:

1. Если A хочет отправить сообщение B, то AB сначала должен обменяться открытыми ключами. Если пара открытого и закрытого ключей A — это Pa и Ka, то пара открытого и закрытого ключей B — это Pb и Kb.
2. А подписывает сообщение с помощью Ka, чтобы сформировать Da§
3. А шифрует Da§ с помощью открытого ключа Pb B, чтобы сформировать Pb (Данные (P))
4. После получения сообщения B сначала использует свой собственный секретный ключ Kb для расшифровки Da. §
5. B использует открытый ключ Pa A для расшифровки зашифрованного текста и получения открытого текста P.

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

RSA в сочетании с цифровой подписью MD5

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

Алгоритм хеширования (например, алгоритм MD5) обладает очень хорошими свойствами: он может генерировать разные, уникальные и короткие дайджесты сообщений для каждого сообщения разной длины. Этот дайджест сообщения можно рассматривать как уникальный «отпечаток» сообщения, что делает его идеальным для использования в качестве цифровой подписи.

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

Основной процесс объединения RSA с цифровой подписью MD5 заключается в следующем: отправитель информации генерирует дайджест сообщения путем хеширования информации, а затем отправитель шифрует дайджест сообщения своим собственным секретным ключом для формирования цифровой подписи отправителя. Эта цифровая подпись затем отправляется получателю сообщения в виде вложения к сообщению. После получения информации получатель сначала выполняет ту же операцию хеширования полученной информации, что и отправитель, чтобы получить дайджест сообщения, а затем использует открытый ключ отправителя для расшифровки цифровой подписи, прикрепленной к информации, чтобы получить вычисленный отправителем хэш-код. Если два хэш-кода одинаковы, получатель может подтвердить, что сообщение и цифровая подпись были отправлены отправителем. С помощью цифровых подписей можно определить целостность исходной информации и обеспечить невозможность отказа от информации, отправленной отправителем.

Давайте рассмотрим пример, чтобы рассмотреть конкретные этапы объединения RSA с цифровой подписью MD5:
(1) Отправитель информации A хочет отправить сообщение B. Сначала A хеширует сообщение в соответствии с алгоритмом хеширования, согласованным обеими сторонами, и получает уникальный для сообщения дайджест сообщения H. Из вышесказанного мы можем знать, что до тех пор, пока какой-либо бит в сообщении изменяется, пересчитанное значение дайджеста сообщения не будет соответствовать исходному значению. Это обеспечивает неизменность информации.
(2) Затем зашифруйте дайджест сообщения собственным секретным ключом А, чтобы получить цифровую подпись S для сообщения.
(3) Затем А отправляет исходное сообщение и цифровую подпись S B.
(4) Когда B получает его, он сначала использует открытый ключ A для расшифровки цифровой подписи S ​​и получения дайджеста сообщения H H.
(5) Затем используйте тот же алгоритм хеширования для хеширования полученной информации и получения дайджеста сообщения H'.
(6) Сравните H и H'. Если они равны, это означает, что информация действительно исходит от предполагаемого отправителя A.
Если в процессе передачи злоумышленник подделал файл, он не знает секретного ключа отправителя, поэтому цифровая подпись H, расшифрованная получателем, должна отличаться от рассчитанной цифровой подписи H'. Это обеспечивает безопасный способ подтверждения личности отправителя.

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

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

(1) Во-первых, пользователь A использует хеш-алгоритм MD5 для расчета отправляемого электронного письма P и генерирует 128-битный дайджест сообщения. С помощью этого дайджеста сообщения можно проверить, является ли информация электронного письма полной и не была ли она подделана. с.
(2) Затем используйте алгоритм RSA для шифрования дайджеста сообщения с использованием закрытого ключа SKA А для генерации зашифрованного текста H дайджеста сообщения. Электронная почта P и дайджест H зашифрованного сообщения электронной почты вместе образуют новое сообщение P1, а затем на P1 выполняется ZIP-сжатие, чтобы получить сжатое
сообщение P1.Z.
(3) Затем используйте алгоритм IDEA для шифрования P1.Z. На этот раз шифрование использует одноразовый ключ K, и K должен быть зашифрован алгоритмом RSA с использованием открытого ключа PKB другой стороны B в сообщении, и зашифрованное сообщение вместе с P2 кодируется BASE64 для получения серии кодов ASCII, которые отправляются в сеть как содержимое электронной почты.

После того, как пользователь B получает зашифрованное электронное письмо от A, он выполняет процесс расшифровки: в отличие от процесса шифрования он сначала декодирует содержимое электронного письма с помощью BASE64, а затем использует свой собственный секретный ключ SKB для решения ключа IDEA K с помощью алгоритма RSA. Затем используйте этот ключ для восстановления P1.Z, распакуйте P1.Z и восстановите P1. Затем разделите простой текст P и зашифрованный текст H дайджеста сообщения электронной почты и используйте открытый ключ PKA А для расшифровки H и получения настоящего дайджеста сообщения электронной почты. Затем B сам также использует алгоритм MD5 для обработки открытого текста электронной почты P и создания 128-битного дайджеста сообщения. Сравните, согласованы ли два дайджеста. Если они согласованы, это означает, что P — это электронное письмо, отправленное А. Как видно из приведенного выше процесса связи, PGP может не только гарантировать, что электронное письмо не будет украдено третьей стороной, но также предотвратить отказ отправителя и подделку письма в пути.

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

Объяснение PGP

Здесь следует отметить, что PGP (Pretty Good Privacy) — это схема шифрования электронной почты, предложенная американцем Филом Циммерманном в 1995 году. Его можно использовать для шифрования электронных писем, чтобы предотвратить их чтение посторонними лицами, а также добавлять к электронным письмам цифровые подписи, чтобы получатель мог подтвердить, что электронное письмо действительно было отправлено отправителем. PGP не является новым алгоритмом или протоколом шифрования. Он использует различные алгоритмы шифрования. Например, алгоритм IDEA используется для шифрования содержимого электронной почты, алгоритм шифрования с открытым ключом RSA используется для шифрования информации, а алгоритм дайджеста сообщения используется. для цифровых подписей — набор программного обеспечения, которое выполняет шифрование электронной почты, выполняя обработку сжатия и другие технические средства перед шифрованием. Комбинируя эти методы шифрования, сочетается хороший эффект шифрования системы шифрования с открытым ключом RSA и высокая скорость системы шифрования с симметричным ключом, а благодаря оригинальному дизайну механизма управления цифровой подписью и аутентификацией ключей PGP становится превосходным мощные процедуры шифрования данных.

Система управления ключами

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

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

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

Однако в этом процессе может произойти атака: ни A, ни B не знают, что другой пользователь C заменил открытый ключ B на открытый ключ в ключе, сгенерированном им самим, выдавая себя за имя B!

Тогда открытый ключ, используемый A для отправки писем, является открытым ключом не B, а C. Однако все кажется нормальным, поскольку имя пользователя открытого ключа, полученного А, — B. Таким образом, C может использовать закрытый ключ, который находится в его руке, для расшифровки электронного письма, отправленного A B. Он может даже использовать реальный открытый ключ B для пересылки письма, отправленного A B. Таким образом, ни A, ни B не обнаружат ничего необычного. , и Все их коммуникации были раскрыты. Даже если C захочет изменить электронное письмо, отправленное A на B, проблем не возникнет.

Кроме того, C также может подделать подпись B для отправки информации A или другим лицам. Поскольку открытый ключ, находящийся в руках A и других, подделан C, A и другие могут нормально расшифровать поддельную подпись и думать, что она действительно исходит от B. Информация .

Чтобы предотвратить это, вы должны запретить кому-либо подделывать чужой открытый ключ. Например, если взаимодействующие стороны встречаются напрямую и обмениваются ключами, они могут избежать получения поддельных открытых ключей. Однако, когда две стороны находятся далеко друг от друга или неудобно встретиться напрямую, напрямую обменяться ключами затруднительно. В данном случае PGP решает эту проблему посредством механизма введения открытого ключа.

Продолжая приведенный выше пример: если у A и B есть общий друг D, и D знает, что открытый ключ B в его руке верен (при условии, что D подтвердил подлинность открытого ключа B). Таким образом, D может использовать свой собственный закрытый ключ для подписи открытого ключа B, указывая тем самым, что он гарантирует, что этот открытый ключ является реальным открытым ключом B, и отправляет его A. Затем A использует открытый ключ D для проверки открытого ключа B, отправленного A D. Точно так же D также может гарантировать B открытый ключ A. Таким образом, D становится проводником открытого ключа между A и B.

Таким образом, B или D могут безопасно внести открытый ключ B, подписанный D, в общедоступный каталог, чтобы его мог прочитать A. Никто не может подделать открытый ключ B, не будучи обнаруженным A. Это безопасный способ доставки открытых ключей PGP через незащищенный Интернет.

Однако как подтвердить безопасность и надежность открытого ключа D? В этом случае PGP рекомендует, чтобы
в качестве центра сертификации выступило доверенное лицо или орган. Каждый открытый ключ, подписанный авторитетным центром сертификации, считается подлинным, поэтому каждому необходимо иметь только копию открытого ключа центра сертификации. Поскольку сертификационные агентства широко предоставляют услуги открытых ключей, их открытые ключи широко распространены, и их открытые ключи трудно подделать, поэтому сертифицировать их открытые ключи также очень удобно.

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

Подводя итог: для выдачи сертификатов требуется центр сертификации, например центр сертификации CA.

Подведем итог

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

Acho que você gosta

Origin blog.csdn.net/superzhang6666/article/details/134847185
Recomendado
Clasificación