PKI/TLS

TLS ํ•ธ๋“œ์‰์ดํฌ ๊ธฐ๋Šฅ ๊ฐ„๋‹จ ์„ค๋ช…

JayKim๐Ÿ™‚ 2023. 6. 8. 09:16

TLS ํ•ธ๋“œ์‰์ดํฌ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ์š”์•ฝ์„ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

ClientHello ( Client )

  • ์„œ๋ฒ„์—๊ฒŒ TLS ์—ฐ๊ฒฐ์„ ์ฒ˜์Œ ์‹œ๋„ ํ•œ๋‹ค ์•ˆ๋…•ํ•˜๋Š” ์ธ์‚ฌ
  • ํด๋ผ์ด์–ธํŠธ์˜ ๋žœ๋ค ๊ฐ’๊ณผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Cipher Suite ์ •๋ณด๋ฅผ ์•Œ๋ ค ์ค€๋‹ค.
  • DTLS ์—์„œ๋Š” cookie ๊ฐ’์ด ์—†์ด ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๋ฐ›์œผ๋ฉด ๊ทธ ๊ฐ’์„ ์‚ฌ์šฉํ•ด์„œ ClientHello ๋ฅผ ํ•œ๋ฒˆ๋” ์‚ฌ์šฉ ํ•œ๋‹ค.

HelloVerifyRequest ( Server )

  • DTLS ์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„ธ์ง€ ์ด๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ cookie ๊ฐ’์„ ์ „๋‹ฌํ•˜์—ฌ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๊ตฌ๋ถ„๊ฐ’์œผ๋กœ ์“ด๋‹ค (DTLS๋Š” ์—ฐ๊ฒฐ ๋ณด์žฅ์ด ์•ˆ๋˜์š”)

ServerHello ( Server )

  • ClientHello ์—์„œ ๋ฐ›์€ Cipher Suite ์—์„œ ์ตœ์ข… ์‚ฌ์šฉํ•  Cipher Suite ๊ฐ’์„ ์•Œ๋ ค์ค€๋‹ค.

Certificate ( Server | Client )

  • Server ๊ฒฝ์šฐ ์„œ๋ฒ„ ์ธ์ฆ์„œ์™€ ์ธ์ฆ์„œ ์ฒด์ธ์„ ๋ชจ๋‘ ๋ณด๋‚ด์ค€๋‹ค.
  • Client ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋ฅผ ๋ณด๋‚ด ์ค€๋‹ค.( ์„œ๋ฒ„์—์„œ CertificateRequest ์š”์ฒญ์ด ์žˆ์–ด์•ผ ํ•จ )

ServerKeyExchange ( Server )

  • ์„œ๋ฒ„์—์„œ ์ธ์ฆ์„œ๋ฅผ ํ†ตํ•œ ์ „์ž ์„œ๋ช… ๊ฐ’๊ณผ PRF ํ‚ค ์ƒ์„ฑ์„ ์œ„ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ •๋ณด๋ฅผ ๋ณด๋‚ด์ค€๋‹ค.
  • ์ด๋•Œ ์ „์ž์„œ๋ช…์€ ํ‚ค ๊ด€๋ จ ์ •๋ณด์— ๋Œ€ํ•œ ์ „์ž ์„œ๋ช…๊ฐ’์ด๋‹ค.
  • ์ด ๋ฉ”์„ธ์ง€๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„ ์ธ์ฆ์„œ ๊ฒ€์ฆ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

CertificateRequest ( Server )

  • ์„œ๋ฒ„๊ฐ€ ์ƒํ˜ธ ์ธ์ฆ์„ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฉ”์„ธ์ง€
  • ์„œ๋ฒ„ ์ธ์ฆ๋งŒ ํ•˜๋ฉด ์ด ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค.

ServerHelloDone ( Server )

  • ์„œ๋ฒ„์ชฝ์—์„œ ๊ด€๋ จ ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ ์™„๋ฃŒ๋ฅผ ์•ˆ๋ ค์ค€๋‹ค.

ClientKeyExchange ( Client )

  • ํด๋ผ์ด์–ธํŠธ์—์„œ ํ‚ค ํ•ฉ์˜๋ฅผ PRF ๊ด€๋ จ ํ‚ค ์ƒ์„ฑ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋ณด๋‚ด์ค€๋‹ค.

CertificateVerify ( Client )

  • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ์ธ์ฆ์„œ์˜ ์ „์ž์„œ๋ช… ๋ฉ”์„ธ์ง€๋ฅผ ๋‹ด์•„์„œ ๋ณด๋‚ธ๋‹ค.
  • ์ง€๊ธˆ ๊นŒ์ง€ ์ฃผ๊ณ  ๋ฐ›์€ ํ•ธ๋“œ์‰์ดํฌ ๋ฉ”์„ธ์ง€์— ๋Œ€ํ•œ ์ „์ž์„œ๋ช…์„ ํ•œ๋‹ค.
  • ์ด ๋ฉ”์„ธ์ง€๋„ ์ƒํ˜ธ ์ธ์ฆ ์ฆ‰ CertificateRequest ์žˆ์„ ๊ฒฝ์šฐ์— ๋ณด๋‚ธ๋‹ค.

ChangeCipherSpec ( Server | Client )

  • ์ด์ œ ๋ถ€ํ„ฐ ์•”ํ˜ธํ™”๋ผ๋Š”๊ฒƒ์„ ๋งํ•œ๋‹ค.
  • ์ด๊ฒƒ์€ ์ „๋‹ฌ ๋ฉ”์„ธ์ง€๋Š” ์•„๋‹ˆ๋‹ค.

Finished ( Server | Client )

  • ๋ชจ๋“  ์ค€๋น„๊ฐ€ ๋๋‚ฌ๋‹ค๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค.
  • ์ง€๊ธˆ๊นŒ์ง€ ์ฃผ๊ณ  ๋ฐ›์€ ํ•ธ๋“œ์‰์ดํฌ์˜ PRF ๊ฐ’์„ ๊ตฌํ•ด์„œ ์ „๋‹ฌํ•œ๋‹ค.