本稿ではIPA試験で必要とされる知識をまとめます。
暗号化方式とは
暗号化にまつわる最も抽象的な概念として,暗号化方式という言葉があります。暗号化方式はセキュリティプロトコルとも呼ばれ,具体的な暗号化の操作を定める暗号化アルゴリズム,誤りの検知・訂正を目指す完全性検証方式,接続元端末の確認を行う認証方式によって規定されます。
暗号化方式としては,WEP/TKIP/CCMP/GCMPが存在します。
WEP | TKIP | CCMP | GCMP | |
---|---|---|---|---|
暗号化アルゴリズム | RC4 | RC4 | AES-CCMP | AES-CCMP AES-GCMP |
完全性検証方式 | CRC32 | Michael | CBC-MAC | GMAC |
認証方式(Personal) | Open/PSK | PSK | PSK | SAE |
認証方式(Enterprise) | - | EAP(802.1x) | EAP(802.1x) | EAP(802.1x) |
WEPの認証方式には,PersonalとEnterpriseという区分けは存在しません。また,Openは認証を行わない方式のことを指しています。PSKは共通鍵認証のことを指しますが,パスワードと読み換えても構いません。
暗号化規格
暗号化方式は,IEEE 802.11委員会によって定められています。一方で,暗号化規格はWi-Fi Alianceという業界団体によって定められています。Wi-Fi Alianceというのは,IEEE 802.11委員会によって定められた方式を各種メーカーが市場で応用するための団体だと捉えておくと分かりやすいです。
歴史的には,IEEE 802.11委員会によってWEPが定められた後に,WEPの脆弱性が判明しました。そこで,IEEE 802.11委員会は急遽TKIPおよびCCMPの検討を行い,IEEE 802.11iという名前の規格に取り込もうとしていました。Wi-Fi Alianceとしては,脆弱性を有したWEPを使い続ける訳にはいかなかったため,IEEE802.11委員会が策定中のTKIPおよびCCMPを取り込む形でWPAという規格が定められました。その後,IEEE802.11委員会はCCMPのみを必須とする形でIEEE 802.11iを策定し,それをWi-Fi Alianceが業界標準化してWPA2が定められました。
このような背景から,暗号化規格であるWEP/WPA/WPA2/WPA3では,上述の暗号化方式から任意で実装するものと,必須で実装するものが定まっています。
WEP | WPA | WPA2 | WPA3 | |
---|---|---|---|---|
WEP | ○(必須) | - | - | - |
TKIP | - | ○(必須) | △(任意) | - |
CCMP | - | △(任意) | ○(必須) | - |
GCMP | - | - | - | ○(必須) |
鍵長 | 40/104bit | 128bit | 128bit | 128bit(Personal) 256bit(Enterprise) |
策定年 | 1997年 | 2002年 | 2004年 | 2018年 |
策定者 | IEEE 802.11 | Wi-Fi Aliance | Wi-Fi Aliance | Wi-Fi Aliance |
暗号化方式としてのWEPと暗号化規格としてのWEPは,ほぼ同義で用いられることが多いです。また,WPA2のパーソナルモードではPSKをもとにPMKを生成する方式となり,WPA3ではPMKを接続ごとに変える方式となります。
脆弱性
WEP/WPA/WPA2に対しては,既知の脆弱性が存在します。
- WEPの脆弱性
-
秘密鍵が短く,固定化され,暗号化されていない。秘密鍵を乱数化する初期化ベクトル(IV)は秘密鍵から生成され,短い上に平文で送信され,暗号化されていない。
- WPAの脆弱性
-
QoS偽造攻撃に対して脆弱であるとされている。
- WPA2の脆弱性
-
APと同じSSID/Macアドレスを用いた中間者攻撃(KRACKs)に脆弱。
KRACKsはKey Reinstallation Attacksの略称です。KRACKsでは,APと端末間の通信に介入し,4-wayハンドシェイクの最後のメッセージでWPA2の暗号鍵生成および鍵の再配布を強制させ,直前と同じ通信を行わせることで暗号鍵の読解を試みます。
FAQ
- RC4とAESの違いは?
-
RC4(Rivest's Cipher) AES(Advanced Encryption Standard) 種類 ストリーム暗号 ブロック暗号 鍵長 40〜2048 bit 128/192/256 bit RC4とAESの違い RC4では1byteごとにシンプルな逐次暗号化を行ってストリーム通信できるため,速度を重視した暗号化アルゴリズムとなっています。一方で,AESではブロックサイズ分のデータが蓄積するまで通信を開始できません。しかし,出力ストリームの先頭が破棄されない場合や,非ランダムキーが用いられている場合にRC4には脆弱性が認められているため,注意が必要です。
- AES-CCMPとAES-GCMPの違いは?
-
AES-GCMPは,AES-CCMPをガロア体上の加算および乗算で拡張して並列計算を可能にしたアルゴリズムです。なお,CCMPはCounter mode with CBC-MAC Protocol,GCMPはGalois/Counter Mode Protocolの略称です。
- CRC32/Michael/CBC-MAC/GMACの違いは?
-
CRC-32は,32bitの生成多項式を利用する巡回冗長検査(CRC)を表します。Michaelは,TKIPにおいて秘密鍵からMICを生成するためのアルゴリズムを表します。MIC(Message Integrity Code)とは,FCSのようなチェック用のbit列のことです。CBC-MACは,ブロック暗号において共通鍵からMACを生成するためのアルゴリズムを表します。MAC(Message Authentication Code)とは,MICと同様にFCSのようなチェック用のbit列のことですが,MICでは秘密鍵を元に生成していたのに対し,MACでは共通鍵を元に生成する点に注意してください。GMACは,GCM(Galois/Counter Mode)という認証付き暗号により生成されたMACのことを指します。GCMでは,ガロア体上の加算および乗算でハッシュ値を計算してMACを生成します。
- EAPってなに?
-
Extensible Authentication Protocolの略称で,IEEE802.1X認証のことを指します。
- PSKとSAEの違いは?
-
PSK(Pre-Shared Key)では,その名の通り,事前共通鍵を用いて端末・AP間で認証を行っていましたが,SAE(Simultaneous Authentication of Equals)はメッシュネットワークを構想して検討された方式であるため,端末・APの区別がなくなました。SAEでは,楕円曲線暗号を用いた鍵交換および認証を行います。楕円曲線暗号を用いて計算した結果は直接通信経路に流れることはなく,乱数やハッシュ値のみを通信に利用する方式になっているため,傍受や中間者攻撃に対して頑健とされています。
コメント