2023. 3. 14. 22:28ㆍWEB
◎ HTTPS(Hyper Text Transfer Protocol Secure socket layer)
-> http 요청을 ssl 또는 tls라는 알고리즘을 통해 http 통신을 하는 과정에서 데이터를 암호화하여 전송하는 방법
◎ HTTPS의 목적
-> 암호화 : 제 3자가 클라이언트와 서버 간 주고받는 데이터를 탈취할 수 없게 하는 것이다. https에서는 클라이언트와 서버가 데이터를 암호화하여 주고받기 위해 비대칭키 방식과 대칭키 방식을 혼용하여 사용한다.
- 대칭키 방식은 클라이언트-서버 간 공통의 비밀키를 공유하여 데이터를 암호화 및 복호화 하는 방식이다.
- 비대칭키 방식은 클라이언트-서버 각각 공개키와 비밀키(개인키)를 가지고 상대가 나의 공개키로 암호화한 데이터를 개인이 가진 비밀키로 복호화하는 방식이다.
- 클라이언트와 서버가 데이터를 주고받을 때는 대칭키를 사용한다. 비대칭키는 대칭키 알고리즘 보다 복잡하여 컴퓨터에 부담이 되기 때문이다.
- 그러나 대칭키 방식으로 데이터를 주고 받던 중 중간에서 데이터를 탈취당하면 암호화, 복호화에 필요한 키가 동일하기 때문에 모든 데이터가 복호화가 될 것이다. 따라서 https는 대칭키를 주고받을 때는 비대칭키 방식으로 주고받는다.
-> 인증서 : https는 브라우저가 서버의 응답과 함께 전달된 인증서를 확인할 수 있다. 인증서는 서버의 신원을 보증하여 안전한 웹 사이트에 접근하게 보장하는 역할을 한다.
- CA(Certificate Authority) : 서버의 신원을 보증하는 제 3자. CA는 인증서를 발급해주는 공인된 기관을 말한다. CA는 서버의 공개키와 정보를 CA의 비밀키로 암호화하여 인증서를 발급한다.
- 서버가 클라이언트에게 CA에서 발급받은 인증서를 전달하면 클라이언트는 os나 브라우저에 미리지 내장된 CA리스트를 통해 브라우저에서 인증된 CA에서 발급받은 인증서인지 확인한다.
-만약 인증서 확인에 실패하면 경고창이 뜨면서 서버와의 연결이 위험함을 알린다. 인증서가 확인이 되었다면 브라우저에 제공된 해당 CA기관의 공개키로 서버에서 받은 인증서를 복호화한다.
- 브라우저는 인증서의 도메인과 데이터를 제공하는 서버의 도메인을 비교할 수 있어 중간자 공격을 감지하여 보안 위협으로부터 사용자와 데이터를 보호할 수 있다.
- 서버-클라이언트 간 CA를 통해 서버를 인증하는 것과 데이터를 암호화하는 과정의 프로토콜을 TLS 또는 SSL이라고 한다.
<정리>
-> 클라이언트가 같은 내용의 데이터를 복호화하는데 성공했다면 성공적으로 비밀키가 만들어졌다고 할 수 있다.
-> HTTPS 연결이 성립되었다.
'WEB' 카테고리의 다른 글
동일 사이트, 동일 출처 (0) | 2023.03.15 |
---|---|
웹 보안 공격 (0) | 2023.03.15 |
Cookie / Session (0) | 2023.03.15 |
Hashing (0) | 2023.03.15 |
웹 (0) | 2023.01.27 |