MACsec
表示
MACsec (マックセック)は、イーサネットの暗号化通信。OSI参照モデルの第2層で動作し、上位層プロトコルであるIPsecやTLSと同様に、MACによるデータの保護や送信元の認証が可能となる。IEEE 802.1AEで標準化された[1]。
標準規格の実装
[編集]802.1AEで規定されているフレーム書式を下表に示す。通常のイーサネットフレームのヘッダ内にMACsecタグ、FCS前にICVが付加される形となる。MACsecが動作するポートを SecY (MAC Security Entity)と呼び、両対向のSecYがこのフレーム書式で送受を行う[2]。
| サイズ | データ | 内容 |
|---|---|---|
| 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) と呼ぶ[4]。確立時には以下の2種類の鍵を用いる[5]。
- CAK (Connectivity Association Key) - マスターキー。両対向で事前に持ち合う。お互いにその存在を通知し合うと、両対向のいずれかが親になる。
- SAK (Secure Association Key) - 使い捨て鍵。親が独自に乱数生成し、CAKベースで暗号化して対向に通知する。主通信のフレーム暗号化に用いる。定期的に変更され、間断なく切り替えるために最低2個の生成が必要。
脚注
[編集]- ^ 802.1AE - Media Access Control (MAC) Security. IEEE 802.1 working group. (2015-09-25)
- ^ IEEE 802.1AE-2018, Clause 6. Secure provision of the MAC Service
- ^ IEEE 802.1AE-2018, Clause 9. Encoding of MACsec Protocol Data Units
- ^ IEEE 802.1X-2020, Clause 9. "MACsec Key Agreement protocol (MKA)"
- ^ IEEE 802.1X-2020, Secion 6.2 "Key hierarchy"