Manual/CryptokiMan

[CryptokiMan] HSM ์žฅ์น˜ ์ง€์› ๋ฉ”ํฌ๋‹ˆ์ฆ˜ ํ™•์ธ ํ•˜๊ธฐ

JayKim๐Ÿ™‚ 2023. 10. 24. 18:56

HSM ์žฅ์น˜์—์„œ PKCS#11 API ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น ์žฅ์น˜๊ฐ€ ์ง€์› ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ง€์› ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” API ๊ฐ€ C_GetMechanismList ํ•จ์ˆ˜์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์—์„œ ์ข€๋” ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” API ๊ฐ€ C_GetMechanismInfo ํ•จ์ˆ˜์ด๋‹ค.

PKCS11 ํ•จ์ˆ˜ ์ •์˜

  • C_GetMechanismList
CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismList)(
CK_SLOT_ID slotID,
CK_MECHANISM_TYPE_PTR pMechanismList,
CK_ULONG_PTR pulCount
);

์ด ํ•จ์ˆ˜๋Š” ์ง€์› ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ฆฌ์ŠคํŠธ๋กœ ํƒ€์ž…๊ฐ’์„ ๋ชจ๋‘ ๊ฐ€์ ธ๋‹ค ์ค€๋‹ค.

  • C_GetMechanismInfo
CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismInfo)(
CK_SLOT_ID slotID,
CK_MECHANISM_TYPE type,
CK_MECHANISM_INFO_PTR pInfo
);

์ด ํ•จ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ๋กœ ๊ฐ€์ ธ์˜จ ํƒ€์ž… ๊ฐ๊ฐ์˜ ์ •๋ณด์— ๋Œ€ํ•ด ๊ตฌ์ฒด์ ์ธ ์ •๋ณด ๊ฐ’์„ ์ œ๊ณต ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์ง€์› ๋ฉ”์ปค๋‹ˆ์ฆ˜ ํ™•์ธ

CryptokiMan ์„ ์ด์šฉํ•˜๋ฉด ์ข€ ๋” ์‰ฝ๊ฒŒ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.
์ด ํˆด์—์„œ๋„ ์œ„์˜ ๋‘ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์ข€ ๋” ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์ด ์ •๋ณด๋ฅผ ํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์žฅ์น˜ ์ดˆ๊ธฐํ™” ํ›„ ์Šฌ๋กฏ ์ •๋ณด์—์„œ ๊ฐ ๋ฉ”๋‰ด์˜ Mechanism ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญ ํ•˜๋ฉด๋œ๋‹ค.
์•„๋ž˜๊ฐ€ SoftHSM2 ์ง€์›ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์˜ˆ์ œ ํ™”๋ฉด์ด๋‹ค.

ํ™”๋ฉด์—์„œ ๋ณด๋ฉด ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ๊ทธ๋ฆฌ๊ณ  ์ตœ์†Œ, ์ตœ๋Œ€ ๊ทธ๋ฆฌ๊ณ  ํ”Œ๋ž˜๊ทธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ

HSM ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ด ์žฅ์น˜์˜ ์ง€์› ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํŠน์„ฑ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ
์‚ฌ์šฉํ•˜๋Š” API ๊ฐ€ C_GetMechanismList ์™€ C_GetMechanismInfo ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.