PKI/HSM 6

[PKCS#11] CK_SESSION_INFO ๊ตฌ์กฐ์ฒด ์„ค๋ช…

PKCS#11 API ๋ฅผ ์‚ฌ์šฉ์—์„œ ํ˜„์žฌ ์—ฐ๊ฒฐ ์ƒํƒœ ์ •๋ณด๋ฅผ ํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ฒด๊ฐ€ ์žˆ๋‹ค. ์ฆ‰ ํ˜„์žฌ ์„ธ์…˜์— ๋Œ€ํ•œ ๊ตฌ์กฐ์ฒด ์ •๋ณด๋ฅผ ํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ฒด๊ฐ€ CK_SESSION_INFO ๊ตฌ์กฐ์ฒด ์ด๋‹ค. CK_SESSION_INFO ์ •์˜ typedef struct CK_SESSION_INFO { CK_SLOT_ID slotID; CK_STATE state; CK_FLAGS flags; CK_ULONG ulDeviceError; } CK_SESSION_INFO; ์ด ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ API ๊ฐ€ C_GetSessionInfo ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ๊ตฌ์กฐ์ฒด ์ •๋ณด์˜ ์ •์˜๋ฅผ ๋ณด๋ฉด slotID : ํ† ์ปจ ์ธํ„ฐํŽ˜์ด์Šค ์Šฌ๋กฏ์˜ ID state : ์„ธ์…˜์— ๋Œ€ํ•œ ์ƒํƒœ flags : ๋น„ํŠธ ํ”Œ๋ž˜๊ทธ๋กœ CKF_RW_SESSION ๊ณผ CKF_..

PKI/HSM 2024.01.04

PKCS#11 ์„œ๋ช…์—์„œ C_SignUpdate C_SignFinal ์‚ฌ์šฉ ๋ชปํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜

์ผ๋ฐ˜์ ์œผ๋กœ ์ „์ž ์„œ๋ช…์€ ์›๋ฌธ์— ๋Œ€ํ•œ ํ•ด์‰ฌ๊ฐ’์„ ๊ฐœ์ธํ‚ค๋กœ ์•”ํ˜ธํ™” ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ PKCS#11 ํ•จ์ˆ˜์—์„œ C_SignInit -> C_SignUpdate (๋ฐ˜๋ณต) C_SignFinal ๊ณผ์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ๊ตฌํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ C_SignUpdate ๊ฒฝ์šฐ์— ๋ณธ๋ฌธ์„ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ณด๋‚ด ๊ฒฝ์šฐ ๋ฐ˜๋ณต์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰ C_SignInit ์—์„œ๋Š” ์–ด๋–ค ํ‚ค์™€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์•Œ๋ ค์ฃผ๊ณ  C_SignUpdate ์—์„œ๋Š” ์›๋ฌธ ๋‚ด์šฉ์„ ๋ฐ›๊ฒŒ ๋˜๊ณ  C_SignFinal์—์„œ ์›๋ฌธ์— ๋Œ€ํ•œ ํ•ด์‰ฌ ๊ฐ’์„ ๊ตฌํ•˜์—ฌ ์„œ๋ช… ๊ฐ’์„ ์–ป๊ฒŒ ๋˜๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์›๋ฌธ์„ ํ•œ๋ฒˆ์— ๋ณด๋‚ด๋Š” C_SignInit ๊ณผ C_Sign ํ•จ์ˆ˜๋กœ ๋ฐ”๋กœ ๊ตฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค์Œ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ฒฝ์šฐ๋Š” C_SignInit ๋‹ค์Œ ๋ฐ”๋กœ C_Sign ํ•จ์ˆ˜ ๋งŒ ํ˜ธ์ถœ ํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰ C_Sign..

PKI/HSM 2023.11.07

์˜คํ”ˆ์†Œ์Šค SoftHSM ์‚ฌ์šฉ๋ฒ• ( Windows ํ™˜๊ฒฝ )

SoftHSM์€ PKCS#11 ๊ธฐ๋Šฅ์„ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ตฌํ˜„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” HSM์€ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜ ์ด๊ตฌ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด PKCS#11 API๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํ•ด๋‹น ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํ•˜์ง€๋งŒ SoftHSM์€ ๋ณ„๋„์˜ ํ•˜๋“œ์›จ์–ด ์—†์ด ์†Œํ”„ํŠธ์›จ์–ด๋งŒ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด์„œ ์‰ฝ๊ฒŒ PKCS#11 ์„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  ๋ณ„๋„์˜ ํ•˜๋“œ์›จ์–ด๋กœ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์•ˆ์ „์„ฑ์— ๋Œ€ํ•ด์„œ๋Š” ์•ฝํ•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์—์„œ๋Š” ์•„์ฃผ ์œ ์šฉํ•˜๋‹ค. https://www.opendnssec.org/softhsm/ ์—ฌ๊ธฐ์„œ ๊ด€๋ จ ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ ์„ค์น˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž ์œˆ๋„์šฐ ์„ค์น˜ ํŒŒ์ผ ์œ„์น˜ https://sourceforge.net/projects/softhsm4windows..

PKI/HSM 2023.05.12

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