웹 브라우저에서 설정한 TLS 암호화 방식에 따른 ELB 접속에 대해
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 웹 브라우저에서 설정한 TLS 암호화 방식에 따른 ELB 접속에 대해 정리해 봤습니다.
TLS 암호화
TLS는 Transport Layer Security의 약자로 인터넷에서 데이터를 주고 받을 때 이 데이터를 보호하기 위한 암호화 프로토콜을 의미합니다.
TLS의 여러 암호화 방식 중에서 DES와 AES를 살펴보도록 하겠습니다.
DES는 Data Encryption Standard의 약자로 대칭 키 암호화 알고리즘으로, 암호화와 복호화에 동일한 키를 사용합니다. 이 키를 아는 사람만이 암호화된 데이터를 복호화할 수 있습니다. 하지만, DES에 취약점이 발견되어 이러한 취약점을 보완하고자 2DES, 3DES와 같은 암호화 알고리즘이 등장했습니다. 2DES, 3DES는 DES 처리를 두 번, 세 번 반복하여 안정성을 높이는 암호화 방식입니다. 여기서 3DES는 암호화 자체를 세 번 반복하는 것이 아닌, 암호화 → 복호화 → 암호화를 반복하는 것입니다.
하지만 이러한 3DES도 취약점이 존재하기 때문에 현재는 AES 암호화 방식을 사용하고 있습니다. AES는 Advanced Exception Standard의 약자로 DES보다 훨씬 긴 키를 사용하며, 더 높은 안정성을 제공합니다. 이러한 이유로 AES가 현재 가장 널리 사용되는 대칭키 암호화 알고리즘입니다.
AWS에서는?
AWS에서는 TLS 버전에 따라 여러 암호화 방식을 지원하고 있습니다.
현재는 TLS 1.3 버전의 보안 정책을 사용하는 것을 권장하고 있습니다.
- ELBSecurityPolicy-TLS13-1-2-2021-06
ELB를 선택하면 리스너의 보안 정책에서 상기 보안 정책이 디폴트로 선택됩니다.
TLS 설정에 따른 접속
현재 인터넷 옵션 혹은 웹 브라우저의 설정에 따라 선택해야 할 TLS 보안 정책이 달라지게 됩니다.
예를 들어 현재 서버가 DES를 지원하는 TLS 1.0을 사용하고 있지만, ELB에서는 DES를 지원하지 않는 TLS 1.3 버전의 보안 정책을 설정하고 있습니다.
이런 상황에서 접속이 가능할까요?
TLS 1.0 설정
먼저 윈도우 서버에서 TLS 1.0만을 사용하도록 인터넷 옵션을 설정합니다.
ELB에서는 TLS 1.3 버전의 보안 정책인「ELBSecurityPolicy-TLS13-1-2-2021-06」를 설정합니다.
이어서 ELB로 접속해 보면 TLS 버전 문제로 접속이 불가능하다는 에러 메시지가 표시됩니다.
서버가 오래되어 TLS 1.0 이외에는 선택할 수 없는 상황이라면 해당 서버에서 ELB로의 액세스는 불가능한 걸까요?
AWS 공식 문서를 살펴보면「ELBSecurityPolicy-TLS-1-0-2015-04」에서만 DES 암호화 방식을 허용하고 있는 보안 정책이 있다는 것을 확인할 수 있습니다.
이번에는 보안 정책을「ELBSecurityPolicy-TLS-1-0-2015-04」정책으로 수정합니다.
접속을 시도해 보면, 성공적으로 웹 페이지가 표시되는 것을 확인할 수 있습니다.
ELB를 생성할 때 보안 정책의 경우 별다른 설정 없이 생성을 진행했었는데, 접속하고자 하는 서버에서 어떤 TLS를 허용하고 있는지 확인하는 것도 중요한 것 같습니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.