-
[CS] SSL/TLS통신Computer Science/CS 2022. 9. 7. 14:33728x90
SSL : Secure Socket Layer
Netscape사에서 웹서버와 브러우저 사이의 보안을 위해 만들었다. SSL은 Certificate Authority(CA)라 불리는 서드 파티로 부터 서버와 클라이언트의 인증을 하는데 사용된다.
SSL handshake protocol SSL ciper change protocol SSL alert protocol Application protocol
(HTTP)SSL Record Protocol TCP IP (SSL 프로토콜 스택)
TLS : Transport Layer Security
TLS는 웹 사이트를 로드하는 웹 브라우저와 같이 웹 응용 프로그램과 서버 간의 커뮤니케이션을 암호화한다.
또한 이메일, 메시지, 보이스오버 IP(VoIP)와 같은 다른 커뮤니케이션을 암호화하기 위해 사용된다.
SSL handshake
protocolSSL ciper change
protocolSSL alert protocol Application protocol
(HTTP)Heartbeat protocol SSL Record Protocol TCP IP (TLS 프로토콜 스택)
TLS 와 SSL의 차이점?
TLS는 Netscape가 개발한 SSL(Secure Sockets Layer)이라고 불리는 이전의 암호화 프로토콜에서 발전한 것이다.TLS 버전 1.0은 SSL 버전 3.1로서 개발을 시작했지만 Netscape와 더 이상 연관이 없음을 명시하기 위해 발표 전에 프로토콜의 이름이 변경되었다.
SSL/TLS 보안 서비스
기밀성 서비스 DES, RC4와 같은 대칭키 암호화 알고리즘을 사용하여 제공, 이때 사용되는 비밀키는 Handshake Protocol을 통해 생성된다. 클라이언트와 서버 상호 인증 연결 설정 과정에서 서로 간에 신뢰할 수 있도록 인증을 사용, 인증에는 RSA와 같은 비대칭키 암호 알고리즘, DSS와 같은 전자서명 알고리즘과 X.509공개키 인증서가 사용된다. 메시지 무결성 서비스 안전한 해시 알고리즘을 사용해서 메시지 인증코드를 만들어 메시지에 포함시키기 때문에 신뢰성 있는 통신이 가능하다. SSL/TLS 프로토콜
Handshake
Protocol- Record 프로토콜에 대한 보안 매개변수 제공
- 암호 집합을 설정하고 키와 보안 매개변수 제공
- 클라이언트가 서버에 대해 그리고 서버가 클라이언트에 대해 인증됨(상호 인증)Record
Protocol- 응용 계층으로부터 오는 데이터뿐만 아니라 TLS의 상위 프로토콜로부터 오는 메시지를 전송
- Record 프로토콜에서 오는 메시지는 보통 TCP의 전송 계층의 페이로드ChangeCiperSpec Protocol 암호학적 비밀을 신속하게 보내는데 사용 Alert Protocol 비정상 조건을 알리는데 사용 Heartbeat Protocol 프로토콜 개체의 가용성을 모니터링 할 때 사용 Handshake Protocol 동작
단계 1
보안 기능 수집 : 프로토콜 버전, 세션ID, 암호조합, 압축 방법, 초기 랜덤 넘버를 포함한다.client → server : client_hello server→ client : server_hello 단계2
서버가 필요하다고 생각되면, 인증서, 키 교환을 보내고, 인증서를 요청한다. hello메시지 단계를 끝내는 것을 알린다.server→ client : certificate server→ client : server_key_exchange server→ client : certificate_request server→ client : server_hello_done 단계3
클라이언트는 요청된 인증서를 보낸다(요청이 있을 경우), 클라이언트는 키 교환을 보낸다. 클라이언트는 인증서에 대한 확인을 보낼 수도 있다.client → server : certificate client → server : client_key_exchange client → server : certificate_verify 단계4
암호 조합을 교환하고 handshake protocol을 종료한다.client → server : change_ciper_spec client → server : finished server→ client : change_ciper_spec server→ client : finished SSL인증서
SSL 인증서는 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서입니다. 클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서 정보를 전달하게 됩니다. 클라이언트는 이 인증서 정보가 신뢰할 수 있는 것인지를 검증 한 후에 다음 절차를 수행하게 됩니다.
SSL 인증서 역할
1. 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장합니다.
2. SSL 통신에 사용할 공개키를 클라이언트에게 제공합니다.
CA
인증서의 역할은 클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 보장하는 역할을 합니다. 이 역할을 하는 민간기업들이 있는데 이런 기업들을 CA(Certificate authority) 혹은 Root Certificate 라고 부릅니다. CA는 아무 기업이나 할 수 있는 것이 아니고 신뢰성이 엄격하게 공인된 기업들만 참여할 수 있습니다.
SSL 인증서 내용
1. 서비스의 정보 (인증서를 발급한 CA, 서비스의 도메인 등등)
2. 서버 측 공개키 (공개키의 내용, 공개키의 암호화 방법)
SSL 인증서 발급
- CA기관 비교
TOP5 글로벌사인(GlobalSign) 인증기관
2006년 10월 GMO 인터넷 그룹에 인수되어 디지털 인증서 시장에서 가장 경험이 풍부하고 높은 능력을 갖춘 인력들로 구성된 전문인증기관 입니다. 글로벌사인(GlobalSign)은 광범위한 인증기관 서비스를 수립하고 운영하는 책임을 수행하면서 기업방향의 혁신 및 고객중심의 새로운 서비스를 선보이고 있습니다. 기본으로 강제256bit의 인증서를 선보이면서 유럽시장 1위를 기록하고 있습니다.
TOP5 지오트러스트(GeoTrust) 인증기관
세계에서 3번째로 큰 인증기관이었으며, 2003년 베리사인(VeriSign)에 인수 합병 되어 베리사인(VeriSign)의 자회사로 편입 되어 있습니다.
TOP5 COMODO CA
1998년부터 웹사이트 및 웹 사용자가 인터넷을 안전하게 사용할 수 있도록 SSL인증서 및 테스크탑 보안 제품을 제공하고 있습니다. 현재 약 100만명의 고객을 유치하고 있으며, 세계 각국에 사무소를 두고있습니다.
TOP5 써트(Thawte) 인증기관
웹의 초기시절인 1997년부터 CA서비스를 전세계 최초로 실시한 인증기관으로 저렴한 가격과 간편한 기업확인 절차를 통해 인증서를 발급 하는 곳으로 유명 합니다.
1999년 12월에 베리사인(VeriSign)으로 인수 합병되면서 베리사인(VeriSign)의 자회사로 편입되었습니다. 중저가형에 속하는 써트(Thawte)인증서는 CodeSign 인증서와 함께 높은 판매율을 기록하고 있습니다.
VeriSign SSL인증서
높은 브랜드 인지도를 자랑하며, 1999년 Thawte INC.를, 2006년 하반기에 GeoTrust INC.를 인수 합병하였습니다. 철저한 인증심사로 높은 신뢰도를 주는 브랜드라는 장점을 가지고 있습니다.
2010년 Symantec 에 인수되어 VeriSign / GeoTrust / Thawte 모두 Symantec 계열사 입니다.
금융결제원(KFTC)
우리나라 금융산업의 핵심 인프라인 지급결제시스템을 구축 운영함으로써 사원은행 및 이용고객에게 다양하고 편리한 지급결제서비스를 제공하는 전문기관입니다.
2008년 2월부터 Yessign 공인인증센터를 설립하여 운영함으로써, 국산 SSL 웹서버인증서 및 CodeSign 인증서를 발급하고 있으며, 2010년 부터 WildCard 및 Global인증서를 함께 판매하고 있습니다.
참고 문서
728x90'Computer Science > CS' 카테고리의 다른 글
[CS] 정규 표현식 Regular Expression, Regex (0) 2023.01.19 [CS] Graph, Tree (0) 2022.11.28 [CS] 동기 비동기 프로그래밍 (0) 2022.09.07 [CS] Windows kernel programming (0) 2022.09.07 [CS] 운영체제(OS, Operating System) (0) 2022.05.10