Manual/CryptokiMan

[CryptokiMan] YubiHSM2 ์žฅ์น˜ ํ…Œ์ŠคํŠธ ( Windows ํ™˜๊ฒฝ )

JayKim๐Ÿ™‚ 2023. 11. 22. 11:39

YubiHSM2 ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๋Š” PKCS#11 API ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
์ด ์žฅ์น˜์— ๋Œ€ํ•œ ์ •๋ณด๋Š” Yubico ํ™ˆํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐ ํ•˜๋ฉด ๋œ๋‹ค.

ํ˜„์žฌ USBํ˜•์‹์˜ ์†Œํ˜• ํ•˜๋“œ์›จ์–ด HSM ์žฅ์น˜๋กœ์„œ๋Š” ๊ฐ€์žฅ PKCS#11 ์„ ์ž˜ ์ง€์›ํ•˜๋Š” ์žฅ์น˜๋กœ ๋ณด์ธ๋‹ค.
์ฐธ๊ณ ๋กœ USB ํ˜• HSM ์žฅ์น˜์ธ๋ฐ RSA 4096 ํ‚ค ์ƒ์„ฑ์ด ์ง€์› ๋œ๋‹ค.
์„œ๋ฒ„์šฉ HSM ์žฅ์น˜๊ฐ€ ์•„๋‹Œ ์†Œํ˜• USB ํ˜• HSM์—์„œ RSA 4096 ํ‚ค ์ƒ์„ฑ ์ง€์›์€ ์ฒ˜์Œ ๋ณธ๋‹ค.
๊ทธ๋ฆฌ๊ณ  Network HSM ๊ธฐ๋Šฅ๋„ ์ง€์›ํ•œ๋‹ค.
http ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ๊ณผ HSM ์ด ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

์—ฌ๊ธฐ์„œ ๊ด€๋ จ ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜๋Š” Yubico ํ™ˆํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐ ํ•˜๊ณ  CryptokiMan ์„ ์ด์šฉํ•˜์—ฌ PKCS#11 ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ํ•ด๋ณด์ž.
ํ•ด๋‹น PKCS11 ํŒŒ์ผ์€ yubihsm_pcks11.dll ํŒŒ์ผ์ด๋‹ค.

ํ™˜๊ฒฝ ์„ค์ •

์ด ์žฅ์น˜๋ฅผ ์œˆ๋„์šฐ์ฆˆ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์žก์•„์ฃผ๊ณ 
YUBIHSM_PKCS11_CONF ๋ฅผ yubihsm_pkcs11.conf ํŒŒ์ผ ์œ„์น˜๋กœ ์„ค์ • ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
์œˆ๋„์šฐ ์‹œ์Šคํ…œ ์„ค์ •์—์„œ ๋‹ค์Œ ๊ทธ๋ฆผ ์ฐธ์กฐ ํ•˜๋ฉด ๋œ๋‹ค.

  • yubihsm_pkcs11.conf ์˜ˆ์ œ
# URL of the connector to use. This can be a comma-separated list
connector = http://127.0.0.1:12345    
# Enables general debug output in the module
debug
# Enables function tracing (ingress/egress) debug output in the module
dinout
# Enables libyubihsm debug output in the module
libdebug
# Redirects the debug output to a specific file. The file is created
# if it does not exist. The content is appended
#  
debug-file = hsm_dbg.txt

์‹ค์ œ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ถ€๋ถ„์€ connector ๋ถ€๋ถ„๋งŒ ์„ค์ •ํ•˜๋ฉด ์ •์ƒ ์ž‘๋™ ํ•œ๋‹ค.

๊ด€๋ จ YubiHSM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ CryptokiMan ์‹คํ–‰ ํŒŒ์ผ์— ์žˆ๋Š” ๊ฒฝ๋กœ์— ์ถ”๊ฐ€ํ•ด ์ฃผ์–ด์•ผ ์ž‘๋™ ํ•œ๋‹ค.
์ฒ˜์Œ์—๋Š” yubihsm_pkcs11.dll ์„ ์ฝ์–ด ์˜ค๊ธฐ ์กฐ์ฐจ ์•ˆ๋˜์–ด์„œ
๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅธ yubihsm_pkcs11.dll ์œ„์น˜๋กœ ๊ฐ€์ ธ์™”์ง€๋งŒ ์žฅ์• ๊ฐ€ ๋‚˜์„œ
CryptokiMan ์‹คํ–‰ ํŒŒ์ผ ์œ„์น˜๋กœ ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„ฃ์–ด ์ฃผ๋‹ˆ ์ •์ƒ ์ž‘๋™ ํ–ˆ๋‹ค.

์ž‘๋™ ํ…Œ์ŠคํŠธ

๋‹ค์Œ ํ™”๋ฉด์ด YubiHSM2 ์žฅ์น˜๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์บก์ณ ํ•œ ํ™”๋ฉด์ด๋‹ค.
์ด ์žฅ์น˜๋ฅผ ์ฒ˜์Œ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ ํ–ˆ์„ ์‹œ ์ด๋ฏธ ์žฅ์น˜์— ๋Œ€ํ•œ ์ดˆ๊ธฐํ™”ํ™” ํŒจ์Šค์›Œ๋“œ๊ฐ€ ์„ค์ • ๋˜์–ด ์žˆ๋‹ค.

YubiHSM2 ์‹คํ–‰ ํ™”๋ฉด

์ด ํ™”๋ฉด์€ YubiHSM2 ์žฅ์น˜๋ฅผ PKCS#11 ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘๋™ ์‹œํ‚จ ํ™”๋ฉด์ด๋‹ค.

YubiHSM2 ํŽŒ์›จ์–ด ๋ฒ„์ „ 2.3 ์ด์ƒ์—์„œ๋งŒ AES ํ‚ค ์ƒ์„ฑ, ์•”/๋ณตํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๋‹ˆ ๊ฐ€๋Šฅํ•œ ํŽŒ์›จ์–ด 2.3 ์ด์ƒ์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

๋งˆ๋ฌด๋ฆฌ

YubiHSM2 ์žฅ์น˜๋Š” PKCS#11 ๊ธฐ๋Šฅ์„ USB ์žฅ์น˜๋กœ ์ง€์›ํ•˜๋Š” ์ž‘์€ HSM ์žฅ์น˜๋กœ์„œ๋Š” ๊ฐ€์žฅ ์ข‹์€ ์žฅ์น˜๋กœ ๋ณด์ธ๋‹ค.
๋‹ค์–‘ํ•œ OS ์ง€์› ๋ฟ๋งŒ์•„๋‹ˆ๋ผ KSP ๋“ฑ ์œˆ๋„์šฐ ํ‘œ์ค€ ํฌ๋งท๋„ ์ง€์›ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ž์ฒด ๋ช…๋ น์–ด ๋ฐ API๋„ ์ œ๊ณตํ•œ๋‹ค.

์ฃผ๋กœ CryptokiMan ์„ ๊ฐ€์ง€๊ณ  ๊ฐœ๋ฐœ ํ…Œ์ŠคํŠธ๋Š” SoftHSM2 ๋ฅผ ์ด์šฉํ•˜์˜€๋Š”๋ฐ
YubiHSM2 ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๋กœ ํ…Œ์ŠคํŠธ ํ•˜๋Š”๊ฒŒ ์ง„์ •ํ•œ HSM ํ…Œ์ŠคํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ํ•˜๋‚˜ ๊ฐ€์ง€๊ณ  ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๊ฐ€๊ฒฉ์ด ๋„ˆ๋ฌด ๋น„์‹ธ๋„ค ..