TLS 1.3 에 대해 발표 준비를 해야해서
환경 구축부터, 기본 개념, 기존 TLS 들과의 차이를 조사하다보니 양이 꽤 나오게 되었다.
공부한 흐름대로 정리해서 포스팅을 쭉 해보고자 한다.
TLS (Transport Layer Security ) 란,
TLS 라는 명칭이 사용되기 전에는 SSL (Security Sockets Layer) 로 사용되던 명칭이다.
이름에서도 어떤 프로토콜인지 알 수 있듯,
네트워크 상의 통신 보안을 제공하는 암호 프로토콜이다.
TCP/IP 네트워크 통신의 전송 계층 종단간 보안과 데이터 무결성 등을 보장해준다.
한마디로, 네트워크 망의 전송 계층에서 무결성 및 기밀성을 보장해주기 위해 사용하는 암호 프로토콜이라고 정리할 수 있다.
좀만 더 구체적으로 보면,
TLS 는 이 세가지 보안 목표를 달성하기 위해 사용된다.
통신을 하는 두 종단을 각각 앨리스와 밥, 중간에 도청을 시도하는 자를 이브라고 하자.
- 인증성 (Authenticity) : 앨리스와 쪽지를 주고 받는 상대가 밥임을 인증하기 위해
- 기밀성 (Confidentiality) : 앨리스와 밥, 서로만이 쪽지를 읽을 수 있고, 이브는 불가능하게 하기 위해
- 무결성 (Integrity) : 앨리스가 쓴 쪽지가 중간에 변경되지 않았음을 보장하기 위해
위에서 살펴봤듯 TLS 는 암호화 및 무결성 통신을 보장해주기 때문에,
사용할 블록 암호 모드, 키합의 프로토콜 등의 암호화 기법 조합을 가지게 된다.
그리고 이 조합을 cipher suite 라고 하며, 다음과 같은 형태를 띈다.
TLS_{키 교환 알고리즘}_{인증 방법}_WITH_{암호화 기법}_{데이터 무결성 체크 방법}
- WITH 이후는 cipher spec
- 암호화 기법 : 대칭 암호 알고리즘, 암호키 길이, 블록 암호모드
- 데이터 무결성 체크 방법 : HMAC용 해시 알고리즘
EX> TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 의 경우,
- 키 교환 알고리즘 : DHE (Diffie-Hellman)
- 공개키 인증 방법 : RSA - 인증성
- 암호화 알고리즘 : AES - 기밀성
- 키 길이 : 256
- 블록 암호 모드 : CBC
- 무결성 체크 방법 : SHA256 - 무결성
이렇게 위에서 살펴본 세가지 보안 목표를 모두 만족하는 cipher suite 를 의미한다.
그렇다면 암호화 통신을 하기 전 상대방과 키를 교환하기 위해 사용되는 키 합의(교환) 프로토콜에는 어떤 것이 있을까 ?
1. RSA 키 합의 프로토콜
: 앨리스가 세션키를 생성한 후, 밥의 공개키로 암호화하고, 밥에게만 전달하면 밥은 자신의 개인키로 복호화
* 보안 이슈 존재
- 이브가 둘의 통신을 모두 기록해두었다가, 밥의 개인키를 언젠가 알아내기만 한다면 ?
- 세션키 획득이 가능해지고, 이로 인해 암호화 통신 스니핑이 가능
- 실제로 밥의 개인키가 유출될 수 있었던 버그가 바로 Heartbleed (CVE-2014-0160)
: 즉, 현재 뿐만 아니라 미래에 개인키가 유출되어도 안전한 순방향 비밀성 (Forward Secrecy) 이 보장되지 않음
- 순방향 비밀성 = 완전 순방향 비밀성 (Perfect Forward Secrecy, PFS)
따라서, 완전 순방향 비밀성을 보장해주는 프로토콜로, DHE 가 있다.
2. 디피-헬만 키 합의 프로토콜 (DHE)
DHE 에서는 앨리스와 밥이 일방향 함수를 사용하여 결론적으로 공통의 색을 만들어내는 것이 포인트이다.
1. 앨리스와 밥이 해당 통신에서 사용할 기저색을 공개적으로 선정 (노랑)
2. 앨리스와 밥은 그 기저색에 각각 비밀색을 혼합 (빨강, 청록)
3. 비밀색을 직접 전송하지 않고 혼합색을 전송 (주황, 하늘)
4. 이제 각자 받아온 혼합색의 각자의 비밀색을 혼합 (하늘 + 빨강 / 주황 + 청록)
5. 앨리스와 밥은 공통의 색을 가지게 됨 (브라운)
여기서 이브가 기저색, 혼합색을 가지고 있다 하더라도,
앨리스와 밥의 개인 비밀색이 없으면 공통의 색을 만들어낼 수 없고
또한 이후 이브가 비밀색을 알아낸다면 공통의 색을 만들어 낼 수 있기 때문에,
앨리스와 밥은 통신에 사용한 개인의 비밀색을 바로 버린다.
- 세션 키를 만드는데에 사용한 비밀키를 폐기하여, 이후 탈취가 불가하도록 하는 것
- 이로써 완전 순방향 비밀성(PFS)이 제공
이 외에 ECDH, SRP, PSK 등이 있고,
DHE 프로토콜을 이해하기 쉽게 잘 설명해둔 블로그가 있어 인용해온 것이므로
더 자세히 알아보고 싶다면 다음 블로그를 참고하자.
출처 : www.mobiinside.co.kr/2019/02/13/buzzvil-tls/
'NETWORK Security > 보안 프로토콜' 카테고리의 다른 글
TLS1.3 (6) - 환경 구축 (Nginx-2) (0) | 2020.12.29 |
---|---|
TLS1.3 (5) - 환경 구축 (Nginx-1) / nginx, openssl RPM update (0) | 2020.12.29 |
TLS1.3 (4) - 환경 구축 (Apache) (0) | 2020.12.29 |
TLS1.3 (3) - TLS1.3 과 기존 TLS 차이점 (0) | 2020.12.29 |
TLS1.3 (2) - SSL/TLS Handshake (1) | 2020.12.29 |