HTTP 특징

허정·2022년 6월 13일
0

1. 특징

  • 클라이언트 서버 구조
  • 무상태 프로토콜, 비연결성
  • HTTP 메세지
  • 단순함, 확장 가능
  • Request, Response 구조

2. Stateless

  • 서버가 클라이언트의 상태를 보존하지 않기 때문에 확장성이 높습니다.
  • 무상태는 응답 서버를 무한히 늘릴 수 있다는 것을 의미합니다.
  • 만약 로그인한 유저를 기억하고 싶다면, 브라우저 쿠키나 서버 세션, 토큰을 활용해야 합니다.

3. 한계

  • 트래픽이 많고, 큰 규모의 서비스를 운영할 때에는 비연결성은 한계를 보입니다.
  • 자원들을 각각 보낼 때마다 연결 끊고 다시 연결하는 것의 반복은 비효율적이기 때문에 지금은 HTTP 지속 연결(Persistent Connections)로 문제를 해결

4. HTTPS

Hyper Text Transfer Protocol Secure Socket layer 의 약자이며, HTTPS는 HTTP 요청을 SSL 혹은 TLS라는 알고리즘을 이용해, HTTP 통신을 하는 과정에서 내용을 암호화하여 데이터를 전송하는 방법입니다.

(1) 사용 이유

인증에서 HTTPS 프로토콜은 HTTP보다 상대적으로 안전한 방법이고, 데이터 제공자의 신원을 보장받을 수 있습니다.

데이터 제공자의 신원을 확인하고 보장받는 게 인증에서 중요한 이유는 다음과 같습니다.

  • 클라이언트는 데이터 제공자가 제공해준 데이터를 사용할 수 밖에 없습니다.
  • 클라이언트는 서버에 데이터 요청을 하고 이후 받은 데이터를 이용해서 화면을 렌더링하는 등의 작업을 해야 합니다.

그렇기 때문에 요청 및 응답을 중간에서 가로채는 중간자 공격에 취약합니다. '중간자 공격'은 클라이언트와 서버 사이에서 공격자가 서로의 요청, 응답의 데이터를 탈취 및 변조하여 다시 전송하는 공격입니다.

데이터가 중간에 다른 도메인을 거쳐서 전달되기 때문에 서버가 해당 데이터는 "https://example.com 도메인에서 제공되었습니다."라는 추가데이터를 응답객체에 실어 보낸다면 '중간자 공격'으로 인해 다른 도메인에서 데이터를 받은 클라이언트는 데이터를 제공한 도메인과 전달받은 내용의 도메인을 비교하여 '중간자 공격'이 존재하는지 아닌지 확인할 수 있습니다.

결론은 중간자 공격으로 인한 데이터 유출을 최소화 한다는 것입니다.

(2) 암호화

물론 중간자 공격으로 인해 이런 추가 데이터 또한 변조할 수 있습니다. 따라서 해당 데이터를 암호화시키는 작업이 필요합니다. HTTPS 프로토콜의 특징 중 하나는 암호화된 데이터를 주고받기 때문에, 중간에 인터넷 요청이 탈취되더라도 해커는 내용을 알아볼 수 없습니다.

(3) 인증서

HTTPS 프로토콜의 또 다른 특징 중 하나는 브라우저가 응답과 함께 전달된 인증서 정보를 확인할 수 있다는 점입니다. 브라우저는 인증서에서 해당 인증서를 발급한 CA 정보를 확인하고 인증된 CA가 발급한 인증서가 아니라면 화면에 경고창을 띄워 서버와 연결이 안전하지 않다는 화면을 보여줍니다.

이렇게 브라우저는 인증서의 도메인과 데이터를 제공한 제공자의 도메인을 비교할 수 있기 때문에 인증서의 도메인 정보와 데이터 제공자의 도메인 정보가 다른 '중간자 공격'을 감지하여 보안 위협으로부터 사용자 및 사용자의 데이터를 보호할 수 있습니다.

또한 이런 경고를 직접 보여줌으로써 브라우저들은 인증된 CA가 발급한 인증서를 이용하여 데이터를 제공하는 안전한 서버를 사용할 수 있게 사용자를 유도합니다.

(3) SSL, TLS

  • Secure Socket Layer 인증서는 브라우저와 서버 사이의 암호화된 연결을 수립하는데 사용됩니다. 즉, 암호화하여 인터넷 연결을 보호하는 기술입니다.
  • SSL 인증서는 "SSL 핸드셰이크”라는 과정을 통해 웹사이트/서버와 브라우저 간에 암호화된 연결을 수립합니다.

인증 - 암호화 - 복호화
1. 인증: 사용자가 웹사이트에서 시작하는 모든 신규 세션에 대해 브라우저와 서버는 각각 다른 SSL 인증서를 교환하고 검증합니다.
2. 암호화: 서버는 브라우저와 공개 키를 공유하고, 이어서 브라우저는 이 키를 사용해 프리마스터 키(pre-master key)를 생성, 암호화합니다. 이를 키 교환이라 합니다.
3. 복호화: 서버는 개인 키를 사용해 프리마스터 키를 복호화하고, 세션 기간 동안 사용되는 암호화된 보안 연결을 수립합니다.

  • Transport Layer Security는 SSL보다 안전한 기술입니다. 웹사이트 소유자의 신원을 인증하기도 합니다.

(4) SSL과 인증기관(CA)의 관계

CA는 SSL 인증서를 발급하는 기관으로, 신뢰할 수 있는 기관들을 말합니다.

0개의 댓글