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

ASN.1 ์ด์šฉํ•œ ๊ฐœ๋ฐœ ํ๋ฆ„

ASN.1 ์„ ์ด์šฉ ๊ฐœ๋ฐœ์‹œ ์ผ๋ฐ˜์ ์œผ๋กœ 4 ๋‹จ๊ณ„์˜ ๊ณผ์ •์ด ์žˆ๋‹ค. 1. ๋‹จ๊ณ„1 : Specify - ASN.1 ํ”„๋กœํ† ์ฝœ ๋””์ž์ธ 2. ๋‹จ๊ณ„2 : Translate - ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ ์–ธ์–ด๋กœ ASN.1 ์— ๋Œ€ํ•ด ์ปดํŒŒ์ผ 3. ๋‹จ๊ณ„3 : Build - ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— 2๋‹จ๊ณ„์—์„œ ์ปดํŒŒ์ผ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉ ๊ฐœ๋ฐœ 4. ๋‹จ๊ณ„4 : Run - ์‚ฌ์šฉ ์‹œ์Šคํ…œ์— ๊ฐœ๋ฐœ ํ”„๋กœ๊ทธ๋žจ์„ ์šด์˜ ์œ„ ๊ทธ๋ฆผ์€ oss.com ์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ ์™”์Œ ์ฐธ๊ณ ) ์œ„์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ASN.1 ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ตฌ์กฐ์ด๋‹ค. PKI ๊ฐœ๋ฐœ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” OpenSSL ์„ ์ด์šฉ์‹œ OpenSSL ์ด ์ž์ฒด ASN.1 ๋ฐ DER ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ๊ธฐ๋Šฅ์ด ์ง€์› ๋˜์–ด์„œ ๋ณ„๋„์˜ ASN.1 ์ •์˜ ๋ฐ ์ปดํŒŒ์ผ ์—†์ด ๋ฐ”๋กœ ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

PKI/ASN.1 2022.11.02

ASN.1 ์ด๋ž€?

1. ASN.1 ์˜๋ฏธ๋Š”? Abstract Syntax Notation Dot One ์ด๋ฉฐ ITU ( International Telecommunication Unit ) ์—์„œ ๋„คํŠธ์›Œํฌ ์ƒ ๋ฐ์ดํƒ€ ๊ตํ™˜์„ ์œ„ํ•ด ์ •์˜ํ•œ ํ”„๋กœํ† ์ฝœ ํ‘œ์ค€์ด๋‹ค. ๋ฐ์ดํƒ€ ๊ตฌ์„ฑ์„ ํ‘œํ˜„ ํ•˜๋Š” ๋ฌธ๋ฒ•(์–ธ์–ด) ์ด๋‹ค. 2. ASN.1 ์˜ ์‚ฌ์šฉ ์ด์œ ๋Š”? ๋„คํŠธ์›Œํฌ ์ƒ ๋‹ค์–‘ํ•œ ์ž์‹ ๋งŒ์˜ ๋ฐ์ดํƒ€ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ์‹œ์Šคํ…œ์ด ์กด์žฌํ•˜๋Š”๋ฐ ์ด๋“ค๊ฐ„์˜ ๋ฐ์ดํƒ€ ์ „์†ก์˜ ํ‘œ์ค€์„ ํ†ตํ•œ ์„œ๋กœ๊ฐ„์˜ ๋ฐ์ดํƒ€์˜ ํ˜ธํ™˜์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ PKI ์—์„œ ์ธ์ฆ์„œ์—์„œ ์‚ฌ์šฉ์ด ๋˜์–ด ์ง„๋‹ค. 3. ASN.1 ์˜ˆ์ œ ํฌ๋งท Certificate ::= SEQUENCE { tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdent..

PKI/ASN.1 2022.11.02

[Openssl3] CMP freeText ๊ธฐ๋Šฅ ์ถ”๊ฐ€

cmp.h.in ์— ํ—ค๋” ์ถ”๊ฐ€ STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses2(OSSL_CMP_CTX *ctx, ASN1_UTF8STRING **ppFreeText ); const ASN1_UTF8STRING* OSSL_CMP_get0_freeText( OSSL_CMP_PKIHEADER *hdr ); int OSSL_CMP_set0_freeText( OSSL_CMP_CTX *ctx, ASN1_UTF8STRING *text ); cmp_ctx.c ์†Œ์Šค ์— ์ถ”๊ฐ€ const ASN1_UTF8STRING* OSSL_CMP_get0_freeText( OSSL_CMP_PKIHEADER *hdr ) { if( hdr == NULL ) return NULL; return hdr-..

[Openssl3] OSSL_CMP_certConf_new ์ถ”๊ฐ€

cmp.h.in ํŒŒ์ผ์— OSSL_CMP_MSG* OSSL_CMP_certConf_new( OSSL_CMP_CTX *ctx, int fail_info, const char *text ); cmp_ctx.c ํŒŒ์ผ์— OSSL_CMP_MSG* OSSL_CMP_certConf_new( OSSL_CMP_CTX *ctx, int fail_info, const char *text ) { return ossl_cmp_certConf_new( ctx, fail_info, text ); } ์œˆ๋„์šฐ ์ง€์›์„ ์œ„ํ•ด์„œ๋Š” utils/libcrypto.num ์— ํ•จ์ˆ˜๋ช…์„ ์ถ”๊ฐ€ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ถ”๊ฐ€ ํ•ด์คŒ ์ดํ•จ์ˆ˜๋Š” OpenSSL3 ์—์„œ๋งŒ ์ถ”๊ฐ€ ํ•ด์•ผํ•จ cmpossl ์— ์ด๋ฏธ ์กด์žฌ ํ•˜๋Š” ํ•จ์ˆ˜ ์ž„

CryptokiMan ( PKCS#11 Cryptoki Manager )

CryptokiMan ์†Œ๊ฐœCryptokiMan ์€ PKCS#11 ํ‘œ์ค€ API์ธ Cryptoki ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ HSM ์žฅ์น˜๋ฅผ ๊ด€๋ฆฌ ๋ฐ ์šด์˜ํˆด ์ž…๋‹ˆ๋‹ค.์ฆ‰ PKCS#11 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ HSM ์žฅ์น˜ ๊ด€๋ฆฌ ๋ฐ ์šด์˜์„ ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.ํ•ด๋‹น ํŒŒ์ผ์€ ์•„๋ž˜์—์„œ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ( ์šฉ๋Ÿ‰์€ 30M ์ •๋„ )์‹ค์ œ๋กœ ๋ชจ๋“ˆ ํ…Œ์ŠคํŠธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๋งŒ๋“ค์–ด์ง„ PKCS#11 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธhttps://www.opendnssec.org/softhsm/ ์—ฌ๊ธฐ์„œ ๋‹ค์šด ๋ฐ›์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.์ฐธ๊ณ ๋กœ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‚ฌ์‹ค ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๋งŒ๋“ค์–ด์ง„ PKCS#11 ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋กœ ๋งŒ๋“ ํˆด์ด๋ผ ๋น„์šฉ ๋ฌธ์ œ๋กœ ์ฝ”๋“œ ์„œ๋ช…์„ ๋ชปํ•ด์„œ ์„ค์น˜ ๊ฒฝ๊ณ ๊ฐ€ ๋œฐ ์ˆ˜ ์žˆ์ง€๋งŒ๊ณ„์† ์„ค์น˜๋‚˜ ์‹คํ–‰ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.This p..

My Programs 2021.07.16

CertMan ( X509 Cert, CRL Manager )

CertMan ์†Œ๊ฐœCertMan ์€ X.509 ์ธ์ฆ์„œ, CRL, CSR ๊ทธ๋ฆฌ๊ณ  ํ‚ค ์Œ์„ ์ƒ์„ฑ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.์ง€์› ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ RSA, ECDSA, SM2, DSA, EdDSA(Ed25519, Ed448) ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ๋‹ค์–‘ํ•œ ์ธ์ฆ์„œ ๋ฐ CRL ํ”„๋กœํŒŒ์ผ์„ ํ†ตํ•œ ์ธ์ฆ์„œ ๋ฐ CRL ์„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ๋Š”CA ๋กœ์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.ํ•ด๋‹น ํŒŒ์ผ์€ ์•„๋ž˜์—์„œ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ( ์šฉ๋Ÿ‰์€ 30M ์ •๋„ )์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋กœ ๋งŒ๋“ ํˆด์ด๋ผ ๋น„์šฉ ๋ฌธ์ œ๋กœ ์ฝ”๋“œ ์„œ๋ช…์„ ๋ชปํ•ด์„œ ์„ค์น˜ ๊ฒฝ๊ณ ๊ฐ€ ๋œฐ ์ˆ˜ ์žˆ์ง€๋งŒ๊ณ„์† ์„ค์น˜๋‚˜ ์‹คํ–‰ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.This program is a management program that generates X.509 certificates, CRLs, CSRs and key pairs.Supp..

My Programs 2021.07.16

BerEditor ( ASN.1 DER BER and KMIP TTLV Viewer and Editor )

BerEditor ์†Œ๊ฐœBerEditor ๋Š” ASN.1 ์ธ์ฝ”๋”ฉ ๊ทœ์น™(BER, DER)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฝ”๋”ฉ ๋œ ๋ฐ์ดํƒ€๋ฅผ ๋ถ„์„ํ•˜๊ณ  ํŽธ์ง‘ํ•˜๊ธฐ ์œ„ํ•œ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž(GUI) ๋„๊ตฌ ์ž…๋‹ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  KMIP ์šฉ ํ”„๋กœํ† ์ฝœ ํฌ๋งท์ธ TTLV ์ธ์ฝ”๋”ฉ ํฌ๋งท ์ฝ๊ธฐ ๋ฐ ํŽธ์ง‘์„ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค.๊ทธ์™ธ PKI ๋˜๋Š” ์•”ํ˜ธํ™” ๊ฐœ๋ฐœ ์‹œ ํ•„์š”ํ•œ ์•”/๋ณตํ˜ธํ™”, ์„œ๋ช…/๊ฒ€์ฆ, OTP ์ƒ์„ฑ ๋ฐ OID ๊ฐ’ ๋ณด๊ธฐ ๋ฐ BigNum ๊ณ„์‚ฐ ๋“ฑ ์•”ํ˜ธ ๊ด€๋ จ ๊ธฐ๋Šฅ ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.์‚ฌ์ด์ฆˆ๋Š” 29M ์ •๋„์ž…๋‹ˆ๋‹ค.์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋กœ ๋งŒ๋“ ํˆด์ด๋ผ ๋น„์šฉ ๋ฌธ์ œ๋กœ ์ฝ”๋“œ ์„œ๋ช…์„ ๋ชปํ•ด์„œ ์„ค์น˜ ๊ฒฝ๊ณ ๊ฐ€ ๋œฐ ์ˆ˜ ์žˆ์ง€๋งŒ๊ณ„์† ์„ค์น˜๋‚˜ ์‹คํ–‰ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.This tool is capable of editing and viewing for BER and DER data.BerEditor is ASN...

My Programs 2021.03.11

[OpenSSL] OSSL_CMP_CERTSTATUS ์ •๋ณด ์–ป๊ธฐ ํ•จ์ˆ˜

cmp.h.in ์— ์•„๋ž˜ ํ—ค๋” ์ถ”๊ฐ€ ASN1_OCTET_STRING *OSSL_CMP_CERTSTATUS_get0_certHash( OSSL_CMP_CERTSTATUS *certStatus ); ASN1_INTEGER *OSSL_CMP_CERTSTATUS_get0_certReqId( OSSL_CMP_CERTSTATUS *certStatus ); OSSL_CMP_PKISI *OSSL_CMP_CERTSTATUS_get0_statusInfo( OSSL_CMP_CERTSTATUS *certStatus ); cmp_msg.c ์— ์•„๋ž˜ ์†Œ์Šค ์ถ”๊ฐ€ ASN1_OCTET_STRING *OSSL_CMP_CERTSTATUS_get0_certHash( OSSL_CMP_CERTSTATUS *certStatus ) { if( c..

[CMPOSSL] CMP CTX ์—์„œ serverName, serverPath, serverPort ์ •๋ณด ์–ป๊ธฐ ํ•จ์ˆ˜

cmp.h ์— ํ•จ์ˆ˜ ์ •์˜ ์ถ”๊ฐ€ const char* OSSL_CMP_CTX_getServerPath(OSSL_CMP_CTX *ctx); const char* OSSL_CMP_CTX_getServer(OSSL_CMP_CTX *ctx); int OSSL_CMP_CTX_getServerPort(OSSL_CMP_CTX *ctx); cmp_ctx.c ์— ์ฝ”๋“œ ์ถ”๊ฐ€ const char* OSSL_CMP_CTX_getServerPath(OSSL_CMP_CTX *ctx) { if( ctx == NULL ) return NULL; return ctx->serverPath; } int OSSL_CMP_CTX_getServerPort(OSSL_CMP_CTX *ctx) { if( ctx == NULL ) return -1; ..

[CMPOSSL] OSSL_CMP_REVDETAILS ์‚ฌ์šฉ ์ง€์› ํ•˜๊ธฐ

cmp_int.h ์—์„œ DEFINE_STACK_OF(OSSL_CMP_REVDETAILS) certDetails; } X509_EXTENSIONS* OSSL_CMP_REVDETAILS_get0_crlEntryDetails( const OSSL_CMP_REVDETAILS *details ) { if( details == NULL ) return NULL; return details->crlEntryDetails; } ์ฐธ๊ณ ) Openssl3 ์—์„œ๋Š” ์ ์šฉ์— ์–ด๋ ค์›€ ์žˆ์Œ( ์•„๋ž˜ ์ฒ˜๋ฆฌ ํ•จ ) cmp.h ์— X509_EXTENSIONS* OSSL_CMP_get0_crlEntryDetails( void *pRR_Body, int index ); cmp_ctx.c ์— X509_EXTENSIONS* OSSL_CMP_get..

๋ฐ˜์‘ํ˜•