Manual/CryptokiMan

[CryptokiMan] Cryptoki ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

JayKim๐Ÿ™‚ 2023. 5. 15. 18:06

CryptokiMan ์€ cryptoki ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฝ์–ด์„œ PKCS#11 API ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

๋ณดํ†ต HSM ์žฅ์น˜๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์ด์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด SoftHSM ์„ ์ด์šฉํ•œ๋‹ค.
๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ธฐ๋ณธ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

  1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
  2. ์ดˆ๊ธฐํ™” ํ•˜๊ธฐ
  3. ์„ธ์…˜ ์—ด๊ธฐ
  4. ๋กœ๊ทธ์ธ
  5. HSM ๊ธฐ๋Šฅ ์‚ฌ์šฉํ•˜๊ธฐ

์ผ๋ฐ˜์ ์œผ๋กœ HSM ์žฅ์น˜๋ฅผ ์‚ฌ์šฉ ํ• ๋•Œ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ๋ณดํ†ต HSM ์žฅ์น˜ ๊ฒฝ์šฐ ์ดˆ๊ธฐํ™” ํˆด์„ ์ œ๊ณตํ•œ๋‹ค
์—ฌ๊ธฐ์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ ์„ค๋ช…์„ ์œ„ํ•ด์„œ ์žฅ์น˜ ์ดˆ๊ธฐํ™”๊ฐ€ ๋œ ์ƒํƒœ๋กœ ์„ค๋ช…์„ ํ•œ๋‹ค.

1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

์ฒ˜์Œ HSM ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœ ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.
ํ˜„์žฌ ํ…Œ์ŠคํŠธ ํˆด์ด 64๋น„ํŠธ ์œˆ๋„์šฐ์šฉ์ด๋ผ๋ฉด 64๋น„ํŠธ ์œˆ๋„์šฐ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ถˆ๋Ÿฌ ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆผ ์ฒ˜๋Ÿผ ์—ด๊ธฐ-> ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ ํƒ ->์—ด๊ธฐ ์‹คํ–‰ ํ•˜๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœ ํ•œ๋‹ค.

2. ์ดˆ๊ธฐํ™” ํ•˜๊ธฐ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœ ํ•˜๊ณ ๋‚˜๋ฉด ํ™”๋ฉด ์™ผ์ชฝ ์ƒ๋‹จ์— "CrytokiToken"์„ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ ํ›„ P11Initialize ๋ฅผ ์„ ํƒํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ์„ ํƒ ํ•˜๋ฉด ํ˜„์žฌ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์Šฌ๋กฏ์˜ ๋ชฉ๋ก์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

3. ์„ธ์…˜ ์—ด๊ธฐ

์Šฌ๋กฏ ๋ชฉ๋ก์—์„œ ์‚ฌ์šฉํ•  ์Šฌ๋กฏ์„ ๋งˆ์šฐ์Šค ์šฐํฌ๋ฆญ์œผ๋กœ OpenSession ์„ ์„ ํƒํ•˜๊ณ 
OpenSession ์ฐฝ์—์„œ OK ๋ฅผ ํ•˜์ž

4. ๋กœ๊ทธ์ธ

์‚ฌ์‹ค ๋กœ๊ทธ์ธ๊ธฐ๋Šฅ์€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋กœ๊ทธ์ธ ์—†์ด ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ๋กœ๊ทธ์ธ์„ ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.
ํ•ด๋‹น ์Šฌ๋กฏ์„ ์„ ํƒ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์œผ๋กœ ๋กœ๊ทธ์ธ ๋ฉ”๋‰ด๋ฅผ ์„ ํƒœ ํ•˜๊ณ 
๋กœ๊ทธ์ธ ํƒ€์ž…์€ ์‚ฌ์šฉ์ž๋กœ ํ•˜๊ณ  PIN ๊ฐ’์„ ์ž…๋ ฅ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
( ์ฐธ๊ณ ๋กœ SO ๋กœ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” SO ๋ฅผ ์„ ํƒํ•œ๋‹ค. ๋ณดํ†ต User PIN ์„ค์ •์‹œ ์‚ฌ์šฉํ•œ๋‹ค )

์‚ฌ์‹ค ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์‹ค ๋กœ๊ทธ์ธ์€ ์•ˆ๋˜๋‹ˆ ๊ผญ ์ดˆ๊ธฐํ™”๋Š” ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ ์—ฌ์•ผ ํ•œ๋‹ค.

5. HSM ๊ธฐ๋Šฅ ์‚ฌ์šฉํ•˜๊ธฐ

HSM ๊ธฐ๋Šฅ์€ ์•„์ฃผ ๋‹ค์–‘ํ•œ๋ฐ ์—ฌ๊ธฐ์„œ๋Š” ์˜ˆ์ œ๋กœ ํ‚ค ์Œ ์ƒ์„ฑ ํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.
๋ฉ”๋‰ด ์˜ค๋ธŒ์ ํŠธ->ํ‚ค ์Œ ์ƒ์„ฑ์„ ํ•˜๋ฉด ์˜ˆ์ œ ์ฒ˜๋Ÿผ ํ™”๋ฉด์ด ๋‚˜์˜ค๋Š”๋ฐ ํ™”๋ฉด์˜ ๋นจ๊ฐ„์ƒ‰ ๋ถ€๋ถ„์ด ๋งž๊ฒŒ ๋‚˜์™”๋Š”์ง€ ํ™•์ธ์„ ํ•ด์•ผํ•œ๋‹ค.
๋งŒ์•ฝ ๋กœ๊ทธ์ธ์ด ๊นŒ์ง€ ์ •์ƒ์ ์ด์ง€ ์•Š๋‹ค๋ฉด ์„ธ์…˜ ๋˜๋Š” ๋กœ๊ทธ์ธ ๋ถ€๋ถ„์ด ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ๋œ๋‹ค.

  • ์Šฌ๋ก ๋ชฉ๋ก : ์‚ฌ์šฉํ•  ์Šฌ๋กœ ์ •๋ณด
  • ์„ธ์…˜ : OpenSession ์„ฑ๊ณต์‹œ ๋งŒ๋“ค์–ด ์ง€๋Š” ์„ธ์…˜ ํ•ธ๋“ค
  • ๋กœ๊ทธ์ธ : ๋กœ๊ทธ์ธ ์œ ๋ฌด ์ •๋ณด๋ฅผ ๋ณด์—ฌ ์ค€๋‹ค.

์ƒ์„ฑ ๊ฒฐ๊ณผ ํ™”๋ฉด์ด๋‹ค.

์‚ฌ์‹ค PKCS#11 ๊ธฐ๋Šฅ์€ ์•„์ฃผ ๋‹ค์–‘ํ•˜๊ณ  ์žฅ์น˜ ๋งˆ๋‹ค ์ง€์› ์—ฌ๋ถ€์˜ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” SoftHSM ์„ ์ด์šฉํ•œ ๊ธฐ๋ณธ ์ƒํƒœ๋กœ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋‹ค.