Защита на уровне приложений
Так как получатель сообщения имеет возможность получать зашифрованные и подписанные сообщения от многих участников переписки, следовательно он должен иметь несколько пар личный/открытый ключей. Для того, чтобы получателю определить какой личный ключ (алгоритма RSA) надо использовать для расшифровки сеансового ключа (алгоритма CAST-128) он получает идентификатор открытого ключа (вместо самого… Читать ещё >
Защита на уровне приложений (реферат, курсовая, диплом, контрольная)
Система PGP
Сервис PGP, если не рассматривать управление ключами, складывается из пяти функций: аутентификация, конфиденциальности, сжатия, совместимости на уровне электронной почты и сегментации.
Рассмотрим краткую характеристику функций PGP.
Функция. | Используемые. алгоритмы. | Описание. |
Цифровая. подпись. | DSS/SHA или. RSA/SHA. | С помощью SHA-1 создаётся хэш-код сообщения. Полученный таким образом профиль сообщения шифруется с помощью DSS или RSA с использованием личного ключа отправителя и включается в сообщение. |
Шифрование. сообщения. | CAST либо IDEA,. либо «тройной» DES c тремя ключами и алгоритмом Диффи-Хеллмана или RSA. | Сообщение шифруется с помощью CAST-128 или IDEA, или 3DES с одноразовым сеансовым ключом, генерируемым отправителем. Сеансовый ключ шифруется с помощью алгоритма Диффи-Хеллмана или RSA c использованием открытого ключа получателя и включается в сообщение. |
Сжатие. | ZIP. | Сообщение можно сжать для хранения или передачи, использую zip. |
Совместимость на уровне. электронной. почты. | Преобразование в формат radix-64. | Чтобы обеспечить прозрачность для всех приложений электронной почты, шифрованное сообщение можно превратить в строку ASCII, используя преобразование в формат radix-64. |
Сегментация. | Чтобы удовлетворить ограничениям максимального размера сообщений, PGP выполняет сегментацию и обратную сборку сообщения. |
Схема аутентификации.
Обозначения:
Ка — сеансовый ключ, используемый в схеме традиционного шифрования,.
KRа — личный ключ А, используемый в схеме шифрования с открытым ключом,.
KUа — открытый ключ А, используемый в схеме шифрования с открытым ключом,.
EP — шифрование в схеме с открытым ключом,.
DP — дешифрование в схеме с открытым ключом,.
EC — шифрование в схеме традиционного шифрования,.
DC — дешифрование в схеме традиционного шифрования,.
H — функция хэширования,.
|| - конкатенация,.
Z — сжатие с помощью алгоритма zip,.
R64 — преобразование в формат radix-64 ASCII.
Шаги:
- 1. Отправитель создает сообщение.
- 2. Используется алгоритм SHA-1, в результате чего получается 160-битовый хэш-вектор сообщения
- 3. Полученный хэш-вектор шифруется с помощью алгоритма RSA c использованием личного ключа отправителя, и результат добавляется в начало сообщения.
- 4. Получатель использует RSA с открытым ключом отправителя, чтобы дешифровать и восстановить хэш-код.
- 5. Получатель генерирует новый хэш-код полученного сообщения и сравнивает его с дешифрованным хэш-кодом. Если хэш-коды совпадают, сообщение считается подлинным.
Схема шифрования сообщения.
Шаги:
- 1. Отправитель генерирует сообщение и случайное 128-битовое число, которое выступает в качестве сеансового ключа только для этого сообщения.
- 2. Сообщение шифруется с помощью алгоритма CAST-128 (или IDEA, или 3DES) и данного сеансового ключа.
- 3. Сеансовый ключ шифруется с помощью алгоритма RSA и открытого ключа получателя и присоединятся к началу сообщения.
- 4. Получатель использует RSA c личным ключом, чтобы дешифровать и тем самым восстановить сеансовый ключ.
- 5. Сеансовый ключ применяется для дешифрования сообщения.
Схема использования обоих служб (подписи сообщения с помощью личного ключа и его шифровки с помощью сеансового ключа).
Отправитель сообщения:
- 1. Для сообщения генерируется подпись (хэш-вектор, зашифрованный личным ключом отправителя объединяется с открытым текстом сообщения).
- 2. Подпись и открытый текст сообщения сжимаются zip-ом
- 3. Сжатый открытый текст сообщения и подпись шифруются с помощью алгоритма CAST -128 (или IDEA, или 3DES), а сеансовый ключ шифруется с помощью RSA (или алгоритма Эль-Гамаля) при этом используется открытый ключ получателя.
Получатель сообщения.
- 1. Cеансовый ключ дешифруется с помощью личного ключа получателя.
- 2. С помощью полученного сеансового ключа дешифрует сообщение
- 3. Распаковка сообщения
- 4. Открытым ключом отправителя дешифрует хэш-вектор и генерирует новый хэш-вектор.
- 5. Сравнивает их. Если совпадают сообщение не было изменено.
Идентификаторы ключей.
Так как получатель сообщения имеет возможность получать зашифрованные и подписанные сообщения от многих участников переписки, следовательно он должен иметь несколько пар личный/открытый ключей. Для того, чтобы получателю определить какой личный ключ (алгоритма RSA) надо использовать для расшифровки сеансового ключа (алгоритма CAST-128) он получает идентификатор открытого ключа (вместо самого ключа пересылается его идентификатор, так как сам открытый ключ для RSA может иметь длину в сотни десятичных разрядов). Идентификатор, связываемый с каждым открытым ключом, размещается в младших 64 разрядах ключа.
Идентификатор ключа требуется и для цифровой подписи PGP. Из-за того что отправитель может воспользоваться одним из нескольких личных ключей для шифрования профиля сообщения, получатель должен знать, какой открытый ключ ему следует использовать. Поэтому раздел цифровой подписи сообщения включает 64-битовый идентификатор соответствующего открытого ключа. При получении сообщения получатель проверяет, что идентификатор соответствует известному ему открытому ключу отправителя, а затем продолжает проверку подписи.
Формат передаваемого сообщения.
ERUb — шифрование с использованием личного ключа пользователя B.
EKRa — шифрование с использованием открытого ключа пользователя А.
EКs — шифрование с использованием сеансового ключа.
ZIP — функция сжатия ZIP.
R64 — функция преобразования в формат radix-64.
Компонент подписи включает следующие элементы:
- 1. Метка даты-времени. Время создания подписи
- 2. Профиль сообщения. 160-битоавый профиль сообщения, созданный с помощью SHA-1 и шифрованный с использованием личного ключа подписи отправителя (KRа). Профиль вычисляется для метки даты-времени подписи, связанной конкатенацией с порцией данных компонента сообщения. Включение метки даты-времени подписи в профиль обеспечивает защиту от атак воспроизведения сообщения. Исключение имени файла и метки даты-времени компонента сообщения гарантирует, что отделённая подпись будет в точности совпадать с подписью, добавляемой в префикс сообщения. Отделенные подписи вычисляются для файла, в котором нет никаких полей заголовка сообщения.
- 3. Ведущие два октета профиля сообщения. Чтобы обеспечить получателю возможность определить, соответствующий ли открытый ключ использовался для шифрования профиля сообщения с целью аутентификации, проводится сравнение этих двух октетов открытого текста исходного профиля с первыми двумя октетами дешифрованного профиля. Эти октеты также служат 16-битовой последовательностью, используемой для проверки сообщения.
- 4. Идентификатор открытого ключа отправителя. Идентифицирует открытый ключ, который должен служить для дешифрования профиля сообщения и, следовательно, идентифицирует личный ключ, использовавшийся для шифрования профиля сообщения.
Компонент сообщения и необязательный компонент подписи могут быть сжаты с помощью ZIP и могут быть зашифрованы с использованием сеансового ключа.
Компонент сеансового ключа включает сеансовый ключ и идентификатор открытого ключа получателя, который использовался отправителем для шифрования данного сеансового ключа.
Весь блок обычно переводиться в формат radix-64. Перевод в формат radix-64 используется для совместимости на уровне электронной почты. Сервис аутентификации предполагает, что мы шифруем только профиль сообщения (цифровая подпись), сервис конфиденциальности предполагает, что мы шифруем само сообщение (сеансовым ключом) и подпись (при наличии последней), таким образом часть или весь выходной блок сообщения представляет собой поток произвольных 8-битовых байтов. Однако многие системы электронной почты позволяют использовать только блоки, состоящие из символов текста ASCII. Чтобы удовлетворить такому ограничению, PGP обеспечивает сервис конвертирования сырого 8-битового двоичного потока в поток печатаемых символов ASCII. Для этого используется схема конвертирования radix-64.