HTTPS and SSL
ν·κ°λ¦¬λ κ°λ λ€μ μ 리ν΄μ
Reference: μνμ½λ© κ°μ’, minix.tstory.com, Bill Buchanan κ΅μλ μΉμ¬μ΄νΈ
HTTPS vs HTTP
HTTP λ?
Hypertext Transfrer Protocolμ μ½μλ‘, HypertextμΈ HTMLμ μ μ‘νκΈ° μν ν΅μ κ·μ½μ μλ―Έ
HTTPS λ?
HTTPS μ λ§μ§λ§
S
λ Over Secure Socket Layer μ μ½μλ‘ SecureλΌλ λ§μμ μ μ μλ―μ΄ λ³΄μμ΄ κ°νλ HTTP λΌλ κ²μ μ§μν μ μλ€HTTP λ μνΈνλμ§ μμ λ°©λ²μΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘νκΈ° λλ¬Έμ Serverμ clientκ° μ£Όκ³ λ°λ λ©μμ§λ₯Ό κ°μ²νλ κ²μ΄ λ§€μ° μ½λ€
μμ νμ§ μλ€!
ex) λ‘κ·ΈμΈμ μν΄ Serverλ‘ λΉλ°λ²νΈλ₯Ό μ μ‘νκ±°λ μ€μν κΈ°λ° λ¬Έμλ₯Ό μ΄λνλ κ³Όμ μμ μ μμ μΈ κ°μ²μ΄λ λ°μ΄ν°μ λ³μ‘°λ±μ΄ μΌμ΄λ μ μλ€λ κ²!
κ·Έλμ μ΄λ₯Ό 보μν κ²μ΄ HTTPS λ€!
HTTPS μ SSL
HTTPS μ SSLμ κ°μ μλ―Έλ‘ μ΄ν΄νκ³ μλ κ²½μ°κ° λ§λ€ (κ³Όκ±°μ λ...)
μ΄κ²μ λ§μΉ μΈν°λ·κ³Ό Webμ κ°μ μλ―Έλ‘ μ΄ν΄νλ κ²κ³Ό κ°λ€!
Why?
Webμ΄ μΈν°λ· μμμ λμκ°λ μλΉμ€ μ€ νλμΈ κ² μ²λΌ
HTTPS λ SSL Protocol μμμ λμκ°λ Protocolμ΄λ€!
HTTPκ° SSL μμμ λμνλ©΄ HTTPSκ° λλ κ²μ΄λ€!
SSL κ³Ό TLS
μ΄ λμ μ¬μ€ κ°μλ§μ΄λ€!
Netscapeμμ SSLμ΄ λ°λͺ λμκ³ , μ΄κ²μ΄ μ μ°¨ νλκ² μ¬μ©λλ€κ° νμ€ν 기ꡬμΈ
IETF
μ κ΄λ¦¬λ‘ λ³κ²½λλ©΄μ TLSλΌλ μ΄λ¦μΌλ‘ λ°λμλ€TLS 1.0 μ SSL 3.0μ κ³μΉνλ€
κ·Έλμ μ μ λͺ μΉμ TLSμ΄λ€
but, TLSλΌλ μ΄λ¦λ³΄λ€ SSLμ΄λΌλ μ΄λ¦μ΄ ν¨μ¬ λ§μ΄ μ¬μ©λλ€!
SSL λμ§νΈ μΈμ¦μ
SSL μΈμ¦μλ?
Clientμ Serverμ ν΅μ μ μ 3μκ° λ³΄μ¦ν΄μ£Όλ μ μνλ λ¬Έμ
Client κ° Serverμ μ μν μ§ν Serverλ Clientμκ² SSL μΈμ¦μ μ 보λ₯Ό μ λ¬νλ€
Clientλ μ΄ μΈμ¦μ μ λ³΄κ° μ λ’°ν μ μλ κ²μΈμ§λ₯Ό κ²μ¦ ν νμ λ€μ μ μ°¨λ₯Ό μννκ² λλ€
SSL λμ§νΈ μΈμ¦μλ₯Ό μ΄μ©νμ λμ μ΄μ
ν΅μ λ΄μ©μ΄ 곡격μμκ² λ ΈμΆλλ κ²μ λ§μ μ μλ€
κ·Έλ¬κΈ° μν΄μλ μνΈνκ° νμνλ€!
Clientκ° μ μνλ €λ server κ° μ λ’° ν μ μλ μλ²μΈμ§ νλ¨ν μ μλ°
ν΅μ λ΄μ©μ μ μμ μΈ λ³κ²½μ λ°©μ§ν μ μλ€
SSLμμ μ¬μ©νλ μνΈνμ μ’
λ₯
μνΈνλ?
μ 보λ₯Ό μ격μ§μ μ λ¬ν λ μ€κ°μμ λκ΅°κ°κ° μ 보λ₯Ό κ°λ‘μ±λ©΄ 보μμ΄ μνλ°λλ€
μ΄ λ λκ΅°κ°κ° κ°λ‘μ±λλΌλ μ 보λ₯Ό ν΄μν μ μκ² νκ³ , λͺ©μ μ§μ μλ μμ μλ ν΄μν μ μλλ‘ νλ κ²μ΄ μνΈνμ΄λ€!
λκ΅°κ°μκ² μ μ‘νλ κ²μ΄ μλλΌ μκΈ° νΌμμ 보λ μ 보λΌλ μκΈ°κ° μλ λ€λ₯Έ μ¬λμ΄ κ·Έκ²μ μ΄ν΄ν μ μκ³ , μμ λ§μ΄ κ·Έκ²μ μ΄ν΄ν μ μκ² νλκ²λ μνΈνμ΄λ€!
볡νΈνλ?
μνΈνλ μ 보λ₯Ό μνΈν λκΈ° μ΄μ μνλ‘ λ리λ κ²!
Key λ?
μνΈν & 볡νΈνμ κΈ°μ€μ΄ λλ λ°μ΄ν°
Keyλ₯Ό κ°μ§κ³ μμ΄μΌμ§λ§ μ 보λ₯Ό μνΈν, 볡νΈν ν μ μλ€
λμΉν€ λ°©μ (Symmetric-key algorithm)
λμΌν ν€λ‘
μνΈν
μ볡νΈν
λ₯Ό κ°μ΄ ν μ μλ λ°©μμ μνΈν κΈ°λ²μνΈν
λ₯Ό νλ μͺ½κ³Όλ³΅νΈν
λ₯Ό νλ μͺ½μ΄ λμΌν Keyλ₯Ό κ°μ§κ³ μλ€!
μ€μ΅) λμΉν€λ‘ μνΈν ν΄λ³΄κΈ°
μ€μ΅μ μ¬μ©ν txt νμΌ μμ±
λμΉν€λ‘ μνΈν νκΈ°
λͺ λ Ήμ΄ μ€λͺ
enc -e -des3
des3 λ°©μμΌλ‘ μνΈν νκΈ°
-in plaintext.txt -out ciphertext.bin
plaintext.txt νμΌμ μνΈν ν κ²°κ³Όλ₯Ό ciphertext.bin νμΌμ μ μ₯νκΈ°
μνΈν λ νμΌ νμΈ
λμΉν€λ‘ 볡νΈν νκΈ°
λͺ λ μ΄ μ€λͺ
enc -d
μμ μ΅μ μΌλ‘ ciphertext.bin νμΌμ plaintext2.txt νμΌλ‘ 볡νΈν νκΈ°
볡νΈν κ²°κ³Ό νμΈ
곡κ°ν€λ§ μ λ ₯νλ©΄ κ·Έλλ‘ λ³΅νΈνκ° κ°λ₯νλ€!
μ΄κ²μ΄ λμΉν€μ λ¬Έμ
곡κ°ν€κ° λ ΈμΆλλ©΄ 보μ μνμ λ°λλ€
λμΉν€ λ°©μμ λ¬Έμ μ
μνΈλ₯Ό μ£Όκ³ λ°λ μ¬λλ€ μ¬μ΄μ λμΉν€λ₯Ό μ λ¬νλ κ²μ΄ μ΄λ ΅λ€
λμΉν€κ° μ μΆλλ©΄ ν€λ₯Ό νλν 곡격μλ μνΈμ λ΄μ©μ 볡νΈν ν μ μκΈ° λλ¬Έμ μνΈκ° 무μ©μ§λ¬Όμ΄ λλ€...!
μ΄λ¬ν λ¬Έμ λ₯Ό "key distribution problem"μ΄λΌκ³ νλ€.
곡κ°ν€/λΉλμΉν€ λ°©μ (Public-key/asymmetric cryptography)
λμΉν€κ° κ°μ§κ³ μλ "key distribution problem"μ κ°μ νκΈ° μν΄ λ±μ₯ν μνΈν λ°©μ
λμΉν€μλ λ€λ₯΄κ² Keyκ° λ κ° μλ€
A
keyλ‘ μνΈνλ₯Ό νλ©΄B
keyλ‘ λ³΅νΈν ν μ μκ³ ,B
keyλ‘ μνΈννλ©΄A
keyλ‘ λ³΅νΈν ν μ μλ λ°©μ
λ κ°μ ν€ μ€ νλλ₯Ό **λΉκ³΅κ° ν€ (private key, κ°μΈν€, λΉλ°ν€)**λ‘ νκ³ ,
λλ¨Έμ§λ₯Ό **곡κ°ν€ (public key)**λ‘ μ§μ νλ€!
곡κ°ν€ λ°©μ μμ
λΉκ³΅κ°ν€λ μμ λ§μ΄ κ°μ§κ³ μκ³ ,
곡κ°ν€λ₯Ό νμΈμκ² μ 곡νλ€
곡κ°ν€λ₯Ό μ 곡 λ°μ νμΈμ 곡κ°ν€λ₯Ό μ΄μ©ν΄μ μ 보λ₯Ό μνΈννλ€
μνΈνν μ 보λ₯Ό λΉκ³΅κ°ν€λ₯Ό κ°μ§κ³ μλ μ¬λμκ² μ μ‘νλ€
λΉκ³΅κ°ν€μ μμ μλ
λΉκ³΅κ°ν€
λ₯Ό μ΄μ©ν΄μ μνΈνλ μ 보λ₯Ό 볡νΈννλ€μ΄ κ³Όμ μμ 곡κ°ν€κ° μ μΆλλ€κ³ ν΄λ λΉκ³΅κ°ν€λ₯Ό λͺ¨λ₯΄λ©΄ μ 보λ₯Ό 볡νΈν ν μ μκΈ° λλ¬Έμ μμ νλ€!
why?
곡κ°ν€λ‘λ μνΈνλ ν μ μμ§λ§ 볡νΈνλ ν μ μκΈ° λλ¬Έ!
곡κ°ν€ λ°©μμ μμ©
λΉκ³΅κ°ν€μ μμ μλ
λΉκ³΅κ°ν€
λ₯Ό μ΄μ©ν΄μ μ 보λ₯Ό μνΈν ν νμ곡κ°ν€
μ ν¨κ» μνΈνλ μ 보λ₯Ό μ μ‘νλ€μ 보 +
곡κ°ν€
λ₯Ό νλν μ¬λμ 곡κ°ν€λ₯Ό μ΄μ©ν΄μ μνΈνλ μ 보λ₯Ό 볡νΈννλ€μ΄ κ³Όμ μμ
곡κ°ν€
κ° μ μΆλλ€λ©΄ 곡격μμ μν΄ λ°μ΄ν°κ° 볡νΈν λ μνμ΄ μλ€but, μ΄λ° μνμλ λΆκ΅¬νκ³ λΉκ³΅κ°ν€λ₯Ό μ΄μ©ν΄μ μνΈνλ₯Ό νλ μ΄μ λ μ΄κ²μ΄ λ°μ΄ν°λ₯Ό 보νΈνλ λͺ©μ μ΄ μλκΈ° λλ¬Έμ΄λ€!
μνΈνλ λ°μ΄ν°λ₯Ό
곡κ°ν€
λ₯Ό κ°μ§κ³ 볡νΈν ν μ μλ€λ κ²μ κ·Έ λ°μ΄ν°κ° 곡κ°ν€μ μμ μ΄λ£¨λλΉκ³΅κ°ν€
μ μν΄ μνΈν λμλ€λ κ²μ μλ―Ένλ€!μ¦,
곡κ°ν€
κ° λ°μ΄ν°λ₯Ό μ 곡ν μ¬λμ μ μμ 보μ₯ν΄μ£Όκ² λλ κ²μ΄λ€!Why?
곡κ°ν€
λ₯Ό μ΄μ©νμ¬ λ³΅νΈνμ μ±κ³΅νλ€λ κ²μλΉλ°ν€
λ₯Ό κ°μ§κ³ μλ μ¬λμ΄ μ μ‘ν μ 보λΌλ κ²μ 보μ¦νλ κ²μ΄κΈ° λλ¬Έ!μ΄κ²μ΄ λ°λ‘ μΈμ¦μμ μ리μ΄λ€!
μ΄λ¬ν κ²μ μ μ μλͺ μ΄λΌκ³ λΆλ₯Έλ€
μ€μ΅) RSA
λ°©μμ 곡κ°ν€ μ¬μ©ν΄λ³΄κΈ°
RSA
λ°©μμ 곡κ°ν€ μ¬μ©ν΄λ³΄κΈ°
private.pem
μ΄λΌλ μ΄λ¦μ key μμ±
λͺ λ Ήμ΄ μ€λͺ
openssl
opensslλ‘
genrsa
RSA λ°©μμΌλ‘ λ private keyλ₯Ό μμ±νλΌ
1024
μνΈμ 볡μ‘λλ₯Ό μλ―Έ
μ«μκ° μ»€μ§μλ‘ μμ ν΄μ§μ§λ§ λ λ§μ μ»΄ν¨ν νμλ₯Ό νμλ‘ νλ€!
μμ±λ private key νμΈ
μμ±ν λΉκ³΅κ°ν€μ λν 곡κ°ν€ μμ±
λͺ λ Ήμ΄ μ€λͺ
-in private.pem
private.pem μ΄λΌλ νμΌμ κ°μ Έμμ
-out public.pem
public.pem μ΄λΌλ νμΌμ λ§λ€μ΄λΌ
κ²°κ³Ό μ€λͺ
writing RSA key
RSA λ°©μμ Keyλ₯Ό μμ±νλ€λ λ»
μνΈν ν νμΌ μμ±
μμ±ν 곡κ°ν€λ‘ μνΈννκΈ°
λͺ λ Ήμ΄ μ€λͺ
openssl
opensslμ μ΄μ©ν΄μ
-encrypt
μνΈν ν΄λΌ
-inkey public.pem
keyλ‘ public.pemμ μ¬μ©νκ² λ€
곡κ°ν€λ₯Ό κ°μ§κ³ μλ μ¬λμ΄ μνΈνλ₯Ό νλ€λ λ»
μ¦, λΉκ³΅κ°ν€λ₯Ό κ°μ§κ³ μλ μ¬λμκ² μλ°νκ² μ΄λ€ μ 보λ₯Ό μ μ‘ν λ μ¬μ©νλ λͺ λ Ή!
-in file.txt
file.txt νμΌμ μνΈν νκ² λ€
-out file.ssl
μνΈν λ νμΌμ file.sslλ‘ export νκ² λ€
곡κ°ν€λ‘ μνΈν ν νμΌ νμΈνκΈ°
μ΄λ₯Ό ν΅ν΄
곡κ°ν€
λ‘ μνΈν λ νμΌμλΉκ³΅κ°ν€
λ₯Ό κ°μ§κ³ μλ μ¬λμκ² μ μ‘νλ κ³Όμ μμ λκ΅°κ°κ° μνΈν λ νμΌμ μ΄μ΄λ³΄λ €κ³ νμ λ, λ΄μ©μ μ½μ΄λ³Ό μ μλ€λ κ², μ¦ μνΈν λμ΄μλ κ²μ νμΈ ν μ μλ€!
λΉκ³΅κ° ν€ λ‘ λ³΅νΈν νκΈ°
λͺ λ Ήμ΄ μ€λͺ
openssl
opensslμ μ¬μ©νμ¬
-decrypt
μνΈλ₯Ό 볡νΈν νκ² λ€
-inkey private.pem
private.pem νμΌμ μ¬μ©νμ¬ λ³΅νΈν νκ² λ€
-in file.ssl
file.ssl νμΌμ
-out decrypted.txt
볡νΈν λ νμΌμ decrypted.txtλ‘ export νκ² λ€
λΉκ³΅κ°ν€λ‘ 볡νΈν λ νμΌ νμΈ
곡κ°ν€/λΉλμΉν€ λ°©μμ λ¨μ
λΉλμΉν€λ λμΉν€λ³΄λ€ μλκ° λ리λ€...
μλλ₯Ό μ€μμνλ μν©μμλ μ°κΈ°κ° νλ€λ€...(νμμ±ν , λ©μ μ , λ±λ±)
μ΄ λλ¬Έμ μλλ₯Ό μ€μμνλ λλΆλΆμ μνΈν νλ‘ν μ½μμλ λμΉν€μ λΉλμΉν€λ₯Ό μμ΄μ μ΄λ€.
λμΉν€/λΉλμΉν€ νλ‘ν μ½λ€
λνλ‘μ¨ λ¦¬λ μ€ μ»€λμ λ΄μ₯λ wireguard Section 5.2, λ©μ μ μ±μΈ signalμ X3DH (whatsappμμλ μ΄κ° μ¬μ©λλ€!)κ° μλ€.
SSL μΈμ¦μ ... λΆν° 곡λΆνλ©΄ λ¨
κ³μ 곡λΆμ€....
Last updated
Was this helpful?