- HTTP: 웹 통신 프로토콜. GET, PUT, POST 등 클라이언트의 요청으로 서버 와의 데이터를 전송함. 평문임.
- HTTPS: SSL/TLS 보안 프로토콜을 사용한 웹 통신 프로토콜. 암호화에 대칭키와 비대칭키 방식이 있음. 암호화됨.
- SSL: Secure Sockets Layer. 보안 '소캣' 레이어. SSL 3.0 까지 버전이 있으나 모두 사용이 중단됨.
- TLS: Transport Layer Security. '전송' 레이어 보안. 현재 TLS 1.3 까지 버전이 있음. 암호화에 대칭키와 비대칭키 방식이 있음.
- CA: Certificate Authority. 인증 기관. CA 디지털 인증서를 발행, 관리함. 디지털 인증서에는 공개키와 신원 정보가 담김.
- TCP/IP: 네트워크 프로토콜. 둘은 OSI가 서로 다른 프로토콜이나 서로 보완하며 통신함.
- TCP: 전송 계층 프로토콜. 연결 지향적으로 데이터를 패킷으로 쪼개 목적지에 전달. 수신측은 패킷을 재조립.
- IP: 인터넷 프로토콜. 비연결성으로 패킷들을 목적지 주소별로 처리. 독립된 패킷들임으로 데이터의 순서가 보장되지 않을 수있음.
- 대칭키(Symmetric-key algorithm): 암복호화에 서로 동일한 키가 사용됨. 키가 비공개됨. 예: AES
- 비대칭키(Asymmetric-key algorithm): 암복호화에 서로 다른 키가 사용됨. 공개되는 키와 공개되지 않는 키가 있음. 예: RSA
- 양방향 암호화: 대칭키 암호화, 비대칭키 암호화. 예: AES, RSA
- 단방향 암호화: 암호화된 평문을 복호화할 수 없음. 예: SHA-256.
HTTPS, TLS 가 대칭키 혹은 비대칭키를 하나만 사용하는 것은 아님.
핸드셰이크->키교환->대칭키 통신 과정으로 이루어지는데, 상세 TLS 동작 과정은 다음과 같음.
- 핸드셰이크 (Handshake) 클라이언트: 클라이언트가 서버에게 랜덤 데이터 및 지원하는 암호화 알고리즘 목록을 제시.
- 핸드셰이크 (Handshake) 서버: 서버는 자체의 랜덤 데이터, 선택한 암호화 알고리즘, 그리고 인증서를 클라이언트에게 전달
- CA 인증서 확인: 클라이언트는 서버의 인증서를 받아와 해당 CA 인증서를 확인. 서버가 제공한 인증서의 유효성과 CA의 신뢰 여부를 확인.
- 대칭키 생성 및 교환: 클라이언트는 임시 대칭키(Pre-Master Secret)를 생성하고 이를 서버의 공개 키로 암호화하여 전송. 서버는 이 암호문을 개인 키로 복호화하여 임시 대칭키를 획득.
- 세션 키 생성: 클라이언트와 서버는 임시 대칭키를 기반으로 마스터 키를 도출하고, 이를 사용하여 세션 키를 생성.
- 세션 시작: 양측은 세션 키가 생성되었음을 확인하고 핸드셰이크가 완료됨.
- 세션 종료:통신이 끝나면 양측은 세션 키를 폐기.
단방향 암호화가 일어나는 시점: 인증서 확인
양방향 암호화가 일어나는 시점: 대칭키 생성, 교환, 세션 키 생성
반응형
'IT' 카테고리의 다른 글
안드로이드 ADB 이용한 카메라 셔터 소리 없애기 (0) | 2024.09.09 |
---|---|
llama 3.1 meta 공식 사이트 이용 다운로드 방법 (AI 생성글 아님) (0) | 2024.07.31 |
keyteak 한자키 한영변환키로 변환하기 (0) | 2022.11.21 |
HP 용지함 1 기본값 설정 해제하기 (0) | 2022.06.23 |
SQL 예쁘게 정리해주는 웹사이트 (0) | 2022.06.20 |