ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ ๋ฉด์ ‘์„ ์œ„ํ•œ cs ์ „๊ณต์ง€์‹ ๋…ธํŠธ ์ •๋ฆฌ ] 2.๋„คํŠธ์›Œํฌ : HTTP
    Book 2024. 4. 16. 16:13
    ๋ฐ˜์‘ํ˜•

    (์ถœ์ฒ˜ :  https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A9%B4%EC%A0%91-cs-%ED%8A%B9%EA%B0%95)

    2.5 HTTP

    2.5.1 HTTP/1.0
    2.5.2 HTTP/1.1
    2.5.3 HTTP/2
    2.5.4 HTTPS
    2.5.5 HTTP/3.0

    2.5 HTTP

    HTTP๋Š” ์ „์†ก ๊ณ„์ธต ์ค‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์œผ๋กœ์„œ ์›น ์„œ๋น„์Šค ํ†ต์‹ ์— ์‚ฌ์šฉ๋œ๋‹ค.

     

    2.5.1 HTTP/1.0

     

    HTTP/1.0์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•œ ์—ฐ๊ฒฐ๋‹น ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋Š”๋ฐ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋งˆ๋‹ค TCP์˜ 3-์›จ์ด ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ๊ณ„์™ํ•ด์„œ ์—ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Š” RTT(Round Trip Time, ํŒจํ‚ท์ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ์ถœ๋ฐœ์ง€๋กœ ๋Œ์•„์˜ค๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ํŒจํ‚ท ์™•๋ณต์‹œ๊ฐ„) ์ฆ๊ฐ€๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ฒŒ ๋˜์—ˆ๋‹ค. 

    • RTT์˜ ์ฆ๊ฐ€๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•
    • ์ด๋ฏธ์ง€ ์Šคํ”Œ๋ฆฌํŒ…
      ๋งŽ์€ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋ฐ›๊ฒŒ ๋˜๋ฉด ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์ด๋ฏธ์ง€๊ฐ€ ํ•ฉ์ณ์ ธ ์žˆ๋Š” ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ background-image์˜ position์„ ์ด์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

    • ์ฝ”๋“œ ์••์ถ•
      ์ฝ”๋“œ๋ฅผ ์••์ถ•ํ•˜์—ฌ ๊ฐœํ–‰ ๋ฌธ์ž, ๋นˆ์นธ์„ ์—†์•  ์ฝ”๋“œ์˜ ์šฉ๋Ÿ‰์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

    • ์ด๋ฏธ์ง€Base64 ์ธ์ฝ”๋”ฉ
      ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ 64์ง„๋ฒ•์œผ๋กœ ์ผ์›Œ์ง„ ๋ฌธ์ž์—ด๋กœ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ์ด ๋ฐฉ๋ฒ•์˜ ์žฅ์ ์€ ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ์„ ์—ด๊ณ  ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด ์„œ๋ฒ„์— HTTP ์š”์ฒญ์„ ํ•  ํ•„์š”๊ฐ€ ์—†์ง€๋งŒ Base64 ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•  ๊ฒฝ์šฐ ํฌ๊ธฐ๊ฐ€ 37%์ •๋„ ์ปค์ง€๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

     

    2.5.2 HTTP/1.1

     

    HTTP/1.1์€ ๋งค๋ฒˆ TCP ์—ฐ๊ฒฐ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•œ ๋ฒˆ TCP ์ดˆ๊ธฐํ™”๋ฅผ ํ•œ ์ดํ›„์— keep-alive๋ผ๋Š” ์˜ต์…˜์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ์„ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋‹ค. HTTP/1.0์—๋„ ์ด ์˜ต์…˜์ด ์žˆ์—ˆ์ง€๋งŒ ํ‘œ์ค€ํ™”๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š์•„ HTTP/1.1๋ถ€ํ„ฐ ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ ์„ค์ •๋˜์—ˆ๋‹ค.

    ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ํ•œ๋ฒˆ๋งŒ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์„œ ์•ˆ์— ํฌํ•จ๋œ ๋‹ค์ˆ˜์˜ ๋ฆฌ์†Œ์Šค(css ํŒŒ์ผ, ์ด๋ฏธ์ง€, script ํŒŒ์ผ)์„ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ์š”์ฒญํ•  ๋ฆฌ์†Œ์Šค ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•ด์„œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

     

    • HOL Blocking(Head Of Line Blocking)
      ๋„คํŠธ์›Œํฌ์—์„œ ๊ฐ™์€ ํ์— ์žˆ๋Š” ํŒจํ‚ท์ด ๊ทธ ์ฒซ ๋ฒˆ์งธ ํŒจํ‚ท์— ์˜ํ•ด ์ง€์—ฐ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์„ฑ๋Šฅ ์ €ํ•˜ ํ˜„์ƒ์ด๋‹ค.
      ์•„๋ž˜์˜ ์„ธ ํŒŒ์ผ์„ ๋ฐ›์„ ๋•Œ image.jpg  ํŒŒ์ผ์ด ๋Š๋ฆฌ๊ฒŒ ๋ฐ›์•„์ง„๋‹ค๋ฉด ๊ทธ ๋’ค์— ์žˆ๋Š” ๊ฒƒ๋“ค์ด ๋Œ€๊ธฐํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์ง€์—ฐ๋˜๋Š” ์ƒํƒœ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

     

    • ๋ฌด๊ฑฐ์šด ํ—ค๋” ๊ตฌ์กฐ
      HTTP/1.1์˜ ํ—ค๋”์—๋Š” ์ฟ ํ‚ค ๋“ฑ ๋งŽ์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด ์žˆ๊ณ  ์••์ถ•์ด ๋˜์ง€ ์•Š์•„ ๋ฌด๊ฑฐ์› ๋‹ค.

     

    2.5.3 HTTP/2

    HTTP/2๋Š” SPDY ํ”„๋กœํ† ์ฝœ์—์„œ ํŒŒ์ƒ๋œ HTTP/1.x๋ณด๋‹ค ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ์‘๋‹ต ์‹œ๊ฐ„์„ ๋” ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ, ํ—ค๋” ์••์ถ•, ์„œ๋ฒ„ ํ‘ธ์‹œ, ์š”์ฒญ์˜ ์šฐ์„ ์ˆœ์œ„ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

     

    • ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ
      ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์†ก์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ์ŠคํŠธ๋ฆผ(stream, ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ์ผ๋ จ์˜ ๋ฐ์ดํ„ฐ ์š”์†Œ)์˜ ํŒจํ‚ท์ด ์†์‹ค๋˜์—ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ํ•ด๋‹น ์ŠคํŠธ๋ฆผ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ๋‚˜๋จธ์ง€ ์ŠคํŠธ๋ฆผ์€ ๋ฉ€์ฉกํ•˜๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

      ํ•˜๋‚˜์˜ ์—ฐ๊ฒฐ ๋‚ด ์—ฌ๋Ÿฌ ์ŠคํŠธ๋ฆผ์„ ์บก์ฒ˜ํ•ด ๋ณ‘๋ ฌ์ ์ธ ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋น™ํ•˜๊ณ  ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋“ค๋„ ์ชผ๊ฐœ์ ธ ์žˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ›์•„์˜จ ๋ฉ”์‹œ์ง€๋ฅผ ๋…๋ฆฝ๋œ ํ”„๋ ˆ์ž„์œผ๋กœ ์กฐ๊ฐ๋‚ด์–ด ์„œ๋กœ ์†ก์ˆ˜์‹ ํ•œ ์ดํ›„ ๋‹ค์‹œ ์กฐ๋ฆฝํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค.

      ์ด๋ฅผ ํ†ตํ•ด ๋‹จ์ผ ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ๋กœ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ  ์‘๋‹ต์„ ์ค„ ์ˆ˜ ์žˆ์–ด HOL Bolocking์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

    • ํ—ค๋”์••์ถ•
      ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” HPACK ์••์ถ• ํ˜•์‹์„ ํ†ตํ•ด ํ—ค๋”๋ฅผ ์••์ถ•ํ•ด HTTP/1.x์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.
    • ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ(huffman coding)
      ๋ฌธ์ž์—ด์„ ๋ฌธ์ž ๋‹จ์œ„๋กœ ์ชผ๊ฐœ ๋นˆ๋„์ˆ˜๋ฅผ ์„ธ์–ด ๋นˆ๋„๊ฐ€ ๋†’์€ ์ •๋ณด๋Š” ์ ์€ ๋น„ํŠธ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•˜๊ณ , ๋นˆ๋„๊ฐ€ ๋‚ฎ์€ ์ •๋ณด๋Š” ๋น„ํŠธ ์ˆ˜๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•ด์„œ ์ „์ฒด ๋ฐ์ดํ„ฐ์˜  ํ‘œํ˜„์— ํ•„์š”ํ•œ ๋น„ํŠธ์–‘์„ ์ค„์ด๋Š” ์›๋ฆฌ์ด๋‹ค.

    • ์„œ๋ฒ„ํ‘ธ์‹œ
      HTTP/1.1์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•ด์•ผ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ HTTP/2๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์—†์ด ์„œ๋ฒ„๊ฐ€ ๋ฐ”๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
      html์„ ์ฝ์œผ๋ฉด์„œ ๊ทธ ์•ˆ์— ๋“ค์–ด์žˆ๋Š” cssํŒŒ์ผ์„ ์„œ๋ฒ„์—์„œ ํ‘ธ์‹œํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ๋จผ์ € ์ค„ ์ˆ˜ ์žˆ๋‹ค.



    2.5.4 HTTPS

     

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

     

    • SSL(Secure Socket Layer, ๋ณด์•ˆ์†Œ์ผ“๊ณ„์ธต)/TLS(Transport Layer Security Protocol, ์ „์†ก๊ณ„์ธต๋ณด์•ˆ)

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

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

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

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

      ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ‚ค๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ์ฆ, ์ธ์ฆ ํ™•์ธ ๋“ฑ์˜ ์ž‘์—…์ด ์ผ์–ด๋‚˜๋Š” ๋‹จ ํ•œ๋ฒˆ์˜ 1-RTT๊ฐ€ ์ƒ๊ธด ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
      ํด๋ผ์ด์–ธํŠธ์—์„œ *์‚ฌ์ดํผ์ŠˆํŠธ(cypher suites)๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๋ฉด ์„œ๋ฒ„๋Š” ๋ฐ›์€ ์‚ฌ์ดํผ ์ŠˆํŠธ์˜ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ธ์ฆ์„œ๋ฅผ ๋ณด๋‚ด๋Š” ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์‹œ์ž‘๋˜๊ณ  ์ดํ›„ ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์œผ๋กœ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ์˜ ์†ก์ˆ˜์‹ ์ด ์‹œ์ž‘๋œ๋‹ค.

      * ์‚ฌ์ดํผ์ŠˆํŠธ(cypher suites)
      ํ”„๋กœํ† ์ฝœ, AEAD์‚ฌ์ดํผ ๋ชจ๋“œ, ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‚˜์—ด๋œ ๊ทœ์•ฝ์„ ๋งํ•˜๋ฉฐ ๋‹ค์„ฏ๊ฐœ๊ฐ€ ์žˆ๋‹ค.

      • 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

      * AEAD ์‚ฌ์ดํผ๋ชจ๋“œ(Authenticated Encryption with Associated Data, ์ธ์ฆ๋œ ์•”ํ˜ธ ๋ฐฉ์‹)
      ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ AES_128_GCM ๋“ฑ์ด ์žˆ๋‹ค.
      AES_128_GCM๋Š” 128๋น„ํŠธ์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์ค€ ๋ธ”๋ก ์•”ํ˜ธํ™” ๊ธฐ์ˆ ๊ณผ ๋ณ‘๋ ฌ ๊ณ„์‚ฐ์— ์šฉ์ดํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ GCM์ด ๊ฒฐํ•ฉ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋œปํ•œ๋‹ค.

     

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

      CA(Certificate Authoritties, ์ธ์ฆ๊ธฐ๊ด€)์—์„œ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ด ์ธ์ฆ์„œ๋Š” ์•ˆ์ „ํ•œ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•˜๋Š” ๊ณต๊ฐœํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์ œ๊ณตํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์†ํ•œ ์„œ๋ฒ„๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์ž„์„ ๋ณด์žฅํ•œ๋‹ค. ์ธ์ฆ์„œ๋Š” ์„œ๋น„์Šค ์ •๋ณด, ๊ณต๊ฐœํ‚ค, ์ง€๋ฌธ, ๋””์ง€ํ„ธ ์„œ๋ช… ๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

      * CA๋ฐœ๊ธ‰๊ณผ์ •
      ์‚ฌ์ดํŠธ ์ •๋ณด์™€ ๊ณต๊ฐœํ‚ค๋ฅผ CA์— ์ œ์ถœํ•˜๊ณ  CA๋Š” ๊ณต๊ฐœํ‚ค๋ฅผ ํ•ด์‹œํ•œ ๊ฐ’์ธ ์ง€๋ฌธ(finger print)์„ ์‚ฌ์šฉํ•˜๋Š” CA์˜ ๋น„๋ฐ€ํ‚ค(๊ฐœ์ธํ‚ค๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ๋ฐ˜๋“œ์‹œ ๊ฐœ์ธ์ด ์†Œ์œ ํ•ด์•ผ ํ•˜๋Š” ํ‚ค) ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ CA ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ๋‹ค.

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

      ํ‚ค ๊ตํ™˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ๋Š” ๋Œ€์ˆ˜๊ณก์„  ๊ธฐ๋ฐ˜์˜ ECDHE(Ellliptic Curve Diffie-Hellman Ephemeral) ๋˜๋Š” ๋ชจ๋“ˆ์‹ ๊ธฐ๋ฐ˜์˜ DHE(Diffie-Hellman Ephemeral)์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๋‘˜๋‹ค ๋””ํ”ผ-ํ—ฌ๋งŒ ๋ฐฉ์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค.

      * ๋””ํ”ผ-ํ—ฌ๋งŒ ํ‚ค ๊ตํ™˜ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜(Diffie-Hellman key exchange)
      g์™€ x์™€ p๋ฅผ ์•ˆ๋‹ค๋ฉด y๋Š” ๊ตฌํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ g์™€ y์™€ p๋งŒ ์•ˆ๋‹ค๋ฉด x๋ฅผ ๊ตฌํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค๋Š” ์›๋ฆฌ์— ๊ธฐ๋ฐ˜ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

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

     

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

      * SHA-256 ์•Œ๊ณ ๋ฆฌ์ฆ˜
      ํ•ด์‹œ(๋‹ค์–‘ํ•œ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ •๋œ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋กœ ๋งคํ•‘ํ•œ ๊ฐ’) ํ•จ์ˆ˜์˜ ๊ฒฐ๊ด๊ฐ’์ด 256๋น„ํŠธ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ ๋น„ํŠธ ์ฝ”์ธ์„ ๋น„๋กฏํ•œ ๋ธ”๋ก์ฒด์ธ ์‹œ์Šคํ…œ์—์„œ๋„ ๋งŽ์ด ์“ด๋‹ค.
      ํ•ด์‹ฑ(์ž„์˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์‹œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์ผ์ด๋ฉฐ ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ์ด๋ฅผ ๋‹ด๋‹น)์„ ํ•ด์•ผ ํ•  ๋ฉ”์‹œ์ง€์— 1์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋“ฑ ์ „์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ์ „์ฒ˜๋ฆฌ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด์‹œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

      TLS 1.3์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ „์— ๋ฐฉ๋ฌธํ•œ ์‚ฌ์ดํŠธ๋กœ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•œ๋‹ค๋ฉด SSL/TLS์—์„œ ๋ณด์•ˆ ์„ธ์…˜์„ ๋งŒ๋“ค ๋•Œ ๊ฑธ๋ฆฌ๋Š” ํ†ต์‹ ์„ ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š”๋ฐ ์ด๋ฅผ 0-RTT๋ผ๊ณ  ํ•œ๋‹ค.
    • HTTPS ๊ตฌ์ถ•๋ฐฉ๋ฒ•
    • ์ง์ ‘ CA์—์„œ ๊ตฌ๋งคํ•œ ์ธ์ฆํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ HTTPS ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค.
    • ์„œ๋ฒ„ ์•ž๋‹จ์˜ HTTPS๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๋‘”๋‹ค.
    • ์„œ๋ฒ„ ์•ž๋‹จ์— HTTPS๋ฅผ ์ œ๊ณตํ•˜๋Š” CDN์„ ๋‘ฌ์„œ ๊ตฌ์ถ•ํ•œ๋‹ค.


    2.5.5 HTTP/3.0

     

    HTTP/3์€ TCP ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” HTTP/2์™€๋Š” ๋‹ฌ๋ฆฌ QUIC(ํ€ต)๋ผ๋Š” ๊ณ„์ธต ์œ„์—์„œ ๋Œ์•„๊ฐ€๋ฉฐ TCP ๊ธฐ๋ฐ˜์ด ์•„๋‹Œ UDP ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.
    HTTP/2์˜ ์žฅ์ ์ธ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ๋„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ QUIC์ด TCP๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ†ต์‹ ์„ ์‹œ์ž‘ํ•  ๋•Œ ๋ฒˆ๊ฑฐ๋กœ์šด 3-์›จ์ด ํ•ธ๋“œ์…ฐ์ดํฌ ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š์•„ ์ดˆ๊ธฐ ์—ฐ๊ฒฐ ์„ค์ • ์‹œ ์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐ์†Œ๋ผ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

     

    • ์ดˆ๊ธฐ ์—ฐ๊ฒฐ ์„ค์ • ์‹œ ์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐ์†Œ

      QUIC์€ ์ฒซ ์—ฐ๊ฒฐ ์„ค์ •์— 1-RTT๋งŒ ์†Œ์š”๋˜๋Š”๋ฐ ์ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์–ด๋–ค ์‹ ํ˜ธ๋ฅผ ํ•œ๋ฒˆ์ฃผ๊ณ , ์„œ๋ฒ„๋„ ๊ฑฐ๊ธฐ์— ์‘๋‹ตํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ณธ ํ†ต์‹ ์„ ๋ฐ”๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. 
      QUIC์€ FEC(Forword Error Correction, ์ˆœ๋ฐฉํ–ฅ ์˜ค๋ฅ˜ ์ˆ˜์ • ๋งค์ปค๋‹ˆ์ฆ˜)์ด ์ ์šฉ๋˜์–ด, ์ „์†กํ•œ ํŒจํ‚ท์ด ์†์‹ค๋˜์—ˆ๋‹ค๋ฉด ์ˆ˜์‹  ์ธก์—์„œ ์—๋Ÿฌ๋ฅผ ๊ฒ€์ถœํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์ด ์—ด์•…ํ•ด๋„ ํŒจํ‚ท ์†์‹ค๋ฅ ์ด ๋‚ฎ๋‹ค.

     

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.