- Hyper Text Transfer Protocol Secure Socket layer
- HTTP over SSL(TLS), HTTP over Secure 라고도 함
➡️ HTTPS는 HTTP 요청을 SSL 혹은 TLS라는 알고리즘을 이용해 HTTP 통신을 하는 과정에서 데이터를 전송하는 방법
SSL(TLS): 서버와 클라이언트 간의 CA를 통해 서버를 인증하는 과정과 데이터를 암호화하는 과정을 아우른 프로토콜
✅사용목적
1. 암호화
- 서버와 클라이언트가 주고받는 정보를 제 3자가 탈취할 수 없게 하는 것
- 일련의 정보를 임의의 방식을 사용하여 다른 형태로 변환하여 해당 방식에 대한 정보를 소유한 사람을 제외하고 알 수 없도록 '알고리즘'을 이용하여 정보를 관리하는 과정
- 서버와 클라이언트는 서로가 합의한 방법대로 데이터를 암호화하여 주고받는다. → 통신 중간에 제 3자가 데이터를 빼내더라도 알아볼 수 없음
- 비대칭키 방식 & 대칭키 방식을 혼용해서 암호화
- 대칭키 방식: 양쪽이 공통의 비밀 키를 공유하여 데이터를 암호화 및 복호화 하는 것
- 비대칭키 방식: 각각 공개키와 비밀키를 가지고, 공개키로 암호화한 데이터를 개인이 가진 비밀키로 복호화 하는 것
- 클라이언트와 서버가 데이터를 주고받을 때에는 대칭키 사용 → 비대칭키 알고리즘은 대칭키 알고리즘보다 복잡해서 대칭키 알고리즘을 사용하는 것이 컴퓨터에게 덜 부담됨
- 대칭키를 주고받을 때에는 비대칭키 사용 → 비대칭키는 공개키로 암호화한 정보는 개인이 가진 비밀키로만 풀 수 있어서 중간에 대칭키가 탈취되더라도 개인키 없이는 이를 복호화 할 수 없음
2. 인증서
- 서버의 신원을 보증하는 역할
=> 브라우저가 서버의 응답과 함께 전달된 인증서를 확인가능 - CA(Certificate Authority): 인증서를 발급해주는 엄격하게 공인된 기관들
=> 서버의 공캐키와 정보를 CA의 비밀키로 암호화하여 인증서 발급
인증서 확인 과정
1. 서버가 클라이언트에게 CA에서 발급받은 인증서 전달.
2. 클라이언트가 OS 또는 브라우저에 내장된 CA 리스트를 통해 브라우저에서 인증된 CA에서 발급받은 인증서인지 확인.
3-1. 인증서가 확인되지 않으면 경고창 띄움.
3-2. 인증서가 확인됐으면 브라우저에 제공된 해당 CA 기관의 공개키로 서버 인증서 복호화. CA의 비밀키로 인증서를 암호화했기 때문에 CA의 공개키로 복호화 가능.
4. 복호화로 얻은 공개키로 클라이언트는 서버를 믿을만한 대상인지 판단 가능.
위의 과정을 통해 브라우저는 인증서의 도메인과 데이터를 제공하는 서버의 도메인을 비교할 수 있고, 이를 통해 보안위협으로부터 사용자&사용자의 데이터를 보호할 수 있다. 또한 경고를 띄워줌으로써 브라우저들은 인증된 CA가 발급한 인증서를 이용해서 데이터를 제공하는 안전한 서버를 사용자가 사용하게 유도할 수 있다.
'🕸️Network' 카테고리의 다른 글
REST(ful) API는 무엇인가? (0) | 2023.02.10 |
---|---|
Cookie? Session? (0) | 2022.11.29 |