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

  1. {
  2. "jani-version":1,
  3. "features":[
  4. "derived-operators"
  5. ],
  6. "name":"Converted from PRISM by IscasMC",
  7. "type":"ctmc",
  8. "actions":[
  9. {
  10. "name":"client_request"
  11. },
  12. {
  13. "name":"client_"
  14. },
  15. {
  16. "name":"tau__"
  17. },
  18. {
  19. "name":"client_root_server_request"
  20. },
  21. {
  22. "name":"receive_answer_from_root"
  23. },
  24. {
  25. "name":"client_domain_server_request"
  26. },
  27. {
  28. "name":"receive_answer_from_domain"
  29. },
  30. {
  31. "name":"Correct_Guess"
  32. },
  33. {
  34. "name":"False_Guess"
  35. },
  36. {
  37. "name":"serve_other_request"
  38. }
  39. ],
  40. "constants":[
  41. {
  42. "name":"TIMES_TO_REQUEST_URL",
  43. "type":"int"
  44. },
  45. {
  46. "name":"popularity",
  47. "type":"real"
  48. },
  49. {
  50. "name":"port_id",
  51. "type":"int"
  52. },
  53. {
  54. "name":"guess",
  55. "type":"int"
  56. },
  57. {
  58. "name":"other_legitimate_requests_rate",
  59. "type":"int"
  60. }
  61. ],
  62. "variables":[
  63. {
  64. "name":"trials",
  65. "type":{
  66. "kind":"bounded",
  67. "base":"int",
  68. "lower-bound":0,
  69. "upper-bound":"TIMES_TO_REQUEST_URL"
  70. }
  71. },
  72. {
  73. "name":"answers_received",
  74. "type":{
  75. "kind":"bounded",
  76. "base":"int",
  77. "lower-bound":0,
  78. "upper-bound":"TIMES_TO_REQUEST_URL"
  79. }
  80. },
  81. {
  82. "name":"ttl",
  83. "type":{
  84. "kind":"bounded",
  85. "base":"int",
  86. "lower-bound":0,
  87. "upper-bound":2
  88. }
  89. },
  90. {
  91. "name":"query_domain_server",
  92. "type":"bool"
  93. },
  94. {
  95. "name":"query_root_server",
  96. "type":"bool"
  97. },
  98. {
  99. "name":"queue",
  100. "type":{
  101. "kind":"bounded",
  102. "base":"int",
  103. "lower-bound":0,
  104. "upper-bound":{
  105. "op":"+",
  106. "left":"TIMES_TO_REQUEST_URL",
  107. "right":1
  108. }
  109. }
  110. },
  111. {
  112. "name":"root_server_queue",
  113. "type":{
  114. "kind":"bounded",
  115. "base":"int",
  116. "lower-bound":0,
  117. "upper-bound":{
  118. "op":"+",
  119. "left":"TIMES_TO_REQUEST_URL",
  120. "right":1
  121. }
  122. }
  123. },
  124. {
  125. "name":"ds_queue",
  126. "type":{
  127. "kind":"bounded",
  128. "base":"int",
  129. "lower-bound":0,
  130. "upper-bound":{
  131. "op":"+",
  132. "left":"TIMES_TO_REQUEST_URL",
  133. "right":1
  134. }
  135. }
  136. },
  137. {
  138. "name":"queries_answered",
  139. "type":{
  140. "kind":"bounded",
  141. "base":"int",
  142. "lower-bound":0,
  143. "upper-bound":{
  144. "op":"+",
  145. "left":"TIMES_TO_REQUEST_URL",
  146. "right":1
  147. }
  148. }
  149. },
  150. {
  151. "name":"correct_guess",
  152. "type":"bool"
  153. },
  154. {
  155. "name":"answer_from_domain_received",
  156. "type":"bool"
  157. },
  158. {
  159. "name":"root_state",
  160. "type":{
  161. "kind":"bounded",
  162. "base":"int",
  163. "lower-bound":0,
  164. "upper-bound":1
  165. }
  166. },
  167. {
  168. "name":"domain_state",
  169. "type":{
  170. "kind":"bounded",
  171. "base":"int",
  172. "lower-bound":0,
  173. "upper-bound":1
  174. }
  175. },
  176. {
  177. "name":"denial_of_service",
  178. "type":"bool"
  179. },
  180. {
  181. "name":"state_IS",
  182. "type":{
  183. "kind":"bounded",
  184. "base":"int",
  185. "lower-bound":0,
  186. "upper-bound":1
  187. }
  188. }
  189. ],
  190. "observables":[
  191. ],
  192. "initial-states":{
  193. "exp":{
  194. "op":"∧",
  195. "left":{
  196. "op":"∧",
  197. "left":{
  198. "op":"∧",
  199. "left":{
  200. "op":"∧",
  201. "left":{
  202. "op":"∧",
  203. "left":{
  204. "op":"∧",
  205. "left":{
  206. "op":"∧",
  207. "left":{
  208. "op":"∧",
  209. "left":{
  210. "op":"∧",
  211. "left":{
  212. "op":"∧",
  213. "left":{
  214. "op":"∧",
  215. "left":{
  216. "op":"∧",
  217. "left":{
  218. "op":"∧",
  219. "left":{
  220. "op":"∧",
  221. "left":{
  222. "op":"=",
  223. "left":"trials",
  224. "right":0
  225. },
  226. "right":{
  227. "op":"=",
  228. "left":"answers_received",
  229. "right":0
  230. }
  231. },
  232. "right":{
  233. "op":"=",
  234. "left":"ttl",
  235. "right":2
  236. }
  237. },
  238. "right":{
  239. "op":"=",
  240. "left":"query_domain_server",
  241. "right":false
  242. }
  243. },
  244. "right":{
  245. "op":"=",
  246. "left":"query_root_server",
  247. "right":false
  248. }
  249. },
  250. "right":{
  251. "op":"=",
  252. "left":"queue",
  253. "right":0
  254. }
  255. },
  256. "right":{
  257. "op":"=",
  258. "left":"root_server_queue",
  259. "right":0
  260. }
  261. },
  262. "right":{
  263. "op":"=",
  264. "left":"ds_queue",
  265. "right":0
  266. }
  267. },
  268. "right":{
  269. "op":"=",
  270. "left":"queries_answered",
  271. "right":0
  272. }
  273. },
  274. "right":{
  275. "op":"=",
  276. "left":"correct_guess",
  277. "right":false
  278. }
  279. },
  280. "right":{
  281. "op":"=",
  282. "left":"answer_from_domain_received",
  283. "right":false
  284. }
  285. },
  286. "right":{
  287. "op":"=",
  288. "left":"root_state",
  289. "right":0
  290. }
  291. },
  292. "right":{
  293. "op":"=",
  294. "left":"domain_state",
  295. "right":0
  296. }
  297. },
  298. "right":{
  299. "op":"=",
  300. "left":"denial_of_service",
  301. "right":false
  302. }
  303. },
  304. "right":{
  305. "op":"=",
  306. "left":"state_IS",
  307. "right":0
  308. }
  309. }
  310. },
  311. "automata":[
  312. {
  313. "name":"intruder_machine",
  314. "locations":[
  315. {
  316. "name":"location"
  317. }
  318. ],
  319. "initial-locations":[
  320. "location"
  321. ],
  322. "edges":[
  323. {
  324. "location":"location",
  325. "action":"client_request",
  326. "rate":{
  327. "exp":1
  328. },
  329. "guard":{
  330. "exp":{
  331. "op":"<",
  332. "left":"trials",
  333. "right":"TIMES_TO_REQUEST_URL"
  334. }
  335. },
  336. "destinations":[
  337. {
  338. "probability":{
  339. "exp":{
  340. "op":"/",
  341. "left":1,
  342. "right":1
  343. }
  344. },
  345. "location":"location",
  346. "assignments":[
  347. {
  348. "ref":"trials",
  349. "value":{
  350. "op":"+",
  351. "left":"trials",
  352. "right":1
  353. }
  354. }
  355. ],
  356. "observables":[
  357. ]
  358. }
  359. ]
  360. },
  361. {
  362. "location":"location",
  363. "action":"client_",
  364. "rate":{
  365. "exp":1
  366. },
  367. "guard":{
  368. "exp":{
  369. "op":"<",
  370. "left":"answers_received",
  371. "right":"trials"
  372. }
  373. },
  374. "destinations":[
  375. {
  376. "probability":{
  377. "exp":{
  378. "op":"/",
  379. "left":1,
  380. "right":1
  381. }
  382. },
  383. "location":"location",
  384. "assignments":[
  385. {
  386. "ref":"answers_received",
  387. "value":{
  388. "op":"+",
  389. "left":"answers_received",
  390. "right":1
  391. }
  392. }
  393. ],
  394. "observables":[
  395. ]
  396. }
  397. ]
  398. },
  399. {
  400. "location":"location",
  401. "action":"tau__",
  402. "rate":{
  403. "exp":1
  404. },
  405. "guard":{
  406. "exp":{
  407. "op":"=",
  408. "left":"answers_received",
  409. "right":"TIMES_TO_REQUEST_URL"
  410. }
  411. },
  412. "destinations":[
  413. {
  414. "probability":{
  415. "exp":{
  416. "op":"/",
  417. "left":1,
  418. "right":1
  419. }
  420. },
  421. "location":"location",
  422. "assignments":[
  423. ],
  424. "observables":[
  425. ]
  426. }
  427. ]
  428. }
  429. ]
  430. },
  431. {
  432. "name":"client_server",
  433. "locations":[
  434. {
  435. "name":"location"
  436. }
  437. ],
  438. "initial-locations":[
  439. "location"
  440. ],
  441. "edges":[
  442. {
  443. "location":"location",
  444. "action":"client_request",
  445. "rate":{
  446. "exp":{
  447. "op":"/",
  448. "left":"popularity",
  449. "right":10
  450. }
  451. },
  452. "guard":{
  453. "exp":{
  454. "op":"∧",
  455. "left":{
  456. "op":"∧",
  457. "left":{
  458. "op":"<",
  459. "left":"queue",
  460. "right":{
  461. "op":"+",
  462. "left":"TIMES_TO_REQUEST_URL",
  463. "right":1
  464. }
  465. },
  466. "right":{
  467. "op":"<",
  468. "left":"queries_answered",
  469. "right":{
  470. "op":"+",
  471. "left":"TIMES_TO_REQUEST_URL",
  472. "right":1
  473. }
  474. }
  475. },
  476. "right":{
  477. "op":"<",
  478. "left":"root_server_queue",
  479. "right":{
  480. "op":"+",
  481. "left":"TIMES_TO_REQUEST_URL",
  482. "right":1
  483. }
  484. }
  485. }
  486. },
  487. "destinations":[
  488. {
  489. "probability":{
  490. "exp":{
  491. "op":"/",
  492. "left":{
  493. "op":"/",
  494. "left":"popularity",
  495. "right":10
  496. },
  497. "right":{
  498. "op":"/",
  499. "left":"popularity",
  500. "right":10
  501. }
  502. }
  503. },
  504. "location":"location",
  505. "assignments":[
  506. {
  507. "ref":"queue",
  508. "value":{
  509. "op":"+",
  510. "left":"queue",
  511. "right":1
  512. }
  513. },
  514. {
  515. "ref":"ttl",
  516. "value":1
  517. },
  518. {
  519. "ref":"queries_answered",
  520. "value":{
  521. "op":"+",
  522. "left":"queries_answered",
  523. "right":1
  524. }
  525. }
  526. ]
  527. }
  528. ]
  529. },
  530. {
  531. "location":"location",
  532. "action":"client_request",
  533. "rate":{
  534. "exp":{
  535. "op":"-",
  536. "left":1,
  537. "right":{
  538. "op":"/",
  539. "left":"popularity",
  540. "right":10
  541. }
  542. }
  543. },
  544. "guard":{
  545. "exp":{
  546. "op":"∧",
  547. "left":{
  548. "op":"∧",
  549. "left":{
  550. "op":"<",
  551. "left":"queue",
  552. "right":{
  553. "op":"+",
  554. "left":"TIMES_TO_REQUEST_URL",
  555. "right":1
  556. }
  557. },
  558. "right":{
  559. "op":"<",
  560. "left":"queries_answered",
  561. "right":{
  562. "op":"+",
  563. "left":"TIMES_TO_REQUEST_URL",
  564. "right":1
  565. }
  566. }
  567. },
  568. "right":{
  569. "op":"<",
  570. "left":"root_server_queue",
  571. "right":{
  572. "op":"+",
  573. "left":"TIMES_TO_REQUEST_URL",
  574. "right":1
  575. }
  576. }
  577. }
  578. },
  579. "destinations":[
  580. {
  581. "probability":{
  582. "exp":{
  583. "op":"/",
  584. "left":{
  585. "op":"-",
  586. "left":1,
  587. "right":{
  588. "op":"/",
  589. "left":"popularity",
  590. "right":10
  591. }
  592. },
  593. "right":{
  594. "op":"-",
  595. "left":1,
  596. "right":{
  597. "op":"/",
  598. "left":"popularity",
  599. "right":10
  600. }
  601. }
  602. }
  603. },
  604. "location":"location",
  605. "assignments":[
  606. {
  607. "ref":"queue",
  608. "value":{
  609. "op":"+",
  610. "left":"queue",
  611. "right":1
  612. }
  613. },
  614. {
  615. "ref":"ttl",
  616. "value":0
  617. },
  618. {
  619. "ref":"root_server_queue",
  620. "value":{
  621. "op":"+",
  622. "left":"root_server_queue",
  623. "right":1
  624. }
  625. }
  626. ]
  627. }
  628. ]
  629. },
  630. {
  631. "location":"location",
  632. "action":"client_root_server_request",
  633. "rate":{
  634. "exp":1
  635. },
  636. "guard":{
  637. "exp":{
  638. "op":"∧",
  639. "left":{
  640. "op":">",
  641. "left":"queue",
  642. "right":0
  643. },
  644. "right":{
  645. "op":">",
  646. "left":"root_server_queue",
  647. "right":0
  648. }
  649. }
  650. },
  651. "destinations":[
  652. {
  653. "probability":{
  654. "exp":{
  655. "op":"/",
  656. "left":1,
  657. "right":1
  658. }
  659. },
  660. "location":"location",
  661. "assignments":[
  662. {
  663. "ref":"query_root_server",
  664. "value":true
  665. }
  666. ],
  667. "observables":[
  668. ]
  669. }
  670. ]
  671. },
  672. {
  673. "location":"location",
  674. "action":"receive_answer_from_root",
  675. "rate":{
  676. "exp":1
  677. },
  678. "guard":{
  679. "exp":{
  680. "op":"∧",
  681. "left":{
  682. "op":">",
  683. "left":"root_server_queue",
  684. "right":0
  685. },
  686. "right":{
  687. "op":"<",
  688. "left":"ds_queue",
  689. "right":{
  690. "op":"+",
  691. "left":"TIMES_TO_REQUEST_URL",
  692. "right":1
  693. }
  694. }
  695. }
  696. },
  697. "destinations":[
  698. {
  699. "probability":{
  700. "exp":{
  701. "op":"/",
  702. "left":1,
  703. "right":1
  704. }
  705. },
  706. "location":"location",
  707. "assignments":[
  708. {
  709. "ref":"root_server_queue",
  710. "value":{
  711. "op":"-",
  712. "left":"root_server_queue",
  713. "right":1
  714. }
  715. },
  716. {
  717. "ref":"ds_queue",
  718. "value":{
  719. "op":"+",
  720. "left":"ds_queue",
  721. "right":1
  722. }
  723. },
  724. {
  725. "ref":"query_root_server",
  726. "value":false
  727. }
  728. ],
  729. "observables":[
  730. ]
  731. }
  732. ]
  733. },
  734. {
  735. "location":"location",
  736. "action":"client_domain_server_request",
  737. "rate":{
  738. "exp":1
  739. },
  740. "guard":{
  741. "exp":{
  742. "op":">",
  743. "left":"ds_queue",
  744. "right":0
  745. }
  746. },
  747. "destinations":[
  748. {
  749. "probability":{
  750. "exp":{
  751. "op":"/",
  752. "left":1,
  753. "right":1
  754. }
  755. },
  756. "location":"location",
  757. "assignments":[
  758. {
  759. "ref":"query_domain_server",
  760. "value":true
  761. }
  762. ],
  763. "observables":[
  764. ]
  765. }
  766. ]
  767. },
  768. {
  769. "location":"location",
  770. "action":"receive_answer_from_domain",
  771. "rate":{
  772. "exp":1
  773. },
  774. "guard":{
  775. "exp":{
  776. "op":"∧",
  777. "left":{
  778. "op":"∧",
  779. "left":{
  780. "op":">",
  781. "left":"ds_queue",
  782. "right":0
  783. },
  784. "right":{
  785. "op":"<",
  786. "left":"queries_answered",
  787. "right":{
  788. "op":"+",
  789. "left":"TIMES_TO_REQUEST_URL",
  790. "right":1
  791. }
  792. }
  793. },
  794. "right":{
  795. "op":"=",
  796. "left":"correct_guess",
  797. "right":false
  798. }
  799. }
  800. },
  801. "destinations":[
  802. {
  803. "probability":{
  804. "exp":{
  805. "op":"/",
  806. "left":1,
  807. "right":1
  808. }
  809. },
  810. "location":"location",
  811. "assignments":[
  812. {
  813. "ref":"ds_queue",
  814. "value":{
  815. "op":"-",
  816. "left":"ds_queue",
  817. "right":1
  818. }
  819. },
  820. {
  821. "ref":"queries_answered",
  822. "value":{
  823. "op":"+",
  824. "left":"queries_answered",
  825. "right":1
  826. }
  827. },
  828. {
  829. "ref":"query_domain_server",
  830. "value":false
  831. },
  832. {
  833. "ref":"answer_from_domain_received",
  834. "value":true
  835. }
  836. ],
  837. "observables":[
  838. ]
  839. }
  840. ]
  841. },
  842. {
  843. "location":"location",
  844. "action":"client_",
  845. "rate":{
  846. "exp":1
  847. },
  848. "guard":{
  849. "exp":{
  850. "op":"∧",
  851. "left":{
  852. "op":">",
  853. "left":"queries_answered",
  854. "right":0
  855. },
  856. "right":{
  857. "op":">",
  858. "left":"queue",
  859. "right":0
  860. }
  861. }
  862. },
  863. "destinations":[
  864. {
  865. "probability":{
  866. "exp":{
  867. "op":"/",
  868. "left":1,
  869. "right":1
  870. }
  871. },
  872. "location":"location",
  873. "assignments":[
  874. {
  875. "ref":"queue",
  876. "value":{
  877. "op":"-",
  878. "left":"queue",
  879. "right":1
  880. }
  881. },
  882. {
  883. "ref":"queries_answered",
  884. "value":{
  885. "op":"-",
  886. "left":"queries_answered",
  887. "right":1
  888. }
  889. }
  890. ]
  891. }
  892. ]
  893. },
  894. {
  895. "location":"location",
  896. "action":"Correct_Guess",
  897. "rate":{
  898. "exp":{
  899. "op":"/",
  900. "left":1,
  901. "right":{
  902. "op":"*",
  903. "left":65536,
  904. "right":"port_id"
  905. }
  906. }
  907. },
  908. "guard":{
  909. "exp":{
  910. "op":"∧",
  911. "left":{
  912. "op":"=",
  913. "left":"correct_guess",
  914. "right":false
  915. },
  916. "right":{
  917. "op":"=",
  918. "left":"query_domain_server",
  919. "right":true
  920. }
  921. }
  922. },
  923. "destinations":[
  924. {
  925. "probability":{
  926. "exp":{
  927. "op":"/",
  928. "left":{
  929. "op":"/",
  930. "left":1,
  931. "right":{
  932. "op":"*",
  933. "left":65536,
  934. "right":"port_id"
  935. }
  936. },
  937. "right":{
  938. "op":"/",
  939. "left":1,
  940. "right":{
  941. "op":"*",
  942. "left":65536,
  943. "right":"port_id"
  944. }
  945. }
  946. }
  947. },
  948. "location":"location",
  949. "assignments":[
  950. {
  951. "ref":"correct_guess",
  952. "value":true
  953. }
  954. ],
  955. "observables":[
  956. ]
  957. }
  958. ]
  959. },
  960. {
  961. "location":"location",
  962. "action":"False_Guess",
  963. "rate":{
  964. "exp":{
  965. "op":"/",
  966. "left":{
  967. "op":"-",
  968. "left":{
  969. "op":"*",
  970. "left":65536,
  971. "right":"port_id"
  972. },
  973. "right":1
  974. },
  975. "right":{
  976. "op":"*",
  977. "left":65536,
  978. "right":"port_id"
  979. }
  980. }
  981. },
  982. "guard":{
  983. "exp":{
  984. "op":"∧",
  985. "left":{
  986. "op":"=",
  987. "left":"correct_guess",
  988. "right":false
  989. },
  990. "right":{
  991. "op":"=",
  992. "left":"query_domain_server",
  993. "right":true
  994. }
  995. }
  996. },
  997. "destinations":[
  998. {
  999. "probability":{
  1000. "exp":{
  1001. "op":"/",
  1002. "left":{
  1003. "op":"/",
  1004. "left":{
  1005. "op":"-",
  1006. "left":{
  1007. "op":"*",
  1008. "left":65536,
  1009. "right":"port_id"
  1010. },
  1011. "right":1
  1012. },
  1013. "right":{
  1014. "op":"*",
  1015. "left":65536,
  1016. "right":"port_id"
  1017. }
  1018. },
  1019. "right":{
  1020. "op":"/",
  1021. "left":{
  1022. "op":"-",
  1023. "left":{
  1024. "op":"*",
  1025. "left":65536,
  1026. "right":"port_id"
  1027. },
  1028. "right":1
  1029. },
  1030. "right":{
  1031. "op":"*",
  1032. "left":65536,
  1033. "right":"port_id"
  1034. }
  1035. }
  1036. }
  1037. },
  1038. "location":"location",
  1039. "assignments":[
  1040. {
  1041. "ref":"correct_guess",
  1042. "value":false
  1043. }
  1044. ],
  1045. "observables":[
  1046. ]
  1047. }
  1048. ]
  1049. },
  1050. {
  1051. "location":"location",
  1052. "action":"tau__",
  1053. "rate":{
  1054. "exp":1
  1055. },
  1056. "guard":{
  1057. "exp":{
  1058. "op":"=",
  1059. "left":{
  1060. "op":"=",
  1061. "left":"correct_guess",
  1062. "right":true
  1063. },
  1064. "right":true
  1065. }
  1066. },
  1067. "destinations":[
  1068. {
  1069. "probability":{
  1070. "exp":{
  1071. "op":"/",
  1072. "left":1,
  1073. "right":1
  1074. }
  1075. },
  1076. "location":"location",
  1077. "assignments":[
  1078. ],
  1079. "observables":[
  1080. ]
  1081. }
  1082. ]
  1083. }
  1084. ]
  1085. },
  1086. {
  1087. "name":"root_server",
  1088. "locations":[
  1089. {
  1090. "name":"location"
  1091. }
  1092. ],
  1093. "initial-locations":[
  1094. "location"
  1095. ],
  1096. "edges":[
  1097. {
  1098. "location":"location",
  1099. "action":"client_root_server_request",
  1100. "rate":{
  1101. "exp":1
  1102. },
  1103. "guard":{
  1104. "exp":{
  1105. "op":"=",
  1106. "left":"root_state",
  1107. "right":0
  1108. }
  1109. },
  1110. "destinations":[
  1111. {
  1112. "probability":{
  1113. "exp":{
  1114. "op":"/",
  1115. "left":1,
  1116. "right":1
  1117. }
  1118. },
  1119. "location":"location",
  1120. "assignments":[
  1121. {
  1122. "ref":"root_state",
  1123. "value":1
  1124. }
  1125. ]
  1126. }
  1127. ]
  1128. },
  1129. {
  1130. "location":"location",
  1131. "action":"receive_answer_from_root",
  1132. "rate":{
  1133. "exp":1
  1134. },
  1135. "guard":{
  1136. "exp":{
  1137. "op":"=",
  1138. "left":"root_state",
  1139. "right":1
  1140. }
  1141. },
  1142. "destinations":[
  1143. {
  1144. "probability":{
  1145. "exp":{
  1146. "op":"/",
  1147. "left":1,
  1148. "right":1
  1149. }
  1150. },
  1151. "location":"location",
  1152. "assignments":[
  1153. {
  1154. "ref":"root_state",
  1155. "value":0
  1156. }
  1157. ]
  1158. }
  1159. ]
  1160. }
  1161. ]
  1162. },
  1163. {
  1164. "name":"target_domain_server",
  1165. "locations":[
  1166. {
  1167. "name":"location"
  1168. }
  1169. ],
  1170. "initial-locations":[
  1171. "location"
  1172. ],
  1173. "edges":[
  1174. {
  1175. "location":"location",
  1176. "action":"client_domain_server_request",
  1177. "rate":{
  1178. "exp":1
  1179. },
  1180. "guard":{
  1181. "exp":{
  1182. "op":"=",
  1183. "left":"domain_state",
  1184. "right":0
  1185. }
  1186. },
  1187. "destinations":[
  1188. {
  1189. "probability":{
  1190. "exp":{
  1191. "op":"/",
  1192. "left":1,
  1193. "right":1
  1194. }
  1195. },
  1196. "location":"location",
  1197. "assignments":[
  1198. {
  1199. "ref":"domain_state",
  1200. "value":1
  1201. }
  1202. ]
  1203. }
  1204. ]
  1205. },
  1206. {
  1207. "location":"location",
  1208. "action":"receive_answer_from_domain",
  1209. "rate":{
  1210. "exp":{
  1211. "op":"/",
  1212. "left":1,
  1213. "right":"other_legitimate_requests_rate"
  1214. }
  1215. },
  1216. "guard":{
  1217. "exp":{
  1218. "op":"=",
  1219. "left":"domain_state",
  1220. "right":1
  1221. }
  1222. },
  1223. "destinations":[
  1224. {
  1225. "probability":{
  1226. "exp":{
  1227. "op":"/",
  1228. "left":{
  1229. "op":"/",
  1230. "left":1,
  1231. "right":"other_legitimate_requests_rate"
  1232. },
  1233. "right":{
  1234. "op":"/",
  1235. "left":1,
  1236. "right":"other_legitimate_requests_rate"
  1237. }
  1238. }
  1239. },
  1240. "location":"location",
  1241. "assignments":[
  1242. {
  1243. "ref":"domain_state",
  1244. "value":0
  1245. }
  1246. ]
  1247. }
  1248. ]
  1249. },
  1250. {
  1251. "location":"location",
  1252. "action":"serve_other_request",
  1253. "rate":{
  1254. "exp":{
  1255. "op":"/",
  1256. "left":{
  1257. "op":"-",
  1258. "left":"other_legitimate_requests_rate",
  1259. "right":1
  1260. },
  1261. "right":"other_legitimate_requests_rate"
  1262. }
  1263. },
  1264. "guard":{
  1265. "exp":{
  1266. "op":"=",
  1267. "left":"domain_state",
  1268. "right":1
  1269. }
  1270. },
  1271. "destinations":[
  1272. {
  1273. "probability":{
  1274. "exp":{
  1275. "op":"/",
  1276. "left":{
  1277. "op":"/",
  1278. "left":{
  1279. "op":"-",
  1280. "left":"other_legitimate_requests_rate",
  1281. "right":1
  1282. },
  1283. "right":"other_legitimate_requests_rate"
  1284. },
  1285. "right":{
  1286. "op":"/",
  1287. "left":{
  1288. "op":"-",
  1289. "left":"other_legitimate_requests_rate",
  1290. "right":1
  1291. },
  1292. "right":"other_legitimate_requests_rate"
  1293. }
  1294. }
  1295. },
  1296. "location":"location",
  1297. "assignments":[
  1298. {
  1299. "ref":"domain_state",
  1300. "value":1
  1301. }
  1302. ],
  1303. "observables":[
  1304. ]
  1305. }
  1306. ]
  1307. }
  1308. ]
  1309. },
  1310. {
  1311. "name":"intruder_server",
  1312. "locations":[
  1313. {
  1314. "name":"location"
  1315. }
  1316. ],
  1317. "initial-locations":[
  1318. "location"
  1319. ],
  1320. "edges":[
  1321. {
  1322. "location":"location",
  1323. "action":"client_domain_server_request",
  1324. "rate":{
  1325. "exp":1
  1326. },
  1327. "guard":{
  1328. "exp":{
  1329. "op":"=",
  1330. "left":"state_IS",
  1331. "right":0
  1332. }
  1333. },
  1334. "destinations":[
  1335. {
  1336. "probability":{
  1337. "exp":{
  1338. "op":"/",
  1339. "left":1,
  1340. "right":1
  1341. }
  1342. },
  1343. "location":"location",
  1344. "assignments":[
  1345. {
  1346. "ref":"state_IS",
  1347. "value":1
  1348. }
  1349. ]
  1350. }
  1351. ]
  1352. },
  1353. {
  1354. "location":"location",
  1355. "action":"Correct_Guess",
  1356. "rate":{
  1357. "exp":"guess"
  1358. },
  1359. "guard":{
  1360. "exp":{
  1361. "op":"=",
  1362. "left":"state_IS",
  1363. "right":1
  1364. }
  1365. },
  1366. "destinations":[
  1367. {
  1368. "probability":{
  1369. "exp":{
  1370. "op":"/",
  1371. "left":"guess",
  1372. "right":"guess"
  1373. }
  1374. },
  1375. "location":"location",
  1376. "assignments":[
  1377. {
  1378. "ref":"state_IS",
  1379. "value":1
  1380. }
  1381. ]
  1382. }
  1383. ]
  1384. },
  1385. {
  1386. "location":"location",
  1387. "action":"False_Guess",
  1388. "rate":{
  1389. "exp":"guess"
  1390. },
  1391. "guard":{
  1392. "exp":{
  1393. "op":"=",
  1394. "left":"state_IS",
  1395. "right":1
  1396. }
  1397. },
  1398. "destinations":[
  1399. {
  1400. "probability":{
  1401. "exp":{
  1402. "op":"/",
  1403. "left":"guess",
  1404. "right":"guess"
  1405. }
  1406. },
  1407. "location":"location",
  1408. "assignments":[
  1409. {
  1410. "ref":"state_IS",
  1411. "value":1
  1412. }
  1413. ]
  1414. }
  1415. ]
  1416. },
  1417. {
  1418. "location":"location",
  1419. "action":"receive_answer_from_domain",
  1420. "rate":{
  1421. "exp":1
  1422. },
  1423. "guard":{
  1424. "exp":{
  1425. "op":"=",
  1426. "left":"state_IS",
  1427. "right":1
  1428. }
  1429. },
  1430. "destinations":[
  1431. {
  1432. "probability":{
  1433. "exp":{
  1434. "op":"/",
  1435. "left":1,
  1436. "right":1
  1437. }
  1438. },
  1439. "location":"location",
  1440. "assignments":[
  1441. {
  1442. "ref":"state_IS",
  1443. "value":0
  1444. }
  1445. ]
  1446. }
  1447. ]
  1448. }
  1449. ]
  1450. }
  1451. ],
  1452. "system":{
  1453. "elements":[
  1454. {
  1455. "automaton":"intruder_machine"
  1456. },
  1457. {
  1458. "automaton":"client_server"
  1459. },
  1460. {
  1461. "automaton":"root_server"
  1462. },
  1463. {
  1464. "automaton":"target_domain_server"
  1465. },
  1466. {
  1467. "automaton":"intruder_server"
  1468. }
  1469. ],
  1470. "syncs":[
  1471. {
  1472. "synchronise":[
  1473. null,
  1474. "client_domain_server_request",
  1475. null,
  1476. "client_domain_server_request",
  1477. "client_domain_server_request"
  1478. ],
  1479. "result":"client_domain_server_request"
  1480. },
  1481. {
  1482. "synchronise":[
  1483. null,
  1484. "receive_answer_from_domain",
  1485. null,
  1486. "receive_answer_from_domain",
  1487. "receive_answer_from_domain"
  1488. ],
  1489. "result":"receive_answer_from_domain"
  1490. },
  1491. {
  1492. "synchronise":[
  1493. null,
  1494. "Correct_Guess",
  1495. null,
  1496. null,
  1497. "Correct_Guess"
  1498. ],
  1499. "result":"Correct_Guess"
  1500. },
  1501. {
  1502. "synchronise":[
  1503. null,
  1504. "False_Guess",
  1505. null,
  1506. null,
  1507. "False_Guess"
  1508. ],
  1509. "result":"False_Guess"
  1510. },
  1511. {
  1512. "synchronise":[
  1513. null,
  1514. "client_root_server_request",
  1515. "client_root_server_request",
  1516. null,
  1517. null
  1518. ],
  1519. "result":"client_root_server_request"
  1520. },
  1521. {
  1522. "synchronise":[
  1523. null,
  1524. "receive_answer_from_root",
  1525. "receive_answer_from_root",
  1526. null,
  1527. null
  1528. ],
  1529. "result":"receive_answer_from_root"
  1530. },
  1531. {
  1532. "synchronise":[
  1533. "client_request",
  1534. "client_request",
  1535. null,
  1536. null,
  1537. null
  1538. ],
  1539. "result":"client_request"
  1540. },
  1541. {
  1542. "synchronise":[
  1543. "client_",
  1544. "client_",
  1545. null,
  1546. null,
  1547. null
  1548. ],
  1549. "result":"client_"
  1550. },
  1551. {
  1552. "synchronise":[
  1553. "tau__",
  1554. null,
  1555. null,
  1556. null,
  1557. null
  1558. ],
  1559. "result":"tau__"
  1560. },
  1561. {
  1562. "synchronise":[
  1563. null,
  1564. "tau__",
  1565. null,
  1566. null,
  1567. null
  1568. ],
  1569. "result":"tau__"
  1570. },
  1571. {
  1572. "synchronise":[
  1573. null,
  1574. null,
  1575. null,
  1576. "serve_other_request",
  1577. null
  1578. ],
  1579. "result":"serve_other_request"
  1580. }
  1581. ]
  1582. }
  1583. }