MACsec (マックセック)は、イーサネットの暗号化通信。OSI参照モデルの第2層で動作し、上位層プロトコルであるIPsecやTLSと同様に、MACによるデータの保護や送信元の認証が可能となる。IEEE 802.1AEで標準化された。
標準規格の実装
802.1AEで規定されているフレーム書式を下表に示す。通常のイーサネットフレームのヘッダ内にMACsecタグ、FCS前にICVが付加される形となる。MACsecが動作するポートを SecY (MAC Security Entity)と呼び、両対向のSecYがこのフレーム書式で送受を行うIEEE 802.1AE-2018, Clause 6. Secure provision of the MAC Service。
+ MACsecフレーム書式IEEE 802.1AE-2018, Clause 9. Encoding of MACsec Protocol Data Units サイズ データ 内容 6バイト 宛先MACアドレス 6バイト 送信元MACアドレス 2バイト EtherType 0x88e5: MACsec 1バイト TCI/AN (Tag Control Infomation / Association Number) 1バイト Short Length 暗号化データ長 4 or 8バイト Packet Number パケット番号。暗号化および認証用の初期値として使う。リプレイ攻撃に対する保護にもなる。 (8バイト) SCI (Secure Channel Identifier) LAN全体のID。オプション (1対1接続では不要)。 (4バイト) VLANタグ 暗号化される。暗号化にはGCM-AES-128 または GCM-AES-256 を使う。 2バイト EtherType 46~1500バイト ペイロード 8 or 16バイト ICV (Integrity Check Value) 暗号化データの整合性確認用。端末認証にも使う。 4バイト FCS
暗号化の接続確立の方法は IEEE 802.1X で規定されており、その鍵交換プロトコルを MKA (MACsec Key Agreement) と呼ぶIEEE 802.1X-2020, Clause 9. "MACsec Key Agreement protocol (MKA)"。確立時には以下の2種類の鍵を用いるIEEE 802.1X-2020, Secion 6.2 "Key hierarchy"。
CAK (Connectivity Association Key) - マスターキー。両対向で事前に持ち合う。お互いにその存在を通知し合うと、両対向のいずれかが親になる。 SAK (Secure Association Key) - 使い捨て鍵。親が独自に乱数生成し、CAKベースで暗号化して対向に通知する。主通信のフレーム暗号化に用いる。定期的に変更され、間断なく切り替えるために最低2個の生成が必要。
脚注
外部リンク MACsec Toolkit