지금 서비스하고있는 웹사이트는 HTTPS로 세팅하는 것은 필수가 되었습니다.
HTTP'S'의 S는 SECURE 입니다.
간단하게 HTTP 보다 안전하다고 볼수있습니다.
1) 웹사이트에 보내는 정보를 다른 누군가 훔처보지 못하게 합니다.
2) 신뢰할수있는 사이트인지 판별 합니다.
웹사이트 접속시 확인이 가능합니다.
1. HTTP(Hyper Text Transfer Protocol)
HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜입니다.
HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있습니다.
기본 웹서버 nginx, Apache 설치하면 80번 포트를 사용하고있습니다.
- 요기에 SSL 인증서를 사용해서 HTTPS를 사용하도록 합니다.
2. HTTPS(Hyper Text Transfer Protocol Secure)
HTTPS(Hyper Text Transfer Protocol Secure)는 HTTP에 데이터 암호화가 추가된 프로토콜 입니다.
HTTPS는 443번 포트를 사용합니다.
3. HTTPS 동작 과정 ( 심화 과정 )
HTTPS는 대칭키 암호화와 비대칭키 암호화를 모두 사용하여 빠른 연산 속도와 안정성을 모두 얻고 있다.
간단한 대칭키, 비대칭키 정리
대칭키의 개념
동일한 키를가지고 암호화 복호화 '키'를 모르면 복호화 할수없습니다.
- JAVA에 AES 암호화 방식도 동일한 방식입니다. ? 나중에 JAVA 암호화 쪽도 정리 하도록 하겠습니다.
비대칭키(공개키)의 개념
대칭키를 보완한 방식이 비대칭키 입니다.
서로 다른 키 값으로 암호화 복호화 할수있습니다.
HTTPS 동작 흐름
1) 클라이언트(브라우저)가 서버로 최초 연결 시도를 함
2) 서버는 공개키(엄밀히는 인증서)를 브라우저에게 넘겨줌
3) 브라우저는 인증서의 유효성을 검사하고 세션키를 발급함
4) 브라우저는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송함
5) 서버는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻음
6) 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화를 진행함
4. HTTPS 발급 과정
SSL 인증서가 정상인지 이사이트에 맞는 인증서인지 인증해주는 공인된 민간기업을 Certificate Authority, 줄여서 CA 라고 합니다.
1) HTTP 기반의 애플리케이션에 HTTPS를 적용하기 위해 공개키/개인키를 발급함 (SSL 인증서)
2) CA 기업에게 돈을 지불하고, 공개키를 저장하는 인증서의 발급을 요청함
3) CA 기업은 CA기업의 이름, 서버의 공개키, 서버의 정보 등을 기반으로 인증서를 생성하고, CA 기업의 개인키로 암호화하여 기업에게 이를 제공함
4) 기업은 클라이언트에게 암호화된 인증서를 제공함
5) 브라우저는 CA기업의 공개키를 미리 다운받아 갖고 있어, 암호화된 인증서를 복호화함
- 우리가 사용하는 브라우저 크롬, 사파리 엣지 등의 프로그램에는 CA가 내장 되어있습니다.
6) 암호화된 인증서를 복호화하여 얻은 기업의 공개키로 세션키를 공유함
참조 : https://mangkyu.tistory.com/98
https://www.yalco.kr/31_https/
'공부 > web' 카테고리의 다른 글
SSL 인증서 확인 (1) | 2024.08.27 |
---|