WPA2-PSK の代替: WPA3-SAE

第 1 章 概要  

  2018 年 10 月 3 日、802.11 ax は新世代の WLAN (ワイヤレス ローカル エリア ネットワーク) 標準、つまり Wi-Fi 6 として正式に定義されました。IEEE 802.11ax 規格に基づいて、Wi-Fi 6 は最大物理レートを 9.6Gbps [1] に高め、全体的な効率を向上させます。また、双方向 MU-MIMO テクノロジーと OFDMA (直交周波数分割多元接続) テクノロジーを導入することで、スループットと電力効率を効果的に向上させ、デバイス間のノイズの相互作用を低減します。

  ネットワークの機能強化に加えて、Wi-Fi 6 には、個人および企業のネットワーク セキュリティのための重要なセキュリティの機能強化、つまり WPA3 も搭載されています。2020 年 7 月 1 日以降、すべての Wi-Fi Alliance 認定デバイスは WPA3 をサポートする必要があります。

  WPA3 が登場する前は、さまざまな Wi-Fi デバイスで一般的に使用されていたセキュリティ プロトコルは WPA2 でした。しかし、10 年以上の研究を経て、WPA2 には複数の脆弱性があることが関連分野の専門家や学者によって指摘されています。攻撃者はこれらの脆弱性を利用して、認証解除攻撃、オフライン辞書攻撃、KRACK(キー再インストール攻撃)などのさまざまな攻撃を容易に実行できます。これらの攻撃手法の出現は、WPA2 がもはや安全ではないことを意味し、Wi-Fi ネットワークのセキュリティも大多数のユーザーによって疑問視されています。

  Wi-Fi テクノロジーの前例のない大規模なアプリケーション量とアプリケーション シナリオを考慮して、膨大な数の Wi-Fi アプリケーション分野とユーザーのプライバシーと通信セキュリティを確保するために、Wi-Fi Alliance は新世代の2018 年の Wi-Fi 暗号化技術 WPA3 (Wi-Fi Protected Access 3) では、WPA3 のパスワード アルゴリズムが 192 ビット CNSA レベルのアルゴリズムにアップグレードされ、SAE (Simultaneous Authentication of Equals) ハンドシェイク プロトコルが導入されて、辞書のブルートフォースクラッキングを困難にし、前方機密性を提供します。

  最新のワイヤレス ネットワーク セキュリティ プロトコルとして、WPA3 には重要な研究価値があります。一部の研究文献では WPA3 のセキュリティ上の脆弱性がいくつか指摘されていますが、WPA3 に関する国内の研究は主にセキュリティ上の利点の簡単な説明と分析に焦点を当てており、セキュリティ上の脆弱性に関する分析はほとんどありません。技術の進歩に伴い、WPA3 をサポートする無線ネットワーク デバイスが増えてきており、近い将来、WPA3 技術は急速に普及するため、WPA3 のセキュリティ保護に関する研究が急務となっています。

第 2 章WPA3-SAE プロトコルの概要

  SAE ハンドシェイクは、RFC 7664 [4] の Dragonfly キー交換プロトコルの変形であり、WPA3 と WPA2 の主な違いでもあります。WPA3-SAE は、WPA2 で使用されているオープン システム認証を置き換えるために、従来の 4 ステップ ハンドシェイクの前に SAE ハンドシェイクを追加します。キーをインストールするための SAE ハンドシェイクでは 4 つの情報交換があり、最初の 2 つはコミット フェーズ、最後の 2 つは確認フェーズです。SAE の 4 ステップ ハンドシェイクが成功すると、STA と AP はハンドシェイク内の情報を使用して高エントロピー マスター キー PMK を生成し、後続の通信データを保護します。SAE ハンドシェイクは、オフライン辞書攻撃に抵抗できるだけでなく、良好な前方秘匿性も提供します。SAE ハンドシェイクの基本原理を図 2-1 に示します。

図 2-1 SAE ハンドシェイク

  SAE ハンドシェイクの具体的なプロセスと関連するセキュリティ メカニズムについては、次のコンテンツで詳しく紹介します。

2.1 SAEハンドシェイク鍵交換プロセス

1. キー要素 P を生成する

  SAE ハンドシェイクは、ECC (楕円曲線離散対数暗号) と FFC (素数モジュロ乗法群による有限体暗号) を使用してキー要素 P を生成する 2 つの方法をサポートします。以下では、ECC (Elliptic Curve Discrete Logarithmic Crypto) を例として、鍵要素 P の生成プロセスを紹介します。対話当事者がコミットフェーズに進む前に、キー要素 P を生成する必要があります。両者は、PSK(事前共有鍵)を計算により楕円曲線上の有効な点に変換し、この有効な点を鍵要素Pと呼びます。

  キー要素 P は Dragonfly キー交換から取得され、その生成条件は次のとおりです。

  • 帯域外メカニズムで双方によって確立された共有キー PSK。

  •同じドメインパラメータセットをネゴシエートしました。

  • 双方の MAC アドレス。

  生成プロセス: キー要素 P の生成プロセスは、トンボの鍵交換における狩猟とつつき技術に由来しています。まず、双方のMAC、インクリメンタルカウンタCounter、事前共有鍵PSKを用いてハッシュ計算を行い、ハッシュ計算の結果をSeedの入力として使用します。シードを取得した後、シードをキー導出関数 KDF の入力として使用し、キー導出関数 KDF を使用して楕円曲線上の可能な点の x 座標を計算します。この x 座標を楕円曲線方程式に入力し、y 値をチェックして方程式内に有効な解があるかどうかを確認すると (点 (x, y) は方程式を満たし、楕円曲線上に有効な点が生成されます)、インクリメント カウンター Counter が 40 より大きい場合 (サイド チャネル攻撃とタイミング攻撃に抵抗するため)、キー要素 P は (x, y) です。それ以外の場合は、Counter をインクリメントし、新しく生成された Seed を使用して y を見つけようとします。

アルゴリズム 1: キー要素 P の生成

見つかった=0

カウンタ=1

長さ=レン(p)

ベース=パスワード

する{

       pwd-seed=ハッシュ(MAX(A-MAC,B-MAC)||MIN(A-MAC,B-MAC)),ベース||カウンター)

       pwd-value=KDF (pwd-seed,"SAE 狩猟とつつき",p)

       if (pwd-value<p)

       それから

              (pwd-value+a×pwd-value+b) が二次剰余モジュール p の場合

              それから

                     x=パスワード値

                     保存=パスワードシード

                     見つかった=1

                     Base=新しい乱数

       カウンタ+=1

}while((counter≤k)or(found==0))

  で:

  ・ハッシュ:ハッシュ関数

  ・KDF:鍵導出関数

  ・記号 G は群の母関数を表し、記号 q は G 関数の次数を表します。

  •素数 p は素数体 GF(p) を決定し、楕円曲線は方程式を次のように定義します。

  y 2 = x 3 +ax+b mod p

   a、b、p の値は使用する楕円曲線によって異なります。

  •点 (x, y) については、0<x<p、0<y<p、x と y が方程式 y 2 = x 3 +ax+b mod p を満たす必要があり、生成される点は a です。曲線上の有効な点 (つまり、その点は無限遠の点ではありません) 上記の要件が満たされる場合、点 (x, y) は有効であると見なされます。(検証プロセスについてはアルゴリズム 2 を参照)

アルゴリズム 2: 有効なポイントの検証

y=sqrt(x3+ax+b) mod p

if (LSB(保存)==LSB(y))

それから

PWE=(x,y)

それ以外

PWE=(x,py)

  生成されたキー要素 P は、次のコミット フェーズで特定のキー情報を生成するために使用されます。

  対話当事者がそれぞれアリスとボブであると仮定すると、SAE 対話プロセスが図 2-2 に示されます。

図 2-2 SAE 対話プロセス

2. コミットステージ

  SAE ハンドシェイクでは、対話に参加している任意の当事者が認証要求をアクティブに開始できます。ただし、実際の無線ネットワーク対話プロセスでは、通常、STA が認証要求を開始します。アリスとボブの間の対話を例にとると、アリスは認証リクエストを発行し、乱数 rA∈[2,q-1] とランダムに生成されたマスク mA∈[2,q-1] を使用して SA スカラーを生成し、 EA要素。生成プロセスは次のとおりです。

  SA=rA+mAmod q

  EA=-mA*P

  Alice在生成标量SA与元素EA之后随即将掩码mA进行不可逆地删除,并自动将标量SA与元素EA通过一个Commit(提交)帧(如图2-3所示)发送给Bob。

图2-3 Commit帧

  Bob在接收到Commit帧之后首先验证接收到的标量SA是否在有效范围[2,q-1]内,元素EA是否是椭圆曲线上的有效点,并据此判断元素EA是否包含非负整数和任何小于P的坐标。只要其中有一项被验证失败,握手将立刻被中止。基于椭圆曲线离散对数难解问题,仅通过给定的密钥元素P与元素EA无法逆向计算求出掩码mA。同样的,通过给定的q与标量SA也无法逆向计算求出rA+mA。

  Bob用同样的方法利用随机数rB与掩码mB计算标量SB与元素EB后将掩码mB进行不可逆删除,并将标量SB与元素EB通过一个Commit帧发送给Alice。Alice验证通过后,双方计算出密钥点K。

  K=rA•(SBP+EB= rB•(SAP+EA =rA rBP

三、 Confirm(确认)阶段

  交互双方分别计算出密钥点K后,Alice将密钥点K对应的x坐标经过哈希运算后得到密钥κ,同时通过SA、SB、EA、EB计算握手概要值tr,Alice使用密钥κ对trA进行哈希变换生成cA,并通过一个Confirm帧(如图2-4所示)发送给Bob进行验证。Alice的计算过程如下:

  κ=Hash(K)

  trA=SAEASBEB

  cA=HMAC(κ,tr)

  Bob收到握手包后,用计算求出的κ和trA进行哈希运算,将哈希结果与cA进行对比,如一致则表示验证通过,否则表示验证失败,终止SAE握手。

图2-4 Confirm帧

  Bob用同样的方法生成trB和κ,用κ对trB进行哈希计算得到cB,通过一个Confirm帧发给Alice验证。双方验证成功无误后,用κ作为PMK主密钥值,进行传统的四步握手生成会话密钥PTK和组密GTK进一步保护通信双方的数据。

  在SAE握手包中,字段Authentication Algorithm(认证算法),使用SAE时字段值为3。字段Status Code(状态码)为0时表示成功,1-107分别表示不同原因的故障,107-65535为保留值。字段Authentication SEQ(认证序列号)为1表示Commit帧,2表示Confirm帧,2-65535保留。字段Group ID表示加密组号,在SAE握手中,交互双方会首先通过字段Group ID协商有限循环组的特定域参数集,并根据双方协商的参数集进行下一步交互,目前19组为唯一强制要求实现的组,所有WPA3设备都必须支持19组。Commit帧中Anti_clogging_token(防阻塞令牌)的作用将在2.3节中具体介绍。Commit帧中Scalar、Finite Field Element分别代表标量S和元素E,是握手中用于产生密钥的必要字段。Confirm帧中Send-confirm字段是已经发送的Confirm帧的计数器,其值在1-65535之间。Confirm帧中Confirm字段是用于判断密钥是否正确推导的必要字段。

  图2-5为SAE握手交互过程。

图2-5 SAE握手交互过程

2.2 PMF管理帧保护

  PMF(Protected Management Frame)管理帧保护通过添加安全关联保护机制来防止连接的STA受到取消关联攻击。这个机制包括关联恢复时间和SA(安全关联)查询两个部分,在完成四步握手后生效。PMF管理帧保护的工作机制如下:

  四步握手成功后,受到PMF保护的STA与AP会协商并建立一个IGTK组播密钥来保护解除认证和取消关联帧等管理帧以抵御取消关联攻击。

  以取消关联帧为例,假设一个连接状态的STA收到来自攻击者的未加密的取消关联帧,它并不会直接删除安全关联SA而是会自动发送一个加密的SA查询请求给AP以验证这个取消关联帧的真伪。这个加密的SA查询请求由4个字节的加密数据和8个字节的MIC组成,以确保SA查询中的关键信息不被第三方获取。在发送完SA查询之后STA会在指定时间内等待AP响应,如果STA在指定时间内收到了来自AP加密的回复,STA则会忽略攻击者发送的取消关联帧。

  PMF能够有效地保证特定管理帧的来源是真实并可信的,同时有效地抵御取消关联类型的拒绝服务攻击。

2.3 WPA3-SAE中的防阻塞机制

  从SAE握手步骤中可以看出,AP在接收Commit请求帧(即握手的第一条消息)时执行计算开销很大的操作,这为拒绝服务攻击(Dos)留下了可乘之机。为了降低这种风险,SAE包含了一个防阻塞机制(Anti-Clogging Mechanism),其中包括一个简单的防阻塞令牌交换过程。[6]该防御在正在进行的连接数量达到或超过阈值后启动,即已经接收到第一条消息(STA发出的Commit请求帧)但尚未接收到第三条消息(STA发出的Confirm帧)的连接。防阻塞机制被激活后,AP收到STA发来的Commit请求帧后,会回复一个最多256字节的防阻塞令牌(anti_clogging_token)。这种防阻塞令牌由STA的MAC地址、AP的计数器和密钥使用SHA256算法计算生成。STA需要返回带有相同的防阻塞令牌(anti_clogging_token)的Commit请求帧,否则AP将拒绝Commit请求消息。因此,防阻塞机制可以防止攻击者使用伪造的MAC地址不断生成新的连接。然而,如果对手能够获得AP发送给某些MAC地址的防阻塞令牌,并随后使用相同的MAC地址将其包含在SAE Commit消息中,则防阻塞机制可能是不够的。触发防阻塞机制的阈值称为dot11RSNASAEAntiCloggingThreshold,这个阈值并不是一个固定值而是会根据每个AP的能力进行调整,其原理如图2-6所示。

图2-6 防阻塞机制(Anti-Clogging Mechanism)

  值得一提的是,在本章3节中的机制并不是所有的AP设备共同拥有的机制,AP设备所拥有的安全机制是由AP的生产厂商、AP的处理能力、AP的生产时间等多种因素共同决定的,在一部分AP设备中并没有观测到上述机制。

下面我将介绍WPA3-SAE中的安全隐患与安全优势,请大家继续关注

  

おすすめ

転載: blog.csdn.net/kerberos333/article/details/131116804