ByteByteGo : SSL, TLS, HTTPS Explained μμμ 보며 μ 리ν κΈμ λλ€.
HTTPS κ°μ
TLS 1.2 Handshake λμ κ³Όμ μ€λͺ μ μμ λͺ κ°μ§ κ°λ μ μκ°ν©λλ€.
βΆ HTTPS : HTTP νλ‘ν μ½μ TLS/SSL λ‘ μνΈνν νλ‘ν μ½μ λλ€.
βΆ SSL/TLS : μνΈν νλ‘ν μ½λ‘, μΈν°λ·μ ν΅ν΄ μ μ‘λλ λ°μ΄ν°λ₯Ό 보νΈν©λλ€. SSL μ΄ μ΅μ΄μ μνΈν νλ‘ν μ½μ΄λ©°, 보μμ΄ λ ν₯μλκ³ , λ°μ ν κ²μ΄ TLS νλ‘ν μ½μ λλ€.
βΆ λμΉν€ μνΈν λ°©μ
μνΈν/볡νΈνμ κ°μ ν€λ₯Ό μ¬μ©νλ μλ°©ν₯ μνΈ λ°©μμ λλ€.
κ°μ ν€λ₯Ό μ¬μ©νκΈ° λλ¬Έμ 미리 μμ ν ν΅λ‘λ₯Ό ν΅ν΄ ν€κ° κ΅νλμ΄μΌ ν©λλ€.
κ°μ ν€λ₯Ό μ¬μ©νκΈ° λλ¬Έμ μνΈν μλκ° λΉ¨λΌμ λμ©λ λ°μ΄ν° μνΈ μ²λ¦¬μ μ¬μ©λ©λλ€.
κ°μ ν€λ₯Ό μ¬μ©νκΈ° λλ¬Έμ λΉκ΅μ μμ νμ§ λͺ»ν΄ μ μ μλͺ , μΈμ¦μ μ°μ΄μ§ λͺ»ν©λλ€.
βΆ λΉλμΉν€(곡κ°ν€) μνΈν λ°©μ
μνΈν/볡νΈνμ λ€λ₯Έ ν€λ₯Ό μ¬μ©νλ μλ°©ν₯ μνΈ λ°©μμ λλ€.
곡κ°ν€(λꡬλ κ°μ§ μ μλ ν€)λ‘ μνΈν ν κ²μ κ°μΈν€(λΉλ°ν€)λ‘ λ³΅νΈν ν μ μμΌλ©°, κ·Έ μμΈ κ°μΈν€λ‘ μνΈν ν κ²μ 곡κ°ν€λ‘ 볡νΈν ν μ μμ΅λλ€.
λ€λ₯Έ ν€λ₯Ό μ¬μ©νκΈ° λλ¬Έμ μνΈν μλκ° λμΉν€ μνΈν λ°©μλ³΄λ€ λ립λλ€.
βΆ μ μ μλͺ
λΉλμΉν€ μνΈν λ°©μμ μ¬μ©ν©λλ€.
μλͺ μλ κ°μΈ ν€λ₯Ό μ¬μ©νμ¬ μλͺ νλ©΄, μμ μλ 곡κ°ν€λ₯Ό μ¬μ©νμ¬ μλͺ μ νμΈν©λλ€.
TLS 1.2 Handshake λμ κ³Όμ
TLS handshake μ TCP Handshake, Certificate Check, Key Exchage, Data Transmission λ‘ μ΄ 4κ°μ κ³Όμ μΌλ‘ λλ μ μμ΅λλ€.
1. TCP Handshake
TCP Handshake λ μλ²μ ν΄λΌμ΄μΈνΈκ° μ λ’°μ± μλ μ°κ²°μ μ€μ νλ κ³Όμ μΌλ‘ 3-way Handshake λΌκ³ λΆλ¦ λλ€.
3-way Handshake λ SYN(λκΈ°ν), SYN + ACK(λκΈ°ν+μΉμΈ), ACK(μΉμΈ) μ μΈ λ¨κ³λ‘ ꡬλΆλλ©° λ€λ₯Έ κΈμμ μκ°νκ² μ΅λλ€.
2. Certificate Check
* μ¬μ§ 3μ μ°Έκ³ νμΈμ
2-1. Client Hello
ν΄λΌμ΄μΈνΈλ ν΄λΌμ΄μΈνΈκ° μ§μνλ TLS λ²μ κ³Ό μνΈν μκ³ λ¦¬μ¦ λͺ©λ‘λ€μ λ΄μμ μλ²μκ² Hello λ©μμ§λ₯Ό 보λ λλ€.
2-2. Server Hello
μλ²λ ν΄λΌμ΄μΈνΈ λ©μμ§μ TLSλ²μ κ³Ό μνΈν μκ³ λ¦¬μ¦ λͺ©λ‘λ€μ κΈ°λ°μΌλ‘ μ¬μ©ν TLSλ²μ κ³Ό μνΈν μκ³ λ¦¬μ¦μ μ νν΄μ ν΄λΌμ΄μΈνΈμκ² λ³΄λ λλ€.
2-3. Certificate
μλ²λ ν΄λΌμ΄μΈνΈμκ² μλ²μ 곡κ°ν€κ° λ΄κΈ΄ μΈμ¦μλ₯Ό 보λ λλ€.
2-4. Server Hello Done
μλ²λ Certificate Check κ° λλ¬λ€λ λ©μμ§λ₯Ό ν΄λΌμ΄μΈνΈμκ² λ³΄λ λλ€.
3. Key Exchange
Client Key Exchange ~ Finished μ 체
ν΄λΌμ΄μΈνΈλ λλ€ μΈμ ν€λ₯Ό νλ μμ±ν©λλ€.
κ·Έλ¦¬κ³ , μλ²μ 곡κ°ν€λ‘ ν΄λΉ λλ€ μΈμ ν€λ₯Ό μνΈνν©λλ€.
μνΈνν λλ€ μΈμ ν€λ₯Ό μλ²μκ² λ³΄λ΄κ³ , μλ²λ μ΄ λλ€ μΈμ ν€λ₯Ό κ°μΈν€λ‘ 볡νΈνν©λλ€.
μ¦, βλλ€ μΈμ ν€λ₯Ό μ£Όκ³ λ°κΈ° μν΄ μλ²μ ν΄λΌμ΄μΈνΈλ λΉλμΉν€ μνΈν λ°©μμ μ¬μ©ν©λλ€.
4. Data Transmission
λλμ΄ μ²μμ λ΄€λ μ¬μ§κ³Ό λμΌν μ¬μ§μ΄ λμμ΅λλ€.
μ΄μ μλ²μ ν΄λΌμ΄μΈνΈλ κ°μ μΈμ ν€λ₯Ό κ°μ§κ³ μμ΅λλ€.
μ΄μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ λ, ν΄λΌμ΄μΈνΈλ μΈμ ν€λ‘ λ°μ΄ν°λ₯Ό μνΈννκ³ μλ²λ μΈμ ν€λ‘ λ°μ΄ν°λ₯Ό 볡νΈνν©λλ€.
μ¦, βλ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ λ, μλ²μ ν΄λΌμ΄μΈνΈλ λμΉν€ μνΈν λ°©μμ μ¬μ©ν©λλ€.
κ²°λ‘
βββμ¦, μΈμ ν€(λμΉν€)λ₯Ό λ§λ€κΈ° μ κΉμ§ ν΄λΌμ΄μΈνΈμ μλ²λ λΉλμΉν€ μνΈν λ°©μμ μ¬μ©ν©λλ€.
μ΄λ κ² λ§λ κ³ μ ν μΈμ ν€(λμΉν€)λ‘ λμ λμΉν€ μνΈν λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘νκ² λ©λλ€. βββ
TLS 1.2 Handshake λ λμΉν€, λΉλμΉν€ μνΈν λ°©μμ μ¬μ©νλ©° μ΄λ£¨μ΄μ§λ©° HTTPS μ μ΄μ©ν μ μκ² λμμ΅λλ€.
νμ§λ§, μ¬μ§μμ μμ μλ―μ΄ HTTPS κ° μ΄λ£¨μ΄μ§κΈ° μν΄ μ λ§μ λ€νΈμν¬ μλ³΅μ΄ μΌμ΄λ©λλ€.
TLS 1.3 μμλ λ€νΈμν¬ μ볡 νμλ₯Ό μ€μ΄κΈ° μν΄ Handshake λ₯Ό μ΅μ ν νκ³ , λ κ°λ ₯ν μνΈν μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ μμ νκ² ν€λ₯Ό κ΅ννλ λ± TLS 1.2 λ³΄λ€ μ κ·Έλ μ΄λ λμλ€κ³ ν©λλ€.
TLS 1.3 κ³Ό TLS 1.2 μ μ°¨μ΄λ Cloudflare - TLS 1.3 μ μ¬μ©νλ μ΄μ λ? μμ μ°Ύμ λ³Ό μ μκ² μ΅λλ€.