Введение
Стандарт шифрования открытым ключом и подписи данных MIME. S/MIME (Secure/Multipurpose Internet Mail Extensions) — это стандарт для шифрования открытым ключом и подписи данных MIME. S/MIME проходит процедуру стандартизации в IETF и определяется в ряде документов, наиболее важными из которых являются… Изначально он был разработан компанией RSA Data Security, а в первоначальной спецификации использовалась спецификация IETF MIME вместе с фактически отраслевым стандартом PKCS #7 – безопасным форматом сообщений. С тех пор управление изменениями в S/MIME перешло к IETF, и спецификация теперь основана на Cryptographic Message Syntax (CMS) – спецификации IETF, которая во многом идентична PKCS #7. Функциональность S/MIME встроена в большинство современных почтовых клиентов и обеспечивает их совместимость. Благодаря тому, что он основан на CMS, MIME также может содержать расширенную цифровую подпись.
S/MIME (Secure/Multipurpose Internet Mail Extensions) is a standard for public key encryption and signing of MIME data. S/MIME is on an IETF standards track and defined in a number of documents, most importantly It was originally developed by RSA Data Security, and the original specification used the IETF MIME specification with the de facto industry standard PKCS #7 secure message format. Change control to S/MIME has since been vested in the IETF, and the specification is now layered on Cryptographic Message Syntax (CMS), an IETF specification that is identical in most respects with PKCS #7. S/MIME functionality is built into the majority of modern email software and interoperates between them. Since it is built on CMS, MIME can also hold an advanced digital signature.
Сертификаты S/MIME
Прежде чем использовать S/MIME в любом из вышеуказанных приложений, необходимо получить и установить индивидуальный ключ/сертификат либо от собственного удостоверяющего центра (УЦ), либо от публичного УЦ. Общепринятой практикой является использование отдельных закрытых ключей (и соответствующих сертификатов) для подписи и шифрования, поскольку это позволяет хранить ключ шифрования, не ставя под угрозу свойство неотрекаемости ключа подписи. Для шифрования требуется наличие сертификата получателя (который обычно автоматически добавляется при получении сообщения от отправителя с действующим сертификатом подписи). Хотя технически возможно отправить зашифрованное сообщение (с использованием сертификата получателя) без собственного сертификата для цифровой подписи, на практике клиенты S/MIME потребуют от пользователя установить свой сертификат, прежде чем разрешить шифрование другим. Это необходимо для того, чтобы сообщение могло быть зашифровано как для получателя, так и для отправителя, а копия сообщения могла быть сохранена (в папке «Отправленные») и оставалась читаемой для отправителя. Типичный базовый («класс 1») персональный сертификат подтверждает «личность» владельца лишь в том смысле, что он удостоверяет, что отправитель является владельцем адреса электронной почты в поле «От:», то есть может получать сообщения, отправленные на этот адрес, и таким образом лишь подтверждает, что полученное письмо действительно пришло с указанного адреса «От:». Он не проверяет имя человека или наименование организации. Если отправитель хочет, чтобы получатели могли проверить его личность, то есть чтобы имя в полученном сертификате совпадало с именем отправителя или наименованием организации, отправителю необходимо получить сертификат («класс 2») от УЦ, который проводит более тщательную проверку личности, включая запросы о потенциальном владельце сертификата. Более подробную информацию об аутентификации см. в разделе «Цифровая подпись». В зависимости от политики УЦ сертификат и все его содержимое могут быть опубликованы в открытом доступе для справки и проверки. Это делает имя и адрес электронной почты доступными для всеобщего обозрения и поиска. Другие УЦ публикуют только серийные номера и статус отзыва, не содержащие личной информации. Последнее, как минимум, необходимо для обеспечения целостности инфраструктуры открытых ключей.
Препятствия для внедрения S/MIME на практике
S/MIME иногда считается недостаточно подходящим для использования через веб-почту. Хотя поддержку можно реализовать в браузере, некоторые меры безопасности требуют, чтобы приватный ключ был доступен пользователю, но недоступен с сервера веб-почты, что усложняет главное преимущество веб-почты – повсеместную доступность. Эта проблема не уникальна для S/MIME: другие безопасные методы подписания веб-почты также могут требовать выполнения кода в браузере для создания подписи; исключения составляют PGP Desktop и версии GnuPG, которые извлекают данные из веб-почты, подписывают их с помощью буфера обмена и возвращают подписанные данные на страницу веб-почты. С точки зрения безопасности это более надежное решение. S/MIME предназначен для сквозной защиты. Логически невозможно, чтобы третья сторона проверяла электронную почту на наличие вредоносного ПО и одновременно обеспечивала сквозную безопасную связь. Шифрование зашифрует не только сообщения, но и вредоносное ПО. Таким образом, если почта не сканируется на наличие вредоносного ПО нигде, кроме конечных точек, таких как корпоративный шлюз, шифрование обойдет детектор и успешно доставит вредоносное ПО. Единственное решение – сканирование на наличие вредоносного ПО на рабочих станциях конечных пользователей после расшифровки. Другие решения не обеспечивают сквозного доверия, поскольку требуют обмена ключами с третьей стороной для обнаружения вредоносного ПО. Примеры подобных компромиссов: решения, хранящие приватные ключи на сервере шлюза для расшифровки перед сканированием на вредоносное ПО. Эти незашифрованные сообщения затем доставляются конечным пользователям. Решения, хранящие приватные ключи на сканерах вредоносного ПО для проверки содержимого сообщений, после чего зашифрованное сообщение пересылается по назначению. В связи с требованием сертификата для реализации, не все пользователи могут воспользоваться преимуществами S/MIME, поскольку некоторые могут захотеть зашифровать сообщение без участия или административных затрат, связанных с сертификатами, например, с помощью пары открытого и закрытого ключей. Любое сообщение, хранящееся в зашифрованном виде в почтовом клиенте S/MIME, не может быть расшифровано, если приватный ключ соответствующей пары ключей недоступен или не пригоден для использования (например, сертификат удален или утерян, либо забыт пароль от приватного ключа). Однако истекший, отозванный или недоверенный сертификат останется пригодным для криптографических целей. Индексирование открытого текста зашифрованных сообщений может быть невозможно в некоторых почтовых клиентах. Ни одна из этих потенциальных проблем не является специфичной для S/MIME, а относится к шифротексту в целом и не распространяется на сообщения S/MIME, которые только подписаны, но не зашифрованы. Подписи S/MIME обычно являются "отсоединенными подписями": информация о подписи отделена от подписываемого текста. MIME-тип для этого – multipart/signed, при этом вторая часть имеет подтип MIME application/(x)pkcs7-signature. Программное обеспечение для рассылок печально известно тем, что изменяет текстовую часть сообщения, тем самым делая подпись недействительной; однако эта проблема не уникальна для S/MIME, и цифровая подпись лишь указывает на то, что подписанное содержимое было изменено.
Solutions which store private keys on the gateway server so decryption can occur prior to the gateway malware scan. These unencrypted messages are then delivered to end users. Solutions which store private keys on malware scanners so that it can inspect messages content, the encrypted message is then relayed to its destination. Due to the requirement of a certificate for implementation, not all users can take advantage of S/MIME, as some may wish to encrypt a message without the involvement or administrative overhead of certificates, for example by encrypting the message with a public/private key pair instead. Any message that an S/MIME email client stores encrypted cannot be decrypted if the applicable key pair's private key is unavailable or otherwise unusable (e. g., the certificate has been deleted or lost or the private key's password has been forgotten). However, an expired, revoked, or untrusted certificate will remain usable for cryptographic purposes. Indexing of encrypted messages' clear text may not be possible with all email clients. Neither of these potential dilemmas is specific to S/MIME but rather cipher text in general and do not apply to S/MIME messages that are only signed and not encrypted. S/MIME signatures are usually "detached signatures": the signature information is separate from the text being signed. The MIME type for this is multipart/signed with the second part having a MIME subtype of application/(x )pkcs7 signature. Mailing list software is notorious for changing the textual part of a message and thereby invalidating the signature; however, this problem is not specific to S/MIME, and a digital signature only reveals that the signed content has been changed.
Вопросы безопасности
13 мая 2018 года Electronic Frontier Foundation (EFF) сообщила о критических уязвимостях в S/MIME и устаревшей версии PGP, которая до сих пор используется во многих почтовых клиентах. Эта ошибка, получившая название EFAIL, потребовала значительных скоординированных усилий от многих разработчиков почтовых клиентов для устранения. С тех пор меры по смягчению последствий уязвимостей EFAIL были учтены в разделе о безопасности.