ГОСТ в OpenSSL
Материал из ALT Linux Wiki
(Различия между версиями)
(Новая страница: «== Поддержка шифрования по ГОСТ в OpenSSL == 1. Установите пакет {{pkg|openssl-engines}}: apt-get install openssl-engines...») |
Yaleks (обсуждение | вклад) м (→Поддержка шифрования по ГОСТ в OpenSSL) |
||
(15 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
== Поддержка шифрования по ГОСТ в OpenSSL == | == Поддержка шифрования по ГОСТ в OpenSSL == | ||
+ | |||
+ | Поддержка ГОСТ была добавлена в OpenSSL 1.0.0 сотрудниками "Криптоком".<ref>[https://archive.fo/sVgC http://www.cryptocom.ru/opensource/openssl100.html ГОСТ в OpenSSL 1.0.0]</ref> | ||
1. Установите пакет {{pkg|openssl-engines}}: | 1. Установите пакет {{pkg|openssl-engines}}: | ||
Строка 16: | Строка 18: | ||
grep -q '^openssl_conf' $cfg || sed -i '1iopenssl_conf = openssl_def' $cfg | grep -q '^openssl_conf' $cfg || sed -i '1iopenssl_conf = openssl_def' $cfg | ||
+ | |||
+ | subst 's/^default_md/#default_md/g' $cfg | ||
if [ $libshell_version -ge 3 ] ; then | if [ $libshell_version -ge 3 ] ; then | ||
Строка 48: | Строка 52: | ||
GOST94-GOST89-GOST89</source> | GOST94-GOST89-GOST89</source> | ||
- | {{ | + | == Создание ключей == |
- | + | ||
- | + | 1. Создаём 1024-битный закрытый ключ с алгоритмом ГОСТ-2001 ({{path|ca.key}}): | |
- | + | ||
- | + | <source lang="text" highlight="1">$ openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -out ca.key 1024</source> | |
+ | |||
+ | 2. Создаём сертификат на 365 дней ({{path|ca.cer}}): | ||
+ | |||
+ | <source lang="text" highlight="1-2">$ openssl req -new -x509 -days 365 -key ca.key -out ca.cer \ | ||
+ | -subj "/C=RU/ST=Russia/L=Moscow/O=SuperPlat/OU=SuperPlat CA/CN=SuperPlat CA Root"</source> | ||
+ | |||
+ | 3. Проверка сертификата ({{path|ca.cer}}): | ||
+ | |||
+ | <source lang="text" highlight="1">$ openssl x509 -in ca.cer -text -noout | ||
+ | Certificate: | ||
+ | Data: | ||
+ | Version: 3 (0x2) | ||
+ | Serial Number: | ||
+ | cc:54:ca:0b:b6:db:b0:3c | ||
+ | Signature Algorithm: GOST R 34.11-94 with GOST R 34.10-2001 | ||
+ | Issuer: C=RU, ST=Russia, L=Moscow, O=SuperPlat, OU=SuperPlat CA, CN=SuperPlat CA Root | ||
+ | Validity | ||
+ | Not Before: Oct 10 11:37:49 2016 GMT | ||
+ | Not After : Oct 10 11:37:49 2017 GMT | ||
+ | Subject: C=RU, ST=Russia, L=Moscow, O=SuperPlat, OU=SuperPlat CA, CN=SuperPlat CA Root | ||
+ | Subject Public Key Info: | ||
+ | Public Key Algorithm: GOST R 34.10-2001 | ||
+ | Public key: | ||
+ | X:F02426CE38041BC250153A86DB138FB6B7CCBF6C0D220314D3FF3CA38490083 | ||
+ | Y:FC5E3F8D99D2EA6ED51CC014E92E617CB32CAEBCB5B7D4FAA0CC9B0702CD0B6A | ||
+ | Parameter set: id-GostR3410-2001-CryptoPro-A-ParamSet | ||
+ | X509v3 extensions: | ||
+ | X509v3 Subject Key Identifier: | ||
+ | 38:17:87:F5:DF:60:3D:90:8A:41:D6:96:E0:F8:BD:DD:18:A8:A7:0D | ||
+ | X509v3 Authority Key Identifier: | ||
+ | keyid:38:17:87:F5:DF:60:3D:90:8A:41:D6:96:E0:F8:BD:DD:18:A8:A7:0D | ||
+ | |||
+ | X509v3 Basic Constraints: | ||
+ | CA:TRUE | ||
+ | Signature Algorithm: GOST R 34.11-94 with GOST R 34.10-2001 | ||
+ | a4:12:d4:6c:d5:75:20:08:1e:a8:8d:9c:08:02:78:8a:f3:b6: | ||
+ | e7:d5:54:44:ea:e3:8d:35:61:5a:d9:50:fe:3b:fb:ec:9d:5d: | ||
+ | 78:62:a2:fd:a6:3a:23:92:3d:b9:d3:12:d9:97:df:dd:8b:3b: | ||
+ | de:0b:c7:47:30:b2:34:1d:ec:0b</source> | ||
== Используемая литература == | == Используемая литература == | ||
* http://habrahabr.ru/post/189352/ | * http://habrahabr.ru/post/189352/ | ||
* http://ali47802.blogspot.ru/2012/11/openssl-gost-42-gost.html | * http://ali47802.blogspot.ru/2012/11/openssl-gost-42-gost.html | ||
+ | * https://habrahabr.ru/post/192446/ | ||
- | |||
- | |||
[[Категория:Криптография]] | [[Категория:Криптография]] | ||
- | + | ||
+ | == Ссылки == | ||
+ | |||
+ | <references/> | ||
+ | {{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}} | ||
+ | {{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}} |
Текущая версия на 15:02, 10 октября 2016
Содержание |
Поддержка шифрования по ГОСТ в OpenSSL
Поддержка ГОСТ была добавлена в OpenSSL 1.0.0 сотрудниками "Криптоком".[1]
1. Установите пакет openssl-engines:
apt-get install openssl-engines
2. Измените конфигурационный файл OpenSSL. Для этого создайте скрипт gost-for-openssl следующего содержания:
# Adapt OpenSSL for GOST cryptography support # See http://www.cryptocom.ru/products/openssl-1-config-en.html . shell-version . shell-ini-config shell_ini_config_prefix="" cfg="/etc/openssl/openssl.cnf" grep -q '^openssl_conf' $cfg || sed -i '1iopenssl_conf = openssl_def' $cfg subst 's/^default_md/#default_md/g' $cfg if [ $libshell_version -ge 3 ] ; then ini_config_set $cfg openssl_def engines engine_section ini_config_set $cfg engine_section gost gost_section ini_config_set $cfg gost_section engine_id gost ini_config_set $cfg gost_section default_algorithms ALL ini_config_set $cfg gost_section CRYPT_PARAMS id-Gost28147-89-CryptoPro-A-ParamSet else grep -q 'Gost' $cfg && exit cat >> $cfg << _EOF_ [openssl_def] engines = engine_section [engine_section] gost = gost_section [gost_section] engine_id = gost default_algorithms = ALL CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet _EOF_ fi
Запустите скрипт (под правами root):
sh gost-for-openssl
3. Проверьте, доступны ли шифры ГОСТ для OpenSSL:
$ openssl ciphers|tr ':' '\n'|grep GOST GOST2001-GOST89-GOST89 GOST94-GOST89-GOST89
Создание ключей
1. Создаём 1024-битный закрытый ключ с алгоритмом ГОСТ-2001 (ca.key):
$ openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -out ca.key 1024
2. Создаём сертификат на 365 дней (ca.cer):
$ openssl req -new -x509 -days 365 -key ca.key -out ca.cer \ -subj "/C=RU/ST=Russia/L=Moscow/O=SuperPlat/OU=SuperPlat CA/CN=SuperPlat CA Root"
3. Проверка сертификата (ca.cer):
$ openssl x509 -in ca.cer -text -nooutCertificate:
Data:
Version: 3 (0x2)
Serial Number:
cc:54:ca:0b:b6:db:b0:3c
Signature Algorithm: GOST R 34.11-94 with GOST R 34.10-2001
Issuer: C=RU, ST=Russia, L=Moscow, O=SuperPlat, OU=SuperPlat CA, CN=SuperPlat CA Root
Validity
Not Before: Oct 10 11:37:49 2016 GMT
Not After : Oct 10 11:37:49 2017 GMT
Subject: C=RU, ST=Russia, L=Moscow, O=SuperPlat, OU=SuperPlat CA, CN=SuperPlat CA Root
Subject Public Key Info:
Public Key Algorithm: GOST R 34.10-2001
Public key:
X:F02426CE38041BC250153A86DB138FB6B7CCBF6C0D220314D3FF3CA38490083
Y:FC5E3F8D99D2EA6ED51CC014E92E617CB32CAEBCB5B7D4FAA0CC9B0702CD0B6A
Parameter set: id-GostR3410-2001-CryptoPro-A-ParamSet
X509v3 extensions:
X509v3 Subject Key Identifier:
38:17:87:F5:DF:60:3D:90:8A:41:D6:96:E0:F8:BD:DD:18:A8:A7:0D
X509v3 Authority Key Identifier:
keyid:38:17:87:F5:DF:60:3D:90:8A:41:D6:96:E0:F8:BD:DD:18:A8:A7:0D
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: GOST R 34.11-94 with GOST R 34.10-2001
a4:12:d4:6c:d5:75:20:08:1e:a8:8d:9c:08:02:78:8a:f3:b6:
e7:d5:54:44:ea:e3:8d:35:61:5a:d9:50:fe:3b:fb:ec:9d:5d:
78:62:a2:fd:a6:3a:23:92:3d:b9:d3:12:d9:97:df:dd:8b:3b:
de:0b:c7:47:30:b2:34:1d:ec:0b
Используемая литература
- http://habrahabr.ru/post/189352/
- http://ali47802.blogspot.ru/2012/11/openssl-gost-42-gost.html
- https://habrahabr.ru/post/192446/