Manual/OpenSSL 23

[OpenSSL] asn1parse ๋ช…๋ น์–ด

OpenSSL ์—์„œ asn1 ์ธ์ฝ”๋”ฉ ๋””์ฝ”๋”ฉ ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„ ๋ณด์ž ํ•ด๋‹น ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ฌธ์„œ ํŽ˜์ด์ง€๋Š” ๋ฉ”๋‰ด์–ผ์„ ์ฐธ๊ณ  ํ•˜์—ฌ ๋งŒ๋“ค์—ˆ๋‹ค. asn1parse ๋ช…๋ น์–ด๋กœ ๊ฐ„๋‹จํžˆ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ์„ ํ• ์ˆ˜ ์žˆ๊ณ  ๋ณต์žกํ•œ ๋ฐ์ดํƒ€๋Š” ์„ค์ •์„ ์ด์šฉํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ASN.1 PEM ํ˜•์‹ ํŒŒ์‹ฑ ํ•ด์„œ ๋ณด๊ธฐ openssl asn1parse -in file.pem ASN1 DER ํ˜•์‹ ํŒŒ์ผ ๋ณด๊ธฐ openssl asn1parse -inform DER -in file.der UTF8String ๋ฌธ์ž ์ƒ์„ฑํ•˜๊ธฐ openssl asn1parse -genstr "UTF8:Hello world" ๊ฒฐ๊ณผ ๊ฐ’ 0:d=0 hl=2 l= 11 prim: UTF8STRING :Hello world UTF8String DER ํŒŒ์ผ๋กœ ์ƒ์„ฑํ•˜๊ธฐ o..

Manual/OpenSSL 2023.05.15

[OpenSSL] MAC ( Message Authentication Code ) ๋ช…๋ น์–ด

๋ฉ”์„ธ์ง€ ์ธ์ฆ ์ฝ”๋“œ๋ผ๋Š” MAC ๊ธฐ๋Šฅ์„ OpenSSL ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ•ด ๋ณด์ž ์‚ฌ์‹ค MAC ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” Hash๋ฅผ ์‚ฌ์šฉํ•˜๋Š” HMAC๊ณผ Cipher-based MAC ์ธ CMAC์ด ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ธ”๋ก ์•”ํ˜ธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” GCM ๋ชจ๋“œ๋ฅผ ์ด์šฉํ•œ GMAC ๋“ฑ์ด ์žˆ๋‹ค. ์ด ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ๋ฉ”๋‰ด์–ผ์„ ์ฐธ๊ณ  ํ•˜์—ฌ ๋งŒ๋“ค์—ˆ๋‹ค. HMAC-SHA1 MAC openssl mac -digest SHA1 -macopt hexkey:000102030405060708090A0B0C0D0E0F10111213 -in msg.bin HMAC HMAC ์ง€์› ๋ชฉ๋ก ํ™•์ธ openssl list -digest-commands HMAC ์ง€์› ๋ชฉ๋ก ๊ฒฐ๊ณผ ํ™”๋ฉด blake2b512 blake2s256 md..

Manual/OpenSSL 2023.05.10

[OpenSSL] Message Digest ( Hash function ) ๋ช…๋ น์–ด

Message Digest๋Š” ์ž„์˜์˜ ๊ธธ์ด๋ฅผ ๋‹จ๋ฐฉํ–ฅ ํ•ด์‰ฌ ํ•จ์ˆ˜์— ์ ์šฉํ•˜์—ฌ ์ผ์ •ํ•œ ๊ธธ์ด๋กœ ์ƒ์„ฑ๋œ ๋น„ํŠธ์—ด์ด๋‹ค. ์ฆ‰ ํ•ด์‰ฌ์˜ ๊ฒฐ๊ณผ ๊ฐ’์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค. ํ•ด์‰ฌ ํ•จ์ˆ˜ ์ฆ‰ ํ•ด์‰ฌ ๋ผ๊ณ  ๋งํ•˜๋Š” ์ž„์˜์˜ ๊ธธ์ด๋ฅผ ๊ฐ–๋Š” ๋ฐ์ดํƒ€์— ๋Œ€ํ•ด ๊ณ ์ •๋œ ๊ธธ์ด๋กœ ๋ฐ์ดํƒ€๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๋‹จ๋ฐฉํ–ฅ ํ•จ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. OpenSSL ์„ ์ด์šฉํ•ด ํ•ด์‰ฌ ํ•จ์ˆ˜ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด Message Digest ๊ฐ’์„ ๊ตฌํ•ด ๋ณด์ž. ์—ฌ๊ธฐ์„œ ์ž‘์„ฑํ•œ ๊ธฐ๋Šฅ์€ ๋ฉ”๋‰ด์–ผ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐ ํ•˜์—ฌ ๋งŒ๋“ค์—ˆ๋‹ค. ๋จผ์ € ์ง€์› ํ•˜๋Š” ๋ฉ”์„ธ์ง€ ๋‹ค์ด์ œ์ŠคํŠธ ๋ชฉ๋ก์„ ํ™•์ธ ํ•˜์ž openssl dgst -list Supported digests: -blake2b512 -blake2s256 -md5 -md5-sha1 -ripemd -ripemd160 -rmd160 -sha1 -sha224 -sha256 -sha3-224 -..

Manual/OpenSSL 2023.05.08

[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