HTTPS(HTTP Secure)는 웹 브라우징 시 보안과 프라이버시를 강화하기 위해 사용하는 프로토콜
HTTPS는 기본 HTTP 프로토콜에 SSL/TLS 암호화를 추가하여 데이터를 안전하게 주고받을 수 있게 한다.
HTTPS의 주요 보안 정책
암호화 (Encryption)
- 클라이언트(사용자)와 서버 간의 데이터를 암호화하여 제3자가 내용을 가로채더라도 읽을 수 없게 한다.
- 예를 들어 HTTPS를 사용하면, "내 비밀번호는 password123입니다"라는 텍스트가 암호화되어 전달된다.
무결성 (Integrity)
- 데이터가 전송 중에 수정되거나 변조되지 않았음을 보장
- 데이터가 손상되거나 누군가 중간에서 악의적으로 변경하려 하면, 브라우저나 서버가 이를 감지
- 예를들어 사용자가 다운로드하는 파일이 원본 서버에서 제공된 그대로인지 확인
인증 (Authentication)
- 서버가 신뢰할 수 있는 서버(예: 은행 웹사이트)인지 확인한다.
- HTTPS는 인증서를 통해 웹사이트의 신원을 검증하며, 이를 위해 SSL/TLS 인증서를 사용
- 예를들어 사용자가 인터넷에 접속했을 때, 브라우저가 인증서를 확인하여 "이 웹사이트는 진짜 은행의 서버다"라는 것을 보장
HTTPS의 동작 원리
공개 키 기반 암호화 과정
- 클라이언트와 서버는 보안 연결을 설정하기 위해 공개 키와 비밀 키를 사용한다.
- 클라이언트는 서버의 공개 키를 사용해 암호화된 세션 키를 생성하여 서버에 전달
- 서버는 비밀 키를 사용해 클라이언트가 보낸 세션 키를 해독한다.
세션 키 생성 및 사용
- 서버는 해독된 세션 키를 사용해 클라이언트가 보낸 데이터(예: 요청, 응답 등)를 암호화 및 복호화한다.
- 이 세션 키는 이후 데이터 통신에 사용되며, 추가적인 암호화/복호화 작업에서 중요하게 작용
토큰 기반 인증
- 클라이언트는 세션 또는 토큰을 사용해 서버에 접근합니다. JWT(JSON Web Token) 같은 토큰 기반 인증이 여기에 해당됨.
- 클라이언트는 서버로부터 인증 정보를 포함한 토큰을 발급받아 사용
- 토큰은 서버에 의해 검증되며, 이를 통해 서버는 클라이언트의 신뢰성을 확인
서버에서의 데이터 전송 및 검증
- 서버는 클라이언트의 요청에 따라 세션 키나 토큰을 사용해 데이터를 암호화하고 전달합니다.
- 클라이언트는 서버에서 받은 세션 키나 토큰을 이용해 서버가 보내준 데이터를 복호화하거나 검증합니다.
HTTPS의 장점
- 보안 강화: 데이터 도청, 변조, 스니핑 등을 방지한다.
- 신뢰도 향상: 브라우저에 "안전하지 않음" 경고가 뜨지 않아 사용자 신뢰가 높아진다.
- SEO 혜택: Google은 HTTPS를 사용하는 웹사이트를 더 높게 평가한다.
'IT > CS' 카테고리의 다른 글
비동기 프로그래밍의 장단점 (0) | 2025.04.16 |
---|---|
테스트 방식 및 종류 (0) | 2025.01.06 |
쿠키와 세션 정리 (0) | 2025.01.03 |