CS/๋„คํŠธ์›Œํฌ

[๋„คํŠธ์›Œํฌ] HTTPS

1eehyunji 2023. 8. 20. 18:07

HTTP/2๋Š” HTTPS ์œ„์—์„œ ๋™์ž‘ํ•œ๋‹ค. HTTPS๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต๊ณผ ์ „์†ก ๊ณ„์ธต ์‚ฌ์ด์— ์‹ ๋ขฐ ๊ณ„์ธต์ธ SSL/TLS ๊ณ„์ธต์„ ๋„ฃ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” HTTP ์š”์ฒญ์„ ๋งํ•œ๋‹ค. 

์ด๋ฅผ ํ†ตํ•ด ํ†ต์‹ ์„ '์•”ํ˜ธํ™”'ํ•œ๋‹ค.

 

SSL(Secure Socket Layer) / TLS(Transport Layer Security protocol)

SSL์€ SSL 1.0 -> SSL 2.0 -> SSL 3.0 -> TLS 1.0 -> TLS 1.3๊นŒ์ง€ ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ TLS๋กœ ๋ช…์นญ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์ง€๋งŒ, ๋ณดํ†ต ์ด๋ฅผ ํ•ฉ์ณ์„œ SSL/TLS๋กœ ๋ถ€๋ฅธ๋‹ค. ์ด ํฌ์ŠคํŒ…์—์„  ์ตœ์‹  ๋ฒ„์ „์ธ TLS 1.3์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

SSL/TLS๋Š” ์ „์†ก ๊ณ„์ธต์—์„œ ๋ณด์•ˆ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ•  ๋•Œ SSL/TLS๋ฅผ ํ†ตํ•ด ์ œ 3์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋„์ฒญํ•˜๊ฑฐ๋‚˜ ๋ณ€์กฐํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•œ๋‹ค

์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ SSL/TLS๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์ž๊ฐ€ ์„œ๋ฒ„์ธ ์ฒ™ํ•˜๋ฉด์„œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ฐ€๋กœ์ฑ„๋Š” '์ธํ„ฐ์…‰ํ„ฐ'๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

SSL/TLS๋Š” ๋ณด์•ˆ ์„ธ์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•œ๋‹ค.

๋ณด์•ˆ ์„ธ์…˜์ด ๋งŒ๋“ค์–ด์งˆ ๋•Œ๋Š” ์ธ์ฆ ๋งค์ปค๋‹ˆ์ฆ˜, ํ‚ค ๊ตํ™˜ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋œ๋‹ค. 

 

๋ณด์•ˆ ์„ธ์…˜

๋ณด์•ˆ ์„ธ์…˜์ด๋ž€ ๋ณด์•ˆ์ด ์‹œ์ž‘๋˜๊ณ  ๋๋‚˜๋Š” ๋™์•ˆ ์œ ์ง€๋˜๋Š” ์„ธ์…˜์„ ๋งํ•œ๋‹ค. SSL/TLS๋Š” ํ•ธ๋“œ ์…ฐ์ดํฌ๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ ์„ธ์…˜์„ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํƒœ ์ •๋ณด ๋“ฑ์„ ๊ณต์œ ํ•œ๋‹ค.

* ์„ธ์…˜(session) : ์šด์˜์ฒด์ œ๊ฐ€ ์–ด๋– ํ•œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž์‹ ์˜ ์ž์‚ฐ ์ด์šฉ์„ ํ—ˆ๋ฝํ•˜๋Š” ์ผ์ •ํ•œ ๊ธฐ๊ฐ„์„ ๋œปํ•œ๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๋Š” ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ๋ฆฌ์†Œ์Šค ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

TLS ํ•ธ๋“œ์…ฐ์ดํฌ

TLS 1.2์—์„  ํ•ธ๋“œ ์…ฐ์ดํฌ๋ฅผ ์™„๋ฃŒํ•˜๋Š” ๋ฐ์— 2-RTT๊ฐ€ ํ•„์š”ํ–ˆ์ง€๋งŒ, TLS 1.3์€ 1-RTT๋งŒ์— TLS ํ•ธ๋“œ ์…ฐ์ดํฌ๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ‚ค๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ์ฆ, ์ธ์ฆ ํ™•์ธ ๋“ฑ์˜ ์ž‘์—…์ด ์ผ์–ด๋‚œ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์ดํผ ์ŠˆํŠธ(chiper suites)๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌํ•œ๋‹ค.
  • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์‚ฌ์ดํผ ์ŠˆํŠธ์˜ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  • ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ธ์ฆ์„œ๋ฅผ ๋ณด๋‚ด๋Š” ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์‹œ์ž‘๋œ๋‹ค.
  • ์ดํ›„์—” ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์œผ๋กœ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ์˜ ์†ก์ˆ˜์‹ ์ด ์‹œ์ž‘๋œ๋‹ค.
  • ์ถ”๊ฐ€์ ์œผ๋กœ, TLS 1.3์—์„  ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ „์— ๋ฐฉ๋ฌธํ•œ ์‚ฌ์ดํŠธ์— ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•œ ๊ฒฝ์šฐ, ๋ณด์•ˆ ์„ธ์…˜์ด ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ 0-RTT๋ผ๊ณ  ํ•œ๋‹ค. 

 

์‚ฌ์ดํผ ์ŠˆํŠธ

์‚ฌ์ดํผ ์ŠˆํŠธ๋Š” ํ”„๋กœํ† ์ฝœ, AEAD ์‚ฌ์ดํผ ๋ชจ๋“œ, ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‚˜์—ด๋œ ๊ทœ์•ฝ์„ ๋งํ•œ๋‹ค. TLS 1.3์—์„  ๋ถˆ์•ˆ์ •ํ•œ ์‚ฌ์ดํผ ์ŠˆํŠธ๋Š” ๋ชจ๋‘ ์ œ๊ฑฐ๋˜๊ณ , ์ด ๋‹ค์„ฏ ๊ฐœ์˜ ์‚ฌ์ดํผ ์ŠˆํŠธ๊ฐ€ ๋‚จ์•˜๋‹ค.

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_CCM_SHA256
  • TLS_AES_128_CCM_8_SHA256

์˜ˆ๋ฅผ ๋“ค์–ด, TLS_AES_128_GCM_SHA256์—๋Š” ์„ธ ๊ฐ€์ง€ ๊ทœ์•ฝ์ด ๋“ค์–ด์žˆ๋Š”๋ฐ TLS๋Š” ํ”„๋กœํ† ์ฝœ, AES_128_GCM์€ AEAD ์‚ฌ์ดํผ ๋ชจ๋“œ , SHA256์€ ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์˜๋ฏธํ•œ๋‹ค. 

 

AEAD(Authenticated Encryption with Associated Data) ์‚ฌ์ดํผ ๋ชจ๋“œ

๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์˜๋ฏธํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, AES_128_GCM์ด๋ผ๋Š” ๊ฒƒ์€ 128 ๋น„ํŠธ์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์ค€ ๋ธ”๋ก ์•”ํ˜ธํ™” ๊ธฐ์ˆ ๊ณผ, ๋ณ‘๋ ฌ ๊ณ„์‚ฐ์— ์šฉ์ดํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ GCM์ด ๊ฒฐํ•ฉ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์˜๋ฏธํ•œ๋‹ค.

 

์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜

์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ CA(Certificate Authorities)์—์„œ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

CA์—์„œ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ๋Š” ์•ˆ์ „ํ•œ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ '๊ณต๊ฐœํ‚ค'๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์ œ๊ณตํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์†ํ•œ ์„œ๋ฒ„๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์ž„์„ ๋ณด์žฅํ•œ๋‹ค.

์ธ์ฆ์„œ๋Š” ์„œ๋น„์Šค ์ •๋ณด, ๊ณต๊ฐœํ‚ค, ์ง€๋ฌธ, ๋””์ง€ํ„ธ ์„œ๋ช… ๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. 

์ฐธ๊ณ ๋กœ, CA๋Š” ์‹ ๋ขฐ์„ฑ์ด ์—„๊ฒฉํ•˜๊ฒŒ ๊ณต์ธ๋œ ๊ธฐ์—…๋“ค๋งŒ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋Œ€ํ‘œ์ ์œผ๋กœ Comodo, GoDaddy, GlobalSign, ์•„๋งˆ์กด ๋“ฑ์ด ์žˆ๋‹ค.

 

  • CA ๋ฐœ๊ธ‰ ๊ณผ์ •
    • ์ž์‹ ์˜ ์„œ๋น„์Šค๊ฐ€ CA ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์œผ๋ ค๋ฉด ์ž์‹ ์˜ ์‚ฌ์ดํŠธ ์ •๋ณด์™€ ๊ณต๊ฐœํ‚ค๋ฅผ CA์— ์ œ์ถœํ•ด์•ผ ํ•œ๋‹ค. ์ดํ›„ CA๋Š” ๊ณต๊ฐœํ‚ค๋ฅผ ํ•ด์‹œํ•œ ๊ฐ’์ธ ์ง€๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” CA์˜ ๋น„๋ฐ€ํ‚ค ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ CA ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ๋‹ค.

์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ‚ค ๊ตํ™˜ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ๋Š” ECDHE, DHE๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ๋‘ ๋””ํ”ผ-ํ—ฌ๋งŒ ๋ฐฉ์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค. 

  • ๋””ํ”ผ-ํ—ฌ๋งŒ(Diffie-Hellman) ํ‚ค ๊ตํ™˜ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜

์œ„ ์‹์—์„œ g, x, p๋ฅผ ์•ˆ๋‹ค๋ฉด y๋ฅผ ๊ตฌํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ, g, y, p๋งŒ ์•ˆ๋‹ค๋ฉด x๋ฅผ ๊ตฌํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์›๋ฆฌ์— ๊ธฐ๋ฐ˜ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ฒ˜์Œ์— ๊ณต๊ฐœ ํ‚ค๋ฅผ ๊ณต์œ ํ•˜๊ณ , ๊ฐ์ž์˜ ๋น„๋ฐ€ ํ‚ค์™€ ํ˜ผํ•ฉํ•œ ํ›„, ํ˜ผํ•ฉํ•œ ํ‚ค๋ฅผ ๊ณต์œ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฐ์ž์˜ ๋น„๋ฐ€ ํ‚ค์™€ ๋˜ ํ˜ผํ•ฉํ•œ๋‹ค. 

์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ ๊ณตํ†ต์˜ ์•”ํ˜ธํ‚ค์ธ PSK(Pre-Shared Key)๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๋ชจ๋‘ ๊ฐœ์ธํ‚ค์™€ ๊ณต๊ฐœํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์„œ๋กœ์—๊ฒŒ ๊ณต๊ฐœํ‚ค๋ฅผ ๋ณด๋‚ด๊ณ  ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ PSK๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค๋ฉด, ์•…์˜์ ์ธ ๊ณต๊ฒฉ์ž๊ฐ€ ๊ฐœ์ธํ‚ค ๋˜๋Š” ๊ณต๊ฐœํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋”๋ผ๋„ PSK๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†๋‹ค. 

 

ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ •ํ•˜๊ธฐ ํž˜๋“  ๋” ์ž‘๊ณ , ์„ž์—ฌ ์žˆ๋Š” ์กฐ๊ฐ์œผ๋กœ ๋งŒ๋“œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. 

SSL/TLS๋Š” ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ SHA-256, SHA-384 ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ฐ๋ฉฐ, ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” SHA-256 ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.

  • SHA-256
    • ํ•ด์‹œ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์ด 256 ๋น„ํŠธ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ๋น„ํŠธ ์ฝ”์ธ์„ ๋น„๋กฏํ•œ ๋งŽ์€ ๋ธ”๋ก์ฒด์ธ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•จ.
    • ํ•ด์‹ฑ์„ ํ•ด์•ผ ํ•  ๋ฉ”์‹œ์ง€์— 1์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋“ฑ ์ „์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ , ์ „์ฒ˜๋ฆฌ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด์‹œ๋ฅผ ๋ฐ˜ํ™˜ํ•จ.

* ํ•ด์‹œ : ๋‹ค์–‘ํ•œ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ •๋œ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋กœ ๋งคํ•‘ํ•œ ๊ฐ’

* ํ•ด์‹ฑ : ์ž„์˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์‹œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์ผ์ด๋ฉฐ, ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ์ด๋ฅผ ๋‹ด๋‹นํ•จ.

* ํ•ด์‹œ ํ•จ์ˆ˜ : ์ž„์˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ์ผ์ •ํ•œ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜

 

 

TLS ํ•ธ๋“œ์…ฐ์ดํฌ๋‚˜ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋“ฑ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ดํ•ด๋œ ๋А๋‚Œ์ด ์•„๋‹ˆ๋‹ค... ๋‚˜์ค‘์— ์ถ”๊ฐ€์ ์œผ๋กœ ๋” ๊ณต๋ถ€ํ•ด์„œ ๋””ํ…Œ์ผํ•˜๊ฒŒ ํฌ์ŠคํŒ…ํ•˜๋ ค ํ•œ๋‹ค!