내 Application Load Balancer의 보안 정책은 RSA 및 ECDSA 암호를 나열합니다. 하지만 로드 밸런서에 연결하면 항상 선택된 RSA 암호가 표시됩니다. 로드 밸런서가 TLS 암호화를 위해 ECDSA 암호를 사용하게 하려면 어떻게 해야 합니까?
간략한 설명
Application Load Balancer HTTPS 리스너는 여러 인증서로 구성할 수 있지만 단일 보안 정책을 필요로 합니다. 각 보안 정책은 RSA 및 ECDSA 암호화 알고리즘에 대한 암호를 모두 포함합니다. TLS 핸드셰이크 중에 Application Load Balancer는 선택 프로세스 로직을 사용하여 HTTPS 연결에 사용할 Application Load Balancer 인증서를 결정합니다. 선택한 인증서가 RSA 또는 ECDSA(타원 곡선) 키를 사용하여 생성된 경우 Application Load Balancer는 암호화를 위해 RSA 또는 ECDSA 암호를 활용합니다.
참고: AWS Certificate Manager (ACM)에서 생성한 공인 인증서는 RSA 키를 사용합니다. 따라서 ACM 인증서를 사용하는 Application Load Balancer를 통한 암호화는 RSA 암호를 활용해야 합니다. 암호화에 ECDSA 암호를 활용하려면 ECDSA 서명 인증서를 ACM으로 가져와서 HTTPS 수신기와 연결해야 합니다.
해결 방법
Application Load Balancer와 ECDSA 암호를 함께 사용하려면 다음 단계를 수행하십시오.
새 ECDSA 인증서를 AWS 인증서 관리자로 가져와 HTTPS 리스너에 바인딩하기
CA(인증 기관)와 협력하여 PEM 형식의 도메인에 대한 ECDSA 인증서를 얻은 후 다음 단계를 수행합니다.
1. 새 ECDSA 인증서를 AWS 인증서 관리자로 가져옵니다.
2. 새로 가져온 ECDSA 인증서를 Application Load Balancer와 연결합니다.
(선택 사항) 로드 밸런서의 TLS 리스너에서 지원 암호를 테스트합니다.
사용할 프로토콜과 암호를 테스트하려면 sslscan 등의 오픈 소스 명령줄 도구를 사용합니다.
참고: sslscan을 사용하면 추가적인 타사 유틸리티를 사용하지 않고도 모든 암호에 대한 전체 정보를 얻을 수 있습니다. 예를 들어 cURL을 사용하는 경우, TLS 프로토콜 및 암호 모음을 지정하는 별도의 cURL 요청이 필요한 개별 암호 모음을 지정해야 합니다.
sslscan명령을 모든 Amazon Elastic Compute Cloud(Amazon EC2) 또는 로컬 시스템에서 설치 및 실행할 수 있습니다. 테스트하려는 로드 밸런서가 소스 IP 주소의 TLS 연결을 수락하는지 확인합니다.
Amazon Linux EC2 인스턴스에서 sslscan을 사용하려면 다음 단계를 수행하십시오.
1. EPEL(Extra Packages for Enterprise Linux) 리포지토리를 활성화합니다.
2. 다음 명령을 사용하여 Amazon EC2 리눅스 인스턴스에 sslscan을 설치합니다.
sudo yum install sslscan
3. 다음 명령 구문을 사용하여 Application Load Balancer에서 지원하는 암호를 검색하고, “example.com”을 도메인 이름으로 변경합니다.
[ec2-user@ ~]$ sslscan --show-ciphers example.com | grep Accepted
다음은 P-256 ECDSA 인증서 및 기본 보안 정책을 사용해 Application Load Balancer에서 취약성 검사를 실행한 결과를 보여주는 예제 출력입니다.
Accepted TLSv1 256 bits ECDHE-ECDSA-AES256-SHA
Accepted TLSv1 128 bits ECDHE-ECDSA-AES128-SHA
Accepted TLS11 256 bits ECDHE-ECDSA-AES256-SHA
Accepted TLS11 128 bits ECDHE-ECDSA-AES128-SHA
Accepted TLS12 256 bits ECDHE-ECDSA-AES256-GCM-SHA384
Accepted TLS12 256 bits ECDHE-ECDSA-AES256-SHA384
Accepted TLS12 256 bits ECDHE-ECDSA-AES256-SHA
Accepted TLS12 128 bits ECDHE-ECDSA-AES128-GCM-SHA256
Accepted TLS12 128 bits ECDHE-ECDSA-AES128-SHA256
Accepted TLS12 128 bits ECDHE-ECDSA-AES128-SHA
다음은 RSA 2048 인증서와 기본 보안 정책을 사용하는 로드 밸런서에 대한 취약성 검사의 출력 예시입니다.
Accepted TLSv1 256 bits ECDHE-RSA-AES256-SHA
Accepted TLSv1 256 bits AES256-SHA
Accepted TLSv1 128 bits ECDHE-RSA-AES128-SHA
Accepted TLSv1 128 bits AES128-SHA
Accepted TLS11 256 bits ECDHE-RSA-AES256-SHA
Accepted TLS11 256 bits AES256-SHA
Accepted TLS11 128 bits ECDHE-RSA-AES128-SHA
Accepted TLS11 128 bits AES128-SHA
Accepted TLS12 256 bits ECDHE-RSA-AES256-GCM-SHA384
Accepted TLS12 256 bits ECDHE-RSA-AES256-SHA384
Accepted TLS12 256 bits ECDHE-RSA-AES256-SHA
Accepted TLS12 256 bits AES256-GCM-SHA384
Accepted TLS12 256 bits AES256-SHA256
Accepted TLS12 256 bits AES256-SHA
Accepted TLS12 128 bits ECDHE-RSA-AES128-GCM-SHA256
Accepted TLS12 128 bits ECDHE-RSA-AES128-SHA256
Accepted TLS12 128 bits ECDHE-RSA-AES128-SHA
Accepted TLS12 128 bits AES128-GCM-SHA256
Accepted TLS12 128 bits AES128-SHA256
Accepted TLS12 128 bits AES128-SHA
Application Load Balancer에서 ECDSA 인증서를 올바르게 구성한 경우, 출력에 협상된 <ECDHE-ECDSA-*> 암호 그룹이 표시됩니다. 출력에 다른 암호 그룹이 표시되면 Application Load Balancer 보안 정책을 검토 및 업데이트하세요.