์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ์ž ๋“ฑ๋ก ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ์œ„ํ•œ Rutoken ๊ธฐ์ˆ  ์‚ฌ์šฉ ๊ฒฝํ—˜(3๋ถ€)

์ข‹์€ ํ•˜๋ฃจ!

์•ž ๋ถ€๋ถ„์—์„œ ์šฐ๋ฆฌ๋Š” ์ž์ฒด ์ธ์ฆ ์„ผํ„ฐ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ๋ชฉ์ ์— ์–ด๋–ป๊ฒŒ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ˜„์ง€ ์ธ์ฆ ๊ธฐ๊ด€์„ ์ด์šฉํ•˜์—ฌ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๊ณ  ํ•ด๋‹น ์ธ์ฆ์„œ์˜ ์„œ๋ช…์„ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์—๊ฒŒ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•  ๋•Œ ์ธ์ฆ ๊ธฐ๊ด€์€ '.csr' ํŒŒ์ผ ํ˜•์‹์„ ๊ฐ–๋Š” ํŠน์ˆ˜ ์ธ์ฆ์„œ ์š”์ฒญ Pkcs#10์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์š”์ฒญ์—๋Š” ์ธ์ฆ ๊ธฐ๊ด€์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š” ์ธ์ฝ”๋”ฉ๋œ ์‹œํ€€์Šค๊ฐ€ โ€‹โ€‹ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์—๋Š” ์‚ฌ์šฉ์ž์˜ ๊ณต๊ฐœ ํ‚ค์™€ ์ธ์ฆ์„œ ์ƒ์„ฑ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ(์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ์—ฐ๊ด€ ๋ฐฐ์—ด)๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ธฐ์‚ฌ์—์„œ๋Š” ์ธ์ฆ์„œ ์š”์ฒญ์„ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ณ , ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ๋ฐฑ์—”๋“œ ์ธก์—์„œ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ธ์ฆ ๊ธฐ๊ด€์˜ ์ฃผ์š” ๋ช…๋ น์„ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋จผ์ € ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

openssl ca -batch -in user.csr -out user.crt

ca๋Š” ์ธ์ฆ ๊ธฐ๊ด€๊ณผ ๊ด€๋ จ๋œ openSSL ๋ช…๋ น์ž…๋‹ˆ๋‹ค.
-batch - ์ธ์ฆ์„œ ์ƒ์„ฑ ์‹œ ํ™•์ธ ์š”์ฒญ์„ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค.
user.csr โ€” ์ธ์ฆ์„œ ์ƒ์„ฑ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค(.csr ํ˜•์‹์˜ ํŒŒ์ผ).
user.crt - ์ธ์ฆ์„œ(๋ช…๋ น ๊ฒฐ๊ณผ).

์ด ๋ช…๋ น์ด ์ž‘๋™ํ•˜๋ ค๋ฉด ์ธ์ฆ ๊ธฐ๊ด€์ด ์„ค๋ช…๋œ ๋Œ€๋กœ ์ •ํ™•ํ•˜๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ์˜ ์ด์ „ ๋ถ€๋ถ„์—์„œ. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ธ์ฆ ๊ธฐ๊ด€์˜ ๋ฃจํŠธ ์ธ์ฆ์„œ ์œ„์น˜๋ฅผ ์ถ”๊ฐ€๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ์„œ ํ™•์ธ ๋ช…๋ น:

openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/โ€ฆโ€ฆ/demoCA/ca.crt -out data.file

cms๋Š” openSSL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์„œ๋ช…, ํ™•์ธ, ์•”ํ˜ธํ™” ๋ฐ ๊ธฐํƒ€ ์•”ํ˜ธํ™” ์ž‘์—…์— ์‚ฌ์šฉ๋˜๋Š” openSSL ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

-verify - ์ด ๊ฒฝ์šฐ ์ธ์ฆ์„œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

authenticate.cms - ์ด์ „ ๋ช…๋ น์œผ๋กœ ๋ฐœํ–‰๋œ ์ธ์ฆ์„œ๋กœ ์„œ๋ช…๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

-inform PEM - PEM ํ˜•์‹์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-CAfile /Users/โ€ฆโ€ฆ/demoCA/ca.crt - ๋ฃจํŠธ ์ธ์ฆ์„œ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. (์ด๊ฒƒ์ด ์—†์œผ๋ฉด ca.crt ๊ฒฝ๋กœ๊ฐ€ openssl.cfg ํŒŒ์ผ์— ๊ธฐ๋ก๋˜์—ˆ์ง€๋งŒ ๋ช…๋ น์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค)

-out data.file - ํ•ด๋…๋œ ๋ฐ์ดํ„ฐ๋ฅผ data.file ํŒŒ์ผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ์ธก์—์„œ ์ธ์ฆ ๊ธฐ๊ด€์„ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ๋“ฑ๋ก:
    1. ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ user.csr ํŒŒ์ผ์— ์ €์žฅํ•˜๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
    2. ์ด ๊ธฐ์‚ฌ์˜ ์ฒซ ๋ฒˆ์งธ ๋ช…๋ น์„ ํ™•์žฅ์ž๊ฐ€ .bat ๋˜๋Š” .cmd์ธ ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— user.csr ํŒŒ์ผ์— ๋Œ€ํ•œ ์ธ์ฆ์„œ ์ƒ์„ฑ ์š”์ฒญ์„ ์ €์žฅํ•œ ํ›„ ์ฝ”๋“œ์—์„œ ์ด ํŒŒ์ผ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. user.crt ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
    3. user.crt ํŒŒ์ผ์„ ์ฝ๊ณ  ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋ƒ…๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ์ธ์ฆ:
    1. ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์„œ๋ช…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ authenticate.cms ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    2. ์ด ๋ฌธ์„œ์˜ ๋‘ ๋ฒˆ์งธ ๋ช…๋ น์„ ํ™•์žฅ์ž๊ฐ€ .bat ๋˜๋Š” .cmd์ธ ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— ์„œ๋ฒ„์˜ ์„œ๋ช…๋œ ๋ฐ์ดํ„ฐ๋ฅผ authenticate.cms์— ์ €์žฅํ•œ ํ›„ ์ฝ”๋“œ์—์„œ ์ด ํŒŒ์ผ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ•ด๋…๋œ ๋ฐ์ดํ„ฐ data.file์ด ํฌํ•จ๋œ ํŒŒ์ผ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
    3. data.file์„ ์ฝ๊ณ  ์ด ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ํ™•์ธํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ธฐ์‚ฌ์—์„œ. ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ธ์ฆ์ด ์„ฑ๊ณตํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ๋ฐฑ์—”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ธฐ์‚ฌ์—์„œ๋Š” Retoken ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ถœ์ฒ˜ : habr.com

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