네트워크

9. HTTPS

ggomjiu 2025. 2. 28. 10:42

HTTPS

: 인터넷 상에서 정보를 암호화하는 TLS 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약

- HTTP는 평문 텍스트, 즉 암호화되지 않은 텍스트를 전송하는 TCP 프로토콜의 일종

- HTTPS = HTTP + S(Secure)

- 안전한 계층을 추가하기 위해 웹 서버에 설치하는 것이 SSL / TLS 인증서

- HTTPS의 원천 기술은 TLS 전송 기술

 

TLS 프로토콜

: 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계된 보안 프로토콜

- 웹 사이트를 로드하는 웹 브라우저와 같이 응용 프로그램과 서버 간의 커뮤니케이션을 암호화하는 것

 

cf) SSL 프로토콜

- 넷스케이프(Netscape)가 고안하였지만, 이후 통제권을 IETF[RFC 4346]으로 넘기면서 TLS로 표준화됨

 

안전한 통신 특성

1. 기밀성

: 송신자와 지정된 수신자만이 전송되는 메시지 내용을 이해할 수 있어야 함

 

 2. 메시지 무결성

: 통신하는 내용이 전송 도중에 변경되지 않아야 함

 

3.  종단점 인증

: 송신자와 수신자는 통신에 참여하는 상대방이 실제 누구인지 확인하기 위해 상대방의 신원을 확인할 수 있어야 함

 

- TLS는 통신에서 위험을 없대고 TCP를 향상함으로써 문제를 해결함

 

암호화 방식

1. 대칭키 암호화

: 암호화를 할 때와 복호화를 할 때 같은 암호키를 사용하는 알고리즘

- 데이터 암호가 목적

- 암호 시스템의 안전성은 키의 길이, 키의 안전한 관리에 상대적으로 의존성이 높음

- 알고리즘이 상대적으로 단순함

- 사용자 간 키를 공유해야 하고 이를 각각 관리해야 함 -> 키 관리가 어려움

- 대문의 열쇠 - 자물쇠를 잠근 열쇠만으로 열고 닫을 수 있음

- EX) DES, AES, ARIA, SEED, Twofish

 

2. 비대칭키 암호화

: 메시지 암호화하는 키와 복호화하는 키가 다른 알고리즘

- 두 개의 키를 가짐 -> 키페어(Key Pair)

- 대칭키 교환 용도

- 2개의 키 중에 하나는 공개되고 다른 하나는 사용자에 의해 비밀리에 관리되어야 함

- 각 사용자는 자신의 비밀키만 관리하면 됨 -> 키 관리 여러움을 줄임

- EX) RSA, 타원 곡선 암호, 배낭 암호

 

1) 공개키(Public Key)

2) 비공개키(Private Key)

네오는 키가 두가지 있다. 한 가지는 세상의 모든 사람에게 알려진 공개키(public key)(KB+)이고, 다른 하나는 네오만 아는 비밀키(private key)(KB-)이다.
1. 주디는 네오에게 보낼 m 메시지를 공개키로 암호화한다. KB+(m)
2. 암호문을 받은 네오는 자신이 가신 비밀키로 복호화한다. m = KB-(KB+(m))

 

TLS 핸드셰이크(HandShake)

: 통신을 하는 브라우저와 웹 서버가 서로 암호화 통신을 시작할 수 있도록 신분을 확인하고, 필요한 정보를 클라이언트와 서버가 주거니 받거니 하는 과정

  1. 핸드셰이크(HandShake)
  2. 키 유도(Key Derivation)
  3. 데이터 전송(Data Transfer)

- 서버는 개인키, 공개키를 가지고 있으며 신뢰할 수 있는 CA 기업에 공개키 관리를 부탁

 

cf) CA

: 공개키를 저장해주는 신뢰성이 검증된 민간기업

  1. TCP 연결을 설립
  2. 연결이 설립되면 클라이언트는 헬로(Hello) 메시지를 보내고, 서버는 공개키를 담은 인증서로 응답 -> 이때 인증서는 CA 인증을 받았기 때문에, 클라이언트는 인증서 내 공개키가 서버의 것이라는 것을 신뢰할 수 있음
  3. 클라이언트는 MS(Master Secret)을 서버의 공개키로 암호화하여 보내면, 서버는 개인키로 복호화함
  4. TLS 핸드셰이크 과정이 끝나면 HTTPS 통신을 시작

- TLS 인증서에는 대칭키 방식과 공개키 방식 모두 사용

- 모든 것을 공개키 방식으로 하면 웹 서버와 브라우저에 많은 부담을 줌

-> TLS 핸드 셰이크 과정은 비대칭키 방식, 그 이후의 HTTPS 통신은 대칭키 방식을 사용

'네트워크' 카테고리의 다른 글

11. SOAP  (1) 2025.02.28
10. REST API + RESTful  (1) 2025.02.28
8. HTTP 진화 과정  (0) 2025.02.21
7. L4 스위치 / L7 스위치 + 로드 밸런싱  (0) 2025.02.21
6. 네트워크 기기  (0) 2025.02.21