MACsec (マックセック)は、イーサネットの暗号化通信。OSI参照モデルの第2層で動作し、上位層プロトコルであるIPsecやTLSと同様に、MACによるデータの保護や送信元の認証が可能となる。IEEE 802.1AEで標準化された。
802.1AEで規定されているフレーム書式を下表に示す。通常のイーサネットフレームのヘッダ内にMACsecタグ、FCS前にICVが付加される形となる。MACsecが動作するポートを SecY (MAC Security Entity)と呼び、両対向のSecYがこのフレーム書式で送受を行う。
| サイズ | データ | 内容 |
|---|---|---|
| 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) と呼ぶ。確立時には以下の2種類の鍵を用いる。