áááºá¹ááá¬áá±á·áááºáááºážáá« áá®á¡ááŒá±á¬ááºážá¡áá¬ááᯠáááºááŒáá·áºáá¡á±á¬ááº
áá®áá±á·áá±á¬á· áááºááœá±á·áá»áá²á·á¡ááá¯ááºážááᯠáááºááœá¬ážáá«áááºá ááŒáá·áºá á¯á¶áá±á¬ open source cryptographic library openSSL ááᯠá¡ááŒá±áá¶á áá»áœááºá¯ááºááá¯á·á CA ááᯠá áááºáááºááŸááºááŒááºážááŒáá·áº á áááºááŒáá«á áá¯á·á ဠalgorithm ááᯠwindows 7 ááᯠá¡áá¯á¶ážááŒá¯á á ááºážáááºáá¬ážáá«áááºá
openSSL ááᯠááá·áºááœááºážáá¬ážááŒááºážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠcommand line ááŸáá
áºááá·áº á¡áá»áá¯ážáá»áá¯ážáá±á¬ áá¯ááºááŸááºááŒááºážááá¯ááºáᬠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºááẠ(áá±á¬á·áá»á¬ážááŸáá·áº áááºááŸááºáá»á¬áž áááºáá®ážááŒááºážáá²á·ááá¯á·) ááᯠáá¯ááºáá±á¬ááºááá¯ááºáá«áááºá
áá¯ááºáááºáá»á¬ážá algorithm ááá¯á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá
áºáá«áááº:
- áááºáááºááŒáá·áºáá»á®áá±áž openssl-1.1.1g ááᯠáá±á«ááºážáá¯ááºáá¯ááºáá«á
openSSL ááœáẠááá°áá®áá±á¬áá¬ážááŸááºážáá»á¬ážááŸááááºá Rutoken á¡ááœáẠá á¬ááœááºá á¬áááºážááẠopenSSL áá¬ážááŸááºáž 1.1.0 ááá¯á·ááá¯áẠáááºážáááºááá¯á ááá¯á¡ááºáááºáᯠááá¯áááºá áá« openssl-1.1.1g áá¬ážááŸááºážááá¯áá¯á¶ážáááºá áááºááẠopenSSL ááá¯ááá¬ážáááºááá¯ááºááŸáá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáááºá ááá¯á·áá±á¬áºááá¯ááá¯ááœááºáá°áá±á¬áááºáááºááŸá¯á¡ááœááºá net ááŸá windows á¡ááœááºááá·áºááœááºážááŸá¯ááá¯ááºááá¯áááºááŸá¬áááºááá¯á¡ááºáááºá áááºážá¡ááœáẠáá«áá¯ááºáá²á·áááºslproweb.com/products/Win32OpenSSL.html
á á¬áá»ááºááŸá¬ááᯠá¡á±á¬ááºááá¯á·áááºážááŒá®áž Win64 OpenSSL v1.1.1g EXE 63MB ááá·áºááœááºážáá°á¡á¬áž áá±á«ááºážáá¯ááºáá¯ááºáá«á - ááœááºáá»á°áá¬ááœáẠopenssl-1.1.1g ááᯠááá·áºááœááºážáá«á
áááºáááºááŒááºážááᯠC: Program Files ááá¯ááºááœá²ááœáẠá¡ááá¯á¡áá»á±á¬ááºááœáŸááºááŒááá·áº á á¶áááºážááŒá±á¬ááºážá¡ááá¯ááºáž áá¯ááºáá±á¬ááºááááºááŒá áºáááºá áááá¯ááááºááᯠOpenSSL-Win64 ááá¯ááºááœá²ááœáẠááá·áºááœááºážáááºááŒá áºáááºá - áááºááá¯á¡ááºááá·áºá¡ááá¯ááºáž openSSL ááᯠá áá áºááá·áºááœááºážáááºá¡ááœáẠopenssl.cfg ááá¯ááºááŸááá«áááºá ááááºá á¬ááá¯ááºááœááºáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºáž openSSL ááᯠáááºááá·áºááœááºážáá«á á€ááá¯ááºááẠC:\Program Files\OpenSSL-Win64bin áááºážááŒá±á¬ááºážááœáẠáááºááŸááá«áááºá openssl.cfg ááᯠááááºážáááºážáá¬ážááá·áº ááá¯ááºááœá²ááá¯á· ááœá¬ážáᬠá¥ááá¬á Notepad++ ááᯠá¡áá¯á¶ážááŒá¯á á€ááá¯ááºááᯠááœáá·áºáá«á
- openssl.cfg ááá¯ááºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠááŒá±á¬ááºážáá²ááŒááºážááŒáá·áº á¡ááá¡ááŸááºááŒá¯ á¡ááœáá·áºá¡á¬áá¬ááᯠáá áºáááºážáá áºáá¯á¶ ááŒááºáááºáááºááŸááºáááºáᯠááẠááá·áºááŸááºážáá¬ážááá¯ááºááŒá®ážá áááºááẠáá¯á¶ážáááŸááºáá«áááºá áááºážááẠ[ca] á¡áááá·áºááᯠá áááºááŒáá¯ááºááŒááºáááºááẠááá¯á¡ááºáááºá openssl.cfg ááá¯ááºááœááºá áá»áœááºá¯ááºááá¯á· ááŒá¯áá¯ááºááá·áº ááŒá±á¬ááºážáá²ááŸá¯ á á¬áá¬ážá á¡á ááá¯- [ ca ] á¡ááŒá Ạááœá±á·ááŸáááá¯ááºáááºá
- ááá¯áá»áœááºá¯ááºááẠáááºážááá±á¬áºááŒáá»ááºááŸáá·áºá¡áá° áááºáááºáá
áºáá¯á á¥ááá¬áá
áºáá¯ááᯠáá±ážáá«áááºá
[ ca ] default_ca = CA_default [ CA_default ] dir = /Users/username/bin/openSSLca/demoCA certs = $dir/certs crl_dir = $dir/crl database = $dir/index.txt new_certs_dir = $dir/newcerts certificate = $dir/ca.crt serial = $dir/private/serial crlnumber = $dir/crlnumber crl = $dir/crl.pem private_key = $dir/private/ca.key x509_extensions = usr_cert
ááᯠáá»áœááºá¯ááºááá¯á·ááẠá¡áááºááá°áá¬ááœáẠááŒáá¬ážááá·áºá¡ááá¯ááºáž demoCA áááºážááœáŸááºááŸáá·áº áááºážááŒá±á¬ááºážááœá²áá»á¬ážááᯠáááºáá®ážááẠááá¯á¡ááºáá«áááºá ááŒá®ážáá»áŸáẠdir ááœáẠáááºááŸááºáá¬ážááá·áº áááºážááŒá±á¬ááºážáá áºáá»áŸá±á¬áẠá€áááºážááœáŸááºááœáẠáá¬ážááá¯ááºáá« (áá»áœááºá¯ááºááœáẠ/Users/username/bin/openSSLca/demoCA)á
dir ááᯠááŸááºáááºá áœá¬ á á¬áá¯á¶ážáá±á«ááºážáááºááẠá¡ááœááºá¡áá±ážááŒá®ážáá«ááẠ- á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·á áááºááŸááºáá¬ááááºááŸááᬠáááºážááœáŸááºáááºážááŒá±á¬ááºážáá®ááá¯á· ááŒá áºáá«áááºá á€áááºážááœáŸááºáá»ááºááẠ/Users (á¡áá¯á¶ážááŒá¯áá°á¡áá»áá¯á·áá¡áá±á¬áá·áºáá²ááœááº) ááœááºáááºááŸáááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠá€áááºážááœáŸááºáá»ááºááᯠC: Program Files ááœááºáá¬ážáá«áá system ááẠopenssl.cfg áááºáááºáá»á¬ážááŒáá·áº ááá¯ááºááá¯ááŒááºááááá·áºáááºááá¯ááºáá« (á¡áááºážáá¯á¶ážáá±á¬á· áá»áœááºá¯ááºá¡ááœáẠááá¯áá²á·ááá¯á·ááŒá áºáááº)á
$dir - dir ááœáẠáááºááŸááºáá¬ážáá±á¬ áááºážááŒá±á¬ááºážááᯠá€áá±áá¬ááœáẠá¡á á¬ážááá¯ážáá¬ážáááºá
áá±á¬ááºáááºá¡áá±ážááŒá®ážáá±á¬á¡áá»ááºááŸá¬ á¡ááœáẠindex.txt ááá¯ááºááᯠáááºáá®ážáááºááŒá áºááŒá®ážá á€ááá¯ááºááá«áá² âopenSSL caâŠâ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááẠá¡áá¯ááºáááŒá áºáá«á
ááá·áºááœáẠá¡ááŸááºá ááºááá¯ááºá root áá®ážááá·áºáá®áž (ca.key)á root áááºááŸáẠ(ca.crt) áááºážááŸáááẠááá¯á¡ááºáá«áááºá á€ááá¯ááºáá»á¬ážáááŸááá±áž áá¯ááºáááºážá ááºááᯠá¡á±á¬ááºááœáẠáá±á¬áºááŒáá«áááºá
- Rutoken ááŸáá±ážáá±á¬ áá¯ááºááŸááºááŒááºážááá¯ááºáᬠá¡ááºáááá¯áá®áááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· áá»áááºáááºáá«áááºá
á€áá»áááºáááºááŸá¯ááẠopenssl.cfg ááá¯ááºááœáẠáááºááŸááááºá- ááááá¯á¶ážá¡áá±áá²á· ááá¯á¡ááºáá²á· Rutoken algorithms ááœá±ááᯠáá±á«ááºážáá¯ááºáá¯ááºááá«áááºá áááºážááá¯á·ááẠrtengine.dll, rtpkcs11ecp.dll ááá¯ááºáá»á¬ážááŒá
áºáááºá
áá«ááá¯áá¯ááºááá¯á· Rutoken SDK ááá¯áá±á«ááºážáá¯ááºáá¯ááºáá«áwww.rutoken.ru/developers/sdk .Rutoken SDK ááẠRutoken ááá¯á ááºážáá¯á¶ážááá¯áá±á¬ developer áá»á¬ážá¡ááœááºááŒá áºáááºá ááá°áá®áá±á¬ áááá¯ááááºážáááºážáá¬áá¬á áá¬ážáá»á¬ážááŒáá·áº Rutoken ááŸáá·áº áá¯ááºáá±á¬ááºááŒááºážá¡ááœáẠáá®ážááŒá¬ážá¥ááá¬ááŸá áºáá¯áá¯á¶ážááŸáááŒá®áž á¡áá»áá¯á·á á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠáááºááŒáá¬ážáá«áááºá áá»áœááºá¯ááºááá¯á·áá á¬ááŒáá·áºááá¯ááºáá»á¬ážááẠrtengine.dll ááŸáá·áº rtpkcs11ecp.dll ááá¯á·ááẠRutoken sdk ááœáẠá¡áá®ážáá®ážáááºááŸáááŒá®áž áááºáá±áá¬-
sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dllá¡ááœááºá¡áá±ážááŒá®ážáá±á¬á¡áá»ááºááŒá áºáááºá Libraries rtengine.dllá rtpkcs11ecp.dll ááẠRutoken á¡ááœáẠááá·áºááœááºážáá¬ážáá±á¬ driver ááá«áá² á¡áá¯ááºááá¯ááºáá«á áá«á·á¡ááŒáẠRutoken ááá¯áááºáž ááœááºáá»á°áá¬áá²á· áá»áááºáááºáá¬ážááá«áááºá (Rutoken á¡ááœáẠáááºááá¯á¡ááºááá»áŸááᯠááá·áºááœááºážáááºá¡ááœááºá áá±á¬ááºážáá«ážá ááááºá¡ááá¯ááºážááᯠááŒáá·áºáá«á
habr.com/en/post/506450 ) - rtengine.dll ááŸáá·áº rtpkcs11ecp.dll á á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá°á¡áá±á¬áá·áºá áááºááá·áºáá±áá¬ááœááºáááᯠááááºážáááºážáá¬ážááá¯ááºáááºá
- á€á
á¬ááŒáá·áºááá¯ááºáá»á¬ážááá¯á· áááºážááŒá±á¬ááºážáá»á¬ážááᯠopenssl.cfg ááœáẠáá±ážáá«áááºá áá«ááá¯áá¯ááºááá¯á· openssl.cfg ááá¯ááºááá¯ááœáá·áºááŒá®áž áá®ááá¯ááºáá²á·á¡á
ááŸá¬ á
á¬ááŒá±á¬ááºážááá·áºáá«á
openssl_conf = openssl_def
ááá¯ááºáá¡áá¯á¶ážááœáẠáááºááá·áºáááºááá¯á¡ááºáááº-
[ openssl_def ] engines = engine_section [ engine_section ] rtengine = gost_section [ gost_section ] dynamic_path = /Users/username/bin/sdk-rutoken/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll MODULE_PATH = /Users/username/bin/sdk-rutoken/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll RAND_TOKEN = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP default_algorithms = CIPHERS, DIGEST, PKEY, RAND
dynamic_path - áááºááẠrtengine.dll á á¬ááŒáá·áºááá¯ááºááá¯á· áááºááááºážááŒá±á¬ááºážááᯠáááºááŸááºááá«áááºá
MODULE_PATH - áááºááẠrtpkcs11ecp.dll á á¬ááŒáá·áºááá¯ááºááá¯á· áááºááááºážááŒá±á¬ááºážááᯠáááºááŸááºááẠááá¯á¡ááºáááºá
- ááááá¯á¶ážá¡áá±áá²á· ááá¯á¡ááºáá²á· Rutoken algorithms ááœá±ááᯠáá±á«ááºážáá¯ááºáá¯ááºááá«áááºá áááºážááá¯á·ááẠrtengine.dll, rtpkcs11ecp.dll ááá¯ááºáá»á¬ážááŒá
áºáááºá
- áááºáááºážáá»áẠááááºážááŸááºáá»á¬ážááᯠááá·áºááŒááºážá
openssl.cfg configuration ááá¯ááºááá¯á· áááºážááŒá±á¬ááºážááᯠáááºááŸááºááá·áº áááºáááºážáá»áẠááááºážááŸááºááᯠááá·áºááẠáá±áá»á¬áá«á á±á áá«á·ááá á¹á ááœááºá OPENSSL_CONF ááááºážááŸááºááᯠC:Program FilesOpenSSL-Win64binopenssl.cfg áááºážááŒá±á¬ááºážááŒáá·áº áááºáá®ážáá¬ážáááºá
path variable ááœáẠopenssl.exe áááºááŸáááá·áº folder ááá¯á· áááºážááŒá±á¬ááºážááᯠáááºááŸááºááááºá áá»áœááºá¯ááºá ááá á¹á ááŸá¬ C: Program FilesOpenSSL-Win64bin ááŒá áºáááºá
- ááᯠáááºááẠá¡ááá·áº 5 ááá¯á·ááŒááºááœá¬ážááŒá®áž demoCA áááºážááœáŸááºá¡ááœáẠáá»á±á¬ááºáá¯á¶ážáá±áá±á¬ááá¯ááºáá»á¬ážááᯠáááºáá®ážááá¯ááºáá«ááŒá®á
- áááºááá·áºá¡áá¬á០á¡áá¯ááºááá¯ááºáá² ááááá¯á¶ážá¡áá±ážááŒá®ážáá±á¬ááá¯ááºááẠá¡ááŸááºá
ááºááŒá
áºáááºá áááºážááẠááá¯ážáá»á²á·ááŸá¯ááá«áá±á¬ááá¯ááºááŒá
áºááŒá®ážá áááºááá¯ážááŸá¬ 01 ááŒá
áºááá·áºáááºá á€ááá¯ááºááᯠáááºááá¯ááºááá¯ááºáááºáá®ážááŒá®áž á¡ááœááºážááœáẠ01 áá¯áá±ážááá¯ááºáááºá áááºážááᯠRutoken SDK áááºážááŒá±á¬ááºážáá
áºáá»áŸá±á¬áẠsdk/openssl/rtengine/samples/tool/demoCA ááŸáááºáž áá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáá«áááºá /.
demoCA áááºážááœáŸááºááœáẠáá»áœááºá¯ááºááá¯á·ááá¯á¡ááºááá·áº á¡ááá¡áá»ááŒá áºááá·áº á¡ááŸááºá ááºááá¯ááºáá«ááŸááááºá - root áá®ážááá·áºáá®áž áááºáá®ážáá«á
áááºážááá¯áá¯ááºáá±á¬ááºáááºá áá»áœááºá¯ááºááá¯á·ááẠcommand line ááœááºááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºáááá·áº openSSL library command ááá¯á¡áá¯á¶ážááŒá¯áá«áááº-openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key
- áá»áœááºá¯ááºááá¯á·ááẠroot áááºááŸááºáá
áºáá¯áááºáá®ážáááºá
áá«ááá¯áá¯ááºááá¯á·á á¡á±á¬ááºáá« openSSL á á¬ááŒáá·áºááá¯áẠcommand ááá¯áá¯á¶ážáá«áopenssl req -utf8 -x509 -key ca.key -out ca.crt
ááááºá¡ááá·áºááœáẠáá¯ááºáá±ážáá²á·ááá·áº root áá®ážááá·áºáá®ážááᯠá¡áááºážáááºááŸááºáá¯ááºáá±ážááẠááá¯á¡ááºááŒá±á¬ááºáž áá»á±ážáá°ážááŒá¯á áááááŒá¯áá«á ááá¯á·ááŒá±á¬áá·áºá command line ááᯠáá°áá®áá±á¬ directory ááœáẠá áááºááá«áááºá
ááá¯á¡áá« á¡á¬ážáá¯á¶ážááœáẠdemoCA áááºážááœáŸááºá ááŒá®ážááŒáá·áºá á¯á¶áá±á¬ ááœá²á·á ááºážááŸá¯áá¯á¶á á¶á¡ááœáẠáá»á±á¬ááºáá¯á¶ážáá±áá±á¬ ááá¯ááºáá»á¬áž á¡á¬ážáá¯á¶ážááŸááááºá áááºáá®ážáá¬ážáá±á¬ááá¯ááºáá»á¬ážááᯠá¡ááŸáẠ5 ááœááºáá±á¬áºááŒáá¬ážáá±á¬ áááºážááœáŸááºáá»á¬ážáá²ááœáẠááá·áºáá«á
- áááºááá·áºá¡áá¬á០á¡áá¯ááºááá¯ááºáá² ááááá¯á¶ážá¡áá±ážááŒá®ážáá±á¬ááá¯ááºááẠá¡ááŸááºá
ááºááŒá
áºáááºá áááºážááẠááá¯ážáá»á²á·ááŸá¯ááá«áá±á¬ááá¯ááºááŒá
áºááŒá®ážá áááºááá¯ážááŸá¬ 01 ááŒá
áºááá·áºáááºá á€ááá¯ááºááᯠáááºááá¯ááºááá¯ááºáááºáá®ážááŒá®áž á¡ááœááºážááœáẠ01 áá¯áá±ážááá¯ááºáááºá áááºážááᯠRutoken SDK áááºážááŒá±á¬ááºážáá
áºáá»áŸá±á¬áẠsdk/openssl/rtengine/samples/tool/demoCA ááŸáááºáž áá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáá«áááºá /.
á¡áá»áẠá áá»ááºá áá¯á¶ážááᯠááŒá®ážááŒá±á¬ááºááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·á áááºááŸááºáá¬áááᯠá¡ááŒáá·áºá¡á ááŒááºáááºáááºááŸááºáá¬ážááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á· áá°ááá«áááºá
áá±á¬ááºá¡ááá¯ááºážááŸá¬áá±á¬á· áá±á¬áºááŒáá¬ážáá²á· á¡áá¬ááœá±ááᯠááŒá®ážááŒá±á¬ááºááá¯á·á¡ááœáẠá¡ááá¡ááŸááºááŒá¯ á¡á¬áá¬ááá¯ááºááœá±áá²á· áááºááᯠáááºááœá²áá±á¬ááºááœááºááá²ááá¯áá¬ááᯠáá±á¬áºááŒááœá¬ážááŸá¬ááŒá
áºáá«áááºá
source: www.habr.com