Протокол SSL
[email protected] -subject "Signed message" -signer mycert.pem -inkey
private_key.pem | sendmail [email protected]
Подписывает сообщение -in (в текстовом виде) и подписывает (-sign) его с помощью сертификата (-signer) и секретного ключа (-inkey). Вывод идет непосредственно к sendmail, для этого определены MIME-заголовки from, to и subject.
openssl smime -verify -in mail.msg -signer user.pem -out signedtext.txt
Проверяет подпись в файле -in, записывает сообщение в файл -out, а полученный сертификат — в файл -signer (для проверки s/mime-сообщения не требуется ничего, кроме него самого, т.к. ЭЦП s/mime содержит публичный ключ!).
openssl smime -encrypt -in mail.txt -from [email protected]
-to [email protected]
-subject "Encrypted message" -des3 user.pem | sendmail
[email protected]
Шифрация файла -in с помощью сертификата получателя "user.pem", используя алгоритм "des3". Вывод программы посылается непосредственно в sendmail.
openssl smime -decrypt -in mail.msg -recip mycert.pem
-inkey private_key.pem
-out mail.txt
Расшифровка файла -in с помощью секретного ключа -inkey и сертификата -recip (ваш собственный сертификат).
Есть альтернатива не указывать smime-заголовки from, to и subject. Можно просто указать необходимый файл -out и добавить заголовки с помощью программы sendmail вручную. Кроме этого, есть еще одна деталь использования smime: некоторые почтовые клиенты используют в качестве подписи вложение в формате PKCS#7 (чаще всего закодированное base64). В таком случае необходимо применять smime следующим образом:
openssl smime -verify -inform [PEM | DER]
-in signature.pem[der] -content
mail.txt
PEM используется для стандартного формата PKCS#7, а DER заставляет произвести дополнительную обработку base64. Учтите, что в данном случае файл -in представляет собой только подпись (аттачмент), а -content — непосредственно текст письма. Можно также заставить smime подписывать сообщения подобным образом, если указать опцию -pk7out (PEM формат). Для преобразования PKCS#7 структуры из формата PEM в формат DER можно воспользоваться утилитой openssl base64 (обратное преобразование достигается за счет использования опции -d).
Итак, думаю, что для большинства операций с использованием SSL этого будет достаточно.
Степень развития Интернета сегодня позволяет однозначно говорить о том, что он стал одним из инструментов ведения бизнеса. Онлайновые магазины, банковские переводы, пересылка финансовых и иных документов - это только малая часть того, где использование Интернета стало неотъемлемой частью. Но Сеть - система общего доступа, и желающих воспользоваться чужой информацией в ней предостаточно. Поэтому одним из требований при создании коммерческих приложений для Интернета является обеспечение безопасности данных, контроля доступа и аутентификации.