Это команда rsautlssl, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
rsautl - утилита RSA
СИНТАКСИС
OpenSSL rsautl [-in файл] [-вне файл] [чернильный ключ файл] [-пубин] [-цертин] [-подписать] [-проверять]
[-шифровать] [-расшифровать] [-ПКС] [-ssl] [-сырой] [-шестнадцатеричный дамп] [-asn1parse]
ОПИСАНИЕ
Команда rsautl команда может использоваться для подписи, проверки, шифрования и дешифрования данных с помощью RSA
алгоритм.
КОМАНДА ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
-in имя файла
Это указывает имя файла ввода для чтения данных или стандартный ввод, если эта опция
не указано
-вне имя файла
задает имя выходного файла для записи или стандартный вывод по умолчанию.
чернильный ключ файл
файл входных ключей, по умолчанию это должен быть закрытый ключ RSA.
-пубин
входной файл - это открытый ключ RSA.
-цертин
входными данными является сертификат, содержащий открытый ключ RSA.
-подписать
подписать входные данные и вывести подписанный результат. Для этого требуется и закрытый ключ RSA.
-проверять
проверить входные данные и вывести восстановленные данные.
-шифровать
зашифровать входные данные с помощью открытого ключа RSA.
-расшифровать
расшифровать входные данные с помощью закрытого ключа RSA.
-ПКС, -оаэп, -ССЛ, -сырой
используемое заполнение: PKCS # 1 v1.5 (по умолчанию), PKCS # 1 OAEP, специальное заполнение, используемое в
SSL v2 обратно совместимое рукопожатие или отсутствие заполнения соответственно. Для подписей,
Важно -ПКС и -сырой может быть использован.
-шестнадцатеричный дамп
шестнадцатеричный дамп выходных данных.
-asn1parse
asn1parse выходных данных, это полезно в сочетании с -проверять опцию.
ПРИМЕЧАНИЯ
rsautl поскольку он напрямую использует алгоритм RSA, его можно использовать только для подписи или проверки небольших
фрагменты данных.
ПРИМЕРЫ
Подпишите некоторые данные с помощью закрытого ключа:
openssl rsautl -sign -in file -inkey key.pem -out sig
Восстановить подписанные данные
openssl rsautl -verify -in sig -inkey key.pem
Изучите необработанные подписанные данные:
openssl rsautl -verify -in file -inkey key.pem -raw -hexdump
0000-00 01 ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0010 - ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0020 - ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0030 - ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0040 - ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0050 - ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0060 - ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0070 - ff ff ff ff 00 68 65 6c-6c 6f 20 77 6f 72 6c 64 ..... привет мир
Форматирование блока PKCS # 1 очевидно из этого. Если это было сделано с помощью шифрования и
расшифровать блок был бы типа 2 (второй байт) и случайными данными заполнения
видимый вместо байтов 0xff.
Можно анализировать подпись сертификатов с помощью этой утилиты в связке
asn1parse. Рассмотрим самоподписанный пример в certs / pca-cert.pem. Бег asn1parse
следующим образом:
openssl asn1parse - в pca-cert.pem
0: d = 0 hl = 4 l = 742 минус: ПОСЛЕДОВАТЕЛЬНОСТЬ
4: d = 1 hl = 4 l = 591 минус: ПОСЛЕДОВАТЕЛЬНОСТЬ
8: d = 2 hl = 2 l = 3 cons: cont [0]
10: d = 3 hl = 2 l = 1 прим .: ЦЕЛОЕ: 02
13: d = 2 hl = 2 l = 1 прим .: ЦЕЛОЕ: 00
16: d = 2 hl = 2 l = 13 минус: ПОСЛЕДОВАТЕЛЬНОСТЬ
18: d = 3 hl = 2 l = 9 prim: OBJECT: md5WithRSAEncryption
29: d = 3 hl = 2 l = 0 прим .: NULL
31: d = 2 hl = 2 l = 92 минус: ПОСЛЕДОВАТЕЛЬНОСТЬ
33: d = 3 hl = 2 l = 11 минусы: SET
35: d = 4 hl = 2 l = 9 минус: ПОСЛЕДОВАТЕЛЬНОСТЬ
37: d = 5 hl = 2 l = 3 prim: OBJECT: countryName
42: d = 5 hl = 2 l = 2 prim: ПЕЧАТЬ: AU
....
599: d = 1 hl = 2 l = 13 минус: ПОСЛЕДОВАТЕЛЬНОСТЬ
601: d = 2 hl = 2 l = 9 prim: OBJECT: md5WithRSAEncryption
612: d = 2 hl = 2 l = 0 прим .: NULL
614: d = 1 hl = 3 l = 129 prim: BIT STRING
Последняя BIT STRING содержит действительную подпись. Его можно извлечь с помощью:
openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614
Открытый ключ сертификата можно извлечь с помощью:
openssl x509 -в тесте / testx509.pem -pubkey -noout> pubkey.pem
Подпись может быть проанализирована с помощью:
openssl rsautl -in sig -verify -asn1parse -inkey pubkey.pem -pubin
0: d = 0 hl = 2 l = 32 минус: ПОСЛЕДОВАТЕЛЬНОСТЬ
2: d = 1 hl = 2 l = 12 минус: ПОСЛЕДОВАТЕЛЬНОСТЬ
4: d = 2 hl = 2 l = 8 прим .: ОБЪЕКТ: md5
14: d = 2 hl = 2 l = 0 прим .: NULL
16: d = 1 hl = 2 l = 16 prim: ОКТЕТНАЯ СТРОКА
0000 - f3 46 9e aa 1a 4a 73 c9-37 ea 93 00 48 25 08 b5 .F ... Js.7 ... H% ..
Это проанализированная версия структуры ASN1 DigestInfo. Видно, что дайджест
использовался был md5. Фактическая часть подписанного сертификата может быть извлечена с помощью:
openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4
и его дайджест, рассчитанный с помощью:
openssl md5 -c ТБС
MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5
что, как можно видеть, согласуется с восстановленным значением выше.
Используйте rsautlssl в Интернете с помощью сервисов onworks.net