工制御テスト---プロトコル---IEC_MMS 61850-プロトコルpayload基本ランダム構造
ターゲット:
ランダムなmmsパケットを構築し、異常パケットテストを行う
構築ツール:
scapy、利点は具体的なtcp payloadに関心を持つだけで、その他の自動生成
構築内容の注意点:
1、ethernet
2、ip
3、tcp
以上の3層のデフォルト構成で
4、TPTK:
03 00 XY MN
長さ4
その中のXY MNはTCP loadの全体の長さを表します
5、COTP:
02 F0 80
長さ3
6、OSI session:
01 00
長さ2
7、OSI session:
01 00
長さ2
8、OSI presentation header:
61 81 C1 30 81 BE 02 01 03 A0 81 PQ
XY数MMS荷重の長さ
長さ12
9、MMS荷重の先頭部(つまりTLV中のタイプ+長さ部分):
A0 81 JK
JKはMMSの具体的な荷重の長さ(ヘッドを含まない)である
長さ3
10、MMS具体荷重
具体的な内容(実際にはそれぞれTLV形式であり、ここでは細分化されていない)
長さ解析:
MXY MN=TCP load全体長
PQ=MMSの全体荷重長
JK=MMS具体荷重長(ヘッドを除く)
次に例を示します.
JK = ED +
PQ = ED + 3 = 240
XY MN = PQ + 12+2+2+3+4 = PQ + 23 = 263 = 107 = 01 07
ED + 3+12+2+2+3+4 = 268 0000 03 00 01 07 02 f0 80 01 00 01 00 61 81 c1 30 81 ...........a..0.
0010 be 02 01 03 a0 81 f0 a0 81 ed 02 01 08 a5 81 e7 ................
0020 a0 81 d4 30 33 a0 31 a1 2f 1a 11 73 69 6d 70 6c ...03.1./..simpl
0030 65 49 4f 47 65 6e 65 72 69 63 49 4f 1a 1a 4c 4c eIOGenericIO..LL
0040 4e 30 24 52 50 24 45 76 65 6e 74 73 52 43 42 30 N0$RP$EventsRCB0
0050 31 24 54 72 67 4f 70 73 30 33 a0 31 a1 2f 1a 11 1$TrgOps03.1./..
0060 73 69 6d 70 6c 65 49 4f 47 65 6e 65 72 69 63 49 simpleIOGenericI
0070 4f 1a 1a 4c 4c 4e 30 24 52 50 24 45 76 65 6e 74 O..LLN0$RP$Event
0080 73 52 43 42 30 31 24 49 6e 74 67 50 64 30 33 a0 sRCB01$IntgPd03.
0090 31 a1 2f 1a 11 73 69 6d 70 6c 65 49 4f 47 65 6e 1./..simpleIOGen
00a0 65 72 69 63 49 4f 1a 1a 4c 4c 4e 30 24 52 50 24 ericIO..LLN0$RP$
00b0 45 76 65 6e 74 73 52 43 42 30 31 24 52 70 74 45 EventsRCB01$RptE
00c0 6e 61 30 33 a0 31 a1 2f 1a 11 73 69 6d 70 6c 65 na03.1./..simple
00d0 49 4f 47 65 6e 65 72 69 63 49 4f 1a 1a 4c 4c 4e IOGenericIO..LLN
00e0 30 24 52 50 24 45 76 65 6e 74 73 52 43 42 30 31 0$RP$EventsRCB01
00f0 24 52 70 74 45 6e 61 a0 0e 84 02 02 1c 86 02 13 $RptEna.........
0100 88 83 01 01 83 01 01 .......
MMSプロトコルは中で大きいファイルの2種類の形態を伝送します
1つ目の形態:アプリケーション層はMMSメッセージを複数の部分に分けて、それぞれ異なるcotpで識別する
TCP+COTP1_1+MMS(第1セグメント)
TCP+COTP1_2+MMS(2段目)
第一の形態:応用層はCOTP+MMSを、乱暴な直接的に異なるTCPセグメントに入れる
TCP+COTP+MMS(第1段)
TCP+MMS(第2セグメント)
お客様の両方の形態でサポートされており、テストが必要です.
scapy、利点は具体的なtcp payloadに関心を持つだけで、その他の自動生成
構築内容の注意点:
1、ethernet
2、ip
3、tcp
以上の3層のデフォルト構成で
4、TPTK:
03 00 XY MN
長さ4
その中のXY MNはTCP loadの全体の長さを表します
5、COTP:
02 F0 80
長さ3
6、OSI session:
01 00
長さ2
7、OSI session:
01 00
長さ2
8、OSI presentation header:
61 81 C1 30 81 BE 02 01 03 A0 81 PQ
XY数MMS荷重の長さ
長さ12
9、MMS荷重の先頭部(つまりTLV中のタイプ+長さ部分):
A0 81 JK
JKはMMSの具体的な荷重の長さ(ヘッドを含まない)である
長さ3
10、MMS具体荷重
具体的な内容(実際にはそれぞれTLV形式であり、ここでは細分化されていない)
長さ解析:
MXY MN=TCP load全体長
PQ=MMSの全体荷重長
JK=MMS具体荷重長(ヘッドを除く)
次に例を示します.
JK = ED +
PQ = ED + 3 = 240
XY MN = PQ + 12+2+2+3+4 = PQ + 23 = 263 = 107 = 01 07
ED + 3+12+2+2+3+4 = 268 0000 03 00 01 07 02 f0 80 01 00 01 00 61 81 c1 30 81 ...........a..0.
0010 be 02 01 03 a0 81 f0 a0 81 ed 02 01 08 a5 81 e7 ................
0020 a0 81 d4 30 33 a0 31 a1 2f 1a 11 73 69 6d 70 6c ...03.1./..simpl
0030 65 49 4f 47 65 6e 65 72 69 63 49 4f 1a 1a 4c 4c eIOGenericIO..LL
0040 4e 30 24 52 50 24 45 76 65 6e 74 73 52 43 42 30 N0$RP$EventsRCB0
0050 31 24 54 72 67 4f 70 73 30 33 a0 31 a1 2f 1a 11 1$TrgOps03.1./..
0060 73 69 6d 70 6c 65 49 4f 47 65 6e 65 72 69 63 49 simpleIOGenericI
0070 4f 1a 1a 4c 4c 4e 30 24 52 50 24 45 76 65 6e 74 O..LLN0$RP$Event
0080 73 52 43 42 30 31 24 49 6e 74 67 50 64 30 33 a0 sRCB01$IntgPd03.
0090 31 a1 2f 1a 11 73 69 6d 70 6c 65 49 4f 47 65 6e 1./..simpleIOGen
00a0 65 72 69 63 49 4f 1a 1a 4c 4c 4e 30 24 52 50 24 ericIO..LLN0$RP$
00b0 45 76 65 6e 74 73 52 43 42 30 31 24 52 70 74 45 EventsRCB01$RptE
00c0 6e 61 30 33 a0 31 a1 2f 1a 11 73 69 6d 70 6c 65 na03.1./..simple
00d0 49 4f 47 65 6e 65 72 69 63 49 4f 1a 1a 4c 4c 4e IOGenericIO..LLN
00e0 30 24 52 50 24 45 76 65 6e 74 73 52 43 42 30 31 0$RP$EventsRCB01
00f0 24 52 70 74 45 6e 61 a0 0e 84 02 02 1c 86 02 13 $RptEna.........
0100 88 83 01 01 83 01 01 .......
MMSプロトコルは中で大きいファイルの2種類の形態を伝送します
1つ目の形態:アプリケーション層はMMSメッセージを複数の部分に分けて、それぞれ異なるcotpで識別する
TCP+COTP1_1+MMS(第1セグメント)
TCP+COTP1_2+MMS(2段目)
第一の形態:応用層はCOTP+MMSを、乱暴な直接的に異なるTCPセグメントに入れる
TCP+COTP+MMS(第1段)
TCP+MMS(第2セグメント)
お客様の両方の形態でサポートされており、テストが必要です.
MXY MN=TCP load全体長
PQ=MMSの全体荷重長
JK=MMS具体荷重長(ヘッドを除く)
次に例を示します.
JK = ED +
PQ = ED + 3 = 240
XY MN = PQ + 12+2+2+3+4 = PQ + 23 = 263 = 107 = 01 07
ED + 3+12+2+2+3+4 = 268
0000 03 00 01 07 02 f0 80 01 00 01 00 61 81 c1 30 81 ...........a..0.
0010 be 02 01 03 a0 81 f0 a0 81 ed 02 01 08 a5 81 e7 ................
0020 a0 81 d4 30 33 a0 31 a1 2f 1a 11 73 69 6d 70 6c ...03.1./..simpl
0030 65 49 4f 47 65 6e 65 72 69 63 49 4f 1a 1a 4c 4c eIOGenericIO..LL
0040 4e 30 24 52 50 24 45 76 65 6e 74 73 52 43 42 30 N0$RP$EventsRCB0
0050 31 24 54 72 67 4f 70 73 30 33 a0 31 a1 2f 1a 11 1$TrgOps03.1./..
0060 73 69 6d 70 6c 65 49 4f 47 65 6e 65 72 69 63 49 simpleIOGenericI
0070 4f 1a 1a 4c 4c 4e 30 24 52 50 24 45 76 65 6e 74 O..LLN0$RP$Event
0080 73 52 43 42 30 31 24 49 6e 74 67 50 64 30 33 a0 sRCB01$IntgPd03.
0090 31 a1 2f 1a 11 73 69 6d 70 6c 65 49 4f 47 65 6e 1./..simpleIOGen
00a0 65 72 69 63 49 4f 1a 1a 4c 4c 4e 30 24 52 50 24 ericIO..LLN0$RP$
00b0 45 76 65 6e 74 73 52 43 42 30 31 24 52 70 74 45 EventsRCB01$RptE
00c0 6e 61 30 33 a0 31 a1 2f 1a 11 73 69 6d 70 6c 65 na03.1./..simple
00d0 49 4f 47 65 6e 65 72 69 63 49 4f 1a 1a 4c 4c 4e IOGenericIO..LLN
00e0 30 24 52 50 24 45 76 65 6e 74 73 52 43 42 30 31 0$RP$EventsRCB01
00f0 24 52 70 74 45 6e 61 a0 0e 84 02 02 1c 86 02 13 $RptEna.........
0100 88 83 01 01 83 01 01 .......