記事を読んでいただきありがとうございます。
モブエンジニア(@mob-engineer)です。
モブエンジニアのネットワーク大全というテーマでひとりアドベントカレンダーを生やしてみたので、ネットワーク関連に関してキャッチアップしたことをつらつらとまとめていきたいと思います。
前々回執筆したAWS Interconnectで出てきたMacsecに関して気になったので少し調査してみたいと思います。
Macsecについて
Macsecについて調べてみたところITMediさんの記事が分かりやすかったため以下で取り上げます。
EEE 802.1AEは暗号鍵インフラを用いて、イーサネットなどのレイヤ2プロトコルで流れている「フレーム」を暗号化するための技術である。この際、暗号化を行うメリットは大きく3つある。いわゆる「盗聴」「改ざん」「なりすまし」という、ネットワーク・セキュリティにおける脅威の3要素だ。
802.1AEでやりとりされるフレームには、ICV(Integrity Check Value)と呼ばれるチェックサムに当たるデータが付与されており、暗号化されたデータとともに格納されている。802.1AEに対応したスイッチなどの機器がこのフレームを受信すると、まず自身の持つ暗号キーを使って暗号化されたデータを復号し、そのデータからICVを生成、フレーム内に格納されたICVとの比較を行い、このフレームが正規の手順を経て生成されたものかどうかを判断する。ここで不適格と判断されたフレームは、あらかじめ設定されたポリシーに沿って廃棄等の処分が行われる。ここでフレームを検証するメリットは、暗号化によるフレームのカプセル化以外に、通信相手の認証も同時に行えるという点だ。暗号鍵インフラは通信の暗号化を提供するだけでなく、その暗号化/復号化の過程で通信相手の端末の適正も検査することができる。これは、未知なる攻撃をより低いレベルで防衛するために非常に有効な手段となる。
また暗号化によるフレームのカプセル化により、いわゆるIPSecやSSL(Secure Sockets Layer)で実現されるような「トンネリング」が可能となる。ただここで注意したいのが、802.1AEはあくまでレイヤ2で動作するプロトコルであり、エンド・ツー・エンドでの通信のトンネリングは行わない。あくまで隣接するノード間での通信を暗号化するための手段を提供するのみである。例えば、ある1つのスイッチに2台のホストがぶら下がっている状態で、ホスト同士が802.1AEによる暗号化通信を行う場合、「ホスト~スイッチ~ホスト」という形でスイッチを挟んで2回暗号化通信が行われることになる。
ポイントとしていくつかある。
- MacアドレスなどのL2レイヤレベルの暗号化を提供してくれる
- ICVをフレーム内に格納して暗号↔復号を実現する
- IPSecなどのトンネリング技術できる
- ホスト~スイッチ間の通信暗号化を実現してくれる
特にホスト~スイッチ間の暗号化を実現できることで通信を行ううえでの脆弱性を減らすことが出来る。(要するにセキュリティ対策できていない部分を減らす)
とは言え、原典も読んだ方が良いと思うのでIEEEの規定もまとめておく。
IEEE 802ローカルエリアネットワーク(LAN)は、ミッションクリティカルなアプリケーションや多種多様なデバイスをサポートするネットワークに導入されています。これらのネットワークは、異なる組織によって実装・管理され、異なる経済的利益を持つ顧客にサービスを提供しています。これらのネットワークへのアクセスを構成、管理、および規制するプロトコルは、通常、ネットワーク自体上で実行されます。ネットワーク全体を物理的なアクセスから保護することは通常現実的ではないため、不正なデバイスによる送受信に起因する中断やデータ損失を防ぐことは、必須のネットワーク機能です。
IEEE Std 802.1AEの初版は2006年に発行されました。IEEE Std 802.1AEbn-2011では、GCM-AES-256暗号スイートがオプションとして追加されました。IEEE Std 802.1AEbw-2013では、拡張パケット番号暗号スイートが追加され、2 32を超えるフレームを単一のセキュアアソシエーションキー(SAK)で保護できるようになりました。IEEE-Std 802.1AEcg-2017では、IEEE Std 802.1Qで規定されているプロバイダーネットワークサービス選択とプロバイダーバックボーンネットワーク選択をサポートしながら、透過的で安全な接続を提供するイーサネットデータ暗号化デバイス(EDE)が規定されました。 IEEE-Std 802.1AEcg-2017では、異なる優先度のフレームがプロバイダーブリッジネットワーク(PBN)やIEEE Std 802.3フレームプリエンプションなどによって乱れる可能性がある場合に、厳密なリプレイ保護のために複数のセキュアチャネル(SC)を使用した送信を規定し、MKAがこれらの複数の送信SCをサポートする方法についても説明しました。IEEE Std 802.1AE-2018は、初版とその後の修正版のテキストを組み込んで置き換えました。IEEE Std 802.1AEdk-2023は、MACプライバシー保護を規定しました。
AES256暗号にも対応しているためそこそこ強力な暗号を実現できているとうかがい知ることが出来る。(量子暗号への対応については明言されているのか分からないが)
Macsecを取り巻く話
調べてみると面白いがクラウドベンダー・ネットワークベンダーとしてもMacsecについて各社で定義を行っている。
GE-PONでも活用されているため広く普及されている技術とうかがい知ることが出来る。
当たり前と言われたら当たり前だがCiscoルータでも実装することは可能。
光での話の断面でもMacsecの話題は出てきている。
EPON技術でも活用されているという話も論文で取り上げられている。
まとめ
Macsec自体は広く普及している技術ではあるものの利用している暗号技術というところが肝になってくる。(よくある暗号化はしているが暗号強度が弱ければ意味がない理論)
AWSサービスでもDirect Connectでの実装例も紹介されているが将来の運用を考えてどうやって実装していく必要があるかを考えていくことが大事なのではと思っています。