Manual/CertMan

[CertMan] ECDSA RootCA ์ธ์ฆ์„œ ๋งŒ๋“ค๊ธฐ

JayKim๐Ÿ™‚ 2023. 4. 3. 10:23

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

RootCA ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” CertMan ์„ ๋‹ค์šด ๋ฐ›์•„์•ผ ํ•œ๋‹ค.

๋จผ์ € ECDSA ์šฉ RootCA ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž
๋จผ์ € ECDSA ์šฉ RootCA์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์— CertMan ํˆด์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค.
์ด ํˆด์€ https://jykim74.tistory.com/37 ์—์„œ ๋ฐ›์•„์„œ ์„ค์น˜ ํ›„ ๋‹ค์Œ์„ ์ง„ํ–‰ ํ•ด์•ผ ํ•œ๋‹ค.

RootCA์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์— ๋จผ์ € ์ดˆ๊ธฐ DB ํŒŒ์ผ์„ ์ƒ์„ฑ ํ•ด์•ผ ํ•œ๋‹ค.

1. ๋จผ์ € ์ •๋ณด ์ €์žฅ์„ ์œ„ํ•ด DBํŒŒ์ผ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ๋กœ ๋ˆ„๋ฅธ๋‹ค.

2. ์ €์žฅํ•  DBํŒŒ์ผ๋ช…์„ ์ €์žฅํ•˜๊ณ  "Save"๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ดˆ๊ธฐํ™”๋ฅผ ์™„์„ฑํ•œ๋‹ค.

์ฐธ๊ณ ๋กœ ์—ฌ๊ธฐ์„œ ์ €์žฅํ•œ ํŒŒ์ผ์€ ๋‚ด๋ถ€์ ์œผ๋กœ sqlite3 ํŒŒ์ผ DB๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ด€๋ จ ๋‚ด์šฉ์€ ์ด ํŒŒ์ผ์— ์ €์žฅ ๋œ๋‹ค.

๋‹ค์Œ์œผ๋กœ RootCA์šฉ์œผ๋กœ ์‚ฌ์šฉํ•  ECDSA ํ‚ค ์Œ์„ ๋งŒ๋“ค์–ด ๋ณด์ž
CertMan ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ "ํ‚ค ์Œ" ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ ๋˜๋Š” "๋„๊ตฌ" -> "์ƒˆ ํ‚ค" ๋ฅผ ๋ˆŒ๋Ÿฌ ์ค€๋‹ค

์ƒˆ๋กœ์šด ํ‚ค ์Œ ์ฐฝ์—์„œ
์ด๋ฆ„์€ ์ž๊ธฐ๊ฐ€ ๊ธฐ์–ตํ•  ์ด๋ฆ„์œผ๋กœ ์ •ํ•ด ์ฃผ๊ณ 
์•Œ๊ณ ๋ฆฌ์ฆ˜์€ "EC"๋ฅผ ์„ ํƒ ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  NamedCurve ์—์„œ๋Š” prime256v1 ์„ ์„ ํƒ ํ•œ๋‹ค. (P-256 ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค)

ํ‚ค ์Œ์„ ๋งŒ๋“ค๋ฉด "ํ‚ค ์Œ" ๋ฉ”๋‰ด์—์„œ ์ƒ์„ฑ ๋œ ํ‚ค ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณผ์ˆ˜ ์žˆ๋‹ค.
์ด์ œ ๋งŒ๋“ค์–ด์ง€ ํ‚ค ์Œ์„ ๊ฐ€์ง€๊ณ  CSR ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๋ณด์ž
CSR ํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ‚ค ์Œ ๋ชฐ๋ก์—์„œ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์„ ํ•˜๋ฉด "์š”์ฒญ์„œ ๋งŒ๋“ค๊ธฐ" ๋ฉ”๋‰ด๋ฅผ ๋ˆŒ๋Ÿฌ ๋ณด์ž
๊ทธ๋Ÿผ ๋‹ค์Œ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œํ™”๋ฉด์—์„œ ์ผ๋‹จ
1.๋ฒˆ DN ๊ฐ’์„ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ๋˜๋Š”๋ฐ DN์€ ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ์ธ์ฆ์„œ ์ฃผ์ฒด์ž์˜ ์ด๋ฆ„์ด๋‹ค(Distinguished Name)
๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜ ํ‚ค ์ •๋ณด์—์„œ ํ‚ค ์Œ ์ƒ์„ฑ์—์„œ ๋งŒ๋“ค ์ •๋ณด๋ฅผ ํ™•์ธ ํ•˜๋ฉด ๋œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  "OK"๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ๋ฉด ์š”์ฒญ์„œ ๋ชฉ๋ก์„ ๋ณด์—ฌ ์ค€๋‹ค.

์ด์ œ ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ "์š”์ฒญ์„œ"๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ƒ์„ฑ ๋œ ์š”์ฒญ์„œ์˜ ์ด๋ฆ„์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
์ด๋•Œ ์ƒ์„ฑ๋œ ์š”์ฒญ์„œ๋ฅผ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์„ ํ•˜๋ฉด "์ธ์ฆ์„œ ๋งŒ๋“ค๊ธฐ" ๋ฉ”๋‰ด๋ฅผ ๋ˆŒ๋Ÿฌ ๋ณด์ž
๊ทธ๋Ÿผ ๋‹ค์Œ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  1. ์šฐ์„  ์ธ์ฆ์„œ ํ”„๋กœํŒŒ์ผ์„ "ROOT_CA"๋กœ ์„ ํƒ ํ•˜์ž
    ํ”„๋กœํŒŒ์ผ ๋‚ด์šฉ์€ ์™ผ์ชฝ ์ธ์ฆ์„œ ํ”„๋กœํŒŒ์ผ์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค.
    ํ”„๋กœํŒŒ์ผ์ด ์‚ฌ์‹ค ๋ณต์žกํ•˜์ง€๋งŒ ์ผ๋‹ค ์—ฌ๊ธฐ์„œ๋Š” ROOT_CA๋ฅผ ์„ ํƒ ํ•˜์ž.
  2. ์ฃผ์ฒด์ž DN ์ด๋ฆ„ ํ™•์ธ
    ์ด ์ด๋ฆ„์€ CSR ์ƒ์„ฑ ์‹œ ๋งŒ๋“ค ์ด๋ฆ„ ์ธ์ง€ ํ™•์ธ ํ•˜์ž
  3. ์ž์‹  ์„œ๋ช… ์ฒดํฌ
    RootCA์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•„์ˆ˜๋กœ ์ž์‹ ์˜ ์„œ๋ช…์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ์ฒดํฌ ํ•˜์ž
    ๊ทธ๋ฆฌ๊ณ  "OK"๋ฅผ ๋ˆŒ๋Ÿฌ ์ค€๋‹ค.

์ด์ œ ์ƒ์„ฑ๋œ ์ธ์ฆ์„œ๋Š” "์ตœ์ƒ์œ„ ์ธ์ฆ๊ธฐ๊ด€"์„ ๋ˆ„๋ฅด๋ฉด ์ธ์ฆ์„œ ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ชฉ๋ก์—์„œ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ "์ธ์ฆ์„œ ๋ณด๊ธฐ"๋ฅผ ํ•˜๋ฉด ์•„๋ž˜ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ธ์ฆ์„œ๋ฅผ ํ™•์ธ ํ•˜๋ฉด ๋œ๋‹ค.

์ง€๊ธˆ ๊นŒ์ง€ ๋งŒ๋“  ํ‚ค์Œ, CSR, ์ธ์ฆ์„œ๋Š” ๊ฐ๊ฐ์˜ ๋ฉ”๋‰ด๋กœ ๊ฐ€์„œ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ํ•˜๋ฉด ์ €์žฅ ๊ฐ’์„ ๋ถˆ๋Ÿฌ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์ง€๊ธˆ ๊นŒ์ง€ ๊ฐ„๋‹จํžˆ ECDSA์šฉ RootCA๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ–ˆ๊ตฌ
๋‹ค์Œ์— ์‹œ๊ฐ„์ด ๋˜๋ฉด CA์ธ์ฆ์„œ ๋ฐ SSL ์ธ์ฆ์„œ๋ฅผ CertMan์œผ๋กœ ๋งŒ๋“ค์–ด ๋ณผ ์˜ˆ์ •์ด๋‹ค.

์ฐธ๊ณ ๋กœ RSA์šฉ์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด ์ƒ๋‹จ ํ‚ค์Œ์—์„œ RSA์šฉ์œผ๋กœ ์„ ํƒ์„ ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ECDSA์šฉ์ด๋ž‘ ๋™์ผ ํ•˜๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿผ..
ํ˜น์‹œ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๊ถ๊ธˆํ•œ๊ฑด ๋Œ“๊ธ€ ์ฃผ์„ธ์š”