내 Application Load Balancer의 보안 정책에는 RSA 및 ECDSA 암호가 나열되어 있습니다. 하지만 로드 밸런서에 연결하면 RSA 암호만 선택된 것으로 표시됩니다.
간략한 설명
여러 인증서로 Application Load Balancer HTTPS 리스너를 구성할 수 있습니다. 하지만 보안 정책이 필요합니다. 각 보안 정책에는 RSA 및 ECDSA 암호화 알고리즘에 대한 암호가 포함되어 있습니다. TLS 핸드셰이크 중에 Application Load Balancer는 선택 프로세스 로직을 사용하여 HTTPS 연결에 사용할 Application Load Balancer 인증서를 결정합니다. 선택한 인증서가 RSA 또는 ECDSA(타원 곡선) 키로 생성된 경우 Application Load Balancer는 암호화에 RSA 또는 ECDSA 암호를 사용합니다.
해결 방법
Application Load Balancer와 함께 ECDSA 암호를 사용하려면 다음 단계를 완료합니다.
새 ECDSA 인증서를 생성하거나 ACM으로 가져와서 HTTPS 리스너에 바인딩합니다.
새 ECDSA 인증서 생성
먼저 인증서 요구 사항을 결정합니다. 그런 다음 AWS Certificate Manager(ACM)에서 ECDSA 인증서를 요청합니다.
ECDSA 인증서를 ACM으로 가져오기
인증 기관과 협력하여 도메인의 ECDSA 인증서를.pem 형식으로 받은 후 새 ECDSA 인증서를 ACM으로 가져옵니다.
ECDSA 인증서를 생성하거나 ACM으로 가져온 후 인증서를 Application Load Balancer에 연결합니다.
(선택 사항) 로드 밸런서의 TLS 리스너에 지원되는 암호가 있는지 테스트합니다.
어떤 프로토콜과 암호가 사용되는지 테스트하려면 sslscan과 같은 오픈 소스 명령줄 도구를 사용합니다.
참고: sslscan을 사용하면 추가 타사 유틸리티를 사용하지 않고도 모든 암호에 대한 전체 정보를 얻을 수 있습니다. 예를 들어 curl을 사용하는 경우 개별 암호 제품군을 지정해야 합니다. 여기에는 TLS 프로토콜과 암호 제품군을 지정하는 별도의 curl 요청이 필요합니다.
모든 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스 또는 로컬 시스템에서 sslscan 명령을 설치하고 실행할 수 있습니다. 테스트하려는 로드 밸런서가 소스 IP 주소의 TLS 연결을 수락하는지 확인합니다.
Amazon Linux EC2 인스턴스에서 sslscan을 사용하려면 다음 단계를 완료합니다.
1. Extra Packages for Enterprise Linux(EPEL) 리포지토리를 활성화합니다.
2. Amazon EC2 Linux 인스턴스에 sslscan을 설치합니다.
sudo yum install sslscan
3. 지원되는 암호에 대해 Application Load Balancer를 스캔하려면 다음 명령을 실행합니다. example.com을 자신의 도메인 이름으로 바꿉니다.
[ec2-user@ ~]$ sslscan --show-ciphers example.com | grep Accepted
다음은 Application Load Balancer에서 취약성 검사를 실행한 결과를 보여주는 예제 출력입니다. 이 예에서 로드 밸런서는 P-256 ECDSA 인증서와 기본 보안 정책을 사용합니다.
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 보안 정책을 검토하고 업데이트합니다.