PKI 76

ECDSA ๊ฐœ์ธํ‚ค ASN.1 ํ˜•์‹

์ด๋ฒˆ์—๋Š” ECDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ์ธํ‚ค ํฌ๋งท์— ๋Œ€ํ•ด ์•Œ์•„ ๋ณด์ž ๋จผ์ € ECDSA ๊ฐœ์ธํ‚ค ํฌ๋งท์€ RFC5915 ์— ์ •์˜ ๋˜์–ด ์žˆ๋‹ค. ASN.1 ํ˜•์‹ ECPrivateKey { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-ecprivateKey(65) } DEFINITIONS EXPLICIT TAGS ::= BEGIN -- EXPORTS ALL; IMPORTS -- FROM New PKIX ASN.1 [RFC5912] ECParameters, NamedCurve FROM PKIXAlgs-2009 { iso(1) identified-organization(3) d..

PKI/ASN.1 2023.05.02

RSA vs ECDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต

PKI ๋ฐ ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด RSA ์™€ ECDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” RSA์™€ ECDSA ์ˆ˜ํ•™์ ์ธ ๋‚ด์šฉ ๋ณด๋‹ค๋Š” ์—…๋ฌด์—์„œ ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์ด๋‹ค. ์‹ค์ œ๋กœ ๋‘๊ฐœ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž๋ฃŒ๋Š” ๊ฒ€์ƒ‰ํ•ด ๋ณด๋ฉด ์•„์ฃผ ๋งŽ์ด ์กด์žฌํ•œ์ง€๋งŒ ๋‚˜๋งŒ์˜ ์ƒ๊ฐ์„ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์•˜๋‹ค. 1. RSA ์•Œ๊ณ ๋ฆฌ์ฆ˜ Ron Rivest, Adi Shamir ๊ทธ๋ฆฌ๊ณ  Leonard Adleman ์˜ ์—ฐ๊ตฌ์‹ค์—์„œ 1978๋…„๋„์— ์„ธ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์˜ ์•ฝ์ž๋ฅผ ๋”ฐ์„œ ๋งŒ๋“ค์–ด ์กŒ๋‹ค. RSA ์•ˆ์ •์„ฑ์€ ํฐ ์ˆซ์ž๋ฅผ ์†Œ์ธ์ˆ˜ ๋ถ„ํ•ด๊ฐ€ ์–ด๋ ต๋‹ค๋Š”๊ฒƒ์— ๊ธฐ๋ฐ˜์„ ๋‘” ๋น„ ๋Œ€์นญํ‚ค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋‹ค. ํฐ ์ˆ˜์˜ ์†Œ์ธ์ˆ˜ ๋ถ„ํ•ด๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด RSA๋Š” ๋ฌด๋„ˆ์ง„๋‹ค.( ์–‘์ž ์•”ํ˜ธ์—์„œ๋Š” ๋น ๋ฅด๊ฒŒ ๋ถ„ํ•ด ๋ฐฉ๋ฒ• ๋ฐœํ‘œ ํ•จ ) 2. ECDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜ Neal Koblitz ์™€ Victor Mi..

PKI/Cryptography 2023.04.28

๊ณต๊ฐœํ‚ค ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ (PKI) ๊ฐœ๋…

์š”์ฆ˜ ๋งŽ์€ ๋ถ„์•ผ์—์„œ PKI ๋ผ๋Š” ์šฉ์–ด๊ฐ€ ์‚ฌ์šฉ ๋œ๋‹ค. ์˜ค๋žซ๋™์•ˆ ์ด ๋ถ„์•ผ์— ๊ด€ํ•œ ์—…๋ฌด๋ฅผ ํ•˜๋‹ค ๋ณด๋‹ˆ PKI ๋Š” ์‚ฌ์‹ค ๋งŽ์€ ์‹œ์Šคํ…œ์— ์•ฝ๋ฐฉ์˜ ๊ฐ์ดˆ ๊ฐ™์€ ์—ญํ™œ์„ ํ•˜๋Š”๊ฑฐ ๊ฐ™๋‹ค. ์‚ฌ์‹ค PKI๋Š” ๋…๋ฆฝ์ ์œผ๋กœ๋งŒ ์“ธ ์ˆ˜๋Š” ์—†์–ด๋„ ์–ด๋””์„œ๋“  ์“ฐ์ด๋Š” ์ •๋ง ๊ฐ์ดˆ๊ฐ€ ์•„๋‹๊นŒ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— PKI ๊ฐœ๋… ์ •๋ฆฌ๋ฅผ ํ•ด ๋ณด์ž. 1. PKI ์ •์˜ PKI ( Public Key Infrastructure) ๋Š” ์‚ฌ์šฉ์ž ๋˜๋Š” ์žฅ์น˜๋“ค์„ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๊ฐœ ํ‚ค ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉ์„ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ, ์ •์ฑ… ๋ฐ ์„œ๋น„์Šค ์‹œ์Šคํ…œ์„ ๋งํ•œ๋‹ค. ์‚ฌ์‹ค ์ด ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์ •์˜ ํ‘œ์ค€์€ ์—†์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์ฆ๊ธฐ๊ด€์ธ CA, ๋“ฑ๋ก๊ธฐ๊ด€์ธ RA์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ด CA์—์„œ ๋ฐœํ–‰ํ•˜๋Š”์ธ์ฆ์„œ๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž ๋˜๋Š” ์žฅ์น˜๋ฅผ ์ธ์ฆํ•˜๋Š” ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์„ ๋งํ•œ๋‹ค. ์ผ๋ฐ˜์  ๋น„๋Œ€์นญํ‚ค๊ณผ ์•”ํ˜ธํ™” ์‹œ..

GnuPG ์‚ฌ์šฉ ํ•˜๊ธฐ ( ์œˆ๋„์šฐ ํ™˜๊ฒฝ gpg4win )

์‚ฌ์‹ค e ๋ฉ”์ผ์€ ๋ณด๋‚ธ ์‚ฌ๋žŒ์˜ ์‹ ๋ขฐ์„ฑ์— ์ทจ์•ฝํ•œ ์ ์ด ์žˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด GnuPG ๋ฅผ ์ด์šฉํ•ด ์†ก์‹ ์ž์˜ ์ „์ž ์„œ๋ช… ๋ฐ ์•”ํ˜ธํ™” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋ฒ•์„ ๊ธฐ๋กํ•ด ๋‘์—ˆ๋‹ค. ํ˜„์žฌ GnuPG ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์˜ ๊ณต๊ฐœํ‚ค ๊ณต์œ ๊ฐ€ ์šฐ์„  ์ด๋ฃจ์–ด ์ ธ์•ผ ํ•˜๋Š”๋ฐ ํŠน์ • ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๊ณต์œ  ํ•  ์ˆ˜ ์—†์–ด์„œ ๋ฉ”์ผ์ด๋‚˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์šฐ์„  ๊ณต์œ  ๋˜์–ด์•ผ ํ•œ๋‹ค. 1. GnuPG ๊ฐœ์š” Gnu Privacy Guard ์˜ ์•ฝ์ž๋กœ PGP์˜ ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ํ‘œ์ค€ ๋ฌธ์„œ๋Š” RFC 4880 ์ด๋‹ค. GnuPG๋Š” Free Software Foundation์—์„œ OpenPGP ํ‘œ์ค€์— ๋”ฐ๋ผ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋žจ์ด๋ฉฐ ์œˆ๋„์šฐ์šฉ ์ด๋ฆ„์€ Gpg4win ์ด๋‹ค GPL(GNU General Public License) ๋ผ์ด์„ผ์Šค ์ •์ฑ…ํ•˜์—์„œ ๋ฌด๋ฃŒ..

OpenSSL 3.0 ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ ( OpenSSL 1.1.1 ๊ณผ ๋น„๊ต )

OpenSSL ์€ 0.9.xx ์—์„œ ๊ทธ๋ฆฌ๊ณ  1.1.1x ๋ฒ„์ „์—์„œ 3.0 ๋ฒ„์ „(์ถœ์‹œ์ผ: 2021-09-07) ์œผ๋กœ ๋‚˜์™”๋‹ค. ํ˜„์žฌ 3.0 ๋ฒ„์ „์—์„œ๋Š” FIPS๋ชจ๋“ˆ์˜ ์‚ฌ์šฉ๊ณผ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ 3.0 ์œผ๋กœ ๋ณ€๊ฒฝ์„ ํ•ด์•ผ ํ•œ๋‹ค. ๊ธ€์„ ์“ฐ๋Š” ์ด ์‹œ์ ์—๋Š” 3.1 ๋ฒ„์ „ (์ถœ์‹œ์ผ: 2023-03-14) ๊นŒ์ง€ ๋‚˜์™€ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์•Œ์•„ ๋ณด์ž. ์ด ๊ธ€์€ OpenSSL 3.0 ์œ„ํ‚ค๋ฅผ ์ฐธ์กฐ ํ•˜์˜€๋‹ค. 1. ๋ผ์ด์„ผ์Šค ๋ณ€๊ฒฝ - ๊ธฐ์กด openssl ์€ OpenSSL ๊ณผ SSLeay ๋ผ์ด์„ผ์Šค์—์„œ Apache License v2 ๋กœ ๋ณ€๊ฒฝ ๋˜์—ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ GPL ๋ผ์ด์„ผ์Šค์™€์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ ๋˜์—ˆ๋‹ค. 2. FIPS ์ธ์ฆ ๋ชจ๋“ˆ ํฌํ•จ - Openssl 1.1.1 ์—์„œ๋Š” FIPS ๋ชจ๋“ˆ์„ ๋”ฐ๋กœ ํŒจํ‚ค์ง€ ..

PKCS#11 ํ•จ์ˆ˜ ๋ฐ ์‚ฌ์šฉ

์ด์ œ PKCS#11 ์— ์ •์˜ ๋œ C API ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์˜ˆ์‹œ๋ฅผ ์„ค๋ช…ํ•œ๋‹ค. PKCS#11 Functions ์ผ๋ฐ˜ ๋ชฉ์ ์˜ ํ•จ์ˆ˜ Initialize, GetInfo, Fianlize, GetFuctionList ์Šฌ๋กฏ ๋ฐ ํ† ํฐ ๊ด€๋ฆฌ GetSlotList, GetSlotInfo , InitToken, InitPIN, SetPIN, WaitForSlotEvent, GetTokenInfo, GetMechanismList, GetMechanismInfo ๊ฐ์ฒด ๊ด€๋ฆฌ CreateObject, CopyObject, DestrotyObject, GetObjectSize, GetAttributeValue, SetAttributeValue, FindObjectInit, FindObject, FindObjectFi..

PKI/HSM 2023.04.20

PKCS#11 ๊ฐ์ฒด ๋ฐ ๊ตฌ์กฐ

PKCS#11 ์— ์ •์˜ ๋œ ๊ธฐ์ˆ ์ ์œผ๋กœ ์ข€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๋ถ„์„ํ•ด ๋ณด์ž PKCS#11 ๊ฐ์ฒด ๋ชจ๋ธ(Object Model) ๋‹ค์Œ ๊ทธ๋ฆผ์ด ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ชจ๋ธ ๊ตฌ์กฐ๋„ ์ด๋‹ค. Cryptoki ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋Š” ๋ฐ์ดํƒ€, ์ธ์ฆ์„œ ๊ทธ๋ฆฌ๊ณ  ํ‚ค์— ๋Œ€ํ•ด ์ •์˜ ํ•œ๋‹ค. ์†์„ฑ(Attributes)์€ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ณ„ ํ•˜๋Š” ํŠน์„ฑ์ด๋‹ค. PKCS#11 ๊ฐ์ฒด ํŠน์„ฑ์— ๋Œ€ํ•œ ๊ตฌ์กฐ๋„ PKCS#11 ๊ฐ์ฒด ํŠน์„ฑ ๊ฐ๊ฐ์˜ ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ๋Š” ๊ทธ๋ฆผ ์ฒ˜๋Ÿผ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ณด์—ฌ์ฃผ๋Š” ํŠน์„ฑ์˜ ์ฃผ์š”ํ•œ ํŠน์„ฑ์˜ ์ผ๋ถ€๋ถ„์„ ํ‘œํ˜„ ํ–ˆ๋‹ค. Cryptoki ์—์„œ๋Š” ๋‘๊ฐ€์ง€ ์œ ์ € ํƒ€์ž…์ด ์กด์žฌํ•œ๋‹ค. Securyt Officer( SO ) : ๋ณด์•ˆํ† ํฐ ์ดˆ๊ธฐํ™” ๋ฐ ์‚ฌ์šฉ์ž PIN ์„ค์ • ์—ญํ™œํ•˜๋Š” ํƒ€์ž… Normal User : ์ผ๋ฐ˜ ๋ณด์•ˆํ† ํฐ ์‹ค์ œ ์‚ฌ์šฉ์ž ํƒ€์ž… Cryptoki ๋Š” ์ฝ๊ธฐ/์“ฐ..

PKI/HSM 2023.04.20

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

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

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