1 / 18

Spécification des protocoles de communication en MAUDE

Spécification des protocoles de communication en MAUDE. Application au protocole d’authentification “ N eedham S chroeder P ublic K ey”. Plan. Introduction Logique de réécriture Maude : Motivations, caractéristiques, syntaxe… Spécification orientée objet en Maude

sammy
Download Presentation

Spécification des protocoles de communication en MAUDE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spécification des protocoles de communication en MAUDE Application au protocole d’authentification “Needham Schroeder Public Key”

  2. Plan • Introduction • Logique de réécriture • Maude : • Motivations, caractéristiques, syntaxe… • Spécification orientée objet en Maude • Exemple de spécification avec Maude : le protocole NSPK • Conclusion

  3. Introduction • Les approches informelles • Non flexibles pour l’optimisation de l’effort de conception, d’implémentation ... • Peuvent conduire à de sérieux problèmes d’intégration • Les méthodes formelles - Conception peut être corrigée très tôt - Automatisation (vérification, passage) • Différents formalismes (réseaux de Petri, logique de réécriture ,…)

  4. La logique de réécriture • Logique réécriture : décrit un système concurrent qui a des états et qui évolue en termes de transitions, celui-ci est représenté par une théorie de réécriture T=(Σ,E,L,R). • La structure statique du système est décrite par la signature (Σ,E) qui représente les états d’un système. • La structure dynamique est décrite par les règles de réécriture rl [l]: tt’ ces règles représentent les transitions.

  5. MAUDE : un outil de spécification formelle http://maude.csl.sri.com/ • Le choix de Maude est motivé par : • Cadre sémantique de la concurrence • Formalisation des systèmes orientés objets concurrents

  6. Caractéristiques de Maude : • basé sur la logique de réécriture : exprime la concurrence et le changement d’états du système. • Large spectre : les spécifications, le prototypape, la transformation des spécifications. • Multi-paradigme : combine les programmations fonctionnelle et orientée objet. • Stratégies internes : les stratégies servent à guider le processus de réécriture. La nature réflexive de la logique de réécriture permet au langage Maude d’exprimer ces stratégies en Maude.

  7. Syntaxe de Maude Regroupe trois types de modules : • Modules fonctionnels • Modules systèmes • Modules objets

  8. Modules fonctionnels fmod nat is sorts nat nznat. subsort nznat < nat. op 0 : —> nat. op s- : nat —> nat. op p- : nat —> nat. op -+- : nat nat —> nat. vars n m : nat. eq p(s(n)) = n. eq n+0=n. eq s(n) +s(m )=ss(n+m). endfm.

  9. mod ticket is sorts place marking. subsort place <marking. ops $,q,t1,t2 :  place. op - - : marking marking  marking. [ass,com,id] rl [b-t1] : $  t1qq. rl [b-t2] : $  t2q. rl [change] : $  qqqq. rl [b’-t1] : qq  t1. rl [b’-t1] : qqq  t2. endm. Modules Systèmes $ change b-t1 b-t2 2 2 4 t1 t2 q b’-t1 b’-t2 3 2

  10. Spécification orientée objet en Maude • Configuration : état d’un système orienté objets concurrents sorts object msg configuration. subsort object msg < configuration. op --: configuration configuration  configuration.[ass,com,id] • Définition d’une classe d’objets class c | att1: s1, att2: s2,……………..attn: sn. • État d’un objet <o; c | att1: v1, att2:v2,……………….attn: vn>. • Message msg m : p1…………………pn message.

  11. Spécification orientée objet en Maude : exemple omod accnt is protecting nat. class accnt | bal: nat. msg credit debit : oid nat  message. msg transfer- from - to - : nat oid oid  message. vars a, b :oid. vars m,n,n’: nat. rl [crdt] credit(a,m) <a; accnt | bal:n><a;accnt | bal : n+m>. crl [dbt] debit (a,m) <a; accnt | bal : n>  <a; accnt | bal : n-m> if n >=m. crl [trsf] transfer(m) from(a) to(b) <a; accnt | bal : N> <b; accnt | bal : n’>  <a; accnt | bal : n-m> <b; accnt | bal : n+m> if n>= m. endom.

  12. Spécifications du protocole NSPK • Spécification informelle • Spécification formelle

  13. Spécification informelle de NSPK • NSPK est un protocole d’authentification des paires d’agents dans un système distribué • Agent possède une paire de clés public et secrète • Nonce: identificateur de sessions ( nombre aléatoire) La spécification informelle simplifiée A B Message1 Message2 Message3 {Na}Pk(B) {Na.Nb} Pk(A) {Nb}Pk(B)

  14. Spécification formelle de NSPK : partie données fmod datatypes is sorts key field fieldset nonce principal run role estabcom. subsort nonce principal key < field. subsort field< fieldset. op keypair : key key boolean. [com] op mtfield : field. op n : principal nat nonce. op ped : key field field. op cat : nonce nonce  field. op (-,-,-) : nonce principal field  run. op (-,-,-,-) : role nonce principal nonce estabcom. ops i,r : role. vars sk, pk : key. var f: field. ceq ped(sk, ped(pk, f)=f if keypair(sk, pk). endf.

  15. Spécification formelle de NSPK :Partie dynamique (1) • Classe de l’objet agent class agent | e-com : estabcom, sec-key : key, role-i : run , role-r : run , d-com: fieldset, cnt: nat. • Déclaration du message msg from – to – send - : principal principal field  message.

  16. Spécification formelle de NSPK Partie dynamique (2) Message 1: est décrit par les règles de réécriture suivantes : rl [beginrun] <A; agent | role-i : RI, d-com: B U S, cnt: j> <A; agent | role-i : RI U (n(A, j), B, mtfield), cnt: j+1> from(A) to(B) send ped(Pk(B), n(A,j)). crl [message1 rec] : <B; agent | sec-key : SKB, role-i : RI, role-r : RR, cnt: J> from(A) to(B) send (ped (PKB, F)) <B; agent | role-r : RR U (n(b, j) , A,F), cnt: J+1> from(B) to(A) send (ped( pk(A), cat(F, n(B,j)))) if keypair (SKB, PKB) and not (F in RR)

  17. Spécification formelle de NSPK Partie dynamique (3) • Message2 est décrit par les règles suivantes : crl [m2recorct]: <A; agent | sec-key:SKA, role-i :RI U (NI, P, mtfield), e-com:C> from(B) to(A)send( ped(PKA, F))  <A; agent | role-i : RI, e-com: C U (I, NI, B, rest(F))> from(A) to (B) send(ped( pk(B), rest(F))) if keypair (SKA, PKA) and (B==P) and NI ==first(F). crl [m2recinct]: <A; agent | sec-key:SKA, role-i :RI U (NI, P, mtfield), e-com:C> from(B) to(A)send( ped(PKA, F)  <A; agent | role-i : RI> if keypair (SKA, PKA) and (B= |=P) and NI ==first(F).

  18. Conclusion • Maude est approprié pour la spécification formelle des systèmes distribués • Utilisation de Maude pour spécification et vérification formelle des protocoles de communication (multicast …)

More Related