ํด๋ผ์šฐ๋“œ ํ† ํฐ PKCS#11 โ€“ ์‹ ํ™”์ธ๊ฐ€ ํ˜„์‹ค์ธ๊ฐ€?

PKCS#11(Cryptoki)์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋˜๋Š” ํ†ตํ•ฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™” ํ† ํฐ, ์Šค๋งˆํŠธ ์นด๋“œ ๋ฐ ๊ธฐํƒ€ ์œ ์‚ฌํ•œ ์žฅ์น˜์™€ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒํ˜ธ ์šด์šฉํ•˜๊ธฐ ์œ„ํ•ด RSA Laboratories์—์„œ ๊ฐœ๋ฐœํ•œ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค.

๋Ÿฌ์‹œ์•„ ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ PKCS#11 ํ‘œ์ค€์€ ๊ธฐ์ˆ  ํ‘œ์ค€ํ™” ์œ„์›ํšŒ "์•”ํ˜ธํ™” ์ •๋ณด ๋ณดํ˜ธ"(TK 26).

๋Ÿฌ์‹œ์•„ ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๋Š” ํ† ํฐ์— ๊ด€ํ•ด ์ด์•ผ๊ธฐํ•œ๋‹ค๋ฉด ์†Œํ”„ํŠธ์›จ์–ด ํ† ํฐ, ์†Œํ”„ํŠธ์›จ์–ด ํ•˜๋“œ์›จ์–ด ํ† ํฐ ๋ฐ ํ•˜๋“œ์›จ์–ด ํ† ํฐ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธํ™” ํ† ํฐ์€ ์ธ์ฆ์„œ์™€ ํ‚ค ์Œ(๊ณต๊ฐœ ๋ฐ ๊ฐœ์ธ ํ‚ค)์˜ ์ €์žฅ ๊ธฐ๋Šฅ๊ณผ PKCS#11 ํ‘œ์ค€์— ๋”ฐ๋ฅธ ์•”ํ˜ธํ™” ์ž‘์—… ์„ฑ๋Šฅ์„ ๋ชจ๋‘ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์•ฝํ•œ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๋Š” ๊ฐœ์ธ ํ‚ค์˜ ์ €์žฅ์ž…๋‹ˆ๋‹ค. ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ถ„์‹คํ•œ ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ๊ฐœ์ธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต๊ตฌํ•˜๊ฑฐ๋‚˜ ์ธ์ฆ์„œ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ ํ‚ค์˜ ๋ถ„์‹ค/ํŒŒ๊ดด๋Š” ์‹ฌ๊ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ณต๊ฐœ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ํŒŒ์ผ์„ ํ•ด๋…ํ•  ์ˆ˜ ์—†๊ณ  ์ „์ž ์„œ๋ช…(ES)์„ ๋„ฃ์„ ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ „์ž ์„œ๋ช…์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์ƒˆ ํ‚ค ์Œ์„ ์ƒ์„ฑํ•˜๊ณ  ์•ฝ๊ฐ„์˜ ๋น„์šฉ์„ ๋“ค์—ฌ ์ธ์ฆ ๊ธฐ๊ด€ ์ค‘ ํ•œ ๊ณณ์—์„œ ์ƒˆ ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ ์šฐ๋ฆฌ๋Š” ์†Œํ”„ํŠธ์›จ์–ด, ํŽŒ์›จ์–ด ๋ฐ ํ•˜๋“œ์›จ์–ด ํ† ํฐ์„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๋˜ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ์•”ํ˜ธํ™” ํ† ํฐ์ธ ํด๋ผ์šฐ๋“œ๋ฅผ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ๋ˆ„๊ตฌ๋„ ๋†€๋ผ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ํด๋ผ์šฐ๋“œ ํ”Œ๋ž˜์‹œ ๋“œ๋ผ์ด๋ธŒ. ๋ชจ๋“  ์žฅ์ ๊ณผ ๋‹จ์  ํด๋ผ์šฐ๋“œ ํ”Œ๋ž˜์‹œ ๋“œ๋ผ์ด๋ธŒ๋Š” ํด๋ผ์šฐ๋“œ ํ† ํฐ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํด๋ผ์šฐ๋“œ ํ† ํฐ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ, ์ฃผ๋กœ ๊ฐœ์ธ ํ‚ค์˜ ๋ณด์•ˆ์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ํ† ํฐ์ด ์ด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‚˜์š”? ์šฐ๋ฆฌ๋Š” ๋งํ•ฉ๋‹ˆ๋‹ค โ€“ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค!

๊ทธ๋ ‡๋‹ค๋ฉด ํด๋ผ์šฐ๋“œ ํ† ํฐ์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”? ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” ํ† ํฐ ํด๋ผ์šฐ๋“œ์— ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ํด๋ผ์šฐ๋“œ์— ์•ก์„ธ์Šคํ•˜๊ณ  ํด๋ผ์šฐ๋“œ์— ๋กœ๊ทธ์ธ/๋‹‰๋„ค์ž„์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํด๋ผ์šฐ๋“œ ํ† ํฐ PKCS#11 โ€“ ์‹ ํ™”์ธ๊ฐ€ ํ˜„์‹ค์ธ๊ฐ€?

ํด๋ผ์šฐ๋“œ์— ๋“ฑ๋กํ•œ ํ›„ ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ํ† ํฐ์„ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ† ํฐ ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•˜๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ SO-PIN ๋ฐ ์‚ฌ์šฉ์ž PIN ์ฝ”๋“œ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฑฐ๋ž˜๋Š” ๋ณด์•ˆ/์•”ํ˜ธํ™”๋œ ์ฑ„๋„์„ ํ†ตํ•ด์„œ๋งŒ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. pk11conf ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ํ† ํฐ์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฑ„๋„์„ ์•”ํ˜ธํ™”ํ•˜๋ ค๋ฉด ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋งˆ๊ทธ๋งˆ-CTR (GOST R 34.13-2015).

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํŠธ๋ž˜ํ”ฝ์„ ๋ณดํ˜ธ/์•”ํ˜ธํ™”ํ•˜๋Š” ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ์˜๋œ ํ‚ค๋ฅผ ๊ฐœ๋ฐœํ•˜๋ ค๋ฉด ๊ถŒ์žฅ๋˜๋Š” TK 26 ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์„ธ์ŠคํŽ˜์ดํฌ - ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ์ด ํฌํ•จ๋œ ๊ณต์œ  ํ‚ค ์ƒ์„ฑ ํ”„๋กœํ† ์ฝœ.

๊ณต์œ  ํ‚ค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ผํšŒ์šฉ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜. ๋Ÿฌ์‹œ์•„ ์•”ํ˜ธํ™”์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผํšŒ์šฉ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋‹น์—ฐํ•ฉ๋‹ˆ๋‹ค. CKM_GOSTR3411_12_256_HMAC, CKM_GOSTR3411_12_512_HMAC ๋˜๋Š” CKM_GOSTR3411_HMAC.

์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ์„ค์น˜ํ•œ ์‚ฌ์šฉ์ž๋งŒ SO ๋ฐ USER PIN ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ํด๋ผ์šฐ๋“œ์˜ ๊ฐœ์ธ ํ† ํฐ ๊ฐœ์ฒด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pk11conf.

์ด์ œ ์ด ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ํด๋ผ์šฐ๋“œ ํ† ํฐ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ํ† ํฐ์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด PC์— LS11CLOUD ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Android ๋ฐ iOS ํ”Œ๋žซํผ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํด๋ผ์šฐ๋“œ ํ† ํฐ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ•ด๋‹น SDK๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Redfox ๋ธŒ๋ผ์šฐ์ €์—์„œ ํด๋ผ์šฐ๋“œ ํ† ํฐ์„ ์—ฐ๊ฒฐํ•  ๋•Œ ์ง€์ •๋˜๊ฑฐ๋‚˜ pkcs11.txt ํŒŒ์ผ์— ์ž‘์„ฑ๋˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. LS11CLOUD ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋˜ํ•œ PKCS#11 C_Initialize! ํ˜ธ์ถœ ์‹œ ์ƒ์„ฑ๋œ SESPAKE ๊ธฐ๋ฐ˜์˜ ๋ณด์•ˆ ์ฑ„๋„์„ ํ†ตํ•ด ํด๋ผ์šฐ๋“œ์˜ ํ† ํฐ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์šฐ๋“œ ํ† ํฐ PKCS#11 โ€“ ์‹ ํ™”์ธ๊ฐ€ ํ˜„์‹ค์ธ๊ฐ€?

๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ์ด์ œ ์ธ์ฆ์„œ๋ฅผ ์ฃผ๋ฌธํ•˜๊ณ  ํด๋ผ์šฐ๋“œ ํ† ํฐ์— ์„ค์น˜ํ•œ ํ›„ ์ •๋ถ€ ์„œ๋น„์Šค ์›น์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€