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

{
"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"
}
]
}
}