Manual/OpenSSL 20

[OpenSSL] enc ( ์•”ํ˜ธํ™” ) ๋ช…๋ น์–ด

OpenSSL ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์•”/๋ณตํ˜ธํ™”๋ฅผ ํ•ด๋ณด์ž ํ•ด๋‹น ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ๋ฉ”๋‰ด์–ผ์„ ์ฐธ์กฐ ํ•˜์˜€๋‹ค. ๋จผ์ž ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ธ”๋Ÿญ ์•”ํ˜ธ ๋ชฉ๋ก์„ ํ™•์ธ ํ•ด๋ณด์ž openssl enc -ciphers [RANIX@DESKTOP-VOGBKQM ~]$ openssl enc -ciphers Supported ciphers: -aes-128-cbc -aes-128-cfb -aes-128-cfb1 -aes-128-cfb8 -aes-128-ctr -aes-128-ecb -aes-128-ofb -aes-192-cbc -aes-192-cfb -aes-192-cfb1 -aes-192-cfb8 -aes-192-ctr -aes-192-ecb -aes-192-ofb -aes-256-cbc -aes-256-cfb -aes-256-cfb1 -aes..

Manual/OpenSSL 2023.05.04

[OpenSSL] CA.pl ๋ช…๋ น์–ด

OpenSSL ์—์„œ ๊ฐ„๋‹จํžˆ CA ์ธ์ฆ์„œ์™€ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ CRL ์„ ์ƒ์„ฑํ•˜๋Š” Perl ๋ช…๋ น์–ด๊ฐ€ CA.pl ์ด๋‹ค. OpenSSL ์„ ์ด์šฉํ•ด์„œ ์ธ์ฆ์„œ ๋ฐ CRL ์ƒ์„ฑ์„ ์œ„ํ•ด์„œ๋Š” ์ด ํˆด์ด ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํŒŒ์ผ์€ openssl/ssl/misc ํด๋”์— ์กด์žฌ ํ•œ๋‹ค. ๋ฌผ๋ก  ์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” perl ์ด ์„ค์น˜ ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ๋ช…๋ น์–ด ๋ฉ”๋‰ด์–ผ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐ ํ•ด์„œ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด ๋ช…๋ น์–ด ํ…Œ์ŠคํŠธ๋Š” ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์ด๋‹ค. (์œˆ๋„์šฐ ํ™˜๊ฒฝ์€ ํ„ฐ๋ฏธ๋„ ์ž…๋ ฅ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ๋ฆฌ๋ˆ…์Šค๋‚˜ ๋งฅ์—์„œ ํ•˜๋Š”๊ฑธ ์ถ”์ฒœ ํ•จ ) ์ดˆ๊ธฐ ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋ฃจํŠธ CA์ด๋ฉด์„œ CA์ธ์ฆ์„œ๋ฅผ ๋จผ์ € ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. 1. CA ์ธ์ฆ์„œ ๋งŒ๋“ค๊ธฐ ๋จผ์ € CA์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด CA.pl -newca ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ ํ•œ๋‹ค. ์ด๋•Œ ์ด๋ฏธ ๋ช…๋ น์–ด๋ฅผ ..

Manual/OpenSSL 2023.04.25

[OpenSSL] CMP ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•

CMP (Certificate Management Protocol) ํ”„๋กœํ† ์ฝœ์€ OpenSSL 3.0 ๋ฒ„์ „์—์„œ ์ง€์›๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. CMP ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” OpenSSL 3.0 ์ด์ƒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. https://www.openssl.org/docs/man3.0/man1/openssl-cmp.html ์‚ฌ์‹ค OpenSSL CMP ๋ช…๋ น์–ด๋Š” ์ธ์ฆ์„œ์™€ ์‚ฌ์‹ค ๊ฐœ์ธํ‚ค๊ฐ€ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋†“๊ณ  CMP ํ”„๋กœํ† ์ฝœ๋กœ ์ „์†ก ํ•˜๊ธฐ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ๋ช…๋ น์–ด์ด๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ openssl.cnf ํŒŒ์ผ๊ณผ ๋ฏธ๋ฆฌ ์ธ์ฆ์„œ์™€ ๊ฐœ์ธํ‚ค ๋“ค ๋ชจ๋‘ ์ค€๋น„ ๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ ์˜ˆ์ œ๋กœ ์‚ฌ์šฉ ๋œ ์ธ์ฆ์„œ์™€ ๊ฐœ์ธํ‚ค๋Š” ์•„๋ž˜ "ํ…Œ์ŠคํŠธ์šฉ ์ธ์ฆ์„œ ๋ฐ ๊ฐœ์ธํ‚ค PEM" ๋ถ€๋ถ„์˜ ๋‚ด์šฉ์„ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ์“ฐ๋ฉด ๋œ๋‹ค. CMP ์—์„œ cmd ์˜ต์…˜์— ๊ด€ํ•˜์—ฌ ir - Initializa..

Manual/OpenSSL 2023.04.07

[OpenSSL] RSA์šฉ RootCA ์ƒ์„ฑ ๋ฐ SSL ์ธ์ฆ์„œ ๋งŒ๋“ค๊ธฐ

RSA ์šฉ SSL ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๊ธฐ๋ฅผ ํ•ด๋ณด์ž ๋จผ์ € ์ตœ์ƒ์œ„ ์ธ์ฆ์„œ์ธ RootCA ์ธ์ฆ์„œ๋ฅผ ๋จผ์ € ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์ตœ์ƒ์œ„ ์ธ์ฆ์„œ๋Š” Self Signed ์ธ์ฆ์„œ ์ด๋‹ค. ์ฆ‰ ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ ์„œ๋ช…ํ•œ ์ธ์ฆ์„œ๊ฐ€ Self Signed ์ธ์ฆ์„œ ์ด๋‹ค. ์‚ฌ์‹ค ์ž์ฒด์ ์œผ๋กœ ๋งŒ๋“  ์ธ์ฆ์„œ๋Š” ๊ธฐ๋ณธ ๋ธŒ๋ผ์šฐ์ €์— ๋“ฑ๋ก์ด ๋˜์–ด ์žˆ์ง€ ์•Š์•„ ๊ฒฝ๊ณ ๋ฅผ ๋ณด์—ฌ ์ฃผ์ง€๋งŒ ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด OpenSSL ์ž์ฒด๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์„ค์ • ํŒŒ์ผ(openssl.cnf) ํŒŒ์ผ์ด ์žˆ๋Š”๋ฐ ์ด ์„ค์ •์ด ํ™•์ธ์ด ์•ˆ๋œ๋‹ค๋ฉด " -config test_openssl.cnf" ์ด๋ ‡๊ฒŒ ์ง์ ‘ ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉ ํ•˜๋ฉด ๋œ๋‹ค. RootCA ์šฉ RSA ํ‚ค ์Œ ์ƒ์„ฑ CA ๊ฐ€ ์‚ฌ์šฉํ•  RSA 2048 bits Key Pair ์ƒ์„ฑopenssl genrsa -..

Manual/OpenSSL 2023.04.07

[OpenSSL] OCSP ์™€ TSP ๋ช…๋ น์–ด

OCSP ๋Š” RFC2560 ์—์„œ ์ •์˜ ๋œ Online Certificate Status Protocol ์˜ ์•ฝ์ž์ด๋‹ค. TSP ๋Š” RFC3161 ์—์„œ ์ •์˜ ๋œ Time Stamp Protocol ์˜ ์•ฝ์ž์ด๋‹ค. OpenSSL ์—์„œ ์ธ์ฆ์„œ ์ƒํƒœ ์ •๋ณด ํ”„๋กœํ† ์ฝœ์ธ OCSP ๊ด€๋ จ ๋ฉ”๋‰ด์–ผ https://www.openssl.org/docs/man3.0/man1/openssl-ocsp.html ํƒ€์ž„์Šคํƒฌํ”„ ๊ด€๋ จ ๋ฉ”๋‰ด์–ผ https://www.openssl.org/docs/man3.0/man1/openssl-ts.html OCSP ( Online Certificate Status Protocol ) OCSP Request ์ƒ์„ฑ openssl ocsp -issuer ECDSA_CA.crt -cert CMS_Signer.crt..

Manual/OpenSSL 2023.04.07

[OpenSSL] PKCS#12 (PFX) ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ ๋ช…๋ น์–ด

PKCS#12 ๋Š” Personal Information Exchange Syntax ๋กœ์„œ RFC7292 ์— ์ •์˜ ๋œ ํ‘œ์ค€ ํฌ๋งท์ด๋‹ค. P12 ํ™•์žฅ์ž ๋˜๋Š” pfx ํ™•์žฅ์ž ํŒŒ์ผ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ OpenSSL ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์ด๋‹ค. ์ด ๋ช…๋ น์–ด์— ๋Œ€ํ•œ Man ํŒŒ์ผ ๋งํฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค https://www.openssl.org/docs/man3.0/man1/openssl-pkcs12.html PKCS#12 ํŒŒ์ผ ์ƒ์„ฑ openssl pkcs12 -export -in ecdsa_cert.pem -inkey ecdsa_private_key.pem -out file.p12 -name "My Certfiicate" -passout pass:asdf ์œˆ๋„์šฐ ๊ฒฝ์šฐ์—๋Š” -passout pass:์•”ํ˜ธ ๊ฐ’์„ ์ฃผ์ž…์„ ์ด๋ ‡๊ฒŒ ์ฃผ์–ด์•ผ ํ•˜์ง€๋งŒ ์œˆ..

Manual/OpenSSL 2023.04.07

[OpenSSL] CMS ( Cryptographic Message Syntax ) ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•

CMS ๋Š” Cryptographic Message Syntax ์˜ ์•ฝ์ž๋กœ RFC5652 ์— ์ •์˜ ๋œ ํ‘œ์ค€์ด๋‹ค. CMS ๋ช…๋ น์–ด๋Š” ๋ฐ์ดํƒ€ ์„œ๋ช…์ด๋‚˜ ๋ฐ์ดํƒ€ ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ ๋ฐ์ดํƒ€ ํ˜•์‹์ด๋‹ค. ์ด ๋ฐ์ดํƒ€๋Š” PKCS#7 ํ˜•์‹์˜ ๋ฐ์ดํƒ€ ์ด๋‹ค. ์ž์„ธํ•œ ๋ช…๋ น์–ด ์„ค๋ช… ์ฃผ์†Œ์ด๋‹ค. https://www.openssl.org/docs/man3.0/man1/openssl-cms.html CMS ๋ฉ”์„ธ์ง€ ASN.1 ํ˜•์‹ ์•„๋ž˜ ASN.1 ํ˜•์‹์˜ CMS ๋ฉ”์„ธ์ง€์— ๋Œ€ํ•œ ์ผ ๋ถ€๋ถ„์˜ ํ˜•์‹ ๋‚ด์šฉ์„ ๋ณด์—ฌ ์ค€๋‹ค. ContentInfo ::= SEQUENCE { contentType ContentType, content [0] EXPLICIT ANY DEFINED BY contentType } ContentType ::= OBJECT IDENT..

Manual/OpenSSL 2023.04.06

[OpenSSL] RSA ๊ฐœ์ธํ‚ค (PrivateKey) ์ƒ์„ฑ ๋ช…๋ น์–ด

RSA ๊ฐœ์ธํ‚ค์— ๋Œ€ํ•œ ์ŠคํŽ™ ๋ฌธ์„œ๋Š” PKCS#1 ์ด๋‹ค. ์ด ๋ฌธ์„œ์— RSA ๊ด€๋ จ ํ‘œ์ค€์ด ์ž์„ธํžˆ ๋‚˜์™€ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” RSA ๊ฐœ์ธํ‚ค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ OpenSSL ๋ช…๋ น์–ด๋ฅผ ์„ค๋ช… ํ•œ๋‹ค. RSA 2048 ๊ฐœ์ธํ‚ค ์ƒ์„ฑ openssl genrsa -out rsa_private.pem 2048 RSA ๊ฐœ์ธํ‚ค ์—์„œ ๊ณต๊ฐœํ‚ค ์ถ”์ด openssl rsa -in rsa_private.pem -pubout -out rsa_pub.pem ์ด ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑ ํ•˜๋ฉด rsa_private.pem ํŒŒ์ผ์— RSA ๊ฐœ์ธํ‚ค ๊ฐ’์ด ์ €์žฅ์ด ๋œ๋‹ค. ์ด ํŒŒ์ผ์€ ์ˆœ์ˆ˜ํ•˜๊ฒŒ ๊ฐœ์ธํ‚ค์˜ ๊ฐ’๋“ค์ด๋ผ ์ด๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ณด์•ˆ์ƒ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ๊ฒฐ๊ณผ ๊ฐ’์€ PEM ํ˜•์‹์˜ ๋ฐ์ดํƒ€์ด๋‹ค. -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCA..

Manual/OpenSSL 2023.04.06

[OpenSSL] ECDSA ์šฉ Self-Sign ์ธ์ฆ์„œ ๋งŒ๋“ค๊ธฐ

ECDSA ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๋ ค๋จผ ์šฐ์„  Named Curve๋ฅผ ์„ ํƒ ํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. openssl ecparam -list_curves ์—ฌ๊ธฐ์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” prime256v1 ( secp256r1 ) ์„ ์„ค๋ช… ํ•œ๋‹ค. ์šฐ์„  ๊ฐœ์ธํ‚ค๋ฅผ ์ƒ์„ฑ ํ•˜์ž openssl ecparam -name prime256v1 -genkey -noout -out ecdsa_private_key.pem ์ƒ์„ฑ๋œ PEM ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค -----BEGIN EC PRIVATE KEY----- MHcCAQEEIGT2Um3gW//u0sWCDZQ/XuD6Qizge3mLOZWXPLJrso9XoAoGCCqGSM49 AwEHoUQDQgAEowFoZg9qlBEGZJ46iWBeLV38Xy2P2FQWOMdNQ..

Manual/OpenSSL 2023.04.05

[OpenSSL] TLS ์„œ๋ฒ„ ํ…Œ์ŠคํŠธ

openssl s_server ๋ฉ”๋‰ด์–ผ https://www.openssl.org/docs/man3.0/man1/openssl-s_server.html openssl s_client ๋ฉ”๋‰ด์–ผ https://www.openssl.org/docs/man3.0/man1/openssl-s_client.html ๋จผ์ € TLS ์„œ๋ฒ„๋ฅผ ๋›ฐ์šฐ๊ธฐ openssl s_server -accept 4433 -cert ssl_server.pem -keyform DER -key ssl_server_pri.der -www TLS ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ ํ•˜๊ธฐ openssl s_client -host 127.0.0.1 -port 4433 ์ƒ์„ธ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด์„œ -debug ์˜ต์…˜์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. -msg ์˜ต์…˜์„ ์ฃผ๋ฉด TLS Handshake ๋ฉ”์„ธ..

Manual/OpenSSL 2023.04.05