본문 바로가기
카테고리 없음

HTTP vs HTTPS

by silvertogold100 2025. 7. 31.
반응형

HTTP

In standard HTTP, all information is sent in clear text → Vulnerable to hackers

HTTPS

HTTP with a security feature

HTTP 프로토콜을 통해 가져온 데이터를 암호화시킨 것 The data is scrambled to unreadable form as a travel across the internet

데이터 암호화를 위해서 SSL(Secure Socket Layer) 프로토콜을 사용 SSL은 보안과 성능을 위해 두가지 암호화 방식을 사용함

  • 대칭키 암호화
    • 동일한 키로 데이터를 암호화하고 복호화
    echo 'this is the plain text' > plaintext.txt;
    openssl enc -e -des3 -salt -in plaintext.txt -out ciphertext.bin;
    
    enc -e -des3: des3 방식으로 암호화함 -in plaintext.txt -out ciphertext.bin: plaintext.txt 파일을 암호화한 결과를 ciphertext.bin 파일에 저장
    • 대칭키를 이용해 복호화
    openssl enc -d -des3 -in ciphertext.bin -out plaintext2.txt;
    
  • 공개키 암호화
    • 대칭키 방식의 단점: 암호를 주고 받는 사람들 사이에 대칭키를 전달하는 것이 어려움.
    • 대칭키가 유출되면 키를 획득한 공격자는 복호화가 가능하여 암호가 무용지물 ⇒ 공개키 방식 대두
    • 공개키 방식은 두개의 키 ⇒ A키로 암호화를 하면 B키로 복호화를 할 수 있고, B키로 암호화를 하면 A키로 복호화 할 수 있음 ⇒ A 와 B키 : 공개키(public key)와 비밀키(private key)
    • 공개키: 타인에게 공개, 비밀키: 자신만이 가지고 있음.
    • 공개키를 제공 받은 타인은 데이터를 암호화하여 비밀키를 가진 사람에게 전달 ⇒ 비밀키를 가진 사람은 제공 받은 암호화된 데이터를 복호화하여 확인
    # 개인 비밀키 생성, 숫자가 높을수록 안전
    openssl genrsa -out private.pem 1024;
    
    # private.pem이라는 비밀키를 이용해서 공개키를 생성
    	openssl rsa -in private.pem -out public.pem -outform PEM -pubout;
    
    • 공개키를 가진 사람이 어떤 정보를 비밀키를 가진 사람에게 전송하는 상황
    # 공개키를 가진 사람이 암호화
    echo 'coding everybody' > file.txt
    openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl;
    
    # 비밀키를 가진 사람이 복호화
    openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt;
    
    

💡 SSL certificates are what enable websites to move from HTTP to HTTPS, which is more secure. An SSL certificate is a data file hosted in a website's origin server. SSL certificates make SSL/TLS encryption possible, and they contain the website's public key and the website's identity, along with related information. Devices attempting to communicate with the origin server will reference this file to obtain the public key and verify the server's identity. The private key is kept secret and secure.

TLS 방식

Transport Secure Layer로 최근에 데이터 암호화를 위해 산업에서 쓰이는 프로토콜로 SSL 방식을 계승

SSL 인증서

  • SSL인증서는 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서
  • 클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서 정보를 전달
  • 클라이언트는 이 인증서 정보가 신뢰할 수 있는 것인지를 검증한 후에 다음 절차를 수행하게 됨.
  • SSL 과 SSL 디지털 인증서를 이용했을 때의 이점
    • 통신 내용이 공격자에게 노출되는 것을 막을 수 있음
    • 클라이언트가 접속하려는 서버가 신뢰할 수 있는 서버인지를 판단할 수 있음
    • 통신 내용의 악의적인 변경을 방지할 수 있음

SSL 인증서의 역할

  • SSL 인증서의 기능
    • 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장함
    • SSL 통신에 사용할 공개키를 클라이언트에게 제공합니다.

CA

인증서의 역할은 클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 보장하는 역할.

이 역할을 하는 민간기업들을 CA(Certificate Authority) 혹은 Root Certificate 라고 부릅니다.

SSL 인증서의 내용

  • 서비스의 정보(인증서를 발급한 CA, 서비스의 도메인 등)
  • 서버 측 공개키 (공개키의 내용, 공개키의 암호화 방법)
반응형