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