์ „์ฒด ๊ธ€ 177

[OpenSSL3] OpenSSL ์ปดํŒŒ์ผ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ

* ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ OpenSSL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ ํ•˜์—ฌ ์ปดํŒŒ์ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •์˜ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๊ธฐ๋ณธ OpenSSL ํ•จ์ˆ˜ ๊ฒฝ์šฐ utils/libcrypto.num ํŒŒ์ผ์— ๋‚ด์šฉ์„ ์ถ”๊ฐ€ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ํ˜„์žฌ ์ถ”๊ฐ€ํ•œ ๊ฐ’์€ ์•„๋ž˜ ์™ธ ๊ฐ™๋‹ค OCSP_request_get0_name 5559 3_0_8 EXIST::FUNCTION:OCSP OSSL_CMP_CTX_getServer 5560 3_0_8 EXIST::FUNCTION:CMP OSSL_CMP_CTX_getServerPath 5561 3_0_8 EXIST::FUNCTION:CMP OSSL_CMP_CTX_getServerPort 5562 3_0_8 EXIST::FUNCTION:CMP OSSL_CMP_MSG_get0_body 55..

OpenSSL ๊ณผ QT๋กœ ๊ฐœ๋ฐœ ํ•˜๋Š” ์ด์œ ๋Š”?

๋‚˜๋Š” PKI ๊ด€๋ จ ํˆด๋“ค์„ ๋งŒ๋“ค๋•Œ OpenSSL ๊ณผ QT ๋กœ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค. ๋จผ์ € OpenSSL ์€ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•ด ๋ณธ PKI ๊ธฐ์ˆ  ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘์— ๊ฐ€์žฅ ๊ธฐ๋Šฅ์ด ๊ฐ•๋ ฅํ•˜๋‹ค. (๋ฌผ๋ก  ๋‚˜๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ์จ๋ณด์ง€๋Š” ์•Š์•˜๋‹ค ^^;; ) ๊ทธ๋ฆฌ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ผ์ด์„ผ์Šค( ์•„ํŒŒ์น˜ ๋ผ์ด์„ ์Šค ) ๋ฌธ์ œ๋„ ์—†๋‹ค. ์ž‘์€ ์‚ฌ์ด์ฆˆ์˜ ๊ฐœ๋ฐœ์ด ํ•„์š” ํ•  ๋•Œ mbedTLS ๋„ ์‚ฌ์šฉํ•œ๋‹ค. mbedTLS ๊ฒฝ์šฐ ์•”ํ˜ธํ™” ๊ธฐ์ˆ  ๊ด€๋ จํ•ด์„œ๋Š” OpenSSL ๋ชป์ง€ ์•Š๊ฒŒ ์ž˜ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ณต์žกํ•œ ASN.1 ์˜ ๋‹ค์–‘ํ•œ ํฌ๋งท OCSP, TSP, CMP ๋“ฑ PKI ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ง€์›์ด ๋ถ€์กฑํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  OpenSSL ์€ ์–ด๋–ค ํ”Œ๋žซํผ์ด๋“  ์ง€์›์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. OpenSSL ๋งŒํผ ๋‹ค์–‘ํ•˜๊ฒŒ ์˜ค๋žฌ๋™์•ˆ ์‚ฌ์šฉ ๋œ ๋ชจ๋“ˆ์ด ์—†๋‹ค๊ณ  ๋ณธ๋‹ค. PKI ๊ธฐ์ˆ ์ด ๋Œ€๋ถ€๋ถ„ ํ‘œ..

Small Talk 2023.02.24

PKI ๊ด€๋ จ ํˆด์„ ๋งŒ๋“œ๋Š” ์ด์œ ๋Š”..

PKI ๊ด€๋ จํ•ด์„œ ๊ฐœ๋ฐœ ํ•˜๋ฉด์„œ ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์–ด์„œ ๊ฐœ๋ฐœ์˜ ๋„์›€์„ ์ฃผ๊ธฐ ์œ„ํ•จ์ด์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋™์•ˆ ์•Œ๊ฒŒ ๋œ ์ง€์‹์ด๋‚˜ ๊ธฐ๋Šฅ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ •๋ฆฌ๋„ ํ•˜๊ณ  ๋‚ด๊ฐ€ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ์„ ์ž์œ ๋กญ๊ฒŒ ๋งŒ๋“ค์–ด ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด ๋ณผ์ˆ˜ ์žˆ์–ด์„œ ์ด๋‹ค. ์‚ฌ์‹ค ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ํ…Œ์ŠคํŠธ๊ฐ€ ์ž˜๋œ ์†Œ์Šค๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ด€๋ จ ํˆด์„ ํ†ตํ•ด์„œ ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ์™€ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ด๊ธฐ๋„ ํ•˜๋‹ค. ๋˜ํ•œ ์‹œ๊ฐ„์ด ์ง€๋‚  ์ˆ˜๋ก ๊ธฐ์–ต์„ ๋ชปํ•ด์„œ ์ด๋ ‡๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋‚จ๊ฒจ ๋‘๋ฉด ์–ธ์ œ๋“  ์ฐพ์•„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์–ธ์ œ๋“  ์†Œ์Šค ๋ณด๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋˜์—ˆ์„๋•Œ ๊ทธ๋งŒํผ ๋จธ๋ฆฌ์†์— ์ž˜ ๊ธฐ์–ตํ•˜๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ณ„์† ๋งŒ๋“ค๋‹ค ๋ณด๋‹ˆ ์ด์ œ๋Š” ๊ด€๋ฆฌ ํ•˜๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ปค์ ธ ๋ฒ„๋ฆฐ๊ฑฐ ๊ฐ™๋‹ค.. ํ˜ผ์ž ๊ฐœ์ธ ์‹œ๊ฐ„์„ ๋‚ด์–ด์„œ ๋งŒ๋“ค๋‹ค ๋ณด๋‹ˆ..๋ฉ”๋‰ด์–ผ๋„ ๋งŒ๋“ค๊นŒ ์ƒ๊ฐ๋„ ํ–ˆ๋Š”๋ฐ.. ์ด์  ..

Small Talk 2023.02.23

์ธ์ฆ์„œ ๊ฒ€์ฆ

* ์ธ์ฆ์„œ ๊ฒ€์ฆ์ด๋ž€? ์‹ ๋ขฐ๋‹น์‚ฌ์ž๊ฐ€ ์ž์‹ ์ด ์‹ ๋ขฐํ•˜๋Š” TrustAnchor์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ๊ฒ€์ฆํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ ์ธ์ฆ์„œ์˜ ์†Œ์œ ์ž ๋ช…๊ณผ ๊ณต๊ฐœํ‚ค์˜ ์—ฐ๊ฒฐ์ด ์˜ฌ๋ฐ”๋ฅธ๊ฐ€๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ ์šฉ์–ด ์ •์˜ ๊ฐ€) ๋Œ€์ƒ ์ธ์ฆ์„œ : ๊ฒ€์ฆ ๋Œ€์ƒ์ด ๋˜๋Š” ์ธ์ฆ์„œ ๋‚˜) ์‹ ๋ขฐ ๋‹น์‚ฌ์ž : ๋Œ€์ƒ ์ธ์ฆ์„œ์˜ ์‹ ๋ขฐ์„ฑ์„ ํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฆ์„œ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ ํ•˜๋Š”์ž ๋‹ค) TrustAnchor : ์‹ ๋ขฐ๋‹น์‚ฌ์ž์˜ ์ตœ์ƒ์œ„ ์ธ์ฆ๊ธฐ๊ด€ ( ์‹ ๋ขฐ์˜ ์ถœ๋ฐœ ์  ) Self-Sign ์ธ์ฆ์„œ * ์ธ์ฆ์„œ ํ™•์žฅ ํ•„๋“œ critical์˜ ์ฒ˜๋ฆฌ * ์ธ์ฆ์„œ ๊ฒ€์ฆ ์ ˆ์ฐจ 1) ์ธ์ฆ์„œ ๊ฒฝ๋กœ ๊ตฌ์ถ• ์ธ์ฆ์„œ ๊ฒฝ๋กœ ๊ฒ€์ฆ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ธ์ฆ์„œ ๊ฒฝ๋กœ ๋ฐ ์ธ์ฆ์„œ ์ƒํƒœ ์ •๋ณด๋ฅผ ํš๋“ํ•˜๋Š” ๊ณผ์ • 2) ์ธ์ฆ์„œ ๊ฒฝ๋กœ ๊ฒ€์ฆ ์ธ์ฆ์„œ ๊ฒฝ๋กœ ๊ตฌ์ถ• ๊ณผ์ •์„ ํ†ตํ•ด ํš๋“๋œ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ๋Œ€์ƒ ์ธ์ฆ์„œ๋ฅผ ๊ฒ€์ฆ ํ•˜๋Š” ..

PKCS#5 ์™€ PKCS#7 ํŒจ๋”ฉ ๋ฐฉ๋ฒ•

ํŒจ๋”ฉ์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ์ง€๋งŒ ์ฃผ๋กœ ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”์— ์‚ฌ์šฉ ๋˜๋Š” ํŒจ๋”ฉ ๋ฐฉ์‹์ด PKCS#7 ๋ฐฉ์‹์ด๋‹ค. PKCS#7 ์€ RFC 5652 ์„ ์ฐธ์กฐ ํ•˜๋ฉด ๋œ๋‹ค. ๋Œ€์นญํ‚ค ์•”ํ˜ธ๋Š” ์›๋ฌธ์„ ๋ธ”๋ก ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์›๋ฌธ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ธ”๋ก ์‚ฌ์ด์ฆˆ ๋ณด๋‹ค ์ž‘์„ ์‹œ ๋ธ”๋ก ์‚ฌ์ด์ฆˆ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๊ธฐ ์œ„ํ•ด ํŒจ๋”ฉ์„ ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํŒจ๋”ฉ ๋ฐฉ๋ฒ•์ด PKCS#7 ์— ๋‚˜์˜ค๋Š” ๋ฐฉ์‹์ด๋‹ค. * ํŒจ๋”ฉ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์€ ์ถ”๊ฐ€ ๋˜๋Š” ํŒจ๋”ฉ์˜ ์ˆ˜๊ฐ€ ์ž…๋ ฅ ๋œ๋‹ค. N ๋ฐ”์ดํŠธ์˜ ํŒจ๋”ฉ์„ ํ•˜๋ ค๋ฉด N๋ฐ”์ดํŠธ์˜ ๊ฐ’์ด N๋ฒˆ ์ถ”๊ฐ€ ํ•œ๋‹ค. ํŒจ๋”ฉ์€ ๋‹ค์Œ์˜ ๊ฐ’ ์ฒ˜๋Ÿผ ๋œ๋‹ค. 01 ( 1byte ํŒจ๋”ฉ ) 02 02 ( 2byte ํŒจ๋”ฉ ) 03 03 03 ( 3byte ํŒจ๋”ฉ ) 04 04 04 04 05 05 05 05 05 06 06 06 06 06 06 etc...

PKI/Cryptography 2022.12.13

[OpenSSL] ECIES ์˜ˆ์ œ

์ด ์†Œ์Šค๋Š” GitHub ์—์„œ ๊ฐ€์ ธ์™”์Œ. https://github.com/insanum/ecies /* * Home: https://github.com/insanum/ecies * Author: Eric Davis */ #include #include #include #include #include #include #include #include #define err(fmt, ...) \ do { \ printf("ERROR:" fmt, ##__VA_ARGS__); \ exit(1); \ } while (0) #define log(fmt, ...) \ do { \ printf(fmt, ##__VA_ARGS__); \ } while (0) /* * This function takes a buffer wit..

Source Code 2022.12.09

ECIES ์•Œ๊ณ ๋ฆฌ์ฆ˜

* ECIES(Elliptic Curve Integreated Encryption Scheme) : ํ†ตํ•ฉ ์•”ํ˜ธํ™” ๋ฐฉ์‹(Public Key๋กœ ์•”ํ˜ธํ™”ํ•˜๊ณ  Private Key๋กœ ๋ณตํ˜ธํ™”) ECIES ๋Š” ECC ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ECDH ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‚ค ๊ตํ™˜ ํ›„ ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”๋ฅผ ํ•˜๋Š”๊ฒƒ์ด๋‹ค. Receiver loads the EC key (public/private/curve) Receiver sends its public key and curve to the Transmitter Transmitter generates a new ephemeral EC key on the curve Transmitter generates the shared symmetric key Transmitter encrypts the data..

PKI/Cryptography 2022.12.09

[OpenSSL] Hash Value ํ•จ์ˆ˜

์•„๋ž˜๋Š” ํ•ด์‰ฌ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ์†Œ์Šค์ด๋‹ค pAlg ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์€ md5, sha1, sha224, sha256, sm3 ๋“ฑ ๋ฌธ์ž์—ด ์ด๋‹ค. pSrc ๊ฐ€ ์ž…๋ ฅ ๊ฐ’ pHash ๊ฐ€ ๊ฒฐ๊ณผ ํ•ด์‰ฌ ๊ฐ’ BIN ๊ตฌ์กฐ์ฒด typedef struct _BIN { intnLen; unsigned char*pVal; } BIN; int JS_PKI_genHash(const char * pAlg, const BIN * pSrc, BIN * pHash) { intnRet = 0; EVP_MD_CTX*pCTX = NULL; const EVP_MD*pMD = NULL; unsigned char*pDigest = NULL; intnDigestLen = 0; pMD = EVP_get_digestbyname(pAlg); if (pMD == N..

Development 2022.12.09

RSA ์•Œ๊ณ ๋ฆฌ์ฆ˜

RSA ์„ค๋ช… youtube ์˜์ƒ https://www.youtube.com/watch?v=kGUlfVpIfaQ PKI ๊ด€๋ จ ๊ฐœ๋ฐœ ํ•˜๋ฉด์„œ ์ˆ˜ํ•™์ด ํ•ญ์ƒ ์–ด๋ ค์› ๋Š”๋ฐ ๊ทธ๋ž˜๋„ ์ด ์œ ํŠœ๋ธŒ ์˜์ƒ์ด RSA ์— ์‚ฌ์šฉ๋˜๋Š” ์ˆ˜ํ•™์„ ์‰ฝ๊ฒŒ ์ž˜ ์„ค๋ช…์„ ํ•ด์ฃผ๋„ค์š”. RSA ์œ„ํ‚ค ํŽ˜์ด์ง€ https://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%98%B8 RSA ์•”ํ˜ธ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „ ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. RSA[1] ์•”ํ˜ธ๋Š” ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์‹œ์Šคํ…œ์˜ ํ•˜๋‚˜๋กœ, ์•”ํ˜ธํ™”๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ „์ž์„œ๋ช…์ด ๊ฐ€๋Šฅํ•œ ์ตœ์ดˆ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ๋‹ค. RSA๊ฐ€ ๊ฐ–๋Š” ์ „์ž์„œ๋ช… ๊ธฐ๋Šฅ์€ ์ธ์ฆ์„ ์š”๊ตฌ ko.wikipedia.org

PKI/Cryptography 2022.12.08

SM2 SM3 SM4 ์•Œ๊ณ ๋ฆฌ์ฆ˜

* SM2, SM3 ๊ทธ๋ฆฌ๊ณ  SM4 ๋Š” ์ค‘๊ตญ ์•”ํ˜ธ ํ‘œ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋‹ค. ์—ฌ๊ธฐ๋Š” SM์€ ShangMi ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. * SM2 ๋Š” Elliptic Curve Cryptography (ECC) ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ „์ž ์„œ๋ช… ๋ฐ ๊ฒ€์ฆ์„ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. * SM3๋Š” ํ•ด์‰ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ * SM4 ๋Š” ์•”/๋ณตํ˜ธํ™”๋ฅผ ์œ„ํ•œ ๋ธ”๋ก ์‚ฌ์ดํผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋‹ค. ์ฐธ๊ณ ) ๊ฐœ์ธ์ ์œผ๋กœ ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ์ˆ˜ํ•™์  ์ดํ•ด๋Š” ์–ด๋ ต๊ตฌ ๋‹จ์ง€ ๊ด€๋ จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ํŠน์„ฑ๋งŒ ์„ค๋ช…ํ•œ๋‹ค. SM3 * SM3์˜ ๊ฒฝ์šฐ 32๋ฐ”์ดํŠธ์˜ ๊ธธ์ด์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ณด์—ฌ์ค€๋‹ค. SM4 * SM4 ์˜ ๊ฒฝ์šฐ ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”์ด๋ฉด ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” SM4์šฉ ํ‚ค ๊ธธ์ด๋Š” 16๋ฐ”์ดํŠธ๋กœ ๊ณ ์ •์ด๋ฉฐ IV ๋ฐ ์šด์˜ ๋ชจ๋“œ๋Š” ๋ชจ๋‘ ๋™์ผํ•œ๋‹ค. SM2 * SM2 ์˜ ๊ฒฝ์šฐ ์ „์ž ์„œ๋ช…์šฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ฉฐ ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•ด์‰ฌ๋Š” S..

PKI/Cryptography 2022.12.06