2023. 11. 6. 18:00γCS/Network
π‘ μΉμ¬μ΄νΈμ μ¬μ©μ μ¬μ΄μ ν΅μ μ μνΈννλ 보μ νλ‘ν μ½ SSL/TLS λ κ°μΈ μ 보μ λ―Όκ°ν λ°μ΄ν°λ₯Ό μμ νκ² μ μ‘νκΈ° μν΄ μ¬μ©ν©λλ€.
SSL/TLS?
SSL(Secure Sockets Layer)μ μΉ ν΅μ μ 보μμ μν΄ μ¬μ©λλ νλ‘ν μ½λ‘, 1996λ μ SSL 3.0μ΄ λ°νλ μ΄ν μ λ°μ΄νΈλμ§ μμμ΅λλ€.
SSLμ μλ €μ§ μ¬λ¬ μ·¨μ½μ μ΄ μμΌλ©°, μ΄λ‘ μΈν΄ 보μ μ λ¬Έκ°λ€μ SSLμ μ¬μ©μ μ€λ¨νκ³ TLS(Transport Layer Security)λ‘ μ νν κ²μ κΆμ₯νκ³ μμ΅λλ€.
π SSLμ΄ μ·¨μ½ν 곡격
- POODLE (Padding Oracle On Downgraded Legacy Encryption) 곡격: SSL 3.0μ μ·¨μ½μ μ μ΄μ©ν 곡격μΌλ‘, μνΈνλ ν΅μ μ ν΄λ ν μ μμ΅λλ€.
- DROWN (Decrypting RSA with Obsolete and Weakened eNcryption) 곡격: SSLv2μ μ·¨μ½μ μ μ΄μ©ν 곡격μΌλ‘, TLS μνΈνλ₯Ό μ°ννμ¬ ν΅μ λ΄μ©μ ν΄λ ν μ μμ΅λλ€.
- BEAST (Browser Exploit Against SSL/TLS) 곡격: SSL/TLSμ μ·¨μ½μ μ μ΄μ©ν 곡격μΌλ‘, μνΈνλ μΏ ν€λ₯Ό νμ·¨ν μ μμ΅λλ€.
TLSλ SSLμ νμ λ²μ μΌλ‘, SSLμ μ·¨μ½μ μ κ°μ ν μ΅μ μνΈν νλ‘ν μ½μ λλ€.
TLSλ SSLκ³Ό μ μ¬ν λ°©μμΌλ‘ μλνμ§λ§, 보μμ΄ κ°νλ κ²μ΄ νΉμ§μ λλ€.
νμ¬ SSLμ μΈμ¦ λ° μ 곡νλ μ 체λ μ¬μ€μ TLS μνΈνλ₯Ό μ 곡νκ³ μμ΅λλ€.
SSLμ μ΅μ’ λ²μ μΈ 3.0κ³Ό TLSμ μ΅μ΄ λ²μ μΈ 1.0μ μ°¨μ΄λ ν¬μ§ μμ΅λλ€.
μ΄λ¦μ΄ λ°λ κ²μ SSLμ κ°λ°ν Netscapeκ° μ λ°μ΄νΈμ μ°Έμ¬νμ§ μκ² λμ΄ μμ κΆ λ³κ²½μ μν΄μ μλ€κ³ μλ €μ Έ μμ΅λλ€.
SSLμ λμλ°©μ
μ μ΄λ―Έμ§λ GPT μ κ·κΈ°λ₯ GPT + DALL·E 3 λ₯Ό μ¬μ©νμ¬ SSLμ λμλ°©μμ κ·Έλ €λ¬λΌ νμ¬ λ°©κΈ μ μν μ΄λ―Έμ§
- ν΄λΌμ΄μΈνΈ ν¬λ‘(Client Hello): ν΄λΌμ΄μΈνΈ(μ: μΉ λΈλΌμ°μ )λ μλ²μ μ°κ²°μ μλνλ©°, μ¬μ© κ°λ₯ν μνΈν λ°©μ(μνΈν μκ³ λ¦¬μ¦, μΈμ ν€ λ±) λͺ©λ‘μ μ μ‘ν©λλ€.
- μλ² ν¬λ‘(Server Hello): μλ²λ ν΄λΌμ΄μΈνΈμ λͺ©λ‘ μ€μμ μ νν μνΈν λ°©μμ ν΄λΌμ΄μΈνΈμκ² μλ €μ£Όκ³ , μμ μ SSL μΈμ¦μλ₯Ό μ μ‘ν©λλ€.
- μΈμ¦μ κ²μ¦(Certificate Verification): ν΄λΌμ΄μΈνΈλ μλ²μ μΈμ¦μλ₯Ό κ²μ¦ν©λλ€. μ΄λ μΈμ¦μκ° μ λ’°ν μ μλ μΈμ¦ κΈ°κ΄(Certificate Authority, CA)μ μν΄ λ°κΈλμλμ§, μ ν¨νμ§, κ·Έλ¦¬κ³ μλ²μ λλ©μΈ μ΄λ¦κ³Ό μΌμΉνλμ§ νμΈνλ κ³Όμ μ λλ€.
- ν€ κ΅ν(Key Exchange): μΈμ¦μκ° μ ν¨νλ€λ©΄, ν΄λΌμ΄μΈνΈλ μλ²μ κ³΅κ° ν€λ₯Ό μ¬μ©νμ¬ λλ€ νκ² μμ±ν μΈμ ν€(λμΉ ν€)λ₯Ό μνΈννκ³ μλ²μκ² μ μ‘ν©λλ€. μλ²λ μμ μ κ°μΈ ν€λ‘ μ΄λ₯Ό 볡νΈννμ¬ μΈμ ν€λ₯Ό μ»μ΅λλ€.
- μΈμ μμ(Session Initiation): μλ²λ μΈμ ν€λ₯Ό μ¬μ©νμ¬ μνΈνλ λ©μμ§λ₯Ό ν΄λΌμ΄μΈνΈμκ² μ μ‘νμ¬ μΈμ ν€κ° μ±κ³΅μ μΌλ‘ κ΅νλμμμ νμΈν©λλ€.
- μνΈνλ μΈμ (Encrypted Session): ν΄λΌμ΄μΈνΈμ μλ²λ μ΄μ μΈμ ν€λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μνΈννκ³ λ³΅νΈννλ©°, μ΄λ₯Ό ν΅ν΄ μμ ν ν΅μ μ±λμ μ μ§ν©λλ€.
SSL/TLS μΈμ¦μ μ λ£μ 무λ£μ μ°¨μ΄?
- λ³΄μ¦ κ³Ό 보ν
- μ λ£μ κ²½μ° λ³΄μ¦κ³Ό 보νμ μ 곡ν©λλ€. μΈμ¦μ λ°κΈμ(Certificate Authority, CA)μ μ€μλ‘ μΈν μμ€μ λν΄ μΌμ κΈμ‘μ 보μλ°μ μ μμμ μλ―Έν©λλ€.
- μ ν¨ κΈ°κ°
- μ λ£μ κ²½μ° 1~2λ μ μ ν¨κΈ°κ°μ κ°μ§κ³ 무λ£μ κ²½μ° 90μΌμ κ°μ§κ³ μμ΄ μ’ λ μ¦μ κ°±μ μ΄ νμν¨
- μΈμ¦μ μ ν
- μ λ£ μΈμ¦μλ λ€μν μ νμ μ 곡ν©λλ€. μλ₯Ό λ€μ΄, νμ₯ κ²μ¦(EV) μΈμ¦μλ μ‘°μ§μ μ μμ μ² μ ν κ²μ¦νλ©°, λΈλΌμ°μ μ£Όμμ°½μ μ‘°μ§μ μ΄λ¦μ νμν©λλ€. λ¬΄λ£ μΈμ¦μλ μ£Όλ‘ λλ©μΈ κ²μ¦(DV) μΈμ¦μλ§μ μ 곡νλ©°, μ‘°μ§μ μ μμ κ²μ¦νμ§ μμ΅λλ€.
- μ΄ μΈμ¦μλ μΉμ¬μ΄νΈκ° μν νμ¬λ μ‘°μ§μ΄ μ€μ λ‘ μ‘΄μ¬νκ³ , λ²μ μΌλ‘ μΈμ λ°λ μ 체μΈμ§λ₯Ό μ² μ ν κ²μ¦ν©λλ€.
- κ²μ¦ κ³Όμ μ κ½€ κΉλ€λ‘κ³ , μ¬λ¬ λ²μ λ¬Έμλ₯Ό κ²ν ν΄μΌ ν©λλ€.
- κ²μ¦μ΄ μλ£λλ©΄, μΉ λΈλΌμ°μ μ μ£Όμμ°½μ νμ¬λ μ‘°μ§μ μ΄λ¦μ΄ λ ΉμμΌλ‘ νμλμ΄, λ°©λ¬Έμλ€μκ² ν΄λΉ μ¬μ΄νΈκ° λ§€μ° μμ νλ€λ κ²μ μλ €μ€λλ€.
- μλ₯Ό λ€μ΄, μνμ΄λ λν μ¨λΌμΈ μΌνλͺ°μμ μ£Όλ‘ μ¬μ©ν©λλ€.
- μ΄ μΈμ¦μλ μΉμ¬μ΄νΈμ λλ©μΈ μ΄λ¦(μ: [www.example.com)μ΄](http://www.example.γ―%29-ub50a/) μ μ²μμ μν΄ ν΅μ λκ³ κ΄λ¦¬λκ³ μμλ§μ νμΈν©λλ€.
- κ²μ¦ κ³Όμ μ κ°λ¨νλ©°, μ΄λ©μΌμ΄λ λλ©μΈ λ μ½λλ₯Ό ν΅ν΄ μ μνκ² μ΄λ£¨μ΄μ§λλ€.
- μΉ λΈλΌμ°μ μ μ£Όμμ°½μλ νΉλ³ν νμκ° μμ§λ§, 'https://'μ μλ¬Όμ μμ΄μ½μ΄ 보μ¬μ λ°©λ¬Έμλ€μκ² μνΈνλ μ°κ²°μ΄λΌλ κ²μ μλ €μ€λλ€.
- μλ₯Ό λ€μ΄, κ°μΈ λΈλ‘κ·Έλ μκ·λͺ¨ μΉμ¬μ΄νΈμμ μ£Όλ‘ μ¬μ©ν©λλ€.
κ·Έλ¬λ©΄ 무λ£μ μ λ£λ₯Ό μ ννλ κΈ°μ€μ΄ λκ°μμκΉ?
κΈ°μ μ μ λ’°λ
λ―Όκ°ν κ°μΈμ 보 ( μΉ΄λλ²νΈ, μΉ΄λλΉλ°λ²νΈ, μ¬κΆ, μ£Όλ―Όλ±λ‘λ²νΈ … )
κ·μ μ€μ
μ΅κ·Ό λν₯
TLSλ νμ¬ 1.0, 1.1, 1.2, 1.3(μ΅μ )μΌλ‘ μ΄ 4 κ° λ²μ μ΄ μ‘΄μ¬
μ΄ μ€ κ΅¬λ²μ μΈ 1.0 , 1.1 λ²μ μ SSL 3.0κ³Ό λκ°μ΄ μ·¨μ½ν 곡격(POODLEκ³Ό BEASTμ κ°μ μ¬λ¬ 곡격)μ΄ μμ΅λλ€.
μΉ λΈλΌμ°μ μ 곡μ 체λ₯Ό μμμΌλ‘ λ§μ μΈν°λ· μλΉμ€ μ 곡 μ 체λ€μ΄ ꡬλ²μ μΈ 1.0 1.1μ μ§μμ μ€λ¨νκ³ , μ΅μ λ²μ μ TLSλ₯Ό μ¬μ©νλλ‘ κΆμ₯νκ³ μμ΅λλ€.
Mixed contents Error
Mixed contents Errorλ μΉνμ΄μ§μ SSLλ‘ μνΈνλ λ΄μ©κ³Ό μνΈνλμ§ μμ λ΄μ©μ΄ νΌν©λμ΄ μμ λ λ°μν©λλ€.
μμ
π‘ Front Server = HTTPS WAS = HTTP Front Server → WAS μμ²μ 보λ
μ μμμμλ Front Serverμμ Request ν μ 보λ SSLλ‘ μνΈνλμ΄μλ μν, WASμ Response μ 보λ μνΈνκ° λμ΄μμ§ μμ μνλ‘ Mixed contents Error κ° λ°μν©λλ€.
β οΈMixed contents Errorλ₯Ό ν΄κ²°νλ €λ©΄?β οΈ
κ·Όλ³Έμ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ Front Serverμ WAS λͺ¨λ SSL/TLSλ₯Ό λ°κΈλ°μμ μλ²μ μ€μ ν΄μ€μΌ ν©λλ€.
κ°λ¨ν ν΄κ²° λ°©λ²
- μμ²μ΄ HTTPμ΄κ³ WASκ° HTTPS μΌ λ λ°μν κ²½μ° How to fix "insecure content was loaded over HTTPS, but requested an insecure resource"
- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> νκ·Έλ₯Ό HTML νμΌμ **<head>**μ μΆκ°νλ©΄, λΈλΌμ°μ λ νμ΄μ§ λ΄μ λͺ¨λ HTTP 리μμ€ μμ²μ HTTPSλ‘ μλ μ κ·Έλ μ΄λνμ¬ μμ²νκ² λ©λλ€
- WAS κ° HTTPμ΄κ³ μμ²μ΄ HTTPS μΌ λ
- μλ²μμ SSL μ€μ ν΄μΌ ν©λλ€.(κ·Όλ³Έμ μΌλ‘ ν΄κ²°νμΈμ π)
- μΈλΆ 리μμ€λ₯Ό μ¬μ©ν λμλ SSLμ μ¬μ©νλλ‘ νκ³ , μνΈνλ μ°κ²°μ μ 곡νλ νΈμ€ν
μλΉμ€λ CDN(Content Delivery Network)λ₯Ό μ¬μ©ν©λλ€.
- CDN?
- CDN(Content Delivery Network)μ μ μΈκ³μ λΆμ°λ μλ² λ€νΈμν¬λ‘, μΉμ¬μ΄νΈμ μ½ν μΈ λ₯Ό μ¬μ©μμκ² λΉ λ₯΄κ² μ λ¬νλ μλΉμ€μ λλ€. μ¬μ©μκ° μΉμ¬μ΄νΈμ μ μνλ©΄, CDNμ μ¬μ©μμκ² κ°μ₯ κ°κΉμ΄ μλ²μμ μ½ν μΈ λ₯Ό μ 곡νμ¬, λ‘λ© μκ°μ μ€μ΄κ³ μ¬μ©μ κ²½νμ ν₯μν©λλ€.