ALB/NLBが ポスト量子鍵共有 (Post-Quantum Key Exchange)をサポートしました。

ALB/NLBが ポスト量子鍵共有 (Post-Quantum Key Exchange)をサポートしました。

2025年11月、AWSのALB/NLBがポスト量子鍵共有をサポート。ML-KEM768による量子耐性暗号化を採用し、HNDL/SNDL攻撃から保護します。ハイブリッド鍵共有により既存クライアントとの互換性も維持した利用が可能です。
2025.11.23

2025年11月、Application Load Balancer (ALB) および Network Load Balancer (NLB) において、ポスト量子鍵共有 (Post-Quantum Key Exchange) をサポートするアップデートがありました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/11/network-load-balancers-post-quantum-key-exchange-tls/

量子コンピュータの実用化はまだ先とされていますが、現在の暗号化された通信データを盗聴・保存、将来高性能な量子コンピュータが登場した際に解読する、HNDL (Harvest Now, Decrypt Later) / SNDL (Store Now, Decrypt Later)攻撃がリスクとなるとされています。

https://aws.amazon.com/jp/security/post-quantum-cryptography/

ALB、NLB が 量子コンピュータでも解読が困難とされる新しい暗号方式(ポスト量子暗号)をサポートしたことで、将来データが解読されるリスクに備えることが可能になりました。

今回は、ポスト量子暗号をサポートした ALBとNLBを Cloudformationで作成し、実際にブラウザからの接続で利用できる事を試す機会がありましたので、紹介します。

検証環境

構成図

構成図

ALB

ポスト量子暗号サポートを示す「PQ」を含む 「ELBSecurityPolicy-TLS13-1-2-Res-PQ-2025-09」をセキュリティポリシーとして設定しました。

  Listener:
    Type: AWS::ElasticLoadBalancingV2::Listener
    Properties:
      LoadBalancerArn: !Ref LoadBalancer
      Port: 443
      Protocol: HTTPS
      Certificates:
        - CertificateArn: !Ref CertificateArn
      SslPolicy: ELBSecurityPolicy-TLS13-1-2-Res-PQ-2025-09 
  • マネジメントコンソールで「PQ」サポート、ポスト量子TLSの一覧から(推奨)と案内されていた 「ELBSecurityPolicy-TLS13-1-2-Res-PQ-2025-09」を利用しました。

セキュアリスナーの設定

ポリシー名の選択リスト

ACM (AWS Certificate Manager)

TLS/SSL 証明書は、キーアルゴリズム 「ECDSA P 256」 で作成したものを利用しました。

CloudFormation

以下のテンプレートを使用して、検証用ALBとEC2を構築しました。

検証環境作成テンプレート (クリックして展開)
AWSTemplateFormatVersion: '2010-09-09'
Description: 'ALB Post-Quantum TLS Test Environment (ARM64/T4g)'

Parameters:
  VpcId:
    Type: AWS::EC2::VPC::Id
    Description: Default VPC ID

  SubnetIds:
    Type: List<AWS::EC2::Subnet::Id>
    Description: Select at least 2 Public Subnets

  CertificateArn:
    Type: String
    Description: ACM Certificate ARN for HTTPS Listener
    Default: arn:aws:acm:ap-northeast-1:********:certificate/****-***-***-***-******
    AllowedPattern: "arn:aws:acm:.*"

  LatestAmiId:
    Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
    Default: /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64

Resources:
  # Security Group
  ALBSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Allow HTTPS
      VpcId: !Ref VpcId
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 443
          ToPort: 443
          CidrIp: 0.0.0.0/0

  EC2SecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Allow HTTP from ALB
      VpcId: !Ref VpcId
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          SourceSecurityGroupId: !Ref ALBSecurityGroup

  # EC2 Instance
  TargetInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref LatestAmiId
      InstanceType: t4g.nano
      SecurityGroupIds:
        - !Ref EC2SecurityGroup
      SubnetId: !Select [0, !Ref SubnetIds]
      UserData:
        Fn::Base64: !Sub |
          #!/bin/bash
          yum update -y
          yum install -y httpd
          systemctl start httpd
          systemctl enable httpd
          echo "<h1>Post-Quantum TLS Test (ARM)</h1>" > /var/www/html/index.html
      Tags:
        - Key: Name
          Value: ALB-PQ-Target-ARM

  # Target Group
  TargetGroup:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Properties:
      Name: alb-pq-test-tg
      Port: 80
      Protocol: HTTP
      VpcId: !Ref VpcId
      Targets:
        - Id: !Ref TargetInstance

  # ALB
  LoadBalancer:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Properties:
      Name: alb-pq-test
      Scheme: internet-facing
      SecurityGroups:
        - !Ref ALBSecurityGroup
      Subnets: !Ref SubnetIds

  # HTTPS Listener with PQ Policy
  Listener:
    Type: AWS::ElasticLoadBalancingV2::Listener
    Properties:
      LoadBalancerArn: !Ref LoadBalancer
      Port: 443
      Protocol: HTTPS
      Certificates:
        - CertificateArn: !Ref CertificateArn
      SslPolicy: ELBSecurityPolicy-TLS13-1-2-Res-PQ-2025-09 
      DefaultActions:
        - Type: forward
          TargetGroupArn: !Ref TargetGroup

接続確認

Chrome

Google Chrome、バージョン 142.0.7444.176(Official Build) (arm64)の開発者ツールを利用して、確認を試みました。

Connection - secure connection settings の欄で、 MLKEM768: NISTが標準化した耐量子暗号アルゴリズム(Module-Lattice-Based Key-Encapsulation Mechanism, 旧Kyber)が利用されている事が確認できました。

Chrome開発ツールで確認

SSL Labs

SSL LabsのSSL Server Test でも確認を試みました。

SSL_Labs_確認

2025年11月時点の SSL Server Testは、耐量子暗号アルゴリズム(PQ)を未サポート、PQの接続は確認できませんでした。

SSL_Labs_確認_X25519

しかし、X25519(従来の楕円曲線暗号)を利用した接続については成功しており、その評価も「A」。PQをサポートしない既存のクライアントからも問題なくアクセスできる事は確認できました。

まとめ

ALB/NLBのセキュリティポリシーを変更するだけで、HNDL/SNDL攻撃への対策が可能になりました。 金融、医療、公共システムなど、情報の機密性を数年〜数十年単位で守る必要があるシステムでは、導入を検討する価値があると思われます。

ハイブリッド鍵共有を利用することによるパフォーマンスへの影響は、TLSハンドシェイク時のメッセージサイズが1KB程度増加する点のみです。利用される ML-KEM(格子暗号)は、従来のRSAや楕円曲線暗号に比べて計算自体は非常に高速であり、ELBやブラウザのCPUリソース消費への影響は微小とされています。

今後、HNDL/ SNDL 攻撃に備えた対策が求められた場合、今回サポートされたポスト量子鍵共有(PQ)ポリシーを、ALB/NLBで利用する事をご検討ください。

この記事をシェアする

FacebookHatena blogX

関連記事