Nginx HTTPS 설정 배경지식

H.GOO·2023년 4월 13일
0
post-thumbnail

🌿 http VS https

👉 HTTP (Hyper Text Transfer Protocol)

HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성된다.

→ 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜, 기본 포트: 80

👉 HTTPS (Hyper Text Transfer Protocol Secure)

HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure 등으로 불리며 암호화를 지원하고 있다.

→ HTTP에 데이터 암호화가 추가된 프로토콜, 기본포트 443




🌿 대칭키 VS 비대칭키

👉 대칭키 암호화

클라이언트와 서버가 동일한 키를 사용해 암호화/복호화를 진행함
키가 노출되면 매우 위험하지만 연산 속도가 빠름

암호화: 평문 → 개인키 → 암호문

복호화: 암호문 → 비밀키 → 평문

👉 비대칭키 암호화

1개의 쌍으로 구성된 공개키와 개인키를 암호화/복호화 하는데 사용함
키가 노출되어도 비교적 안전하지만 연산 속도가 느림

암호화: 평문 → 개인키 → 암호화 → 공개키 → 평문

복호화: 평문 → 공개키 → 암호화 → 개인키 → 평문

👉 공개키와 개인키로 암호화하면 얻는 효과

  • 공개키 암호화 공개키로 암호화를 하면 개인키로만 복호화할 수 있다.
    → 개인키는 나만 가지고 있으므로, 나만 볼 수 있다.
  • 개인키 암호화 개인키로 암호화하면 공개키로만 복호화할 수 있다.
    → 공개키는 모두에게 공개되어 있으므로, 내가 인증한 정보임을 알려 신뢰성을 보장할 수 있다.



🌿 Session

👉 Session

서버가 해당 서버(웹)로 요청(request)한 클라이언트(사용자)를 식별하는 방법이다. 서버는 요청한 클라이언트 에게 요청 헤더의 set-cookie 값으로 클라이언트 식별자인 session-id를 응답한다.

서버로부터 응답받은 session-id는 해당 서버와 클라이언트 메모리에 저장된다. 이때 클라이언트 메모리에 사용되는 cookie 타입은 세션 종료 시 같이 소멸되는 Memory cookie가 사용된다.

👉 HTTP Session 전달 방법

  1. 클라이언트가 서버로 요청을 하면 서버는 DB에 정보를 저장한다.
  2. 만약 클라이언트로부터 발송된 session-id가 없다면, 서버는 session-id를 생성해 클라이언트에게 set-cookie값으로 session-id를 발행한다.
  3. 클라이언트는 HTTP 요청(request)헤더에 session-id를 포함하여 원하는 정보(Resource)를 요청한다.
  4. 서버는 session-id를 통해 해당 세션을 찾아 클라이언트 상태 정보를 유지하며 적절한 응답을 반환한다.

👉 Session 장단점

  • 장점
    서버에 저장하기 때문에 매우 관리가 편하고 효율적이다.
  • 단점
    load-balancing/시스템 효율성에서 핸들링(Handling)하기 어렵다. 세션 저장 장치가 부족한 시스템에는 적합하지 않다.



🌿 HTTPS 동작 과정

HTTPS는 대칭키 암호화와 비대칭키 암호화를 모두 사용하여 빠른 연산 속도와 안정성을 모두 얻고 있다.

HTTPS 연결 과정(Hand-Shaking)에서는 먼저 서버와 클라이언트 간에 세션키를 교환한다. 여기서 세션키는 주고 받는 데이터를 암호화하기 위해 사용되는 대칭키이며, 데이터 간의 교환에는 빠른 연산 속도가 필요하므로 세션키는 대칭키로 만들어진다.

문제는 이 세션키를 클라이언트와 서버가 어떻게 교환할 것이냐 인데, 이 과정에서 비대칭키가 사용된다.

즉, 처음 연결을 성립하여 안전하게 세션키를 공유하는 과정에서 비대칭키가 사용되는 것이고, 이후에 데이터를 교환하는 과정에서 빠른 연산 속도를 위해 대칭키가 사용되는 것이다.




0개의 댓글