62. TLS - 보안의 기본 |
-
TLS(Transport Layer Security) 및 그 이전 버전인 SSL(Secure Socket Layer)은 인터넷에서 통신할 때의 인증 및 통신 암호화 장치이다.
TLS 나 SSL 라고 하면 암호화의 이미지가 강하지만 실제로 암호화 통신을 하는 데 있어서 가장 먼저 중요한 것은 통신이 신뢰할 만한지를 확인하는 프로세스이다.
통신 상대가 누군가를 가장하고 있다면 암호화를 해도 결국 정보는 유출되기 때문이다.
-
TLS 는 처음에 핸드쉐이크 프로토콜이라고 해서 상대를 인증하기 위한 절차를 실행하는데, 이 절차 안에 서로의 상대가 갖고 있는 인증서를 받아 검증하는 스텝이 있다.
인증서가 신원이 맞는지는 인증서의 인증국이 보내오는 리스트와 대조함으로써 확인할 수 있다.
* TLS 의 중요성
-
TLS 이전 버전인 SSL 1.0 이나 SSL 3.0 에서는 보안상의 취약성이 있다고 알려져 있어 이 녀석들은 피하는 것이 좋다.
-
2013 년에는 오픈 소스인 SSL/TLS 구축인 OpenSSL 에 있어서 TLS 의 구축 방법 문제로 인해 한 쪽의 시스템상 메모리에서 암호화되지 않은 데이터를 참조할 수 있다는 Heartbleed 라는 취약성이 발견되었었다.
-
SSL 과 비교하여 TLS 는 보다 안전한 암호를 사용할 수 있게 되었다.
또 SSL 에 존재하던 취약성이 해결되는 등 보다 뛰어나다.
* 핸드쉐이크 프로토콜의 흐름
-
클라 : 저는 XX 라는 알고리즘을 사용할 수 있어요.
서버 : OK! 그걸로 합시다.
서버 : 우리 인증서를 보냅니다.
클라 : 인증서를 검증하고, 프리 마스터 키를 생성하여 서버의 공개키로 암호화해서 보낼께요. 그리고 프리 마스터키를 사용하여 암호화에 필요한 공통키를 생성할께요.
서버 : 프리 마스터 키를 복호화. 프리 마스터키를 사용하여 암호화에 필요한 공통키를 생성했어요. 우리도 준비가 되었어요.
통신 시작!
-
프리 마스터키는 랜덤으로 생성되는 숫자이다.
이 데이터를 서버와 클라이언트가 공유함으로써 둘 밖에 모르는 공통키를 생성할 준비를 한다.
'프로그래밍 놀이터 > 보안' 카테고리의 다른 글
[도서 정리] 64. 방화벽 - 보안의 기본 (0) | 2019.12.13 |
---|---|
[도서 정리] 63. 코드 서명 - 보안의 기본 (0) | 2019.12.12 |
[도서 정리] 61. AES - 보안의 기본 (0) | 2019.12.10 |
[도서 정리] 60. 공개키 암호 방식 - 보안의 기본 (0) | 2019.12.09 |
[도서 정리] 59. 공통키 암호 방식 - 보안의 기본 (0) | 2019.12.08 |
댓글