Вчера я потратил несколько часов, пытаясь подписать короткий файл цифровой подписью, используя сертификат X509 (один из сертификатов "freemail" от thawte). Наконец-то я получил openssl, чтобы подписать его как сообщение SMIME, но я не могу его успешно проверить, и это в формате SMIME - у меня нет доступа к программе «sendmail», которая фактически может отправлять файл SMIME.
Я просто хочу создать какой-нибудь файл, который будет «исключительным» с помощью простого вырезания и вставки, например:
===BEGIN SIGNED DOCUMENT===
===BEGIN DOCUMENT===
blah blah blah this is the plaintext ...
===END DOCUMENT===
===BEGIN SIGNATURE===
AFab12121abadAF ...
===END SIGNATURE===
===END SIGNED DOCUMENT===
В качестве альтернативы, я мог бы создать файл .zip, содержащий оригинальный файл и подпись.
поэтому я предполагаю, что мои требования:
- исходный текст = произвольный файл
- знак входа = из сертификата X509
- output = что-то, что я могу легко отправить кому-то по электронной почте, вырезав и вставив или прикрепив один файл .zip
- программа = бесплатная программа с открытым исходным кодом, например openssl или gpg
- программа! = Волшебный графический интерфейс, где я не понимаю, что происходит
- возможность легко использовать программу для генерации вывода из входных данных
- способность легко извлекать открытый текст из выходных данных (например, непосредственно на глаз или в качестве компонента .zip-файла)
- возможность проверить, что открытый текст был подписан получателем сертификата X509 (т.е. мной) и что лицо, предоставляющее сертификат (CA), является известным центром сертификации ... при условии, что я - рациональный человек, который хранит сертификат защищен от использования другими сторонами (в противном случае кто-то может подписать что-либо как я).
Есть ли хорошее руководство по сертификатам X509 и как они используются на практике для этого? У меня есть 2-е издание «Прикладной криптографии» Шнайера, и у меня достаточно опыта работы с криптографическими алгоритмами + протоколами, но я совсем немного знаю о X509, и я действительно не понимаю, что такое сертификат на практике. , (Другими словами, «сертификат - это криптографическое утверждение выдавшей стороны СА о том, что сторона X, указанная в сертификате, является идентификатором, известным СА?» И «сертификат разрешает своему носителю _____»)
Когда я его получаю, он появляется на вкладке «Ваши сертификаты» Firefox в Диспетчере сертификатов, и я могу экспортировать его и прочитать его с помощью openssl, но я хочу убедиться, что он не хранится каким-либо образом, который кто-то другой может используйте его без знания сертификата. ключевая фраза - и я действительно запутался, потому что кажется, что некоторые сертификаты имеют только открытый ключ, а другие имеют зашифрованные закрытые ключи.
Есть ли хорошая, простая оболочка GUI вокруг openssl, которая позволяет вам объяснить, что он делает?
edit: thawte не позволяет напрямую использовать запросы на сертификаты; вместо этого он общается с веб-браузерами (я использую Firefox), которые генерируют закрытый ключ и обрабатывают все протоколы сертификатов. Поэтому я могу экспортировать это как файл PKCS12, но не совсем уверен, как его использовать.