Manual/CryptokiMan

[CryptokiMan] WrapKey UnwrapKey ์‚ฌ์šฉ ํ•˜๊ธฐ

JayKim๐Ÿ™‚ 2023. 6. 27. 09:38

[์ด ๊ธฐ๋Šฅ์€ ๋ผ์ด์„ ์Šค ๋ฒ„์ „ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค]
๋ผ์ด์„ ์Šค๊ฐ€ ํ•„์š”ํ•œ ๋ถ„์€ [ํ”„๋กœ๊ทธ๋žจ ํ‚ค ๋ฐœ๊ธ‰] ํŽ˜์ด์ง€์—์„œ 30์ผ ๋ผ์ด์„ ์Šค ๋ฐœ๊ธ‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค

C_WrapKey ์™€ C_UnwrapKey ๊ธฐ๋Šฅ์€ HSM ์žฅ์น˜์—์„œ ํ‚ค๋ฅผ ์•”ํ˜ธํ™” ํ•˜์—ฌ ์ถ”์ถœ ํ•˜๊ณ 
๋‹ค์‹œ ์•”ํ˜ธํ™”ํ•œ ๋ฐ์ดํƒ€์— ๋Œ€ํ•ด์„œ ๋ณตํ˜ธํ™” ํ•˜์—ฌ ํ‚ค๋ฅผ HSM ์— ์ฃผ์ž…ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

WrapKey ๊ธฐ๋Šฅ

์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘๊ฐ€์ง€ ํ‚ค๊ฐ€ ์‚ฌ์šฉ ๋œ๋‹ค.
ํ•˜๋‚˜๋Š” ํ‚ค ๊ฐ’์„ ์•”ํ˜ธํ™” ํ•˜๋Š” Wrapping ํ‚ค ์™€ ๊ทธ๋ฆฌ๊ณ  ์•”ํ˜ธํ™” ๋˜๋Š” ํ‚ค๊ฐ€ ์กด์žฌ ํ•œ๋‹ค.
Wrapping ํ‚ค๋Š” CKA_WRAP ๋ชจ๋“œ๊ฐ€ ์ง€์› ๋˜์–ด์•ผ ํ•˜๊ณ 

๋ฉ”์ปค๋‹ˆ์ฆ˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋™์ผ ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
์•”ํ˜ธํ™” ๋˜๋Š” ํ‚ค๋Š” Extractable ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์ด ํ‚ค๊ฐ€ Sensitive ์—ฌ๋„ WrapKey ๊ธฐ๋Šฅ์œผ๋กœ ํ‚ค๋ฅผ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋‹ค.

WrapKey

์—ฌ๊ธฐ์„œ AES16 ํ‚ค๋Š” CKA_WRAP, CKA_UNWRAP ์†์„ฑ์„ ์ง€์› ํ•˜๊ณ  ํ‚ค์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ AES ์šฉ ํ‚ค์ด๋‹ค.
์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด GenKey32 ๋ผ๋Š” ํ‚ค๋ฅผ test.bin ์ด๋ผ๋Š” ์•”ํ˜ธํ™”ํ•˜์—ฌ ํ‚ค ๋ฐ์ดํƒ€ ๊ฐ’์„ ์ €์žฅ ํ•˜๊ฒŒ ๋œ๋‹ค.
์ด GenKey32 ์˜ ํ‚ค๋Š” EXTRATABLE ์˜ต์…˜์ด ์ง€์› ๋˜์–ด์•ผ ํ•œ๋‹ค.

UnwrapKey ๊ธฐ๋Šฅ

์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Wrappiing ํ‚ค์˜ ๊ฒฝ์šฐ CKA_UNWRAP ๊ธฐ๋Šฅ์ด ์ง€์› ๋˜์–ด์•ผ ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ €์žฅ ํ•˜๋ ค๋Š” ํ‚ค์— ๋Œ€ํ•ด์„œ๋Š” Template ์œผ๋กœ ํ‚ค์˜ ์†์„ฑ๋“ค์„ ์ง€์ •์•  ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ‚ค๋ฅผ ๋ณตํ˜ธํ™”๊ฐ€ ๋˜์–ด์•ผ ํ•ด์„œ WrapKey ์—์„œ ์‚ฌ์šฉํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ์„ ํƒ ๋˜์–ด์•ผ ํ•œ๋‹ค.

Unwrap ํ™”๋ฉด1

์—ฌ๊ธฐ์„œ Wrapped ํ‚ค๋ฅผ ์„ ํƒํ•˜๊ณ 
๊ทธ๋ฆฌ๊ณ  ์•”ํ˜ธํ™” ํ• ๋•Œ ์‚ฌ์šฉํ•œ AES126 ํ‚ค์™€ ๊ทธ๋ฆฌ๊ณ  ๋™์ผํ•œ ์•”ํ˜ธํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ธ CKM_AES_KEY_WRAP ์„ ์„ ํƒํ•œ๋‹ค.

Unwarp ํ™”๋ฉด2

Unwrap ๊ฒฐ๊ณผ๋กœ ์ €์žฅ ๋˜๋Š” ํ‚ค์— ๋Œ€ํ•œ ์†์„ฑ์€ ๋ฉ”๋‰ด์˜ Key ํƒญ์—์„œ ์„ค์ ˆ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” Label ์„ UnwrapKey๋กœ ํ•˜๊ณ  Extratable ์„ true ๋กœ ํ•ด์„œ ๊ฐ’์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒ ํ–ˆ๋‹ค.
Extractable ์˜ต์…˜์€ ํ•œ๋ฒˆ ์„ค์ • ํ•˜๋ฉด ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์—†๋Š” Read-Only ์†์„ฑ์ด๋‹ค.

์„ฑ๊ณต์ ์œผ๋กœ ํ‚ค๋ฅผ UnwrapKey ๋ฅผ ์ฃผ์ž…ํ•˜๋ฉด ํ•ด๋‹น ์ฃผ์ž…๋œ Key์˜ ํ•ธ๋“ค๊ฐ’์„ ๊ฒฐ๊ณผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์ œ์—์„ ๋Š” ๋น„๋ฐ€ํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ์•”ํ˜ธํ™” ํ•˜์˜€๋‹ค.
๊ทธ๋ฆฌ๊ณ  RSA ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  C_WrapKey ๋ฐ C_UnwrapKey ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•