SSL(Secure Socket Layer) / TLS(Transport Layer Security)
•
전송 계층에서 보안을 제공하는 프로토콜
•
클라이언트와 서버가 통신할 때 제3자가 메시지를 도청하거나 변조하지 못하도록 함
•
보안 세션을 기반으로 데이터를 암호화하며 보안 세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용된다.
SSL/TLS 의 역사
•
최초 제안 : 넷스케이프 사
◦
버전 : SSL v1.0 (1994.7), SSL v2.0 (1994.12), SSL v3.0 (1996.11)
◦
SSL v3.0은 그 당시 사실상의 웹 보안 표준이었음
1999년 SSL이 국제 인터넷 표준화 기구(IETF)를 통해 SSL 3.0에서 TLS 1.0으로 이름이 바뀌게 되었다. 따라서 SSL 및 TLS는 본질적으로 같으며 버전이 다른 정도이다.
보안 세션
•
보안이 시작되고 끝나는 동안 유지되는 세션을 말한다.
•
SSL/TLS는 핸드셰이크를 통해 보안 세션을 생성하고 이를 기반으로 상태 정보 등을 공유한다.
◦
사이퍼 슈트 전달
◦
서버 - 사이퍼 슈트의 암호와 알고리즘을 제공할 수 있는지 확인
◦
인증 메커니즘 시작
◦
상호 암호화 통신 시작
사이퍼 슈트
•
SSL/TLS 에서 사용하는 암호화 알고리즘들의 결합
•
일반적으로 네 가지 컴포넌트로 구성
◦
키 교환 알고리즘
▪
클라이언트와 서버 사이에 비밀 키를 안전하게 교환하기 위해 사용되는 알고리즘
▪
ex : RSA, DHE, ECDHE
◦
디지털 서명 알고리즘
▪
서버의 디지털 인증서를 검증하기 위해 사용되는 알고리즘
▪
ex : RSA, ECDSA, DSA
◦
대칭키 암호화 알고리즘
▪
실제 데이터를 암호화하기 위해 사용되는 알고리즘
▪
ex : AES, ChaCha20
◦
메시지 인증코드 알고리즘
▪
데이터 무결성을 검증하기 위해 사용되는 알고리즘
▪
ex : SHA256, SHA384
인증 메커니즘
•
CA에서 발급한 인증서를 기반으로 이루어진다.
◦
해당 서버의 공개키, 소유자 정보, 인증 기관의 디지털 서명을 포함
암호화 알고리즘
•
대수곡선 기반의 ECDHE, 모듈식 기반의 DHE를 사용
◦
둘 다 디피-헬만 방식을 근간으로 만들어짐
디피-헬만 키 교환 암호화 알고리즘
해싱 알고리즘
•
데이터를 추정하기 힘든 더 작고, 섞여 있는 조각으로 만드는 알고리즘
•
데이터를 고정된 길이의 고유한 값, 즉 ‘해시 값’ 으로 변환하는 방법
SHA-256
•
해시 함수의 결괏값이 256인 알고리즘
•
비트 코인을 비롯한 많은 블록체인 시스템에서도 사용