Cookie & SSL/TLS
* HTTP 속성
* HTTP Cookie
* SSL / TLS
HTTP 속성
* HTTP는 통신이 끝나면 상태 정보를 유지하지 않는다
* 서버는 HTTP 요청에 대한 응답을 보내고 접속을 끊어 커넥션 리소스 비용을 줄인다
* 단순 페이지 또는 문서 정보 열람은 가능
* 하지만 클라이언트가 새로운 페이지를 접속 할 때마다 서버는 신원을 알 수 없다
* 예를 들어, 인터넷 쇼핑물의 경우 페이지 마다 인증이 필요
* 회원 정보 식별, 로그인 여부, 결제 정보 및 장바구니 등
* Cookie & Session으로 이 문제를 해결할 수 있다. / Stateful : 상태 정보 유지
HTTP Cookie
* 정의
- 클라이언트 웹 브라우저 로컬에 저장되는 키와 값이 들어있는 파일
- 이름, 값, 도메인, 만료일, 경로 - 일정 시간 정보 저장 -> 로그인, 장바구니
- Session : 서버는 일정 시간 같은 웹브라우저의 요청이 들어오면 하나의 상태로 유치된다
- 서버는 클라이언트에 대한 세션ID 발급 및 보유 -> 쿠키로 전달 -> 동일 세션 ID로 접속 -> 정보 확인
* Cookie 확인
- 웹 브라우저(크롬)에서 웹사이트 접속 후 F12 클릭 - 메뉴 - Application - Cookie
- Cookie는 사용자 로컬에 정보가 저장된다 - 유출 또는 조작 가능
- Session은 서버에 정보를 저장(안전) - 인증에 세션을 사용 - 세션 하이재킹?
- HTTP - SSL/TLS
SSL/TLS
* 정의
* SSL (Secure Socket Layer) / TLS (Transport Layer Security)
- TCP/IP 네트워크 통신간 보안을 제공하는 프로토콜
- Netscape SSL 1.0 -> SSL 2.0 -> SSL 3.0 (1996년)
- IETF 1999년 TLS 1.0 -> TLS 1.2(SHA2) -> TLS 1.3(2018년) - 확장 SNI 암호
- HTTPS(Hypertext Transfer Protocol Secure) = HTTP over TLS
- 주요 웹 브라우저 2020년 상반기 TLS 1.0, 1.1 지원 중단 - POODLE & BEAST 취약점
* 기능
- 인증 - Client to Server 통신 간 상대방에 대한 인증 - RSA, DSS
- 무결성 - 메시지 인증 코드로 제공 HMAC, SHA-2
- 기밀성 - 데이터 암호 - 3DES, RC4
* 프로토콜 구성
* 상위
- HandShake : 키 교환 방식, 암호화 방식, HMAC 방식, 압축 방식 등을 협상
- Change Ciper Spec : 협상 정보가 적용됨을 알림
- Alert : 협상 과정에서 제시한 암호화 방식을 지원 못하는 경우 알림
* 하위
- Record : 데이터 교환, 메시지를 전송
* TLS Stack
- TLS 계층은 상위 3개 프로토콜, 하위 Record 프로토콜로 구분
- 상위 계층에서 협상 후 Record 프로토콜에서 Application 데이터를 분할, 압축, 암호화 해서 전달
* 동작 과정
1. 클라이언트는 지원 가능한 cipher suite 전달
2. 서버는 자신이 지원하는 cipher suite 전달
3. Certificate : 서버 인증서 전달
ServerKeyExchange : DH 키교환 - 키 전달
CertificateRequest : 인증서 요청
ServerHelloDone : 모든 메시지 전달 완료
4. Certificate : 클라이언트 인증서 전달
ClientKeyExchange : DH, 클라이언트 키 교환
CertificateVerify : 인증서 확인
버전, cipher suite 결정, 상대방 신원 확인 완료
5. ChangeCipherSpec Finished
TLSCiphertxt 전송, 협상된 키가 맞는지 검증
※ 정리
* HTTP는 Stateless로 통신이 끝나면 상태 정보를 유지하지 않는다
* 상태 정보가 필요한 경우를 위해서 Cookie & Session 기술이 있다
* Cookie는 클라이언트 웹 브라우저 로컬에 저장되는 정보 - 로그인
* Session은 동일한 웹브라우저의 요청을 하나의 상태로 구분하여 서버에 정보를 저장
* SSL/TLS (Transport Layer Security)은 TCP/IP 통신간 보안을 제공하는 프로토콜
* TLS는 상위 HandShake, Change Cipher Spec, Alert, 하위 Record 프로토콜로 구성
출처 : 제로베이스
'공부 Note > 네트워크' 카테고리의 다른 글
Chapter 07 애플리케이션 서비스 (4) (0) | 2022.02.24 |
---|---|
Chapter 07 애플리케이션 서비스 (2) (0) | 2022.02.24 |
Chapter 07 애플리케이션 서비스 (1) (0) | 2022.02.24 |
Chapter 06 TCP와 NAT (4) (0) | 2022.02.24 |
Chapter 06 TCP와 NAT (3) (0) | 2022.02.24 |