You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1584 lines
56 KiB
1584 lines
56 KiB
|
|
{
|
|
"jani-version":1,
|
|
"features":[
|
|
"derived-operators"
|
|
],
|
|
"name":"Converted from PRISM by IscasMC",
|
|
"type":"ctmc",
|
|
"actions":[
|
|
{
|
|
"name":"client_request"
|
|
},
|
|
{
|
|
"name":"client_"
|
|
},
|
|
{
|
|
"name":"tau__"
|
|
},
|
|
{
|
|
"name":"client_root_server_request"
|
|
},
|
|
{
|
|
"name":"receive_answer_from_root"
|
|
},
|
|
{
|
|
"name":"client_domain_server_request"
|
|
},
|
|
{
|
|
"name":"receive_answer_from_domain"
|
|
},
|
|
{
|
|
"name":"Correct_Guess"
|
|
},
|
|
{
|
|
"name":"False_Guess"
|
|
},
|
|
{
|
|
"name":"serve_other_request"
|
|
}
|
|
],
|
|
"constants":[
|
|
{
|
|
"name":"TIMES_TO_REQUEST_URL",
|
|
"type":"int"
|
|
},
|
|
{
|
|
"name":"popularity",
|
|
"type":"real"
|
|
},
|
|
{
|
|
"name":"port_id",
|
|
"type":"int"
|
|
},
|
|
{
|
|
"name":"guess",
|
|
"type":"int"
|
|
},
|
|
{
|
|
"name":"other_legitimate_requests_rate",
|
|
"type":"int"
|
|
}
|
|
],
|
|
"variables":[
|
|
{
|
|
"name":"trials",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":"TIMES_TO_REQUEST_URL"
|
|
}
|
|
},
|
|
{
|
|
"name":"answers_received",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":"TIMES_TO_REQUEST_URL"
|
|
}
|
|
},
|
|
{
|
|
"name":"ttl",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":2
|
|
}
|
|
},
|
|
{
|
|
"name":"query_domain_server",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"query_root_server",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"queue",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name":"root_server_queue",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name":"ds_queue",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name":"queries_answered",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name":"correct_guess",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"answer_from_domain_received",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"root_state",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":1
|
|
}
|
|
},
|
|
{
|
|
"name":"domain_state",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":1
|
|
}
|
|
},
|
|
{
|
|
"name":"denial_of_service",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"state_IS",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":1
|
|
}
|
|
}
|
|
],
|
|
"observables":[
|
|
],
|
|
"initial-states":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"=",
|
|
"left":"trials",
|
|
"right":0
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"answers_received",
|
|
"right":0
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"ttl",
|
|
"right":2
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"query_domain_server",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"query_root_server",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"queue",
|
|
"right":0
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"root_server_queue",
|
|
"right":0
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"ds_queue",
|
|
"right":0
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"queries_answered",
|
|
"right":0
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"correct_guess",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"answer_from_domain_received",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"root_state",
|
|
"right":0
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"domain_state",
|
|
"right":0
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"denial_of_service",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"state_IS",
|
|
"right":0
|
|
}
|
|
}
|
|
},
|
|
"automata":[
|
|
{
|
|
"name":"intruder_machine",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"client_request",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"<",
|
|
"left":"trials",
|
|
"right":"TIMES_TO_REQUEST_URL"
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"trials",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"trials",
|
|
"right":1
|
|
}
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"client_",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"<",
|
|
"left":"answers_received",
|
|
"right":"trials"
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"answers_received",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"answers_received",
|
|
"right":1
|
|
}
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"tau__",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"answers_received",
|
|
"right":"TIMES_TO_REQUEST_URL"
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name":"client_server",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"client_request",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":"popularity",
|
|
"right":10
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"<",
|
|
"left":"queue",
|
|
"right":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"<",
|
|
"left":"queries_answered",
|
|
"right":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"<",
|
|
"left":"root_server_queue",
|
|
"right":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"/",
|
|
"left":"popularity",
|
|
"right":10
|
|
},
|
|
"right":{
|
|
"op":"/",
|
|
"left":"popularity",
|
|
"right":10
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"queue",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"queue",
|
|
"right":1
|
|
}
|
|
},
|
|
{
|
|
"ref":"ttl",
|
|
"value":1
|
|
},
|
|
{
|
|
"ref":"queries_answered",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"queries_answered",
|
|
"right":1
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"client_request",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"-",
|
|
"left":1,
|
|
"right":{
|
|
"op":"/",
|
|
"left":"popularity",
|
|
"right":10
|
|
}
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"<",
|
|
"left":"queue",
|
|
"right":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"<",
|
|
"left":"queries_answered",
|
|
"right":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"<",
|
|
"left":"root_server_queue",
|
|
"right":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"-",
|
|
"left":1,
|
|
"right":{
|
|
"op":"/",
|
|
"left":"popularity",
|
|
"right":10
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"-",
|
|
"left":1,
|
|
"right":{
|
|
"op":"/",
|
|
"left":"popularity",
|
|
"right":10
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"queue",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"queue",
|
|
"right":1
|
|
}
|
|
},
|
|
{
|
|
"ref":"ttl",
|
|
"value":0
|
|
},
|
|
{
|
|
"ref":"root_server_queue",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"root_server_queue",
|
|
"right":1
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"client_root_server_request",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":">",
|
|
"left":"queue",
|
|
"right":0
|
|
},
|
|
"right":{
|
|
"op":">",
|
|
"left":"root_server_queue",
|
|
"right":0
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"query_root_server",
|
|
"value":true
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"receive_answer_from_root",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":">",
|
|
"left":"root_server_queue",
|
|
"right":0
|
|
},
|
|
"right":{
|
|
"op":"<",
|
|
"left":"ds_queue",
|
|
"right":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"root_server_queue",
|
|
"value":{
|
|
"op":"-",
|
|
"left":"root_server_queue",
|
|
"right":1
|
|
}
|
|
},
|
|
{
|
|
"ref":"ds_queue",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"ds_queue",
|
|
"right":1
|
|
}
|
|
},
|
|
{
|
|
"ref":"query_root_server",
|
|
"value":false
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"client_domain_server_request",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":">",
|
|
"left":"ds_queue",
|
|
"right":0
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"query_domain_server",
|
|
"value":true
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"receive_answer_from_domain",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":">",
|
|
"left":"ds_queue",
|
|
"right":0
|
|
},
|
|
"right":{
|
|
"op":"<",
|
|
"left":"queries_answered",
|
|
"right":{
|
|
"op":"+",
|
|
"left":"TIMES_TO_REQUEST_URL",
|
|
"right":1
|
|
}
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"correct_guess",
|
|
"right":false
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"ds_queue",
|
|
"value":{
|
|
"op":"-",
|
|
"left":"ds_queue",
|
|
"right":1
|
|
}
|
|
},
|
|
{
|
|
"ref":"queries_answered",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"queries_answered",
|
|
"right":1
|
|
}
|
|
},
|
|
{
|
|
"ref":"query_domain_server",
|
|
"value":false
|
|
},
|
|
{
|
|
"ref":"answer_from_domain_received",
|
|
"value":true
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"client_",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":">",
|
|
"left":"queries_answered",
|
|
"right":0
|
|
},
|
|
"right":{
|
|
"op":">",
|
|
"left":"queue",
|
|
"right":0
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"queue",
|
|
"value":{
|
|
"op":"-",
|
|
"left":"queue",
|
|
"right":1
|
|
}
|
|
},
|
|
{
|
|
"ref":"queries_answered",
|
|
"value":{
|
|
"op":"-",
|
|
"left":"queries_answered",
|
|
"right":1
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"Correct_Guess",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":{
|
|
"op":"*",
|
|
"left":65536,
|
|
"right":"port_id"
|
|
}
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"=",
|
|
"left":"correct_guess",
|
|
"right":false
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"query_domain_server",
|
|
"right":true
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":{
|
|
"op":"*",
|
|
"left":65536,
|
|
"right":"port_id"
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":{
|
|
"op":"*",
|
|
"left":65536,
|
|
"right":"port_id"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"correct_guess",
|
|
"value":true
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"False_Guess",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"-",
|
|
"left":{
|
|
"op":"*",
|
|
"left":65536,
|
|
"right":"port_id"
|
|
},
|
|
"right":1
|
|
},
|
|
"right":{
|
|
"op":"*",
|
|
"left":65536,
|
|
"right":"port_id"
|
|
}
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"=",
|
|
"left":"correct_guess",
|
|
"right":false
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"query_domain_server",
|
|
"right":true
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"-",
|
|
"left":{
|
|
"op":"*",
|
|
"left":65536,
|
|
"right":"port_id"
|
|
},
|
|
"right":1
|
|
},
|
|
"right":{
|
|
"op":"*",
|
|
"left":65536,
|
|
"right":"port_id"
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"-",
|
|
"left":{
|
|
"op":"*",
|
|
"left":65536,
|
|
"right":"port_id"
|
|
},
|
|
"right":1
|
|
},
|
|
"right":{
|
|
"op":"*",
|
|
"left":65536,
|
|
"right":"port_id"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"correct_guess",
|
|
"value":false
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"tau__",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":{
|
|
"op":"=",
|
|
"left":"correct_guess",
|
|
"right":true
|
|
},
|
|
"right":true
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name":"root_server",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"client_root_server_request",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"root_state",
|
|
"right":0
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"root_state",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"receive_answer_from_root",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"root_state",
|
|
"right":1
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"root_state",
|
|
"value":0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name":"target_domain_server",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"client_domain_server_request",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"domain_state",
|
|
"right":0
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"domain_state",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"receive_answer_from_domain",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":"other_legitimate_requests_rate"
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"domain_state",
|
|
"right":1
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":"other_legitimate_requests_rate"
|
|
},
|
|
"right":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":"other_legitimate_requests_rate"
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"domain_state",
|
|
"value":0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"serve_other_request",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"-",
|
|
"left":"other_legitimate_requests_rate",
|
|
"right":1
|
|
},
|
|
"right":"other_legitimate_requests_rate"
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"domain_state",
|
|
"right":1
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"-",
|
|
"left":"other_legitimate_requests_rate",
|
|
"right":1
|
|
},
|
|
"right":"other_legitimate_requests_rate"
|
|
},
|
|
"right":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"-",
|
|
"left":"other_legitimate_requests_rate",
|
|
"right":1
|
|
},
|
|
"right":"other_legitimate_requests_rate"
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"domain_state",
|
|
"value":1
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name":"intruder_server",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"client_domain_server_request",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"state_IS",
|
|
"right":0
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"state_IS",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"Correct_Guess",
|
|
"rate":{
|
|
"exp":"guess"
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"state_IS",
|
|
"right":1
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":"guess",
|
|
"right":"guess"
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"state_IS",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"False_Guess",
|
|
"rate":{
|
|
"exp":"guess"
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"state_IS",
|
|
"right":1
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":"guess",
|
|
"right":"guess"
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"state_IS",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"receive_answer_from_domain",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"=",
|
|
"left":"state_IS",
|
|
"right":1
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"state_IS",
|
|
"value":0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"system":{
|
|
"elements":[
|
|
{
|
|
"automaton":"intruder_machine"
|
|
},
|
|
{
|
|
"automaton":"client_server"
|
|
},
|
|
{
|
|
"automaton":"root_server"
|
|
},
|
|
{
|
|
"automaton":"target_domain_server"
|
|
},
|
|
{
|
|
"automaton":"intruder_server"
|
|
}
|
|
],
|
|
"syncs":[
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"client_domain_server_request",
|
|
null,
|
|
"client_domain_server_request",
|
|
"client_domain_server_request"
|
|
],
|
|
"result":"client_domain_server_request"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"receive_answer_from_domain",
|
|
null,
|
|
"receive_answer_from_domain",
|
|
"receive_answer_from_domain"
|
|
],
|
|
"result":"receive_answer_from_domain"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"Correct_Guess",
|
|
null,
|
|
null,
|
|
"Correct_Guess"
|
|
],
|
|
"result":"Correct_Guess"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"False_Guess",
|
|
null,
|
|
null,
|
|
"False_Guess"
|
|
],
|
|
"result":"False_Guess"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"client_root_server_request",
|
|
"client_root_server_request",
|
|
null,
|
|
null
|
|
],
|
|
"result":"client_root_server_request"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"receive_answer_from_root",
|
|
"receive_answer_from_root",
|
|
null,
|
|
null
|
|
],
|
|
"result":"receive_answer_from_root"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
"client_request",
|
|
"client_request",
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"result":"client_request"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
"client_",
|
|
"client_",
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"result":"client_"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
"tau__",
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"result":"tau__"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"tau__",
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"result":"tau__"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
null,
|
|
null,
|
|
"serve_other_request",
|
|
null
|
|
],
|
|
"result":"serve_other_request"
|
|
}
|
|
]
|
|
}
|
|
}
|