๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 189

PKCS#11 ์ด๋ž€

PKI ๊ธฐ์ˆ ์—์„œ ์ค‘์š”ํ•œ ์•”ํ˜ธํ™”์™€ ํ‚ค ์‚ฌ์šฉ์„ ํ•˜๋‹ค ๋ณด๋ฉด ํ‚ค์— ๋Œ€ํ•ด ์•ˆ์ „ํ•œ ๋ณด๊ด€๊ณผ ์•”ํ˜ธ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ณด์•ˆํ† ํฐ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋ณด์•ˆํ† ํฐ์„ ์‚ฌ์šฉํ• ๋•Œ ์–ธ๊ธ‰๋˜๋Š” ๋งŒ๋‚˜๊ฒŒ ๋˜๋Š” ์šฉ์–ด๊ฐ€ PKCS#11 ์ด๋‹ค. PKCS#11 ์†Œ๊ฐœ PKCS#11 ์€ Cryptographic Token Interface Standard ๋กœ ์•”ํ˜ธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต ํ•˜๋Š” ํ‘œ์ค€ API ์ •์˜๋ฅผ ๋งํ•œ๋‹ค. ์ด ํ‘œ์ค€์€ C ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ANSI C ํ•จ์ˆ˜์˜ ์ •์˜๋‹ค. ์ด ์ •์˜ ๋œ ํ•จ์ˆ˜๋“ค์„ Cryptoki ์ด๋ฆ„์œผ๋กœ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋งŒ๋“œ๋Š”๊ฒƒ์— ๋Œ€ํ•œ ํ‘œ์ค€ ๊ธฐ์ˆ ์ด๋‹ค. PKCS#11 ์žฅ์  ํ‘œ์ค€ํ™”๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ API ์ •์˜๋ฅผ ํ†ตํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ณด์•ˆํ† ํฐ์— ๋Œ€ํ•ด ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ƒํ˜ธ ๋…๋ฆฝ์„ฑ์„ ๋งŒ๋“ค์–ด ์ค€๋‹ค. ์ฆ‰ ๋‹ค์–‘ํ•œ ์žฅ์น˜์— ๋Œ€ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹จ..

PKI/HSM 2023.04.20

[BerEditor] ๊ฐ์ฒด ์‹๋ณ„์ž OID (Object Identifier) ๊ฒ€์ƒ‰

ASN.1 ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋ณด๋‹ค ๋ณด๋ฉด OID ์— ๋Œ€ํ•ด์„œ ์ž์ฃผ ์ ‘ํ•˜๊ฒŒ ๋œ๋‹ค. ์‹ค์ œ OID์— ๋Œ€ํ•œ ์ธ์ฝ”๋”ฉ ํฌ๋งท์€ ์—ฌ๊ธฐ์„œ ํ™•์ธ์ด ๊ฐ€๋Šฅ ํ•˜๋‹ค. OID ์ •์˜๋ฅผ ํ™•์ธ ํ•ด ๋ณด๋ฉด ๋‹ค์Œ ๊ณผ ๊ฐ™๋‹ค. OID (Object Identifier) ์ด๋ผ? ใ…‡ ์ง€์†์„ฑ์žˆ๋Š” ์œ ๋ฌดํ˜•์˜ ๊ฐ์ฒด๋ฅผ, ์ „์„ธ๊ณ„์ ์œผ๋กœ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ID ์ฒด๊ณ„ ใ…‡ ์—ฌ๊ธฐ์„œ, ๊ฐ์ฒด(Object)์— ๋Œ€ํ•œ ์ผ๋ฐ˜์  ์ •์˜๋Š”, - ์‹ค์„ธ๊ณ„๋Š” ๋ฌผ๋ก  ์ „๊ธฐ,์ „์ž,ํ†ต์‹  ๋ถ„์•ผ์—์„œ, ์–ด๋–ค ์‹๋ณ„์„ ์œ„ํ•œ ์‘์šฉ ๊ฐœ์ฒด๋“ค์„ ์ง€์นญํ•จ - ๊ฐœ๋žต์ ์œผ๋กœ, ๊ฐ๊ฐ ๋˜๋Š” ๋™์ผ ์œ ํ˜• ๊ฐ์ฒด๋“ค์˜ ๊ทธ๋ฃนํ•‘ ์ „์ฒด๋ฅผ ์ด์นญํ•จ - ์ถ”์ƒ์ ์ธ ์ •์˜๋กœ์„œ, ์ด ์„ธ์ƒ์— ์‹๋ณ„๋  ํ•„์š”๊ฐ€ ์žˆ๋Š” ๊ทธ ์–ด๋–ค ๊ฒƒ๋„ ๋Œ€์ƒ์ด ๋จ ใ…‡ ๊ณต๋™ ํ‘œ์ค€ : ITU-T X.680 & ISO/IEC 8824-1 ์˜๋ฌธ์œผ๋กœ ๋œ ๋ถ€๋ถ„์„ ์ฐพ์•„์„œ ์ธ์šฉ ํ•˜๋ฉด ๋‹ค์Œ ๊ณผ ๊ฐ™๋‹ค..

Manual/BerEditor 2023.04.18

TLS ์—์„œ ECDH ํ‚ค ํ•ฉ์˜ ๊ฒฝ์šฐ PRF (PseudoRandom Function) ๋ฐฉ์‹

TLS ํ”„๋กœํ† ์ฝœ์€ ์•”ํ˜ธํ™” ํ†ต์‹ ์ด๋‹ค. ์ด ๋•Œ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— ํ‚ค์— ๋Œ€ํ•œ ํ•ฉ์˜๊ฐ€ ์ด๋ฃจ์–ด ์ ธ์•ผ ํ•˜๋Š”๋ฐ ์ด ๋•Œ PRF๋ฅผ ํ†ตํ•ด ํ‚ค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ํ˜„์žฌ ์„ค๋ช…์€ ECDH ๋ฅผ ํ†ตํ•œ ํ‚ค ์ƒ์„ฑ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋‹ค. ์ฐธ๊ณ ๋กœ ์•„๋ž˜ ์„ค๋ช… ํ•˜๋Š” ๋‚ด์šฉ์€ RFC5246 ์„ ๋‚ด์šฉ์„ ๋ถ„์„ํ•œ ๊ฒƒ์ด๋‹ค. P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) + HMAC_hash(secret, A(2) + seed) + HMAC_hash(secret, A(3) + seed) + ... A() is defined as: A(0) = seed A(i) = HMAC_hash(secret, A(i-1)) PRF(secret, label, seed) = P_(secret, label + seed) ๊ฐ„๋‹จํžˆ ๋ง..

PKI/TLS 2023.04.14

[BerEditor] ASN.1 BER DER ์ธ์ฝ”๋”ฉ ๋ฐ์ดํƒ€ ๋ณด๊ธฐ

BerEditor๋Š” ASN.1 ํŒŒ์ผ์„ ์ฆ‰ DER ๋˜๋Š” BER ๋กœ ์ธ์ฝ”๋”ฉ ๋œ ํŒŒ์ผ์„ ๋””์ฝ”๋”ฉ ํ•ด์„œ ๋ณด๊ธฐ ์œ„ํ•œ ํˆด์ด๋‹ค. ์‹ค์ œ๋กœ BerEditor ํˆด์„ ์‚ฌ์šฉ์€ ์ฃผ๋กœ X.509 ์ธ์ฆ์„œ ๋˜๋Š” CRL ํŒŒ์ผ์„ ๋ณด๊ฑฐ๋‚˜ ์•„๋‹˜ RSA ๋˜๋Š” ECDSA ๊ฐœ์ธํ‚ค ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ ๋””์ฝ”๋”ฉ์„ ํ†ตํ•ด์„œ ์ƒ์„ธ ๊ฐ’์„ ํ™•์ธ ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜์—ด ๋œ ํ˜•์‹ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‚ฌ์‹ค ์•„์ฃผ ๋งŽ์€ ๊ณณ์—์„œ ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ASN.1 ๋ฐ์ดํƒ€๋Š” ์กด์žฌ ํ•˜๋Š”๋ฐ BerEditor ์ด์šฉํ•ด ์—ด์–ด ๋ณด๋ฉด ๋œ๋‹ค. (ํ˜น์‹œ ์•ˆ๋˜๋Š” ํŒŒ์ผ ๋˜๋Š” ๋ฐ์ดํƒ€๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š” ^^ ) ์•„๋ž˜ ์˜ˆ์ œ ํ™”๋ฉด์€ ์ธ์ฆ์„œ๋ฅผ ์—ด์–ด ๋ณธ ํ™”๋ฉด์ด๋‹ค. ์ธ์ฝ”๋”ฉ๋œ ASN.1 ํŒŒ์ผ์„ ๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” BerEditor์—์„œ๋Š” 4๊ฐ€์ง€ ์ •๋„ ๋ฐฉ์‹์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์—ด๊ธฐ ๋งˆ์šฐ์Šค ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋ž BER ๋ฐ์ดํƒ€ ์ž…๋ ฅ URI ..

Manual/BerEditor 2023.04.13

TLS ์™€ DTLS ๋ฒ„์ „ 1.2 ์— ๊ด€ํ•œ ํŠน์„ฑ

์ด ๊ธ€์€ ๋‚ด๊ฐ€ ECDSA ๊ธฐ๋ฐ˜ TLS 1.2 ์™€ DTLS 1.2 ์ŠคํŽ™์„ ๊ตฌํ˜„ ํ•˜๋ฉด์„œ ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ณด๋‹ˆ ์•Œ๊ฒŒ ๋œ ๋ฉ”๋ชจ๊ธ€์ด๋ผ ์ˆ˜์‹œ๋กœ ์—…๋ฐ์ดํŠธ ํ•  ์˜ˆ์ •์ด๋‹ค. ๊ธฐ์กด์— TLS ๊ด€๋ จ ์ง€์‹์€ ๋‹ค์Œ ๋งํฌ๋ฅผ ์ฐธ์กฐ ํ•˜๋ฉด ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋‹จ์ง€ ๊ฐœ๋ฐœ ํ•˜๋ฉด์„œ ํŒŒ์•…๋œ ๋‚ด์šฉ์„ ๊ฐ„๋‹จํžˆ ๊ธฐ๋ก ํ•˜์˜€๋‹ค. ๋งŒ์•ฝ์— TLS์— ๊ด€ํ•œ ๊ธฐ๋ณธ ์ง€์‹์„ ํŒŒ์•…ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐ ํ•˜์„ธ์š”. TLS ์— ๊ด€ํ•œ ์ •๋ณด ๋งํฌ https://dokydoky.tistory.com/462 https://dokydoky.tistory.com/463 https://dokydoky.tistory.com/464 DTLS ํŠน์„ฑ DTLS ( Datagram Transformt Layer ) ๋Š” UDP ํ™˜๊ฒฝ์—์„œ TLS ์ „์†ก์„ ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  D..

PKI/TLS 2023.04.11

[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
๋ฐ˜์‘ํ˜•