1 minute read

HTTP (Hyper Text Transfer Protocol Secure Socket layer)

HTTP 요청을 SSL 혹은 TLS 라는 알고리즘을 이용해, HTTP 통신을 하는 과정에서 내용을 암호화하여 데이터를 전송하는 방법이다.

  • SSL(Secure Socket Layer)
  • TLS의 이전 프로토콜로써, 웹사이트와 브라우저 (혹은 두 서버) 사이에 전송된 데이터를 암호화하여 인터넷 연결 보안을 유지하는 표준 기술이다.
  • 공개 키와 개인키를 교환을해서 보안 세션을 생성 → 통신을 암호화
  • TLS (Transport Layer Security) → SSL에 기반한 기술로, 두 당사자가 기밀성과 데이터 무결성이 보장된 상태로 서로 식별 및 인증하고 통신할 수 있다. TLS 및 SSL이 상호 운영되지는 않는다.

클라이언트는 데이터 제공자가 제공해준 데이터를 사용할 수 밖에 없고, 그 데이터를 이용해 화면을 렌더링하는 등의 작업을 하는 요청 및 응답 과정에서 요청 및 응답을 중간에서 가로채는 중간자 공격에 취약하기 떄문에 데이터 제공자의 신원을 확인하고 보장받는게 인증에서 중요하다.

인증서

브라우저는 인증서에서 인증서를 발급한 CA의 정보를 확인하고, 인증된 CA가 발급한 인증서가 아니라면 경고창을 띄운다.

이렇듯 브라우저는 인증서의 도메인과 데이터를 제공한 제공자의 도메인을 비교할 수 있기 때문에 인증서의 도메인 정보와 데이터 제공자의 도메인 정보가 다른 ‘중간자 공격’을 감지하여 보안 위협으로부터 사용자와 데이터를 보호할 수 있고, 경고를 직접 보여줌으로써 사용자가 안전한 서버를 사용할 수 있게끔 유도한다.

HTTPS

  • 기밀성 (privacy)
  • 메시지를 가로챌 수 없음
  • 메시지를 읽을 수 없다
  • 메시지는 암호화 되어 있다
  • 무결성 (integrity)
  • 메시지가 조작되지 않음
  • 메시지가 목적지로 가는 도중에 조작되지 않음
  • 원본 그대로 잘 도착했다

Hashing

  • 입력받은 데이터를 고정된 길이의 데이터로 변환할 때 이전 데이터를 알아볼 수 없게 만드는 것
  • 해싱 알고리즘
  • sha1 / sha256 / sha512 등등
  • input → output이 늘 동일한 순수 함수
  • 해싱된 값은 사실상 복호화가 불가능하다.

Solt

  • 암호화 해야하는 원본 값에 어떤 별도의 값을 추가해서 결과를 변형하는 것
  • 솔트는 사용자와 비밀번호 별로 유일한 값을 가져야 한다.
  • 쿠키
  • HTTP의 stateless 특징을 보완해주는 도구
  • 작은 문자열을 저장

Updated: