일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- golang
- goland
- gitops
- AWS
- go
- 배포 프로세스
- 티스토리챌린지
- elasticsearch
- Buffered channel
- 코사인 유사성 메트릭스
- kube-prometheus-stack
- 디자인패턴
- 배포 파이프라인
- http 413
- GoF
- 오블완
- 윈도우키보드
- Intellij
- 사설 ip
- 대규모 시스템 설계
- m4 pro
- cosine similarity metric
- notification system
- UnBuffered channel
- Kubernetes
- apollo router
- Logrus
- intellij ide
- body size
- Infra
- Today
- Total
Fall in IT.
TLS에 대하여 (SSL, HTTPS랑 다른건가?) 본문
안녕하세요.
오늘은 TLS와 HTTPS에 대해 간단하게 알아보겠습니다.
TLS란?
TLS (Transport Layer Security)는 인터넷에서 정보를 암호화해서 송수신하는 프로토콜
넷스케이프 커뮤니케이션스사가 개발한 SSL(Secure Sockets Layer)에 기반한 기술로 국제 인터넷 표준으로 인정받은 프로콜이다. 표준에 명시된 정식 명칭은 TLS이지만 아직도 SSL이라는 용어가 많이 사용되고 있다.
흔히 SSL이라고 불리는 용어들은 대부분 TLS라고 보면 된다. (SSL은 TLS의 과거 명칭이다. SSL 3.0이 TLS의 1.0 기반이 되었다.)
TLS를 사용해 암호화된 연결을 하는 HTTP를 HTTPS라고 한다. 보안된 웹 사이트 주소는 HTTPS로 시작하고 기본 포트는 443번을 사용한다.
TLS와 HTTPS를 혼동하는 경우가 많은데, 둘은 유사하지만 다른 개념이다.
TLS는 다양한 종류의 보안 통신을 하기위한 프로토콜이며, HTTPS는 TLS 위에 HTTP 프로토콜을 얹어 보안된 HTTP 통신을 하는 프로토콜이다.
즉, TLS는 HTTP 뿐만 아니라 FTP, SMTP와 같은 프로토콜까지 포함한다.
HTTPS란?
HTTPS (Hyper Text Transfer Protocol over Secure Socket Layer)
HTTP의 보안이 강화된 버전으로 통신의 인증과 암호화를 위해 개발되었다. 일반 텍스트를 이용하는 대신 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다. 기본 포트는 443이다.
HTTPS 통신 흐름 간단하게 알아보기
- 어플리케이션 서버(A)를 만드는 기업은 HTTPS를 적용하기 위해 공개키와 개인키를 만든다.
- 신뢰할 수 있는 CA 기업을 선택하고 그 기업에 내 공개키를 관리해달라고 계약하고 돈을 지불한다.
- 계약을 완료한 CA 기업은 CA 기업만의 공개키와 개인키가 있다. CA 기업은 기업의 이름과 A서버의 공개키, 공개키의 암호화 방법등의 정보를 담은 인증서를 만들고, 해당 인증서를 CA 기업의 개인키로 암호화해서 A서버에 제공한다.
- A 서버는 암호화된 인증서를 가지게 되고 A 서버에 Request가 오면 클라이언트에게 인증서를 준다.
- 클라이언트 입장에서는 A 서버의 정보를 CA 기업의 개인키로 암호화한 인증서를 받게 된다.
- CA 기업의 공개키는 브라우저는 알고 있다.
- 브라우저는 CA 기업 리스트를 쭉 탐색해서 공개키로 인증서를 해독하고 A 서버의 공개키를 얻는다.
- A 서버의 공개키로 암호화해서 Request를 날리게 된다.
(4~5번은 handshake 하는 과정. https 전송전에 request를 통해서 받게 된다.)
참조
'기타' 카테고리의 다른 글
Git commit message 관리 (0) | 2023.03.19 |
---|---|
GoLand(IntelliJ) 라이브 템플릿 사용방법 (0) | 2023.02.07 |
GraphQL 보안과 성능 개선 방법 (0) | 2022.10.27 |
Helm 간단히 알아보기(Kubernetes) (0) | 2021.06.24 |
vscode 자동완성 단축키 설정방법 (2) | 2021.06.06 |