HTTPS

1. ๊ธฐ๋ณธ ๊ฐœ๋…: ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ

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

์ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋น„์œ ๋กœ ์„ค๋ช…ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต (User): ํƒ๋ฐฐ๋กœ ๋ณด๋‚ผ '๋ฌผ๊ฑด' (์‹ค์ œ ๋ฐ์ดํ„ฐ)

  • ์ปค๋„ ๊ณ„์ธต (Transport/Network): ๋ฌผ๊ฑด์„ ๋‹ด๋Š” '๋ฐ•์Šค' (ํฌ์žฅ ๋ฐ ์ฃผ์†Œ ์ง€์ •)

  • ํ•˜๋“œ์›จ์–ด ๊ณ„์ธต: ํƒ๋ฐฐ๊ฐ€ ์ด๋™ํ•˜๋Š” '๋„๋กœ ๋ฐ ํ™”๋ฌผ์ฐจ' (๋ฌผ๋ฆฌ์  ์ด๋™)

์ด๋•Œ HTTP๋Š” ์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ทœ์น™(ํ”„๋กœํ† ์ฝœ)์ด๋ฉฐ, ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐฐ๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ํ•˜์œ„ ๊ณ„์ธต์ธ TCP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

2. TCP์˜ ํŠน์ง•๊ณผ ํ•œ๊ณ„

TCP์˜ ํŠน์ง•: ์—ฐ๊ฒฐ ์ง€ํ–ฅํ˜•

TCP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ์—ฐ๊ฒฐ(Connection)์„ ๋จผ์ € ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ 3-way Handshake๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ๋งˆ์น˜ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„๊ธฐ ์ „ ์„œ๋กœ ์ธ์‚ฌ๋ฅผ ํ•˜๊ณ  ์ „์šฉ ๋Œ€ํ™”๋ฐฉ(Socket)์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํฌํŠธ(Port)์™€ ์†Œ์ผ“(Socket):

    • ์„œ๋ฒ„์—๋Š” 80๋ฒˆ ๊ฐ™์€ ๋ฌธ(Port)์ด ํ•˜๋‚˜์ง€๋งŒ, ๊ทธ ๋ฌธ์„ ํ†ตํ•ด ๋“ค์–ด์˜จ ์š”์ฒญ๋“ค์€ ๊ฐ๊ฐ ๋ณ„๋„์˜ '์ „์šฉ ๋Œ€ํ™”๋ฐฉ'์ธ ์†Œ์ผ“์„ ๋งŒ๋“ค์–ด 1:1๋กœ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•๋ถ„์— ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ PC์™€ ๋™์‹œ์— ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • OSI 7๊ณ„์ธต์—์„œ 7๊ณ„์ธต โ†’ 4๊ณ„์ธต์œผ๋กœ์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์€ ์†Œ์ผ“์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

      • 7๊ณ„์ธต = ์‚ฌ์šฉ์ž ๊ณต๊ฐ„

      • 1~4 ๊ณ„์ธต = ์ปค๋„ ๊ณต๊ฐ„

TCP์˜ ์น˜๋ช…์ ์ธ ๋‹จ์ : ๋ณด์•ˆ

TCP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํฌ์žฅ(ํŒจํ‚ท)ํ•ด์„œ ๋ณด๋‚ด์ง€๋งŒ, ๊ทธ ํฌ์žฅ์„ ๋œฏ์œผ๋ฉด ๋‚ด์šฉ๋ฌผ์ด ๊ทธ๋Œ€๋กœ ๋ณด์ž…๋‹ˆ๋‹ค(Plain Text).

์ฆ‰, ์ค‘๊ฐ„์— ๋ˆ„๊ตฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋กœ์ฑ„๋ฉด ๋‚ด์šฉ์„ ํ›”์ณ๋ณด๊ฑฐ๋‚˜(๋„์ฒญ), ์œ„์กฐํ•˜๊ธฐ๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ SSL์ž…๋‹ˆ๋‹ค.

3. SSL์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ : ์•”ํ˜ธํ™”

SSL์€ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€์นญํ‚ค์™€ ๋น„๋Œ€์นญํ‚ค ๋ฐฉ์‹์„ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋Œ€์นญํ‚ค (Symmetric Key):

    • ํ•˜๋‚˜์˜ ํ‚ค๋กœ ์ž ๊ทธ๊ณ (์•”ํ˜ธํ™”) ์—ด๊ธฐ(๋ณตํ˜ธํ™”)๋ฅผ ๋ชจ๋‘ ํ•ฉ๋‹ˆ๋‹ค.

    • ์†๋„๊ฐ€ ๋น ๋ฅด์ง€๋งŒ, ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ํ‚ค๋ฅผ ๊ฑด๋„ค์ค„ ๋•Œ ํ‚ค ์ž์ฒด๊ฐ€ ํƒˆ์ทจ๋  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Asymmetric Key
  • ๋น„๋Œ€์นญํ‚ค (Asymmetric Key):

    • ๊ณต๊ฐœํ‚ค(Public Key)๋กœ ์ž ๊ทธ๋ฉด ๊ฐœ์ธํ‚ค(Private Key)๋กœ๋งŒ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ฐ˜๋Œ€๋„ ๊ฐ€๋Šฅ)

    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์‹ ์˜ ๋Œ€์นญํ‚ค๋ฅผ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•˜์—ฌ ๋Œ€์นญํ‚ค๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

SSL์˜ ํ•ด๊ฒฐ์ฑ… (ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฐฉ์‹)

  1. ๋น„๋Œ€์นญํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด '๋Œ€์นญํ‚ค'๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  2. ์„œ๋กœ '๋Œ€์นญํ‚ค'๋ฅผ ๊ณต์œ ํ•œ ํ›„์—๋Š”, ์†๋„๊ฐ€ ๋น ๋ฅธ ๋Œ€์นญํ‚ค๋กœ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ์ฃผ๊ณ ๋ฐ›์Šต๋‹ˆ๋‹ค.

[์ƒํ™ฉ]

  • ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €): ๋Œ€์นญํ‚ค(์„ธ์…˜ํ‚ค)๋ฅผ ๋งŒ๋“ค์–ด์„œ ์„œ๋ฒ„์—์„œ ๋ชฐ๋ž˜ ์ฃผ๊ณ  ์‹ถ์Œ.

  • ์„œ๋ฒ„: ๊ณต๊ฐœํ‚ค(์ž๋ฌผ์‡ )์™€ ๊ฐœ์ธํ‚ค(์—ด์‡ )๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.

[์ „๋‹ฌ ๊ณผ์ •]

  1. ๊ณต๊ฐœํ‚ค ํš๋“: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ์ž์‹ ์˜ '๊ณต๊ฐœํ‚ค'๊ฐ€ ๋‹ด๊ธด ์ธ์ฆ์„œ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ค๋‹ˆ๋‹ค. (๋ˆ„๊ตฌ๋‚˜ ๊ฐ€์ ธ๊ฐ€๋„ ๋˜๋Š” ํ‚ค์ž…๋‹ˆ๋‹ค.)

  2. ๋Œ€์นญํ‚ค ์ƒ์„ฑ: ํด๋ผ์ด์–ธํŠธ๋Š” ์ž„์‹œ๋กœ ์‚ฌ์šฉํ•  '๋Œ€์นญํ‚ค'๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (์•„์ง ์„œ๋ฒ„์—๊ฒŒ ์ „์†กํ•˜์ง€ ์•Š์Œ)

  3. ์•”ํ˜ธํ™” (ํ•ต์‹ฌ): ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐฉ๊ธˆ ๋งŒ๋“  '๋Œ€์นญํ‚ค'๋ฅผ ์„œ๋ฒ„์˜ '๊ณต๊ฐœํ‚ค'๋กœ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์ด ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„์˜ ๊ฐœ์ธํ‚ค๊ฐ€ ์—†์œผ๋ฉด ์ ˆ๋Œ€ ์—ด์–ด๋ณผ ์ˆ˜ ์—†๋Š” ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ค‘๊ฐ„์—์„œ ๊ฐ€๋กœ์ฑ„๋„ ์—ด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  4. ์ „์†ก ๋ฐ ๋ณตํ˜ธํ™”: ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ์ž์‹ ์ด ๊ฐ€์ง„ '๊ฐœ์ธํ‚ค'๋กœ ์ด๊ฒƒ์„ ์—ด์–ด์„œ(๋ณตํ˜ธํ™”) '๋Œ€์นญํ‚ค'๋ฅผ ๊บผ๋ƒ…๋‹ˆ๋‹ค.

[๊ฒฐ๊ณผ]

์ด์ œ ํด๋ผ์ด์–ธํŠธ๋Š” ์ž๊ธฐ๊ฐ€ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ ๋Œ€์นญํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์„œ๋ฒ„๋Š” ์•”ํ˜ธํ™”๋œ ๊ฑธ ๋ฐ›์•„์„œ ํ’€์—ˆ์œผ๋‹ˆ ๋Œ€์นญํ‚ค๋ฅผ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

4. ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ๋ฒ•: ์ธ์ฆ์„œ (Certificate)

๋น„๋Œ€์นญํ‚ค๋ฅผ ์จ๋„ ๋ฌธ์ œ๊ฐ€ ํ•˜๋‚˜ ๋‚จ์Šต๋‹ˆ๋‹ค. "๋‚ด๊ฐ€ ํ†ต์‹ ํ•˜๋ ค๋Š” ์„œ๋ฒ„๊ฐ€ ์ง„์งœ ๋„ค์ด๋ฒ„๋‚˜ ๊ตฌ๊ธ€์ด ๋งž๋Š”๊ฐ€?"์ž…๋‹ˆ๋‹ค.

ํ•ด์ปค๊ฐ€ ๊ฐ€์งœ ๊ณต๊ฐœํ‚ค๋ฅผ ๋ฟŒ๋ฆฌ๊ณ  ์„œ๋ฒ„์ธ ์ฒ™ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ์ธ์ฆ์„œ(Certificate)๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  1. ์„œ๋ช… (Signing): ์„œ๋ฒ„๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ด€(CA)์— ์ž์‹ ์˜ ์ •๋ณด๋ฅผ ์ค๋‹ˆ๋‹ค. ๊ธฐ๊ด€์€ ์„œ๋ฒ„์˜ ์ •๋ณด์™€ ๊ณต๊ฐœํ‚ค๋ฅผ ํ™•์ธํ•œ ํ›„, ๊ธฐ๊ด€์˜ '๊ฐœ์ธํ‚ค'๋กœ ์„œ๋ช…(์•”ํ˜ธํ™”)ํ•˜์—ฌ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

  2. ๊ฒ€์ฆ (Verification): PC(๋ธŒ๋ผ์šฐ์ €)๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. PC๋Š” ์ด๋ฏธ ๊ธฐ๊ด€์˜ '๊ณต๊ฐœํ‚ค'๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ์ด๋ฅผ ์ด์šฉํ•ด ์ธ์ฆ์„œ๋ฅผ ์—ด์–ด๋ด…๋‹ˆ๋‹ค(๋ณตํ˜ธํ™”).

  3. ์‹ ๋ขฐ: ์ธ์ฆ์„œ๊ฐ€ ๊ธฐ๊ด€์˜ ๊ณต๊ฐœํ‚ค๋กœ ์ž˜ ํ’€๋ฆฐ๋‹ค๋ฉด, "์•„, ์ด ์„œ๋ฒ„๋Š” ๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ด€์ด ๋ณด์ฆํ•œ ์ง„์งœ ์„œ๋ฒ„๊ตฌ๋‚˜"๋ผ๊ณ  ์‹ ๋ขฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ์ธ์ฆ์„œ ์•ˆ์— ๋“ค์–ด์žˆ๋˜ ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ๊บผ๋‚ด์„œ ํ†ต์‹ ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ 3-Handshake ๊ณผ์ •์ด ๋๋‚˜๊ณ  TCP ์—ฐ๊ฒฐ์ด ์ˆ˜๋ฆฝ๋œ ๋’ค, ๊ทธ ์œ„์—์„œ TLS Handshake๊ฐ€ ์‹œ์ž‘๋˜์–ด ์ธ์ฆ์„œ ํ™•์ธ๊ณผ ํ‚ค ๊ตํ™˜์ด ์ด๋ฃจ์–ด ์ง‘๋‹ˆ๋‹ค.

Summary

์ด ๋ชจ๋“  ๊ณผ์ •์„ ์ข…ํ•ฉํ•˜์—ฌ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • SSL (Secure Sockets Layer):

    • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(HTTP)๊ณผ ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต(TCP) ์‚ฌ์ด์— ์œ„์น˜ํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๊ฐ€ ์†Œ์ผ“์„ ํ†ตํ•ด ๋‚˜๊ฐ€๊ธฐ ์ „์— ์•”ํ˜ธํ™”ํ•ด ์ฃผ๋Š” ๋ณด์•ˆ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

    • ์ „์†ก๊ณ„์ธต(TCP)์˜ 443 ํฌํŠธ๋Š” Well-Known Port์ž…๋‹ˆ๋‹ค.

  • HTTPS:

    • HTTP๊ฐ€ ์ผ๋ฐ˜ TCP ์†Œ์ผ“์ด ์•„๋‹Œ, SSL์ด๋ผ๋Š” ๋ณด์•ˆ ๊ณ„์ธต์„ ์–น์€ ์†Œ์ผ“์„ ํ†ตํ•ด ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

    • HTTP๊ฐ€ ์ผ๋ฐ˜ ์†Œ์ผ“(์œ ๋ฆฌ)๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, HTTPS๋Š” ๋ณด์•ˆ ์†Œ์ผ“(๋ฐฉํƒ„๋ณต)

  • TLS (Transport Layer Security):

    • SSL์€ ์›๋ž˜ ๋„ท์Šค์ผ€์ดํ”„ ์‚ฌ์—์„œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋„๋ฆฌ ์“ฐ์ด์ž ๊ตญ์ œ ํ‘œ์ค€์œผ๋กœ ์ •๋ฆฝํ•œ ๊ฒƒ์ด TLS์ž…๋‹ˆ๋‹ค.

    • ์ฆ‰, TLS๋Š” SSL์˜ ํ‘œ์ค€ํ™”๋œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„์ „์ด๋ฉฐ ์›๋ฆฌ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. (SSL์˜ ๋ฒ„์ „ ์ค‘ ํ•˜๋‚˜๊ฐ€ TLS)

  • TCP ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ(SYN โ†’ SYN-ACK โ†’ ACK) โ†’ TLS ํ•ธ๋“œ์…ฐ์ดํฌ(Client Hello โ†’ Server Hello โ†’ Certificate ๋“ฑ)

"HTTP๋Š” TCP ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š”๋ฐ, TCP๋Š” ๋ณด์•ˆ์— ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” SSL(TLS) ๊ณ„์ธต์„ ์ค‘๊ฐ„์— ๋ผ์›Œ ๋„ฃ์—ˆ๊ณ , ์ด๋ ‡๊ฒŒ SSL์„ ํ†ตํ•ด ์•”ํ˜ธํ™” ํ†ต์‹ ์„ ํ•˜๋Š” HTTP๋ฅผ HTTPS๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค."

Last updated