[Network] HTTPS์™€ SSL Handshake

yourjinยท2022๋…„ 5์›” 30์ผ
0

dev.log

๋ชฉ๋ก ๋ณด๊ธฐ
6/13

โž• Topic


๐Ÿ’ก [HTTPS] 1. ์•”ํ˜ธํ™”์— ๋Œ€ํ•˜์—ฌ(๋Œ€์นญํ‚ค, ๊ณต๊ฐœํ‚ค) ์—์„œ ์ด์–ด์ง€๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ์•”ํ˜ธํ™” ๋ฐฉ์‹์— ์ด์–ด์„œ, HTTPS์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์ด์ „ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ฃฌ ๋Œ€์นญํ‚ค, ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์„ HTTPS์—์„œ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

โž• Contents


HTTPS๋ž€?

์œ„ํ‚ค๋ฐฑ๊ณผ์—์„œ ์ •์˜ํ•˜๊ณ  ์žˆ๋Š” HTTPS๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Hypertext Transfer Protocol Secure(HTTPS) is an extension of theย Hypertext Transfer Protocol
(HTTP). It is used forย secure communication over aย computer network, and is widely used on the Internet. In HTTPS, theย communication protocol is encrypted usingย Transport Layer Security (TLS) or, formerly, Secure Sockets Layer (SSL). The protocol is therefore also referred to asย HTTP over TLSย orย HTTP over SSL.

์—ฌ๊ธฐ์„œ ์•Œ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์‹ค์€

  1. HTTPS๋Š” HTTP์™€ ๋ณ„๊ฐœ์˜ ํ”„๋กœํ† ์ฝœ์ด ์•„๋‹Œ HTTP์˜ extension(ํ™•์žฅ)์ด๋‹ค.
  2. HTTPS๋Š” ์ธํ„ฐ๋„ท์—์„œ secure communication(๋ณด์•ˆ ํ†ต์‹ )์„ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
  3. Transport Layer Security(TLS) ๋˜๋Š” Secure Sockets Layer(SSL)์„ ์‚ฌ์šฉํ•ด ์•”ํ˜ธํ™”๋œ๋‹ค.

ํ•œ ๋งˆ๋””๋กœ ์ •๋ฆฌํ•˜๋ฉด, โ€œSSL/TLS์„ ์‚ฌ์šฉํ•ด ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ณด์•ˆ ํ†ต์‹ ์„ ์ œ๊ณตํ•˜๋Š” HTTP์˜ ํ™•์žฅ๋œ ๋ฒ„์ „โ€์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. HTTP์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ณผ์ •์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ €์˜ ํ†ต์‹  ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋  ์œ„ํ—˜์ด ํฌ๋‹ค. ๊ทธ๋ž˜์„œ HTTPS๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ, ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๋“ค์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค.

์ด์ œ SSL/TLS์ด๋ž€ ๋ฌด์—‡์ด๊ณ , HTTPS๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋ณด์•ˆ ํ†ต์‹ ์„ ์ œ๊ณตํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

SSL/TLS ํ”„๋กœํ† ์ฝœ

์ด๋ฒˆ์—๋„ ์œ„ํ‚ค๋ฐฑ๊ณผ์— ์žˆ๋Š” ์ •์˜๋ฅผ ๊ฐ€์ ธ์™€ ๋ณด์•˜๋‹ค.

Transport Layer Securityย (TLS), the successor of the now-deprecatedย Secure Sockets Layerย (SSL), is aย cryptographic protocolย designed to provide communications security over a computer network. Theย protocolย is widely used in applications such asย email,ย instant messaging, andย voice over IP, but its use in securingย HTTPSย remains the most publicly visible.

SSL/TLS๋Š” ์œ„์˜ ์ •์˜์ฒ˜๋Ÿผ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ๋ณด์•ˆ ํ†ต์‹ ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

TLS๋Š” SSL์˜ ์ทจ์•ฝ์ ๋“ค์„ ๊ฐœ์„ ํ•œ ๋‹ค์Œ ๋ฒ„์ „์˜ ํ”„๋กœํ† ์ฝœ๋กœ, ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ์ด๋ผ๋Š” ์˜๋ฏธ์—์„œ SSL๊ณผ ํ˜ผ์šฉํ•ด์„œ ์“ฐ์ด๊ธฐ๋„ ํ•œ๋‹ค.

SSL/TLS๋Š” ํŠน์ • ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์— ์†ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด ์•„๋‹ˆ๋ผ, ๋…์ž์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ๋Š” ์‘์šฉ ๊ณ„์ธต(Application Layer)๊ณผ ์ „์†ก ๊ณ„์ธต(Transport Layer) ์‚ฌ์ด์— ์œ„์น˜ํ•ด, ๋ณด์•ˆ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

HTTPS๋Š” ์‘์šฉ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ธ HTTP์™€ ์ „์†ก ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ธ TCP ์‚ฌ์ด์— SSL/TLS ํ”„๋กœํ† ์ฝœ์„ ๊ฑฐ์น˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค. ์™ธ๋ถ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ๋Š” HTTP๊ฐ€ TCP์— ๋ณด๋‚ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ SSL์—๊ฒŒ ๋ณด๋‚ด๋ฉด, SSL์ด ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ TCP์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค. ์—ญ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ๋„ TCP๊ฐ€ HTTP ๋Œ€์‹  SSL์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด, SSL์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณตํ˜ธํ™”ํ•˜์—ฌ HTTP์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

HTTPS์˜ ํ†ต์‹  ๊ณผ์ •

HTTPS๋Š” ์•ž์„œ ๋‹ค๋ฃฌ ๋Œ€์นญํ‚ค ๋ฐฉ์‹๊ณผ ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๋ณดํ†ต ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•  ๋•Œ๋Š” ๋น„๊ต์  ๋น ๋ฅธ ๋Œ€์นญํ‚ค ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ธ์ฆ๊ณผ ์•ˆ์ „ํ•œ ๋Œ€์นญํ‚ค ์ „๋‹ฌ์—๋Š” ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์˜ HTTPS ํ†ต์‹  ๊ณผ์ •์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๊ณผ์ •์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • ์ธ์ฆ: ์„œ๋ฒ„๊ฐ€ ์ง„์งœ ๋‚ด๊ฐ€ ์š”์ฒญํ•œ ์„œ๋ฒ„๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธ
  • ํ˜‘์ƒ: ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ํ˜‘์˜

1. ์ธ์ฆ - CA

์ธ์ฆ ๊ณผ์ •์€ CA(Certificate Authority)๋ผ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์™ธ๋ถ€ ์ธ์ฆ ๊ธฐ๊ด€์„ ๊ฑฐ์ณ์„œ ์ง„ํ–‰๋œ๋‹ค. CA๋Š” ํ•ด๋‹น ์„œ๋ฒ„๊ฐ€ ๋ฏฟ์„ ๋งŒํ•œ ์„œ๋ฒ„๋ผ๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜๋Š” SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ธ์ฆ์„œ๊ฐ€ ํ•ด๋‹น CA์—์„œ ๋ฐœ๊ธ‰ํ•œ ๊ฒƒ์ด ๋งž๋Š” ์ง€๋ฅผ ํ™•์ธํ•˜์—ฌ, ๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์ธ์ง€ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.

SSL ์ธ์ฆ์„œ
CA์—์„œ๋Š” ๊ฒ€์ฆ๋œ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋Š”๋ฐ, ์ด๋ฅผ SSL ์ธ์ฆ์„œ ํ˜น์€ TLS ์ธ์ฆ์„œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. SSL/TLS๋Š” ๋ณด์•ˆ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ธ๋ฐ, ์ด ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์ง์ ‘์ ์ธ ์—ฐ๊ด€์ด ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. "SSL/TLS์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ธ์ฆ์„œโ€๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ์กฐ๊ธˆ ๋” ์ •ํ™•ํ•˜๋‹ค.

์ธ์ฆ์„œ ๋ฐœ๊ธ‰

์ƒˆ๋กœ์šด ์‚ฌ์ดํŠธ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋“ค์ด HTTPS๋ฅผ ํ†ตํ•ด ์ด ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๋ฉด, ๋จผ์ € CA๋กœ๋ถ€ํ„ฐ SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. SSL ์ธ์ฆ์„œ์—๋Š” ์ฃผ๋กœ ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๋Š” ๋‚˜์ค‘์— ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ๋Œ€์นญํ‚ค ์ „๋‹ฌ์— ์‚ฌ์šฉ๋œ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ดํ›„ ๋‚ด์šฉ์—์„œ ๋‹ค์‹œ ๋‹ค๋ฃฌ๋‹ค.)

  1. ์„œ๋ฒ„๋Š” ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ, ์ž์‹ ์— ๋Œ€ํ•œ ์ •๋ณด์™€ ํ•จ๊ป˜ ๊ณต๊ฐœํ‚ค๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.
  2. CA๋Š” ์ „๋‹ฌ ๋ฐ›์€ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์ธ์ง€ ํ™•์ธํ•˜๊ณ , ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ๋‹ด์€ SSL ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  3. SSL ์ธ์ฆ์„œ๋Š” CA์˜ ๊ฐœ์ธํ‚ค๋ฅผ ํ†ตํ•ด ์•”ํ˜ธํ™”ํ•œ๋‹ค. ์ฆ‰, ์ „์ž ์„œ๋ช…์„ ํ†ตํ•ด ํ•ด๋‹น CA์—์„œ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ๋ผ๋Š” ๊ฒƒ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
  4. ์•”ํ˜ธํ™”๋œ SSL ์ธ์ฆ์„œ๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ , ์„œ๋ฒ„๋Š” ์ด๋ฅผ ๋ณด๊ด€ํ•œ๋‹ค.

์ธ์ฆ์„œ ๊ฒ€์ฆ

์ด์ œ ์„œ๋ฒ„๋Š” CA์˜ ๊ฐœ์ธํ‚ค๋กœ ์•”ํ˜ธํ™” ๋œ SSL ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด ์ธ์ฆ์„œ๋Š” CA์˜ ๊ณต๊ฐœํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ CA๋กœ๋ถ€ํ„ฐ ๊ณต๊ฐœํ‚ค๋ฅผ ์–ป์–ด๋‚ด ์ธ์ฆ์„œ์˜ ์ง„์œ„ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. CA์˜ ๊ณต๊ฐœํ‚ค๋กœ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด (1) CA์—์„œ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ์ด๊ณ , (2) ์ด ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๋Š” ์ง„์งœ ์„œ๋ฒ„๋ผ๋Š” ์‚ฌ์‹ค์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ์ž์‹ ์˜ SSL ์ธ์ฆ์„œ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
    1. SSL ์ธ์ฆ์„œ๋Š” SSL Handshake ๊ณผ์ •์„ ํ†ตํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ „๋‹ฌ๋œ๋‹ค.
  2. ๋ธŒ๋ผ์šฐ์ €๋Š” CA์—๊ฒŒ ์ธ์ฆ์„œ ๊ฒ€์ฆ ์š”์ฒญ์„ ํ•œ๋‹ค.
    1. ๋ธŒ๋ผ์šฐ์ €์—๋Š” ์ฃผ์š” ์ธ์ฆ ๊ธฐ๊ด€์˜ ๋ฆฌ์ŠคํŠธ์™€ ๊ณต๊ฐœํ‚ค๋ฅผ ์ด๋ฏธ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งค๋ฒˆ ์ธ์ฆ ๊ธฐ๊ด€์—์„œ ์ธ์ฆ์„œ ๊ฒ€์ฆ ์š”์ฒญํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
    2. ๋ธŒ๋ผ์šฐ์ €์˜ ์ธ์ฆ ๊ธฐ๊ด€ ๋ฆฌ์ŠคํŠธ ์ค‘์— ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ ๊ธฐ๊ด€์ด ์—†๋‹ค๋ฉด, ์™ธ๋ถ€ ์ธํ„ฐ๋„ท์—์„œ ์ธ์ฆ ๊ธฐ๊ด€๊ณผ ๊ณต๊ฐœํ‚ค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ฐพ๋Š”๋‹ค.
  3. CA๋Š” ์ž์‹ ์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
  4. ๋ธŒ๋ผ์šฐ์ €๋Š” CA ๊ณต๊ฐœํ‚ค๋กœ SSL ์ธ์ฆ์„œ๋ฅผ ๋ณตํ˜ธํ™”ํ•œ๋‹ค. ๋ณตํ˜ธํ™”๊ฐ€ ๋œ๋‹ค๋ฉด ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ํ™•๋ณดํ•œ๋‹ค.

2. ํ˜‘์ƒ - SSL Handshake

์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์ž„์ด ์ธ์ฆ๋˜์—ˆ๋‹ค๋ฉด, ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋กœ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋Œ€์นญํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ฃผ๊ณ  ๋ฐ›์„์ง€ ํ˜‘์ƒ์ด ํ•„์š”ํ•˜๋‹ค. ์ด ๊ณผ์ •์€ ์ „์†ก ๊ณ„์ธต(Transport Layer)์ธ TCP ์—ฐ๊ฒฐ์ด ์ˆ˜๋ฆฝ๋œ ํ›„, SSL/TLS ํ”„๋กœํ† ์ฝœ์—์„œ SSL Handshake์„ ํ†ตํ•ด ๊ฒฐ์ •๋œ๋‹ค.

SSL Handshake์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ์•”ํ˜ธํ™” ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์นญํ‚ค๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์ด๋‹ค.

  1. Client Hello: ๊ฐ€๋Šฅํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชฉ๋ก์„ ์„œ๋ฒ„์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
  2. Server Hello: ์„œ๋ฒ„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชฉ๋ก ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•œ๋‹ค.
  3. Certificate: ์„œ๋ฒ„๊ฐ€ ์ž์‹ ์˜ SSL ์ธ์ฆ์„œ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.
    1. ์ดํ›„ ํด๋ผ์ด์–ธํŠธ๋Š” SSL ์ธ์ฆ์„œ๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ, ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ํš๋“ํ•œ๋‹ค.
  4. (Optional) Server Key Exchange: SSL ์ธ์ฆ์„œ์— ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ์„œ๋ฒ„๊ฐ€ ์ง์ ‘ ์ „๋‹ฌํ•œ๋‹ค.
    1. ํ‚ค ๊ตํ™˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ๋ฉด ์ธ์ฆ์„œ ์•ˆ์— ๊ณต๊ฐœํ‚ค๊ฐ€ ๋“ค์–ด์žˆ์ง€ ์•Š๋‹ค. ์ด ๊ฒฝ์šฐ ์„œ๋ฒ„์—์„œ ํ‚ค ๊ตํ™˜์— ํ•„์š”ํ•œ ๋‹ค๋ฅธ ๊ฐ’์„ ์„œ๋ฒ„์—์„œ ์ง์ ‘ ์ „๋‹ฌํ•œ๋‹ค.
    2. Diffie-Hellman(DH) ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ณต๊ฐœ๋œ ํŠน์ • ๊ฐ’์„ ํ†ตํ•ด ๋Œ€์นญํ‚ค๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ด ๊ฐ’์„ Server Key Exchange ๊ณผ์ •์—์„œ ์ „๋‹ฌํ•œ๋‹ค.
  5. Server Hello Done: ์„œ๋ฒ„์˜ ์ž‘์—…์ด ์ข…๋ฃŒ๋˜์—ˆ๋‹ค.
  6. Client Key Exchange: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋Œ€์นญํ‚ค(๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ์•”ํ˜ธํ™” ํ•  ํ‚ค)๋ฅผ ์ƒ์„ฑํ•˜์—ฌ, SSL ์ธ์ฆ์„œ์— ์žˆ๋˜ ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ „๋‹ฌํ•œ๋‹ค.
    1. ๊ณต๊ฐœํ‚ค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๊ฐ€ ๋Œ€์นญํ‚ค๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ • ๊ฐ’์„ ์ „๋‹ฌํ•œ๋‹ค.
  7. ChangeCipherSpec: ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๊ตํ™˜ํ•  ์ •๋ณด๋ฅผ ํŒจํ‚ท์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค.
    1. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ๋Œ€์นญํ‚ค๋ฅผ ์„œ๋ฒ„์˜ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™” ํ•ด ๋Œ€์นญํ‚ค๋ฅผ ์–ป๋Š”๋‹ค.
  8. Finished: SSL Handshake๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.

๊ฒฐ๋ก 

๋‘ ํŽธ์— ๋‚˜๋ˆ ์„œ HTTPS์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์–ด๋ณด์•˜๋Š”๋ฐ, ์•”ํ˜ธํ™”์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๊ณ  ๋‚˜์„œ ๋ณด๋‹ˆ ํ™•์‹คํžˆ ์ดํ•ด๊ฐ€ ๋” ์ž˜๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ด ํฌ์ŠคํŒ…๋ถ€ํ„ฐ ์ ‘ํ–ˆ๋‹ค๋ฉด ๊ผญ 1ํŽธ, ์•”ํ˜ธํ™”์— ๋Œ€ํ•˜์—ฌ๋ฅผ ์ฝ๊ณ  ๋‚˜์„œ ๋ณด๊ธฐ๋ฅผ ์ถ”์ฒœํ•œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์˜ค๋Š˜ ๋‹ค๋ฃฌ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์š”์•ฝ ์ •๋ฆฌ๋ฅผ ํ•˜๋ฉฐ ๋งˆ์น˜๋„๋ก ํ•˜๊ฒ ๋‹ค.

  • HTTPS๋Š” ์ „์†ก ๊ณ„์ธต(Transport Layer)๊ณผ ์‘์šฉ ๊ณ„์ธต(Application Layer) ์‚ฌ์ด์— ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” SSL/TLS ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ–ˆ๋‹ค.
  • HTTPS๋Š” ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹๊ณผ ๋Œ€์นญํ‚ค ๋ฐฉ์‹์„ ์ ์ ˆํžˆ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.
  • HTTPS๋Š” ํฌ๊ฒŒ ์ธ์ฆ๊ณผ ํ˜‘์ƒ์„ ๊ฑฐ์ณ ๋ณด์•ˆ์„ ์œ ์ง€ํ•œ๋‹ค.
    • ์ธ์ฆ์€ CA๋ผ๋Š” ์ธ์ฆ ๊ธฐ๊ด€์„ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ ์„œ๋ฒ„๊ฐ€ ์ง„์งœ ์„œ๋ฒ„์ธ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. CA์—์„œ๋Š” ์ง„์งœ ์„œ๋ฒ„์—๊ฒŒ ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ๋„ฃ์€ SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ด์ค€๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์•„ CA์—๊ฒŒ ์ธ์ฆ์„œ ๊ฒ€์ฆ์„ ์š”์ฒญํ•œ๋‹ค.
    • ํ˜‘์ƒ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์•”ํ˜ธํ™”ํ•  ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. SSL Handshake ๊ณผ์ •์„ ํ†ตํ•ด ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฒฐ์ •ํ•˜๊ณ , ์•”ํ˜ธํ™”์— ์“ฐ์ผ ๋Œ€์นญํ‚ค๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • SSL Handshake๋Š” Client Hello โ†’ Server Hello โ†’ Certificate โ†’ (Server Key Exchange) โ†’ Server Hello Done โ†’ Client Key Exchange โ†’ Server ChangeCipherSpec/Finished โ†’ Client ChangeCipherSpec/Finished ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.
    • ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋Œ€์นญํ‚ค ๊ตํ™˜์€ Client Key Exchange์—์„œ ์ผ์–ด๋‚œ๋‹ค.

โž• References


profile
make it mine, make it yours

0๊ฐœ์˜ ๋Œ“๊ธ€