馬場 達也
近年、ソフトウェアやハードウェアなどのリソースをネットワーク経由で利用する形態である「クラウドコンピューティング」が流行っている。しかし、クラウドコンピューティングをビジネスに適用しようとした場合に、セキュリティの問題が指摘されてきている。このセキュリティを確保するために、データセンタ用機器において、レイヤ2レベルでメッセージの暗号化および認証を行うMACsec(Media Access Control Security Protocol)の実装が進んでいる。本報告では、このMACsecの概要とクラウド環境におけるセキュリティについて考察する。
MACsecは、暗号鍵インフラを用いて、イーサネットなどのレイヤ2プロトコルで流れている「フレーム」を暗号化するための技術である。IPsec(IP Security Protocol)やSSL(Secure Sockets Layer)/TLS(Transport Layer Security)などと異なり、レイヤ2レベルで暗号化されるため、スイッチやルータ、ファイアウォール、IPS(Intrusion Prevention System)などの中間ノードでのインスペクションが可能となる点が大きく異なる。
MACsecに関する仕様は、以下のふたつがある。MACsec本体の標準化は2006年に完了しているが、鍵管理プロトコルの仕様が長くドラフトのままであった。しかし、2010年2月に標準化承認が下り、MACsecの標準化が実質的に完了した。
MACsecでは、以下のセキュリティ機能を提供するように設計されている。IPsecとの違いは表1の通りである。
表1 IPsecとMACsecの比較
| IPsec | MACsec | |
|---|---|---|
| 暗号化範囲 | レイヤ3パケット全体(トンネルモード) レイヤ3データ(トランスポートモード) |
レイヤ2データ(レイヤ3パケット全体) |
| メッセージ認証範囲 | レイヤ3パケット全体(トンネルモード) レイヤ3データ(トランスポートモード) |
レイヤ2フレーム全体 |
| 鍵交換プロトコル | IKEv1 / IKEv2 | IEEE 802.1X-2010 |
| セキュリティ保護の範囲 | エンドツーエンド | ノード間のみ |
| スループット | 暗号化のみハードウェア | すべてハードウェアレベル |
| リプレイ保護 | 32ビットのシーケンス番号によるチェック | 32ビットのPN(Packet Number)によるチェック |
| トラフィック解析保護 | △ | × |
| 受信遅延制限 | × | ◯ |
IPsecでは、コネクションの概念として、SA(Security Association)が定義されているが、MACsecでは、CA、SC、SAの3つの概念が定義されている(図1)。
MACsec適用前のイーサフレームのフォーマットを図2に、MACsec適用後のイーサフレームのフォーマットを図3に示す。MACsecを適用したイーサフレームには、ユーザデータの前にSecTAG(MAC Security TAG)が、ユーザデータの後にICV(Integrity Check Value)が付加される。
SecTAGは、以下のフィールドから構成される。
TCIフィールドのEビットが1の場合に、ユーザデータ部(Data)が暗号化される(暗号化されたDataはSecure Dataと呼ばれる)。そして、DMAC(宛先MACアドレス)、SMAC(送信元MACアドレス)、SecTAG、Secure Dataがメッセージ認証の範囲となる。
図2 MACsec適用前のイーサフレームフォーマット
図3 MACsec適用後のイーサフレームフォーマット
MACsecでは、デフォルトの暗号アルゴリズムとして、GCM-AES-128が指定されている。GCMとは、Galois/Counter Modeの略であり、データの暗号化とメッセージ認証の両方の機能を同時に実現する、高速で動作するアルゴリズムである。共通鍵には、128ビットの鍵を使用する。送信側と受信側が実装していれば、異なる暗号アルゴリズムを使用することも可能である。
MACsecでは、鍵交換プロトコルとしてIEEE 802.1X-2010が利用される。鍵交換プロトコルの役割には以下の4つがある。
MACsecは、Cisco SystemsやIntelによって実装が進められている。
Cisco Systemsでは、同社の提唱する”TrustSec”において、MACsecを採用しており、同社のスイッチ製品である、Nexus 7000、Catalyst 3750-X、Catalyst 3560-X、そして、RADIUSサーバ製品であるCisco Secure Access Control System 5.1にて実装済みである。鍵交換プロトコルは、同社独自のSecurity Association Protocol (SAP)を使用しているが、IEEE 802.1X-2010にリプレースする見込みとなっている。
また、IntelのIntel 82567LM ギガビット LAN ドライバーがMACsecに対応している。
MACsecが注目されてきた背景としては以下のような特徴を持つクラウドの流れがあると考えられる。
VMwareのvMotionのような、ライブマイグレーションを実現するには、レイヤ2で接続されていなければならないため、データセンタ内はレイヤ2でフラットに構築するという流れが出てきた。そのため、MACsecが利用できる環境になってきた。
DR(Disaster Recovery)用に、データセンタが地理的に複数に分かれていても、同じように見せたいという要望が出てきたため、データセンタ間をVPLS(Virtual Private LAN Service)、MAC-VPN、Cisco Overlay Transport Virtualization(OTV)などのレイヤ2で接続する技術を使う流れが出てきた。
MACsecを適用する場合は、何からデータを守るのかということをよく考える必要がある。他の暗号プロトコルにも言えることであるが、暗号化する人≠盗聴する人でなければならない。MACsecをデータセンタに導入した場合、暗号化されるのはデータセンタ内のケーブルを流れるデータであり、ネットワーク機器の内部ではデータは復号化されているため、ネットワーク機器に侵入できる人物は盗聴することが可能である。つまり、データセンタの機器の管理者からデータを保護することはできない。MACsecが保護できるのは、データセンタにデータセンタ運用者以外の人間が侵入してケーブルを流れるデータを盗聴する行為や、レイヤ2で構成されたWAN上で盗聴する行為に対してである。ネットワーク機器に侵入できる人物からデータを保護したいのであれば、IPsecなどのエンドツーエンドの暗号プロトコルの利用を検討すべきだろう。ただし、実際のデータはデータセンタ内のストレージなどに格納されるため、IPsecのような通信路上のデータを保護する仕組みだけでは十分ではない。サーバやストレージなども考慮した対策を検討する必要があるだろう。
MACsecは、レイヤ2以上のすべての機器でフレームの復号化/暗号化を行う必要があるため、機器への負荷や、通信のパフォーマンスへの影響を考慮する必要がある。すべてハードウェアで実装されていることが条件となるだろう。
MACsecの仕組み自体は2006年に標準化済みであったが、鍵交換の仕組みが2010年にようやく標準化承認されたことにより、今後、実装が進むと考えられる。すでに、Cisco Systemsがデータセンタ向けスイッチに実装を進めており、IntelもNICに実装を進めている。
今後、クラウドデータセンタがレイヤ2化されていくに従い、利用が加速する可能性がある。ただし、「何のために暗号化するのか」といった検討は常に検討していく必要があると考えられる。
以上