Автор работы: Пользователь скрыл имя, 26 Декабря 2011 в 20:12, курсовая работа
С этими проблемами приходится иметь дело и пользователям общедоступных публичных систем, и организациям. Практика показывает, что одномоментное решение проблемы защиты электронной почты невозможно. Уровень защиты электронной почты, вполне удовлетворительный вчера, сегодня может оказаться недостаточным. Для того чтобы защита электронной почты была на максимально возможном уровне, а достижение этого уровня не требовало чрезмерных усилий и затрат, необходим систематический и комплексный, с учетом всех угроз, подход к решению данной проблемы.
Введение 3
Способы защиты потока данных Wed 6
Защита на уровне приложений 8
Протоколы SSL и TLS 21
Заключение 33
Библиографический список 35
Отправитель сообщения:
Получатель сообщения
Идентификаторы ключей.
Так как получатель сообщения имеет возможность получать зашифрованные и подписанные сообщения от многих участников переписки, следовательно он должен иметь несколько пар личный/открытый ключей. Для того, чтобы получателю определить какой личный ключ (алгоритма RSA) надо использовать для расшифровки сеансового ключа (алгоритма CAST-128) он получает идентификатор открытого ключа (вместо самого ключа пересылается его идентификатор, так как сам открытый ключ для RSA может иметь длину в сотни десятичных разрядов). Идентификатор, связываемый с каждым открытым ключом, размещается в младших 64 разрядах ключа.
Идентификатор ключа требуется и для цифровой подписи PGP. Из-за того что отправитель может воспользоваться одним из нескольких личных ключей для шифрования профиля сообщения, получатель должен знать, какой открытый ключ ему следует использовать. Поэтому раздел цифровой подписи сообщения включает 64-битовый идентификатор соответствующего открытого ключа. При получении сообщения получатель проверяет, что идентификатор соответствует известному ему открытому ключу отправителя, а затем продолжает проверку подписи.
Формат передаваемого сообщения.
Сообщение | Подпись | Компонент сеансового ключа | Содержимое | ||||||
Данные | Метка даты-времени | Имя файла | Профиль сообщения | Ведущие два октета профиля сообщения | Идентификатор открытого ключа отправителя (KUa) | Метка даты-времени | Сеансовый ключ (Ks) | Идентификатор открытого ключа получателя (Rub) | |
EkRa | EkUa | Операция | |||||||
ZIP
|
|||||||||
Eкs
|
|||||||||
R64 |
ERUb – шифрование с использованием личного ключа пользователя B
EKRa – шифрование с использованием открытого ключа пользователя А
EКs – шифрование с использованием сеансового ключа
ZIP – функция сжатия ZIP
R64 – функция преобразования в формат radix-64.
Компонент подписи включает следующие элементы:
1. Метка даты-времени. Время создания подписи
2. Профиль сообщения. 160-битоавый профиль сообщения, созданный с помощью SHA-1 и шифрованный с использованием личного ключа подписи отправителя (KRа). Профиль вычисляется для метки даты-времени подписи, связанной конкатенацией с порцией данных компонента сообщения. Включение метки даты-времени подписи в профиль обеспечивает защиту от атак воспроизведения сообщения. Исключение имени файла и метки даты-времени компонента сообщения гарантирует, что отделённая подпись будет в точности совпадать с подписью, добавляемой в префикс сообщения. Отделенные подписи вычисляются для файла, в котором нет никаких полей заголовка сообщения.
3.
Ведущие два октета профиля
сообщения. Чтобы обеспечить
4.
Идентификатор открытого ключа
отправителя. Идентифицирует
Компонент сообщения и необязательный компонент подписи могут быть сжаты с помощью ZIP и могут быть зашифрованы с использованием сеансового ключа.
Компонент сеансового ключа включает сеансовый ключ и идентификатор открытого ключа получателя, который использовался отправителем для шифрования данного сеансового ключа.
Весь блок обычно переводиться в формат radix-64. Перевод в формат radix-64 используется для совместимости на уровне электронной почты. Сервис аутентификации предполагает, что мы шифруем только профиль сообщения (цифровая подпись), сервис конфиденциальности предполагает, что мы шифруем само сообщение (сеансовым ключом) и подпись (при наличии последней), таким образом часть или весь выходной блок сообщения представляет собой поток произвольных 8-битовых байтов. Однако многие системы электронной почты позволяют использовать только блоки, состоящие из символов текста ASCII. Чтобы удовлетворить такому ограничению, PGP обеспечивает сервис конвертирования сырого 8-битового двоичного потока в поток печатаемых символов ASCII. Для этого используется схема конвертирования radix-64.
Система S/MIME.
Система S/MIME (Secure/Multipurpose Internet Mail Extension – защищённые многоцелевые расширения электронной почты) является усовершенствованием с точки зрения защиты стандарта формата MIME электронной почты в Internet, базирующимся на использовании технологии RSA Data Security.Существуют основания полагать, что S/MIME станет стандартом коммерческого и промышленного использования, в то время как PGP останется альтернативой для защиты личной электронной почты большинства индивидуальных пользователей.
Стандарт MIME является расширением базового стандарта RFC 822, призванным решить некоторые проблемы и преодолеть ограничения протокола SMTP или некоторого другого протокола передачи почты, и RFC 822.
Ограничениями протокола SMTP, которые решает MIME являются:
Исходя из этих недостатков технические спецификации MIME включают следующие элементы:
Стандарт MIME определяет пять полей заголовка сообщения, любые или все из которых могут включаться в заголовок RFC 822:
MIME-Version (версия MIME). Соответствующий параметр должен иметь значение 1.0. Это поле указывает, что сообщение соответствует стандартам RFC 2045 и 2046.
Content-Type (тип содержимого). Описывает данные, помещённые в тело сообщения, достаточно подробно для того, чтобы агент получателя смог выбрать соответствующий агент или механизм, позволяющий представить полученные данные пользователю или обработать их каким-то иным соответствующим образом.
Content-Transfer-
Сontent-ID (идентификатор содержимого). Служит для того, чтобы уникальным образом идентифицировать объекты MIME среди множества контекстов.
Content-description (описание содержимого). Текстовые описания объекта в теле сообщения; полезно тогда, когда объект имеет форму, недоступную для прочтения (например, звуковые данные).
Любая реализация, как минимум, должна поддерживать обработку полей MIME-Version, Content-Type и Сontent-Transfer-Encoding.
В S/MIME защита объекта MIME обеспечивается подписью, шифрованием или и тем, и другим одновременно. Объектом MIME может быть как всё сообщение (за исключением его заголовков RFC 822) или, в случае многокомпонентного содержимого MIME, одно или несколько частей сообщения. Объект MIME готовится в соответствии с обычными правилами подготовки сообщений MIME. Затем объект MIME вместе с некоторыми связанными с ним данными защиты (например, идентификаторами алгоритма и сертификатов) обрабатывается S/MIME, чтобы в результате получить то, что обычно называют объектом PKCS (Public-Key Cryptography Specification – спецификация криптографии с открытым ключом). С объектом PKCS затем обращаются как с содержимым сообщения, которое упаковывают в MIME (добавляя соответствующие заголовки MIME).
Помимо типов содержимого стандарта MIME, в стандарте S/MIME используются ряд новых типов содержимого, перечисленные в таблице. Все эти типы содержимого используют обозначения PKCS, опубликованные RSA Laboratories и доступные для S/MIME.
Тип | Подтип | Параметр S/MIME | Описание |
Multipart (многокомпонентный) | Signed (подписанный) | Открытое подписанное сообщение из двух частей: сообщения и его подписи | |
Application (приложение) | pkcs7-mime | signedData | Подписанные объект S/MIME |
pkcs7-mime | envelopedData | Шифрованный объект S/MIME | |
pkcs7-mime | Degenerate signedData | Объект, содержащий только сертификаты открытых ключей | |
pkcs7-signature | - | Тип подписи, являющейся частью сообщения типа multipart/signed | |
pkcs10-mime | - | Сообщение запроса регистрации сертификата. |
Формирование объекта envelopedData (упакованные данные).
При подготовке объекта envelopedData MIME должны быть выполнены следующие действия:
Блоки RecipientInfo, за которыми следует шифрованное содержимое сообщения, вместе составляют блок envelopedData. Эта информация затем кодируется в формате base64 (radix-64).
Пример такого файла:
Content-Type: application/pkcs7-mime; smime-type=enveloped-data;
name=smime.p7m
Content-Transfer-
Content-Disposition: attachment; filename=smime.p7m
Формирование объекта signedData (подписанные данные).
Объект signedData формируется из ряда блоков, включающих идентификатор алгоритма создания профиля сообщения, само подписываемое сообщение и блок SignerInfo. Вся эта информация кодируется в base64.
Пример такого сообщения (с исключёнными заголовками RFC 822):
Content-Type: application/pkcs7-mime; smime-type=signed-data;
name=smime.p7m