This commit is contained in:
2026-03-12 17:29:21 -04:00
parent dd1156d61a
commit c28c144fa2
6 changed files with 361 additions and 581 deletions

View File

@@ -33,13 +33,13 @@ tcp-phi1-drop-bidirectional:
tcp-phi1-replay-AtoB:
- command: python src/main.py --model=tests/tcp/tcp-phi1.pml --attacker=replay --chan=AtoB --output=temp.pml --eval --cleanup --mem=1
- intended: no violation
- explanation: replaying A's messages cannot create half-open; B reaching Established still requires valid handshake, and A cannot close without teardown
- intended: property violation
- explanation: replay attacker copies A's message non-destructively, allowing normal handshake and teardown; after A returns to Closed, the replayed stale message drives B through a new handshake into Established, creating a half-open state
tcp-phi1-replay-bidirectional:
- command: python src/main.py --model=tests/tcp/tcp-phi1.pml --attacker=replay --chan=AtoB,BtoA --output=temp.pml --eval --cleanup --mem=1
- intended: no violation
- explanation: replay on both channels still cannot violate the structural invariant; A must pass through Established before reaching Closed
- intended: property violation
- explanation: replay on both channels injects stale handshake messages in both directions; after A tears down to Closed, replayed messages push B into Established without A's participation
tcp-phi1-reorder-bidirectional:
- command: python src/main.py --model=tests/tcp/tcp-phi1.pml --attacker=reorder --chan=AtoB,BtoA --output=temp.pml --eval --cleanup --mem=2
@@ -51,6 +51,11 @@ tcp-phi1-reorder-bidirectional:
# Expected: drop on both channels can strand both sides post-Established
# (e.g., both in FinWait1 after FINs are dropped)
tcp-phi3-drop-AtoB-nodeadlock:
- command: python src/main.py --model=tests/tcp/tcp-phi3.pml --attacker=drop --chan=AtoB --output=temp.pml --eval --cleanup --mem=0
- intended: no violation
- explanation: with mem=0 the drop attacker cannot consume any messages; it goes straight to BREAK, leaving the model unmodified; timeout transitions prevent permanent stalls in the base model
tcp-phi3-drop-AtoB:
- command: python src/main.py --model=tests/tcp/tcp-phi3.pml --attacker=drop --chan=AtoB --output=temp.pml --eval --cleanup --mem=1
- intended: acceptance cycle
@@ -75,6 +80,12 @@ tcp-phi3-reorder-bidirectional:
# SynReceived implies eventually (Established or FinWait1 or Closed)
# Expected: drop on AtoB traps A in SynReceived (no timeout modeled)
tcp-phi5-replay-BtoA:
- command: python src/main.py --model=tests/tcp/tcp-phi5.pml --attacker=replay --chan=BtoA --output=temp.pml --eval --cleanup --mem=1
- intended: no violation
- explanation: replaying B's messages on BtoA delivers extra SYNs to A; if A enters SynReceived, the replayed messages do not prevent ACK delivery on AtoB (which is unattacked), so SynReceived resolves normally
tcp-phi5-drop-AtoB:
- command: python src/main.py --model=tests/tcp/tcp-phi5.pml --attacker=drop --chan=AtoB --output=temp.pml --eval --cleanup --mem=1
- intended: acceptance cycle

Binary file not shown.

View File

@@ -1,53 +1,43 @@
-2:3:-2
-2:2:-2
-4:-4:-4
1:0:129
2:2:122
3:0:129
4:2:123
5:0:129
6:2:124
7:0:129
8:2:125
9:0:129
10:4:0
11:0:129
12:4:1
13:0:129
14:4:2
15:0:129
16:4:9
17:0:129
18:3:0
19:0:129
20:3:1
21:0:129
22:3:2
23:0:129
24:3:9
25:0:129
26:4:17
27:0:129
28:4:1
29:0:129
30:4:3
31:0:129
32:4:22
33:0:127
34:1:116
1:0:121
2:1:114
3:0:121
4:1:115
5:0:121
6:1:116
7:0:121
8:1:117
9:0:121
10:3:0
11:0:121
12:3:1
13:0:121
14:3:2
15:0:121
16:3:9
17:0:121
18:2:0
19:0:121
20:2:1
21:0:121
22:2:2
23:0:121
24:2:9
25:0:121
26:3:17
27:0:121
28:3:1
-1:-1:-1
35:0:134
36:1:117
37:0:127
38:3:15
39:0:134
40:3:16
41:0:127
42:4:42
43:0:134
44:4:1
45:0:129
46:4:3
47:0:129
48:4:22
49:0:127
50:1:116
29:0:121
30:3:3
31:0:121
32:3:22
33:0:119
34:2:15
35:0:126
36:2:16
37:0:119
38:3:42
39:0:126
40:3:1

View File

@@ -1,322 +1,157 @@
-2:3:-2
-2:2:-2
-4:-4:-4
1:0:130
2:2:122
3:0:130
4:2:123
5:0:130
6:2:124
7:0:130
8:2:125
9:0:130
10:4:0
11:0:130
12:4:1
13:0:130
14:4:2
15:0:130
16:4:9
17:0:130
18:3:0
19:0:130
20:3:1
21:0:130
22:3:2
23:0:130
24:3:9
25:0:130
26:4:17
27:0:130
28:4:1
29:0:130
30:4:3
31:0:130
32:4:22
33:0:130
34:1:116
35:0:130
36:1:117
37:0:130
38:3:10
39:0:130
40:3:11
41:3:12
42:0:130
43:3:47
44:0:130
45:1:114
46:0:130
47:1:115
48:0:130
49:4:23
50:0:130
51:4:27
52:0:130
53:4:47
54:0:130
55:1:114
56:0:130
57:1:115
58:0:130
59:4:48
60:0:130
61:4:55
62:0:130
63:4:56
64:0:130
65:4:66
66:0:130
67:1:116
68:0:130
69:1:117
70:0:130
71:3:48
72:0:130
73:3:55
74:0:130
75:3:56
76:0:130
77:3:66
78:0:130
79:1:114
80:0:130
81:1:115
82:0:130
83:4:67
84:0:130
85:4:68
86:0:130
87:4:94
88:0:130
89:1:116
90:0:130
91:1:117
92:0:130
93:3:67
94:0:130
95:3:68
96:0:130
97:3:94
98:0:130
99:1:114
100:0:130
101:1:115
102:0:130
103:4:95
104:0:130
105:4:110
106:0:130
107:4:1
108:0:130
109:4:2
110:0:130
111:4:9
112:0:130
113:1:116
114:0:130
115:1:117
116:0:130
117:3:95
118:0:130
119:3:110
120:0:130
121:3:1
122:0:130
123:3:2
124:0:130
125:3:9
126:0:130
127:4:17
128:0:130
129:4:1
130:0:130
131:4:3
132:0:130
133:1:116
134:0:130
135:1:117
136:0:130
137:3:10
138:0:130
139:3:11
140:3:12
141:0:130
142:3:47
143:0:130
144:1:114
145:0:130
146:1:115
147:0:130
148:1:114
149:0:130
150:4:22
151:0:130
152:4:23
153:0:130
154:4:27
155:0:130
156:1:115
157:0:130
158:1:116
159:0:130
160:4:47
161:0:130
162:4:48
163:0:130
164:4:55
165:0:130
166:4:56
167:0:130
168:1:117
169:0:130
170:3:48
171:0:130
172:3:55
173:0:130
174:3:56
175:0:130
176:3:66
177:0:130
178:1:114
179:0:130
180:1:115
181:0:130
182:1:116
183:0:130
184:4:66
185:0:130
186:4:67
187:0:130
188:4:68
189:0:130
190:1:117
191:0:130
192:3:67
193:0:130
194:3:68
195:0:130
196:3:94
197:0:130
198:1:114
199:0:130
200:1:115
201:0:130
202:1:116
203:0:130
204:4:94
205:0:130
206:4:95
207:0:130
208:4:110
209:0:130
210:4:1
211:0:130
212:4:2
213:0:130
214:1:117
215:0:130
216:3:95
217:0:130
218:3:110
219:0:130
220:3:1
221:0:130
222:3:3
223:0:130
224:4:9
225:0:130
226:3:22
227:0:130
228:1:114
229:0:130
230:1:115
231:0:130
232:4:10
233:0:130
234:4:11
235:4:12
236:0:130
237:4:47
238:0:130
239:1:116
240:0:130
241:1:117
242:0:130
243:3:23
244:0:130
245:3:27
246:0:130
247:1:114
248:0:130
249:1:115
250:0:130
251:4:48
252:0:130
253:4:55
254:0:130
255:4:56
256:0:130
257:4:66
258:0:130
259:1:116
260:0:130
261:1:117
262:0:130
263:1:116
264:0:130
265:3:47
266:0:130
267:3:48
268:0:130
269:3:55
270:0:130
271:3:56
272:0:130
273:3:66
274:0:130
275:1:117
276:0:130
277:3:67
278:0:130
279:3:68
280:0:130
281:1:114
282:0:130
283:1:115
284:0:130
285:4:67
286:0:130
287:1:114
288:0:130
289:4:68
290:0:130
291:4:94
292:0:130
293:1:115
294:0:130
295:4:95
296:0:130
297:4:110
298:0:130
299:4:1
300:0:130
301:4:3
302:0:130
303:4:22
304:0:130
305:3:94
306:0:130
307:1:116
308:0:130
309:1:117
310:0:130
311:3:95
312:0:130
313:3:110
314:0:130
315:3:1
316:0:130
317:3:3
318:0:130
319:3:22
320:0:127
1:0:122
2:1:114
3:0:122
4:1:115
5:0:122
6:1:116
7:0:122
8:1:117
9:0:122
10:3:0
11:0:122
12:3:1
13:0:122
14:3:2
15:0:122
16:3:9
17:0:122
18:2:0
19:0:122
20:2:1
21:0:122
22:2:2
23:0:122
24:2:9
25:0:122
26:3:17
27:0:122
28:3:1
29:0:122
30:3:3
31:0:122
32:3:22
33:0:122
34:2:10
35:0:122
36:2:11
37:2:12
38:0:122
39:3:23
40:0:122
41:3:24
42:0:122
43:3:25
44:0:122
45:3:55
46:0:122
47:3:56
48:0:122
49:3:66
50:0:122
51:2:47
52:0:122
53:2:48
54:0:122
55:2:55
56:0:122
57:2:56
58:0:122
59:3:67
60:0:122
61:3:68
62:0:122
63:3:94
64:0:122
65:2:66
66:0:122
67:2:67
68:0:122
69:2:68
70:0:122
71:3:95
72:0:122
73:3:110
74:0:122
75:3:1
76:0:122
77:3:2
78:0:122
79:2:94
80:0:122
81:2:95
82:0:122
83:2:110
84:0:122
85:2:1
86:0:122
87:2:3
88:0:122
89:3:9
90:0:122
91:3:10
92:0:122
93:3:11
94:3:12
95:0:122
96:3:47
97:0:122
98:2:22
99:0:122
100:2:23
101:0:122
102:2:24
103:0:122
104:2:25
105:0:122
106:3:48
107:0:122
108:3:55
109:0:122
110:3:56
111:0:122
112:2:55
113:0:122
114:2:56
115:0:122
116:2:66
117:0:122
118:3:66
119:0:122
120:3:67
121:0:122
122:3:68
123:0:122
124:2:67
125:0:122
126:2:68
127:0:122
128:2:94
129:0:122
130:3:94
131:0:122
132:3:95
133:0:122
134:3:110
135:0:122
136:3:1
137:0:122
138:3:3
139:0:122
140:3:22
141:0:122
142:2:95
143:0:122
144:2:110
145:0:122
146:2:1
147:0:122
148:2:3
149:0:122
150:3:23
151:0:122
152:3:27
153:0:122
154:2:22
155:0:119

View File

@@ -1,86 +1,64 @@
-2:3:-2
-2:2:-2
-4:-4:-4
1:0:129
2:2:122
3:0:129
4:2:123
5:0:129
6:2:124
7:0:129
8:2:125
9:0:129
10:4:0
11:0:129
12:4:1
13:0:129
14:4:2
15:0:129
16:4:9
17:0:129
18:3:0
19:0:129
20:3:1
21:0:129
22:3:2
23:0:129
24:3:9
25:0:129
26:4:17
27:0:129
28:4:1
29:0:129
30:4:3
31:0:129
32:4:22
33:0:129
34:1:116
35:0:129
36:1:117
37:0:129
38:3:10
39:0:129
40:3:11
41:3:12
42:0:129
43:3:47
44:0:127
45:1:114
46:0:134
47:1:115
48:0:134
49:4:23
50:0:134
51:4:27
52:0:134
53:4:47
54:0:134
55:1:114
56:0:134
57:1:115
58:0:134
59:4:48
60:0:134
61:4:55
62:0:134
63:4:56
64:0:134
65:4:66
66:0:134
67:1:116
68:0:134
69:1:117
70:0:134
71:3:50
72:0:134
73:3:51
74:0:134
75:1:116
76:0:134
77:1:117
78:0:134
79:3:50
80:0:134
81:3:51
1:0:121
2:1:114
3:0:121
4:1:115
5:0:121
6:1:116
7:0:121
8:1:117
9:0:121
10:3:0
11:0:121
12:3:1
13:0:121
14:3:2
15:0:121
16:3:9
17:0:121
18:2:0
19:0:121
20:2:1
21:0:121
22:2:2
23:0:121
24:2:9
25:0:121
26:3:17
27:0:121
28:3:1
29:0:121
30:3:3
31:0:121
32:3:22
33:0:121
34:2:10
35:0:121
36:2:11
37:2:12
38:0:121
39:3:23
40:0:121
41:3:24
42:0:121
43:3:25
44:0:121
45:3:55
46:0:121
47:3:56
48:0:121
49:3:66
50:0:121
51:2:47
52:0:119
53:2:50
54:0:126
55:2:51
56:0:126
57:2:50
58:0:126
59:2:51
-1:-1:-1
82:0:134
83:0:134
60:0:126
61:0:126

View File

@@ -1,122 +1,88 @@
-2:3:-2
-2:2:-2
-4:-4:-4
1:0:129
2:2:122
3:0:129
4:2:123
5:0:129
6:2:124
7:0:129
8:2:125
9:0:129
10:4:0
11:0:129
12:4:1
13:0:129
14:4:2
15:0:129
16:4:9
17:0:129
18:3:0
19:0:129
20:3:1
21:0:129
22:3:2
23:0:129
24:3:9
25:0:129
26:4:17
27:0:129
28:4:1
29:0:129
30:4:3
31:0:129
32:4:22
33:0:129
34:1:116
35:0:129
36:1:117
37:0:129
38:3:10
39:0:129
40:3:11
41:3:12
42:0:129
43:3:47
44:0:129
45:1:114
46:0:129
47:1:115
48:0:129
49:4:23
50:0:129
51:4:27
52:0:129
53:4:47
54:0:129
55:1:114
56:0:129
57:1:115
58:0:129
59:4:48
60:0:129
61:4:55
62:0:129
63:4:56
64:0:129
65:4:66
66:0:129
67:1:116
68:0:129
69:1:117
70:0:129
71:3:48
72:0:129
73:3:55
74:0:129
75:3:56
76:0:129
77:3:66
78:0:129
79:1:114
80:0:129
81:1:115
82:0:129
83:4:67
84:0:129
85:4:68
86:0:129
87:4:94
88:0:129
89:1:116
90:0:129
91:1:117
92:0:129
93:3:67
94:0:129
95:3:68
96:0:129
97:3:94
98:0:129
99:1:114
100:0:129
101:1:115
102:0:129
103:4:95
104:0:129
105:4:110
106:0:129
107:4:1
108:0:129
109:4:2
110:0:129
111:4:9
112:0:129
113:1:116
114:0:129
115:1:117
116:0:129
117:3:95
118:0:127
119:3:110
120:0:134
1:0:121
2:1:114
3:0:121
4:1:115
5:0:121
6:1:116
7:0:121
8:1:117
9:0:121
10:3:0
11:0:121
12:3:1
13:0:121
14:3:2
15:0:121
16:3:9
17:0:121
18:2:0
19:0:121
20:2:1
21:0:121
22:2:2
23:0:121
24:2:9
25:0:121
26:3:17
27:0:121
28:3:1
29:0:121
30:3:3
31:0:121
32:3:22
33:0:121
34:2:10
35:0:121
36:2:11
37:2:12
38:0:121
39:3:23
40:0:121
41:3:24
42:0:121
43:3:25
44:0:121
45:3:55
46:0:121
47:3:56
48:0:121
49:3:66
50:0:121
51:2:47
52:0:121
53:2:48
54:0:121
55:2:55
56:0:121
57:2:56
58:0:121
59:3:67
60:0:121
61:3:68
62:0:121
63:3:94
64:0:121
65:2:66
66:0:121
67:2:67
68:0:121
69:2:68
70:0:121
71:3:95
72:0:121
73:3:110
74:0:121
75:3:1
76:0:121
77:3:2
78:0:121
79:3:9
80:0:121
81:2:94
82:0:121
83:2:95
84:0:119
85:2:110
86:0:126