νΈλμ °μ΄ν¬ μ΅μ ν: TLS 1.3μ κ°μ μ
νΈλμ °μ΄ν¬ μ΅μ ν: TLS 1.3μ κ°μ μ
TLS 1.3 μ νΈλμ °μ΄ν¬ μλλ₯Ό λν κ°μ νμ¬ κΈ°μ‘΄ TLS 1.2λ³΄λ€ λ λΉ λ₯΄κ² μ°κ²°μ μ립ν©λλ€. μ΄μ μλ λ λ²μ μ볡(Round Trip) μ΄ νμνμ§λ§, TLS 1.3μμλ λ¨μΌ μ볡 μΌλ‘ μ°κ²°μ΄ μλ£λ©λλ€. μ΄λ‘ μΈν΄ μΉνμ΄μ§ λ‘λ© μλκ° κ°μ λκ³ , μ¬μ©μ κ²½νμ΄ ν₯μλ©λλ€.
TLS 1.3κ³Ό TLS 1.2μ μ°¨μ΄μ λΉκ΅
νλͺ© | TLS 1.2 | TLS 1.3 |
---|---|---|
νΈλμ °μ΄ν¬ μκ° | λ λ²μ μ볡(RTT) νμ | ν λ²μ μ볡(RTT)μΌλ‘ μλ£ |
μ§μ μκ³ λ¦¬μ¦ | λ€μν(μΌλΆ μ·¨μ½) μνΈν μκ³ λ¦¬μ¦ | μμ ν μκ³ λ¦¬μ¦λ§ μ¬μ© |
ν€ κ΅ν λ°©μ | RSA λ° DH ν€ κ΅ν | ECDHE(λ λΉ λ₯΄κ³ μμ ν λ°©μ) μ¬μ© |
νλ‘ν μ½ μ§μ | λ€μ΄κ·Έλ μ΄λ 곡격 κ°λ₯μ± μμ | λ€μ΄κ·Έλ μ΄λ 곡격 μ°¨λ¨ |
SSL νΈλμ °μ΄ν¬μ 보μ μ΄μ
νΈλμ °μ΄ν¬ κ³Όμ μμ λ°μν μ μλ 보μ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
1. μ€κ°μ 곡격(MITM)
곡격μκ° νΈλμ
°μ΄ν¬λ₯Ό κ°λ‘μ± ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μ ν΅μ μ μ‘°μνλ 곡격μ
λλ€.
ν΄κ²° λ°©μ: SSL/TLSλ₯Ό μ¬μ©ν λ μΈμ¦μ ν(Pinning) κ³Ό HSTS(HTTP Strict Transport Security) λ₯Ό μ€μ ν©λλ€.
μμ : Nginxμμ HSTS μ€μ
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
νΈλμ °μ΄ν¬ μ΅μ ν: TLS 1.3μ κ°μ μ
TLS 1.3 μ νΈλμ °μ΄ν¬ μλλ₯Ό λν κ°μ νμ¬ κΈ°μ‘΄ TLS 1.2λ³΄λ€ λ λΉ λ₯΄κ² μ°κ²°μ μ립ν©λλ€. μ΄μ μλ λ λ²μ μ볡(Round Trip) μ΄ νμνμ§λ§, TLS 1.3μμλ λ¨μΌ μ볡 μΌλ‘ μ°κ²°μ΄ μλ£λ©λλ€. μ΄λ‘ μΈν΄ μΉνμ΄μ§ λ‘λ© μλκ° κ°μ λκ³ , μ¬μ©μ κ²½νμ΄ ν₯μλ©λλ€.
TLS 1.3κ³Ό TLS 1.2μ μ°¨μ΄μ λΉκ΅
νλͺ© | TLS 1.2 | TLS 1.3 |
---|---|---|
νΈλμ °μ΄ν¬ μκ° | λ λ²μ μ볡(RTT) νμ | ν λ²μ μ볡(RTT)μΌλ‘ μλ£ |
μ§μ μκ³ λ¦¬μ¦ | λ€μν(μΌλΆ μ·¨μ½) μνΈν μκ³ λ¦¬μ¦ | μμ ν μκ³ λ¦¬μ¦λ§ μ¬μ© |
ν€ κ΅ν λ°©μ | RSA λ° DH ν€ κ΅ν | ECDHE(λ λΉ λ₯΄κ³ μμ ν λ°©μ) μ¬μ© |
νλ‘ν μ½ μ§μ | λ€μ΄κ·Έλ μ΄λ 곡격 κ°λ₯μ± μμ | λ€μ΄κ·Έλ μ΄λ 곡격 μ°¨λ¨ |
SSL νΈλμ °μ΄ν¬μ 보μ μ΄μ
νΈλμ °μ΄ν¬ κ³Όμ μμ λ°μν μ μλ 보μ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
1. μ€κ°μ 곡격(MITM)
곡격μκ° νΈλμ
°μ΄ν¬λ₯Ό κ°λ‘μ± ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μ ν΅μ μ μ‘°μνλ 곡격μ
λλ€.
ν΄κ²° λ°©μ: SSL/TLSλ₯Ό μ¬μ©ν λ μΈμ¦μ ν(Pinning) κ³Ό HSTS(HTTP Strict Transport Security) λ₯Ό μ€μ ν©λλ€.
μμ : Nginxμμ HSTS μ€μ
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
2. μΈμ¦μ μ²΄μΈ λ¬Έμ
μ€κ° μΈμ¦μκ° λλ½λ κ²½μ° νΈλμ
°μ΄ν¬κ° μ€ν¨ν μ μμ΅λλ€.
ν΄κ²° λ°©μ: SSL Labs μ κ°μ λꡬλ₯Ό μ¬μ©ν΄ 체μΈμ μ κ²νκ³ , λλ½λ μ€κ° μΈμ¦μλ₯Ό μΆκ°ν©λλ€.
3. μ·¨μ½ν μνΈν μκ³ λ¦¬μ¦ μ¬μ©
ꡬν TLS λ²μ μμλ RC4, MD5 μ κ°μ μ·¨μ½ν μκ³ λ¦¬μ¦μ΄ μ¬μ©λ μ μμ΅λλ€.
ν΄κ²° λ°©μ: TLS 1.2 μ΄μ μ μ¬μ©νκ³ κ°λ ₯ν μκ³ λ¦¬μ¦(AES-256, ChaCha20) μ μ μ©ν©λλ€.
SSL/TLS μ±λ₯ μ΅μ ν ν
SSL νΈλμ °μ΄ν¬λ₯Ό μ΅μ ννλ©΄ μΉμ¬μ΄νΈ μ±λ₯ μ΄ κ°μ λκ³ μ¬μ©μ κ²½ν μ΄ ν₯μλ©λλ€. λ€μμ μ±λ₯μ μ΅μ ννκΈ° μν νμ λλ€.
- TLS 1.3 μ¬μ©: μ΅μ νλ‘ν μ½μ μ¬μ©ν΄ μ°κ²° μκ°μ λ¨μΆν©λλ€.
- μΈμ μ¬μ¬μ©(Session Resumption): κΈ°μ‘΄ μΈμ μ 보λ₯Ό μ¬μ¬μ©ν΄ νΈλμ °μ΄ν¬λ₯Ό λ¨μΆν©λλ€.
- OCSP Stapling νμ±ν: μΈμ¦μ μνλ₯Ό λΉ λ₯΄κ² νμΈνμ¬ νΈλμ °μ΄ν¬ μλλ₯Ό λμ λλ€.
μμ : Nginxμμ OCSP Stapling νμ±ν
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8;
κ²°λ‘ : SSL νΈλμ °μ΄ν¬μ μ΄ν΄μ μ μ©
SSL νΈλμ °μ΄ν¬λ μμ ν μ°κ²°μ ν΅μ¬ κ³Όμ μΌλ‘, λμΉν€μ λΉλμΉν€λ₯Ό νμ©ν΄ μ λ’°ν μ μλ ν΅μ μ 보μ₯ν©λλ€. TLS 1.3κ³Ό κ°μ μ΅μ νλ‘ν μ½μ μ¬μ©νλ©΄ 보μκ³Ό μ±λ₯ λͺ¨λλ₯Ό κ°μ ν μ μμ΅λλ€. λν, μ€κ°μ 곡격 λ°©μ§μ μ±λ₯ μ΅μ ν λ₯Ό μν΄ νΈλμ °μ΄ν¬ μ€μ μ κΌΌκΌΌν κ΄λ¦¬ν΄μΌ ν©λλ€.
FAQ
Q1. νΈλμ
°μ΄ν¬κ° μ€λ 걸리λ μ΄μ λ 무μμΈκ°μ?
A1. νΈλμ
°μ΄ν¬ κ³Όμ μμ μνΈν ν€ κ΅ν κ³Ό μΈμ¦μ κ²μ¦μ΄ μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ μκ°μ΄ μμλ©λλ€. TLS 1.3μ μ¬μ©νλ©΄ μλκ° κ°μ λ©λλ€.
Q2. TLS 1.2λ κ³μ μ¬μ©ν΄λ μμ νκ°μ?
A2. λ€ , TLS 1.2λ μ¬μ ν μμ νμ§λ§, TLS 1.3μΌλ‘ μ
κ·Έλ μ΄λνλ©΄ λ λμ μ±λ₯κ³Ό 보μ μ ν보ν μ μμ΅λλ€.
Q3. νΈλμ
°μ΄ν¬ μ€ μΈμ¦μ μ€λ₯κ° λ°μνλ©΄ μ΄λ»κ² ν΄μΌ νλμ?
A3. μλ²μ μΈμ¦μ κ²½λ‘ λ₯Ό νμΈνκ³ , μ€κ° μΈμ¦μκ° λλ½λμ§ μμλμ§ μ κ²νμΈμ.
Q4. ν΄λΌμ΄μΈνΈμμ νΈλμ
°μ΄ν¬ λ‘κ·Έλ₯Ό μ΄λ»κ² νμΈνλμ?
A4. OpenSSL μ΄λ λΈλΌμ°μ κ°λ°μ λꡬ λ₯Ό μ¬μ©ν΄ SSL/TLS λ‘κ·Έλ₯Ό νμΈν μ μμ΅λλ€.
Q5. SSL Pinningμ 무μμΈκ°μ?
A5. SSL Pinningμ νΉμ μΈμ¦μλ₯Ό κ³ μ ν΄ μ€κ°μ 곡격μ λ°©μ§νλ κΈ°μ μ
λλ€. μ£Όλ‘ λͺ¨λ°μΌ μ ν리μΌμ΄μ
μμ μ¬μ©λ©λλ€.
λκΈ