Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CuprinsIntroducere                                                                                                        ...
2.3 Modelarea protocoalelor bazate pe smart carduri                                                                     19...
Introducere                                                                                             t˘          Un pro...
complexe decât pentru protocoalele clasice, iar metodele de analiz˘ formal˘ a acestora sunt în                            ...
agen¸ilor, în special cele ale intrusului, trebuie propuse noi defini¸ii ¸inând cont c˘ toate cheile     t                 ...
pe smart carduri demonstrând c˘ este sigur. Acest protocol este unul de distribu¸ie a cheilor de                          ...
agentul va putea reconstrui rezumatul hash si va putea face asocierea dintre cheie si serverul cu                         ...
Capitolul 1Principii de construc¸ie si analiz˘ a                     t ¸          aprotocoalelor de securitate   Literatur...
Principiul 4: criptarea.     Scopul utiliz˘ rii cript˘ rii trebuie s˘ fie clar precizat. Criptarea nu este sinonim˘ cu secu...
realizeaz˘ obiectivele de securitate, care s˘ fie utilizate de c˘ tre participan¸i în practic˘ . În con-         a         ...
Capitolul 2Metoda Inductiv˘               a    Metoda Inductiv˘ poate fi folosit˘ pentru demonstrarea formal˘ a corectitudi...
invers cronologic˘ . Mul¸imea P a tuturor urmelor posibile reprezint˘ modelul formal al re¸elei                  a       t...
diferite scenarii simple. Isabelle este foarte bun pentru a genera demonstra¸ii prin induc¸ie,                            ...
2.2.2 Cheile criptografice    Pentru a modela formal cheile criptografice se introduce un nou tip key. În sistemele cu cheis...
datatype msg         Says agent agent msg                                                 Gets agent msg                  ...
ce conduce la automatizarea verific˘ rii. Acest model este important pentru ob¸inerea erorilor de                          ...
spies ((Says A B X) # evs)   {X} ∪ spies evs   2. Orice mesaj memorat de un agent compromis într-o urm˘ este cunoscut de i...
0.   X ∈ H ⇒ X ∈ parts H                             1.   {| X, Y |} ∈ parts H ⇒ X ∈ parts H                             2...
Pentru a modela aceste numere avem nevoie de noi construc¸ii. Tipul de date msg este extins                               ...
2.3.1 Smart Cardurile    Abordarea propus˘ presupune modelarea func¸ionalit˘¸ii smart cardurilor si nu a modului          ...
2.3.1.2 Utilizarea cardului     Agen¸ii one¸ti pot utiliza propriile cardurile doar legal. Atacatorul utilizeaz˘ cardurile...
actualizarea cuno¸tin¸elor agen¸ilor.                 s t           t2.3.2 Evenimente    Abordarea propus˘ de Bella în [2]...
criptare. Recep¸ia unui mesaj nu extinde mul¸imea inductiv˘ deoarece aceast˘ opera¸ie este                 t              ...
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Disertatie
Upcoming SlideShare
Loading in …5
×

Disertatie

500 views

Published on

MODELAREA SI VERIFICAREA PROTOCOALELOR DE SECURITATE BAZATE PE SMART CARDURI

  • Be the first to comment

  • Be the first to like this

Disertatie

  1. 1. CuprinsIntroducere 3Motiva¸ie t 4Contribu¸ii t 6Structura lucr˘ rii a 7Principii de construc¸ie si analiz˘ a protocoalelor de securitate t ¸ a 8Metoda Inductiv˘ a 112.1 Isabelle 122.2 Modelarea protocoalelor de securitate 13 2.2.1 Agen¸ii . . . . . . . . . . . t . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.2 Cheile criptografice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.3 Mesajele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.4 Evenimente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.5 Urme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.6 Modelul intrusului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.7 Operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.8 Modelarea protocolului . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.9 Modelarea m˘ rcilor de timp . a . . . . . . . . . . . . . . . . . . . . . . . . 18 1
  2. 2. 2.3 Modelarea protocoalelor bazate pe smart carduri 19 2.3.1 Smart Cardurile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3.1.1 Vulnerabilit˘¸i . . . . . . . . . . . . . . . . . . . . . . . . . . at . . . . . 20 2.3.1.2 Utilizarea cardului . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.1.3 Secrete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.2 Evenimente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3.3 Cuno¸tin¸ele agen¸ilor . . . . . . . . . . . . . . . . . . . . . . . . . . s t t . . . . . 23 2.3.3.1 Agen¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t . . . . . 23 2.3.3.2 Cuno¸tin¸ele ini¸iale ale agen¸ilor . . . . . . . . . . . . . . . . s t t t . . . . . 23 2.3.3.3 Cuno¸tin¸ele pe care agen¸ii le extrag din observarea traficului s t t . . . . . 23 2.3.4 Modelul intrusului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.5 Modelarea formal˘ a protocolalelor . . . . . . . . . . . . . . . . . . . a . . . . . 27Protocolul KLOMP 28Analiza protocolului KLOMP 32 4.1 Modelarea protocolului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2 Verificarea protocolului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.1 Corectitudinea modelului pentru protocolul Klomp . . . . . . . . . . . . 40 4.2.2 Regularitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.3 Unicitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.4 Integritate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Autenticitatea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.2.6 Confiden¸ialitate . . . . . . . . . . . . . . . . . . . t . . . . . . . . . . . . 49 4.2.7 Distribu¸ia cheilor . . . . . . . . . . . . . . . . . . t . . . . . . . . . . . . 50Concluzii 51Bibliografie 53Anexe 54 2
  3. 3. Introducere t˘ Un protocol de securitate este un algoritm distribuit specificat printr-o secven¸a de pa¸i scare descrie ac¸iunile, a dou˘ sau mai multe entit˘¸i, ce trebuie realizate pentru atingerea unui t a atanumit obiectiv de securitate. Obiectivele de securitate reprezint˘ o mul¸ime de propriet˘¸i a t atprin care se poate specifica gradul de securitate al comunica¸iilor dintre agen¸ii unei re¸ele. t t tPropriet˘¸ile esen¸iale pe care un protocol ar trebui s˘ le ofere sunt cele de confiden¸ialitate si at t a t ¸integritate a mesajelor dar si de autenticitate a celor care transmit aceste mesaje. Intrusul este ¸agentul mali¸ios care poate intercepta si altera mesaje, sau poate crea alte mesaje false pe care t ¸s˘ le transmit˘ prin re¸ea. a a t Protejarea sesiunilor de comunicare pentru a împiedica furtul si alterarea informa¸iilor sen- ¸ tsibile a devenit o problem˘ la nivel mondial. Smart cardurile au ap˘ rut ca o solu¸ie la acest˘ a a t aproblem˘ oferind securitate prin stocarea într-un mod sigur, pe termen lung, a datelor cu carac- ater personal si a secretelor utilizate de c˘ tre primitivele criptografice. Datorit˘ cipului incorporat ¸ a acardul este capabil s˘ proceseze aceste date si s˘ ofere acces la ele doar în momentul în care a ¸ aanumite cerin¸e de securitate sunt îndeplinite. t Analiza protocoalelor de securitate este fundamental˘ înainte ca acestea s˘ fie utilizate în a apractic˘ , impunându-se considerarea mediului de execu¸ie si a intrusului. Datorit˘ num˘ rului a t ¸ a amare de atacuri, singura metod˘ de a asigura c˘ un astfel de protocol este corect este demon- a astra¸ia matematic˘ . O demonstra¸ie nu este altceva decât dovada c˘ fiecare pas din protocol t a t ap˘ streaz˘ o anumit˘ proprietate. a a a Ra¸ionamentul informal nu detecteaz˘ întotdeauna punctele slabe ale protocoalelor de secu- t aritate de aceea de-a lungul timpului s-au dezvoltat metode formale. Cu ajutorul acestora putemdemonstra c˘ la nivel abstract protocoale sunt corecte într-un anumit model sau dac˘ au im- a aperfec¸iuni. Demonstra¸iile propriet˘¸ilor pentru protocoalele bazate pe smart carduri sunt mai t t at 3
  4. 4. complexe decât pentru protocoalele clasice, iar metodele de analiz˘ formal˘ a acestora sunt în a anum˘ r limitat. Metoda Inductiv˘ este o tehnic˘ important˘ folosit˘ în demonstrarea formal˘ a a a a a aa corectitudinii protocoalelor de securitate, ce poate fi utilizat˘ în cadrul demonstratorului de ateoreme Isabelle. Bazele acestei metode au fost puse Paulson în [3] iar Bella în [2] propune oextensie pentru a putea verifica corectitudinea protocoalelor bazate pe smart carduri.Motiva¸ie t Problema verific˘ rii corectitudinii protocoalelor este destul de veche, cercet˘ torii punându- a asi problema înc˘ din 1970 de a demonstra corectitudinea componentelor sistemelor, dar deabia¸ aîn ultimul deceniu au ap˘ rut instrumente automate de verificare. a Smart cardurile au devenit o metod˘ comod˘ si sigur˘ de a stoca informa¸ii secrete pe ter- a a¸ a tmen lung, de aceea nu ar trebui s˘ par˘ surprinz˘ tor faptul c˘ sistemele tradi¸ionale bazate pe a a a a tparole sunt înlocuite tot mai des cu cele bazate pe smart carduri. Noile protocoale de securitateimplementate pe baza acestor sisteme tind s˘ ating˘ propriet˘¸i mai tari dar acest lucru trebuie a a atdemonstrat. Protocoale de securitate bazate pe smart carduri au nevoie de analiz˘ formal˘ care a ase bazeaz˘ pe principii matematice solide. Num˘ rul mare de vulnerabilit˘¸i posibile la nivel de a a at ¸ t˘protocol de securitate dar si de implementare a acestora scot în eviden¸a necesitatea dezvolt˘ rii ametodelor formale de modelare si verificare prin care s˘ facilit˘ m în¸elegerea sistemului si prin ¸ a a t ¸care s˘ ar˘ t˘ m c˘ aceste protocoale realizeaz˘ exact ceea ce trebuie, scopul pentru care au fost a aa a aproiectate. Induc¸ia matematic˘ este considerat˘ suficient˘ pentru a modela si a crea ra¸ionamente refer- t a a a ¸ titoare la obiectivele protocoalelor de securitate. În Metoda Inductiv˘ se folose¸te conceptul de a surm˘ , o list˘ de evenimente ce au loc în re¸ea în timp ce un num˘ r nelimitat de agen¸i execut˘ a a t a t aprotocolul. Aceasta poate fi v˘ zut˘ ca o istorie a evenimentelor re¸elei care au loc în momen- a a ttul execu¸iei protocolului si se define¸te inductiv. Mul¸imea tuturor urmelor posibile reprezint˘ t ¸ s t amodelul formal al protocolului. Propriet˘¸ile care pot fi demonstrate cu ajutorul Metodei In- atductive sunt: cofiden¸ialitatea, integritatea, autenticitatea, distribu¸ia cheilor si diferite forme t t ¸de autentificare, si sunt exprimate prin teoreme. Demonstratorul de teoreme Isabelle poate fi ¸utilizat pentru a demonstra aceste teoreme în mod semi-automat. Un alt concept important estecel de punct de vedere care stabile¸te care din aceste teoremele sunt utile unui anumit agent, sadic˘ dac˘ agentul poate verifica ipotezele de la care se pleac˘ . a a a Pentru protocoalele de e-commerce în care sunt utilizate smart carduri este necesar˘ ex- atinderea Metodei Inductive, introducând elemente noi pentru modelarea cardurilor ¸inând conttde riscurile clon˘ rii si de modul de interac¸iune a acestora cu agen¸ii. Pentru a stabili propri- a ¸ t tet˘¸ile unui protocol de securitate bazat pe smart carduri este foarte important s˘ stabilim în at aprimul rând rolul pe care îl are cardul propriu-zis, dar si modul în care un atacator ar putea in- ¸terveni. Extensia trebuie s˘ permit˘ modelarea interac¸iunii dintre carduri si posesorii acestora a a t ¸prin evenimente care marcheaz˘ transmiterea si recep¸ionarea de mesaje. Pentru cuno¸tin¸ele a ¸ t s t 4
  5. 5. agen¸ilor, în special cele ale intrusului, trebuie propuse noi defini¸ii ¸inând cont c˘ toate cheile t t t asunt stocate pe card, dar si mediul de execu¸ie, dac˘ atacatorul poate interveni sau nu în trans- ¸ t amiterea informa¸iilor. t t˘ ¸ Pe parcursul lucr˘ rii vor fi scoase în eviden¸a si principiile generale care stau la baza pro- atocoalelor corecte. Aceste principii contribuie la garan¸iile de securitate dar nu sunt suficiente. tUnul din principiile fundamentale în proiectarea protocoalelor de securitate conform [4] esteclaritatea care sugereaz˘ c˘ fiecare mesaj ar trebui s˘ spun˘ exact ce înseamn˘ far˘ a crea ambi- a a a a a aguitate, iar alt principiu sugereaz˘ renun¸area la criptare atunci când nu este necesar˘ . G. Bella a t aîn [5] dezvolt˘ ideea unui principiu de analiz˘ prudent˘ a protocoalelor de securitate numit prin- a a acipiul utilit˘ ¸ii scopului care este respectat atunci când exist˘ garan¸ii c˘ din punctul de vedere at a t aal agentului obiectivul protocolului este atins. Aceste garan¸ii trebuie s˘ se bazeze pe ipoteze pe t acare agentul le poate verifica în practic˘ .aAbord˘ ri cunoscute a Pentru analiza formal˘ a protocoalele de securitate de-a lungul timpului au fost propuse anumeroase abord˘ ri, iar odat˘ cu dezvoltarea sistemelor IT, calculatorul a început sa-¸i arate a a sutilitatea în automatizarea acestor analize. Metoda Inductiv˘ pare s˘ fie una din cele mai bune a aabord˘ ri având în vedere c˘ poate demonstra o gam˘ larg˘ de propriet˘¸i si este suportat˘ de a a a a at ¸ ademonstratorul de teoreme Isabelle. Protocoalele pentru smart carduri tind s˘ aibe obiective mai tari decât cele tradi¸ionale dar a tacest lucru trebuie demonstrat formal. Pentru a analiza astfel de protocale trebuie dezvoltate noimetode sau trebuie extise cele existente. Abadi în [1] propune o extensie pentru logica BAN care permite modelarea protocoalelor desecuritate bazate pe smart carduri si prin care se poate demonstra autentificarea mutual˘ dintre ¸ aagen¸i si sta¸iile de lucru. Abadi analizeaz˘ 3 protocoale de securitate bazate pe smart carduri t ¸ t aîn care sunt necesare cerin¸e diferite. Ideea principal˘ a logicii BAN este s˘ reprezinte formal t a aîncrederile pe care le au agen¸ii care execut˘ protocolul în diferite momente de execu¸ie. Fiecare t a tpas al protocolului este idealizat într-o formul˘ logic˘ si se realizeaz˘ o serie de deduc¸ii logice. a a¸ a t t˘Din aplicarea regulilor de inferen¸a asupra încrederilor ini¸iale ale agen¸ilor si asupra deduc¸iilor t t ¸ tcare reies din fiecare pas al protocolului se ajunge la scopul protocolului. Din p˘ cate logica BAN anu ofer˘ o semantic˘ satisf˘ c˘ toare si este limitat˘ , ra¸ionamentul privind confiden¸ialitatea fiind a a a a ¸ a t tdoar informal, intrusul nefiind modelat. Securitatea demonstrabil˘ [10] este un studiu al teoriei complexit˘¸ii bazat pe probabilit˘¸i a at atdespre confiden¸ialitatea cheilor de sesiune, dezvoltat si rafinat de Bellare and Rogway pentru t ¸protocoalele clasice. Ace¸tia au dezvoltat un protocol si au demonstrat c˘ este sigur în ipoteza s ¸ aîn care exist˘ func¸ii pseudo-aleatoare. Propriet˘¸ile demonstrate au fost cele de distribu¸ie a t at ta cheii si confiden¸ialitatea cheii care reiese din probabilitatea mic˘ a adversarului de a g˘ si ¸ t a acheia. Mai târziu Shoup si Rubin au extins aceast˘ abordare si au creat un nou protocol bazat ¸ a ¸ 5
  6. 6. pe smart carduri demonstrând c˘ este sigur. Acest protocol este unul de distribu¸ie a cheilor de a tsesiune într-un sistem cu trei agen¸i, fiecare de¸inând un card ideal ale c˘ rui func¸ii de criptare t t a tsunt pseudo-aleatoare. Autorii demonstreaz˘ c˘ agen¸ii partajeaz˘ o cheie la sfâr¸itul sesiunii a a t a sprotocolului si c˘ exist˘ o probabilitate neglijabil˘ ca atacatorul s˘ înve¸e cheia de sesiune. ¸ a a a a t Abordarea lui Bella în [2] se bazeaz˘ pe încrederile pe care fiecare agent le deriveaz˘ din a aobservarea unor evenimente ale re¸elei. Singura strategie folosit˘ în demonstra¸ii este induc¸ia. t a t tAceast˘ metod˘ poate fi aplicat˘ oric˘ rui protocol f˘ r˘ a necesita ajust˘ ri ale protocolului si a a a a aa a ¸poate ob¸ine o varietate de garan¸ii formale. Bella analizeaz˘ protocolul de distribu¸íe a cheilor t t a tpropus de Shoup si Rubin în [7] care presupune c˘ mijloacele de comunicare dintre posesorul ¸ acardului si card sunt sigure si se iau în considerare carduri f˘ r˘ PIN. Studiul efectuat este realizat ¸ ¸ aaasupra propriet˘¸ilor de autenticitate, unicitate, autentificare si distribu¸ia cheii si descoper˘ c˘ at ¸ t ¸ a aeste necesar˘ o clarificare în plus pentru dou˘ dintre mesajele protocolului. a aContribu¸ii t Scopul acestei lucr˘ ri este de a prezenta o metod˘ de analiz˘ a protocoalelor de securitate a a abazate pe smart carduri astfel încât ra¸ionamentele legate de gradul de securitate pe care acestea tîl ofer˘ s˘ aibe un suport formal. Aceast˘ metod˘ este o extensie a Metodei Inductive propus˘ de a a a a aPaulson în [3] si a metodei propus˘ de Bella în [2] pentru modelarea protocoalelor de securitate ¸ abazate pe smart carduri, dar care utilizeaz˘ elemente noi precum m˘ rcile de timp. a a Utilizând aceast˘ metod˘ am modelat si verificat protocolul Klomp propus de Bakker în a a ¸[8], protocol care nu a mai fost analizat formal pân˘ în acest moment. Protocolul este unul de aautentificare si distribu¸ie a cheilor de sesiune în cadrul tranzac¸iilor electronice. Pentru veri- ¸ t tficarea propriet˘¸ilor de securitate am utilizat demonstratorul de teoreme Isabelle care este un atinstrument complex dar util în demonstra¸ii semi-automate. Fiecare proprietate este formalizat˘ t aprintr-o teorem˘ care este apoi demonstrat˘ pentru fiecare pas din protocol. a a În urma analizei am descoperit c˘ anumi¸i pa¸i ai protocolului încalc˘ unul din principi- a t s aile fundamentale în construc¸ia protocoalelor de securitate si anume: comunicarea explicit˘ . t ¸ aBakker propune ca în urma interog˘ rii smart cardurilor agen¸ii s˘ primeasc˘ o cheie temporar˘ a t a a acreat˘ prin criptarea unor date furnizate de ace¸tia. Folosind aceste chei agen¸ii vor crea o cheie a s tde sesiune si certificate de autenticitate. Una din vulnerabilit˘¸ile posibile care trebuie consid- ¸ aterate atunci când se face analiza protocoalelor bazate pe smart carduri este faptul c˘ acestea ar aputea s˘ nu func¸ioneze corect cum ar fi în cazul în care un atacator le-ar corupe magistralele a tde date în momentul fabric˘ rii astfel încât acestea s˘ furnizeze r˘ spunsuri într-o ordine gre¸it˘ . a a a s aÎn acest caz agentul primind doar cheia temporar˘ nu va putea face corect asocierea cu cel cu acare dore¸te s˘ stabileasc˘ un canal de comunicare sigur. Solu¸ia propus˘ se bazeaz˘ pe ideea s a a t a ac˘ agentul trebuie s˘ poat˘ verifica componentele din care este creat˘ cheia temporar˘ dar f˘ r˘ a a a a a aaa cunoa¸te cheia cardului. Prin urmare mesajul returnat de smart card agentului va con¸ine atât s tcheia temporar˘ cât si rezumatul hash din care este construit˘ . În momentul recep¸iei mesajului a ¸ a t 6
  7. 7. agentul va putea reconstrui rezumatul hash si va putea face asocierea dintre cheie si serverul cu ¸care dore¸te s˘ comunice. s aStructura lucr˘ rii a Lucrarea este structurat˘ pe 6 capitole, primul având un caracter introductiv, identificând adirec¸iile de cercetare si principalele contribu¸ii aduse. t ¸ t În Capitolul 1, intitulat “Principii de construc¸ie si analiz˘ a protocoalelor de securitate", t ¸ asunt descrise informal principiile fundamentale care stau la baza creerii unor protocoale sigure.Pe parcursul lucr˘ rii voi ar˘ ta c˘ protocolul analizat în capitolul 4 încalc˘ unul din principiile a a a ade baz˘ enun¸ate de Abadi si Needham în [4], si anume comunicarea explicit˘ . Tot aici va fi a t ¸ ¸ adescris si principiul de analiz˘ propus de Bella în [5] care sugereaz˘ ca obiectivele de securitate ¸ a as˘ fie tratate din punctul de vedere al fiec˘ rui agent. a a Capitolul 2, intitulat “Metoda Inductiv˘ ", cuprinde o scurt˘ prezentare a demonstratorului a ade teoreme Isabelle si a elementelor acestei tehnici de modelare si verificare: tipurile agen¸ilor, ¸ ¸ tmodelul intrusului, chei criptografice, mesaje, evenimente, operatori. Metoda este prezentat˘ aa¸a cum a fost propus˘ de Paulson în [3] pentru verificarea formal˘ a corectitudinii protocoalelor s a ade securitate clasice. Pentru a analiza cât mai realist protocoalele de securitate bazate pe smartcarduri, metoda trebuie adaptat˘ . Astfel partea a doua a acestui capitol va cuprinde descrierea aelementelor necesare extinderii Metodei Inductive. În Capitolul 3, intitulat “Protocolul Klomp", este realizat˘ o scurt˘ descriere a protocolului a apropus de Bakker în [8]. Acesta este un protocol de autentificare si distribu¸ie de chei care ¸ tutilizeaz˘ smart carduri, creat pentru a securiza tranzac¸iile comer¸ului electronic. De¸i Bakker a t t sa propus un prototip pentru implementarea protocolului care a fost testat pentru dou˘ tipuri de acarduri aflate în uz, pentru Metoda Inductiv˘ este necesar˘ doar descrierea la nivel opera¸ional. a a tProtocolul Klomp nu a mai fost analizat formal pân˘ în acest moment. a Capitolul 4, intitulat “Analiza protocolul Klomp", cuprinde descrierea modelului formal si ¸a modului în care se realizat˘ verificarea modelului si a propriet˘¸ilor protocolului prezentat a ¸ atanterior. Modelul formal este descris inductiv cuprinzând atât pa¸ii protocolului cât si princi- s ¸palele vulnerabilit˘¸i posibile. Fiecare proprietate este specificat˘ printr-o teorem˘ care va fi at a ademonstrat˘ cu ajutorul demonstratorului Isabelle pentru fiecare pas din protocol. a Ultimul capitol, “Concluzii", face o trecere în revist˘ a con¸inutului lucr˘ rii, a contribu¸iilor a t a taduse precum si a direc¸iilor de cercetare r˘ mase deschise. ¸ t a Lucrarea va fi înso¸it˘ de un fi¸ier de teorii care cuprinde toate teoremele demonstrate în t a scapitolul 4 si care poate fi testat cu ajutorul demonstratorului de teoreme Isabelle. ¸ 7
  8. 8. Capitolul 1Principii de construc¸ie si analiz˘ a t ¸ aprotocoalelor de securitate Literatura de specialitate prezint˘ foarte multe exemple de protocoale de securitate care acon¸in erori. Aceste erori arat˘ necesitatea consider˘ rii unor reguli care s˘ ghideze construc¸ia t a a a t t˘protocoalelor. Abadi si Needham în [4] enun¸a 11 principii informale, care nu sunt suficiente ¸pentru demonstrarea corectitudinii protocoalelor de securitate, dar prin aplicarea lor se evit˘ asuficient de multe erori. Principiul 1: comunicarea explicit˘ . a Fiecare mesaj ar trebui s˘ spun˘ ceea ce înseamn˘ , interpretarea sa ar trebui s˘ depind˘ doar a a a a ade propriul con¸inut, astfel încât cel care îl recep¸ioneaz˘ s˘ -l în¸eleag˘ . Acest principiu spune t t a a t ac˘ într-o comunicare nu trebuie s˘ se presupun˘ c˘ anumite informa¸ii sunt deduse din context, a a a a taltul decât mesajul însu¸i, deoarece aceste informa¸ii ar putea fi înlocuite cu altele. s t Principiul 2: ac¸iune potrivit˘ . t a Acest principiu se refer˘ la un mod de a ac¸iona corespunz˘ tor unor condi¸ii. Condi¸iile a t a t ttrebuie clar stabilite cu privire la ac¸iunile pe care agen¸ii le pot realiza. Pentru a ac¸iona asupra t t tunui mesaj nu este suficient numai s˘ fie în¸eles, sunt necesare si alte condi¸ii precum cele legate a t ¸ tde încrederea între agen¸i. t Principiul 3: ad˘ ugarea identit˘¸ii agen¸ilor în mesaj. a at t Uneori identitatea agen¸ilor poate fi dedus˘ din alte date sau din cheile de criptare folosite. t aDac˘ identitatea agen¸ilor este esen¸ial˘ în semnifica¸ia mesajului, atunci identit˘¸ile trebuie a t t a t atmen¸ionate explicit în mesaj. t 8
  9. 9. Principiul 4: criptarea. Scopul utiliz˘ rii cript˘ rii trebuie s˘ fie clar precizat. Criptarea nu este sinonim˘ cu securi- a a a a t˘ ¸tatea, iar opera¸iile de criptare sunt costisitoare, conducând la redundan¸a si erori atunci când tse utilizeaz˘ necorespunz˘ tor. De obicei criptarea se folose¸te pentru asigurarea confiden¸ia- a a s tlit˘¸ii, garantarea autenticit˘¸ii, combinarea unor componente (în acest caz este suficient˘ doar at at asemnarea), si generarea de numere aleatoare. ¸ Principiul 5: semnarea informa¸iilor criptate. t Semn˘ tura se folose¸te pentru a indica care agent a criptat ultimul mesajul. Dac˘ un agent a s asemneaz˘ un mesaj deja criptat atunci nu ar trebui dedus c˘ agentul cunoa¸te con¸inutul mesa- a a s tjului. Se poate deduce c˘ agentul cunoa¸te con¸inutul mesajului doar dac˘ mai intâi semneaz˘ a s t a asi apoi cripteaz˘ .¸ a Principiul 6: scopul utiliz˘ rii nonceurilor. a Motiva¸ia utiliz˘ rii nonceurilor ar trebui s˘ fie clar˘ . Acestea sunt utilizate fie pentru a ob¸ine t a a a tnoutatea unui mesaj, fie pentru a face asocierea cu identitatea unui agent. Principiul 7: nonceuri generate aleator vs nonceuri predictibile. O valoare predictibil˘ (valoarea unui contor) poate fi utilizat˘ pentru ob¸inerea nout˘¸ii într- a a t atun schimb întrebare-r˘ spuns, îns˘ acest˘ cantitate trebuie protejat˘ astfel încât un atacator s˘ nu a a a a apoat˘ simula întrebarea si s˘ reia ulterior r˘ spunsul recep¸ionat. a ¸ a a t Principiul 8: utilizarea m˘ rcilor de timp. a a a at t˘ Dac˘ se folosesc m˘ rci de timp pentru garantarea nout˘¸ii unui mesaj prin referin¸a la timpulabsolut atunci diferen¸a de timp a ceasurilor agen¸ilor trebuie s˘ fie mai mic˘ decât intervalul de t t a a t˘timp acceptat ca toleran¸a la recep¸ia mesajului. Sincronizarea ceasurilor acestor ma¸ini se va t sface de c˘ tre autoritatea de încrederea. a Principiul 9: diferen¸a între utilizarea recent˘ si generarea recent˘ . t a¸ a Utilizarea recent˘ a unei chei, în sesiunea curent˘ , nu înseamn˘ c˘ aceasta este recent˘ . a a a a a Principiul 10: recunoa¸terea mesajelor. s Dac˘ se utilizeaz˘ o codificare atunci trebuie s˘ fie u¸or pentru agen¸i s˘ recunoasc˘ me- a a a s t a asajul si s˘ -l asocieze corect cu pasul din protocol corespunz˘ tor si eventual cu componentele ¸ a a ¸corespunz˘ toare. a Principiul 11: încredere. În construc¸ia protocoalelor de securitate este important s˘ se ia în calcul rela¸iile de încre- t a tdere de care depinde protocolul. Motivul pentru care o rela¸ie de încredere este acceptat˘ trebuie t aspecificat˘ explicit de¸i se bazeaz˘ în general doar pe aprecieri si nu pe logic˘ . a s a ¸ a Bella în [5] propune un principiu pentru analiza protocoalelor de securitate care comple-menteaz˘ principiile de construc¸ie prudent˘ amintite mai sus si care sugereaz˘ ca propriet˘¸ile a t a ¸ a atprotocoalelor s˘ fie bazate pe ipoteze pe care participan¸ii le pot verifica. Acest principiu se a tnume¸te utilitatea scopului si recomand˘ dezvoltarea unor garan¸ii formale c˘ protocolul î¸i s ¸ a t a s 9
  10. 10. realizeaz˘ obiectivele de securitate, care s˘ fie utilizate de c˘ tre participan¸i în practic˘ . În con- a a a t a t˘secin¸a principiul spune c˘ trebuie s˘ c˘ ut˘ m garan¸ii formale bazate pe presupuneri care pot fi a a a a tverificate, altfel concluziile nu vor fi utile în lumea real˘ , pentru c˘ nu prezint˘ interes pentru a a arespectivii agen¸i. t Principiul utilit˘ ¸ii scopului at Un protocol de securitate trebuie sa-¸i fac˘ util scopul în practic˘ . s a a Informal, un obiectiv de securitate este util în practic˘ pentru un participant, dac˘ la un mo- a ament dat în execu¸ia protocolului acesta poate beneficia de el. În modelul formal al protocolului, ttrebuie s˘ existe o garan¸ie formal˘ care specific˘ faptul c˘ participantul ob¸ine o proprietate de a t a a a tsecuritate la un moment dat si care porne¸te de la presupuneri care pot fi verificate de c˘ tre res- ¸ s apectivul participant. Dac˘ nu exist˘ o astfel de garan¸ie atunci spunem c˘ protocol nu reu¸e¸te a a t a s ss˘ fac˘ util respectivul scop pentru participant. Este important ca aceste garan¸ii formale s˘ fie a a t aob¸inute într-un model al intrusului realist. În continuare vor fi prezentate conceptele esen¸iale t tcare stau la baza acestui principiu. Defini¸ie: scop util t Fie P un protocol de securitate, P model formal pentruP, g un scop (obiectiv de securitate)al protocoluluiP si A un agent. Spunem c˘ g este util pentru A în P dac˘ exist˘ o garan¸ie ¸ a a a tformal˘ în P care confirm˘ g si aceasta este aplicabil˘ de A în P. a a ¸ a Defini¸ie: garan¸ie aplicabil˘ t t a Fie P un protocol de securitate, P model formal pentruP si A un agent. Spunem c˘ o ¸ agaran¸ie formal˘ în P este aplicabil˘ de A în P dac˘ este stabilit˘ pe baza unor ipoteze pe care A t a a a ale poate verifica în P folosindu-¸i încrederile minimale. s Defini¸ie: încrederi minimale t Fie P un protocol de securitate, P model formal pentruP si A un agent. Încrederile mini- ¸male ale agentului A este mul¸imea tuturor faptelor formalizate în P a c˘ ror valoare de adev˘ r t a atrebuie s˘ fie cunoscut˘ de A dar care nu poate fi verificat˘ în practic˘ . a a a a 10
  11. 11. Capitolul 2Metoda Inductiv˘ a Metoda Inductiv˘ poate fi folosit˘ pentru demonstrarea formal˘ a corectitudinii protocoalelor a a ade securitate. Aceast˘ metod˘ se afl˘ în clasa metodelor de demonstrare de teoreme si ofer˘ a a a ¸ arezultate valabile pentru toate comport˘ rile posibile ale protocolului de securitate studiat. Demon- astratorul de teoreme Isabelle ofer˘ un foarte bun suport mecanic pentru aceast˘ metod˘ , fiind un a a ainstrument semi-automat în care este necesar˘ ghidarea din partea celui care face demonstra¸ia a tpentru a ajunge la obiectivul protocolului. Un protocol de securitate este un program concurent care este executat de un num˘ r in- adefinit de agen¸i si procesul tinde s˘ ating˘ dimensiuni foarte mari. Studierea unei propriet˘¸i a t ¸ a a atprotocolului înseamn˘ derivarea unui ra¸ionament prin care s˘ se poat˘ demonstra c˘ to¸i pa¸ii a t a a a t sprotocolului p˘ streaz˘ acea proprietate. În Metoda Inductiv˘ pentru a demonstra c˘ un protocol a a a a ¸ t˘de securitate este corect si nu este vulnerabil la noi amenin¸ari, odat˘ ce acestea sunt descoperite avor fi modelate ca o mul¸ime definit˘ inductiv iar obiectivele protocolului vor fi demonstrate prin t ainduc¸ie asupra întregului model. Modelul intrusului este Dolev-Yao si nu se impun restric¸ii t ¸ tasupra num˘ rului de agen¸i sau a num˘ rului de sesiuni. a t a De exemplu fie protocolul de securitate P, si un num˘ r nelimitat de agen¸i, printre care si ¸ a t ¸intrusul care monitorizeaz˘ re¸eaua si cunoa¸te secretele agen¸ilor compromi¸i. Traficul re¸elei a t ¸ s t s tse dezvol˘ în func¸ie de ac¸iunile (evenimente de comunicare) pe care le efectueaz˘ agen¸ii a t t a tatunci când execut˘ diferite sesiuni ale protocolului P. Protocolul P este modelat ca un sistem atranzi¸ional în care se surprinde evolu¸ia sistemului ar˘ tând cum se realizeaz˘ trecerea dintr-o t t a astare în alta. O istorie a traficului re¸elei poate fi reprezentat˘ ca o list˘ de evenimente care au t a aloc în acea istorie. Aceast˘ list˘ este o urm˘ a protocolului si este de obicei construit˘ în ordine a a a ¸ a 11
  12. 12. invers cronologic˘ . Mul¸imea P a tuturor urmelor posibile reprezint˘ modelul formal al re¸elei a t a tunde P este executat si este definit˘ inductiv prin reguli specificate de P. Evenimentele au loc ¸ aprin declan¸area acestor reguli. Din moment ce nici o regul˘ nu este for¸at˘ s˘ se declan¸eze, s a t a a snici un eveniment nu este for¸at s˘ aibe loc. t a Induc¸ia în faza de specificare permite definirea tuturor operatorilor de mesaje relevan¸i si a t t ¸modelului protocolului. În faza de verificare induc¸ia ofer˘ principiul demonstra¸iei prin care se t a t at at t˘stabilesc propriet˘¸ile modelului. Propriet˘¸ile care pot fi verificate sunt doar cele de siguran¸a(safety) care indic˘ c˘ niciodat˘ nu se va întâmpla nimic r˘ u, dar nu putem verifica propriet˘¸ile a a a a atde viabilitate (liveness) care afirm˘ c˘ ceva bun va avea loc. a a Abordarea propus˘ de Paulson preia de la logica BAN ideea ob¸inerii de noi informa¸ii a t tca urmare a recep¸iei mesajelor, dar propriet˘¸ile de securitate nu se mai refer˘ exclusiv la t at aautentificare. Semantica opera¸ional˘ este asem˘ n˘ toare cu cea a formaliz˘ rii CSP, cu excep¸ia t a a a a tfaptului c˘ modelele sunt nem˘ rginite. Tot în stil CSP este considerat˘ si no¸iunea de eveniment a a a¸ tdar si faptul c˘ propriet˘¸ile de securitate sunt exprimate ca predicate pe mul¸imea urmelor ¸ a at tprotocolului. Metoda Inductiv˘ poate fi folosit˘ în cadrul demonstratorului de teoreme Isabelle deoarece a aacesta ofer˘ un foarte bun suport pentru mul¸imile definite inductiv, simplific˘ ri eficiente prin a t areguli de rescriere condi¸ionale si împ˘ r¸iri automate pe cazuri pentru expresiile if-the-else. t ¸ at Figura 1: Metoda inductiv˘ a2.1 Isabelle Isabelle este un demonstrator de teoreme generic interactiv. Cea mai popular˘ versiune este aIsabelle/HOL, care permite specificarea si verificarea protocoalelor de securitate. Interactiv se ¸refer˘ la faptul c˘ demonstratorul nu este complet automat, necesitând interven¸ia uman˘ pentru a a t aa conduce demonstra¸iile. Acest instrument ofer˘ un simplificator puternic care este util în sim- t aplic˘ rile anumitor informa¸ii si afirma¸ii iar cu ajutorul demonstra¸iilor automate putem rezolva a t ¸ t t 12
  13. 13. diferite scenarii simple. Isabelle este foarte bun pentru a genera demonstra¸ii prin induc¸ie, t tpropriet˘¸ile fiind demonstrate pentru toate urmele protocoalelor. at a ¸ a a t˘ Demonstrarea teoremelor este dificil˘ si necesit˘ mult˘ experien¸a din partea celui caredore¸te s˘ realizeze demonstra¸ia. Pentru a realiza o demonstra¸ie, utilizatorul trebuie s˘ apeleze s a t t ala anumite metode de induc¸ie si simplificare pentru subscopurile ob¸inute pentru a îndruma in- t ¸ tstrumentul cum s˘ procedeze pentru a ajunge la obiectivul final. Dac˘ au r˘ mas subscopuri a a anerezolvate atunci se poate apela la demonstratorul automat sau se pot reduce prin utilizareaunor leme. Dac˘ demonstra¸ia nu se poate realiza atunci înseamn˘ c˘ utilizatorul nu este destul a t a ade priceput sau modelul are contradic¸ii. t Analiza unui sistem în Isabelle începe cu dezvoltarea unei teorii care cuprinde specifica-rea sistemului si teoremele necesare analizei. Aceste teorii sunt de fapt scripturi iar fiecare ¸teorem˘ are în spate un astfel de script. Distribu¸iile de Isabelle cuprind o serie de astfel de a tteorii deja dezvoltate. De exemplu în fi¸ierul Message.thy sunt descrise formal mesajele si ope- s ¸ratorii care pot fi utiliza¸i de c˘ tre protocoalele de securitate. Scripturile create de G. Bella t apentru analiza protocolului creat de Shoup si Rubin se g˘ sesc în ultima versiune în directorul ¸ aIsabelle2011/src/HOL/Auth/Smartcard. Teoria EventSC.thy con¸ine o mul¸ime extins˘ de eve- t t a t˘nimente fa¸a de cea creat˘ de Paulson si descrie interac¸iunea cu smart cardurile, iar în Smart- a ¸ tcard.thy este descris formal cardul împreun˘ cu câteva specifica¸ii legate de secretele stocate si a t ¸vulnerabilit˘¸ile posibile cum ar fi furtul sau clonarea. Teoriile ShoupRubin.thy si ShoupRubin- at ¸Bella.thy con¸in specificarea protocolului si teoremele de verificare. t ¸2.2 Modelarea protocoalelor de securitate2.2.1 Agen¸ii t Metoda Inductiv˘ nu are restristric¸ii referitoare la num˘ rul de agen¸i care pot executa un a t a tprotocol. Agen¸ii pot fi umani, ma¸ini sau procese. În modelarea formal˘ a protocoalelor vom t s autiliza 3 tipuri de agen¸i: cei one¸ti care vor fi nota¸i cu Friend i (i num˘ r natural), intrusul care t s t ava fi notat cu Spy si serverul notat S sau Server. ¸ datatype agent Server Friend nat Spy Pentru a modela diferite vulnerabilit˘¸i trebuie introdus˘ si o mul¸ime de agen¸i compromi¸i at a¸ t t scare î¸i dezv˘ luie secretele atacatorului chiar de la începutul protocolului, dar si ceea ce observ˘ s a ¸ ape parcursul protocolului. Aceast˘ mul¸ime va fi notat˘ cu bad si se consider˘ c˘ atacatorul face a t a ¸ a aparte din aceast˘ mul¸ime. a t 13
  14. 14. 2.2.2 Cheile criptografice Pentru a modela formal cheile criptografice se introduce un nou tip key. În sistemele cu cheisimetrice, specificarea faptului c˘ fiecare agent are o cheie partajat˘ cu serverul se face printr-o a afunc¸ie: t shrK : agent → key În cazul sistemele cu chei asimetrice func¸ia se aplicat˘ pentru perechea de chei de criptare t apriEK si pubEK sau pentru perechea de chei folosit˘ la semn˘ turi priSK si pubSK. ¸ a a ¸ Pentru a face distinc¸ie între tipurile de chei, cele simetrice vor fi notate cu symKeys si vor fi t ¸parti¸ionate în chei partajate (shrK) si chei de sesiune. Pentru a modela faptul c˘ o cheie K este t ¸ apentru o sesiune: K ∈ symKeys si K ∈ range shrK ¸ / O alt˘ func¸ie ce poate fi specificat˘ este invKey : key → key care nu modific˘ cheile dac˘ a t a a asunt simetrice, iar dac˘ sunt asimetrice va oferi cheia complementar˘ (priSK A = invKey(pubSK A)). a a2.2.3 Mesajele Tipul de date pentru mesaje: datatype msg Agent agent Nonce nat Key key Mpair msg msg Hash msg Crypt key msg Mesajele pot con¸ine nume de agen¸i, nonceuri si chei criptografice. Mesajele pot fi create t t ¸din concatenarea mai multor mesaje folosind constructorul MPair; rezumatul unui mesaj se ob-¸ine cu ajutorul operatorului Hash, iar criptarea unui mesaj se va face cu ajutorul constructoruluitCrypt folosind o cheie de criptare simetric˘ sau asimetric˘ . Criptarea se presupune a fi perfect˘ a a adeci nu exist˘ nici o modalitate de a ob¸ine plaintextul dintr-un criptotext f˘ r˘ a sti cheia de a t aa ¸criptare.2.2.4 Evenimente Tipul de date pentru evenimente permite formalizarea evenimentelor de transmitere, re-cep¸ie si memorare a mesajelor: t ¸ 14
  15. 15. datatype msg Says agent agent msg Gets agent msg Notes agent msg Un mesaj poate fi recep¸ionat doar dup˘ de a fost transmis. Evenimentul Notes modeleaz˘ t a asitua¸ia când un agent memoreaz˘ por¸iuni dintr-un mesaj care vor putea fi utilizate ulterior. t a tAcesta ar putea înlocui evenimentul Gets deoarece un agent poate memora un mesaj doar dup˘ ace acesta a fost recep¸ionat, dar cele 2 evenimente sunt specificate separat pentru a modela mai tbine realitatea.2.2.5 Urme Urmele protocolului sunt liste de evenimente de lungime variabil˘ pe baza c˘ rora se va a aconstrui modelul protocolului si care vor fi utilizate în verifiarea propriet˘¸ilor. O urm˘ poate ¸ at afi utilizat˘ pentru a înregistra toate evenimentele care au loc de-a lungul unei istorii a re¸elei în a tcare se execut˘ protocolul. Urmele sunt create în ordine invers cronologic˘ , ultimul eveniment a afiind în capul listei. Un eveniment poate fi declan¸at de un num˘ r indefinit de ori într-o urm˘ . s a aExemplu de urm˘ : a Notes Spy (Nonce Na ) Says A B {| Agent A, Nonce Na |} Says A B {| Agent A, Nonce Na |} Este foarte important ca modelul protocolului s˘ considere toate urmele posibile si doar a ¸acele urme pe care protocolul studiat le poate produce.2.2.6 Modelul intrusului Atunci când analiz˘ m protocoale de securitate este foarte important s˘ se considere un a amodel realist pentru vulnerabilit˘¸i. În cazul Metodei Inductive se consider˘ modelul Dolev- at aYao, în care modelarea si verificarea protocoalelor de securitate presupune ipoteza criptografiei ¸perfecte. Conform acestei presupuneri atacatorul este înregistrat ca si un agent onest capabil ¸s˘ controleze mediul, adic˘ poate intercepta toate mesajele si poate împiedica transmiterea lor a a ¸c˘ tre destinatar dar nu poate ob¸ine nici o informa¸ie dintr-un mesaj dac˘ nu cunoa¸te cheia de a t t a sdecriptare. Atacatorul poate doar s˘ ob¸in˘ informa¸ii din mesajele criptate cu chei pe care le a t a tcunoa¸te, le poate descompune si poate crea alte mesaje din componentele ob¸inute. Un mesaj s ¸ tcare este transmis nu este în mod necesar recep¸ionat, iar cel care îl recep¸ioneaz˘ nu este în t t amod necesar cel c˘ ruia îi este destinat. De asemenea acest model presupune utilizarea de chei aperfecte care nu pot fi ghicite sau extrase din mesajele criptate si se consider˘ mecanisme de ¸ agenerare de numere aleatoare perfecte si func¸ii hash perfecte (one-way si f˘ r˘ coliziuni). ¸ t ¸ aa Primitivile criptografice sunt considerate abstracte si sigure, si se presupun a fi injective ceea ¸ ¸ 15
  16. 16. ce conduce la automatizarea verific˘ rii. Acest model este important pentru ob¸inerea erorilor de a tprotocol si nu pentru cele care ¸in de implementarea acestora. ¸ t Pentru a respecta aceste cerin¸e este necesar˘ formalizarea cuno¸tin¸elor atacatorului. Pentru t a s ta specifica cuno¸tin¸ele ini¸iale ale agen¸ilor Metoda Inductiv˘ include urm˘ toarea func¸ie: s t t t a a t initState : agent → msg set Cuno¸tin¸ele ini¸iale trebuie formalizate diferit în func¸ie de tipul agentului. s t t t 1. Mul¸imea cuno¸tin¸elor ini¸iale ale serverului este format˘ din toate cheile partajate, toate t s t t acheile publice si cheile sale private. ¸ initState Server {Key(shrK A)}∪ {Key(priEK Server)} ∪ {Key(priSK Server)}∪ {Key(pubEK A)} ∪ {Key(pubSK A)} 2. Mul¸imea cuno¸tin¸elor ini¸iale ale unui agent onest const˘ din cheia sa partajat˘ , cheile t s t t a asale private si toate cheile publice. ¸ initState(Friend i) {Key(shrK (Friend i))}∪ {Key(priEK (Friend i))} ∪ {Key(priSK (Friend i))}∪ {Key(pubEK A)} ∪ {Key(pubSK A)} 3. Mul¸imea cuno¸tin¸elor ini¸iale ale intrusului este format˘ din toate cheile partajate si t s t t a ¸private ale agen¸ilor compromi¸i, si toate cheile publice. t s ¸ initState Spy {Key(shrK A)|A ∈ bad}∪ {Key(priEK A)|A ∈ bad} ∪ {Key(priSK A)|A ∈ bad}∪ {Key(pubEK A)} ∪ {Key(pubSK A)} Paulson propune pentru formalizarea cuno¸tin¸elor pe care intrusul le ob¸ine din observarea s t turmelor protocolului func¸ia spies. Aceste cuno¸tin¸e sunt formate din starea sa ini¸ial˘ , toate t s t t amesajele trimise de orice agent si toate mesajele memorate de agen¸ii compromi¸i. ¸ t s spies : event list → msg set Ca nota¸ie se va utiliza operatorul # pentru delimitarea ultimului eveniment dintr-o urm˘ . t aDe exemplu Says A B X # evs simbolizeaz˘ urma a c˘ rui prim eveniment este transmiterea de la a aA la B a mesajului X iar evs reprezint˘ suburma r˘ mas˘ . Func¸ia spies poate fi definit˘ recursiv: a a a t a 0. Intrusul i¸i cunoa¸te starea ini¸ial˘ în orice urm˘ . s s t a a spies [] initState Spy 1. Orice mesaj transmis într-o urm˘ este cunoscut de intrus în acea urm˘ . a a 16
  17. 17. spies ((Says A B X) # evs) {X} ∪ spies evs 2. Orice mesaj memorat de un agent compromis într-o urm˘ este cunoscut de intrus în acea aurm˘ . a  {X} ∪ spies evs dac˘ A ∈ bad a spies ((Notes A X) # evs) spies evs altfel2.2.7 Operatori Pentru mul¸imile de mesaje se introduc trei operatori: t analz, synth, parts : msg set → msg set Operatorul analz se folose¸te pentru a modela descompunerea mesajelor. Dat˘ H o mul¸ime s a tde mesaje, atunci analz H se poate defini inductiv prin: 0. X ∈ H ⇒ X ∈ analz H 1. {| X, Y |} ∈ analz H ⇒ X ∈ analz H 2. {| X, Y |} ∈ analz H ⇒ Y ∈ analz H 3. {| Crypt K X ∈ analz H; Key(invKey K) ∈ analz H|} ⇒ X ∈ analz H Mul¸imea analz(spies evs ) reprezint˘ mul¸imea tuturor componentelor mesajelor pe care t a tintrusul le poate deriva din observarea traficului din urma evs. Aceste componente se ob-¸in din descompunerea mesajelor concatenate si decriptarea celor criptate folosind chei caret ¸devin cunoscute recursiv. Confiden¸ialitatea unui mesaj în urma evs se reprezint˘ prin X ∈ t a /analz(spies evs). Operatorul synth se folose¸te atunci când se construiesc mesaje din componentele cunoscute. sDat˘ H o mul¸ime de mesaje, atunci synth H se poate defini inductiv prin: a t 0. X ∈ H ⇒ X ∈ synth H 1. Agent A ∈ synth H 2. X ∈ synth H ⇒ Hash X ∈ synth H 3. {| X ∈ synth H, Y ∈ synth H |} ⇒ {| X, Y |} ∈ synth H 4. {| Key K ∈ H, X ∈ synth H |} ⇒ Crypt K X ∈ synth H Mul¸imea synth(analz(spies evs )) reprezint˘ mul¸imea tuturor mesajelor pe care intrusul le t a tpoate crea prin concatenarea si criptarea componentelor derivate din observarea urmei evs. ¸ Operatorul parts se folose¸te pentru extragerea tuturor componentelor unei mul¸imi de me- s tsaje prin proiec¸ie si decriptare. Dat˘ H o mul¸ime de mesaje, atunci parts H se poate defini t ¸ a tinductiv prin: 17
  18. 18. 0. X ∈ H ⇒ X ∈ parts H 1. {| X, Y |} ∈ parts H ⇒ X ∈ parts H 2. {| X, Y |} ∈ parts H ⇒ Y ∈ parts H 3. Crypt K X ∈ parts H ⇒ X ∈ parts H Spre deosebire de func¸ia analz, parts nu necesit˘ cunoa¸terea cheii de decriptare. Dat un t a smesaj X si urm˘ evs, X ∈ parts(spies evs) înseamn˘ c˘ X apare în acea urm˘ posibil ca si o ¸ a a a a ¸component˘ a unui mesaj. a Noutatea este important˘ atunci când gener˘ m nonceuri sau chei de sesiune. Pentru a ajuta la a aformalizarea acestui concept Metoda Inductiv˘ introduce func¸ia used care reprezint˘ mul¸imea a t a ttuturor componentelor care fac parte din cuno¸tin¸ele ini¸iale ale agen¸ilor împreun˘ cu toate s t t t acomponentele mesajelor care apar într-o urm˘ . a used : event list → msg set Aceasta poate fi definit˘ inductiv prin: a 0. used[] B.parts(initState B) 1. used((Says A B X) # evs) parts{X} ∪ used evs 2. used((Notes A X) # evs) parts{X} ∪ used evs Noutatea unui mesaj m în urma evs poate fi modelat˘ prin m ∈ used evs. a /2.2.8 Modelarea protocolului Modelarea formal˘ a unui protocol se face printr-o mul¸ime definit˘ inductiv de liste de a t aevenimente (urme ale protocolului), fiecare decriind o posibil˘ istorie a re¸elei în care protocolul a teste rulat. Pentru a modela formal un protocol trebuie s˘ specific˘ m regulile de construc¸ie a a a tacestei mul¸imi. Regula Nil define¸te cazul de baz˘ specificând faptul c˘ urma vid˘ apar¸ine t s a a a tmodelului. Fiecare pas din protocol este formalizat printr-o regul˘ inductiv˘ care specific˘ cum a a ase extinde o anumit˘ urm˘ prin evenimentul de tip Says care descrie acel pas din protocol. a aComportamentul unui posibil atacator este modelat printr-o alt˘ regul˘ numit˘ Fake, care for- a a amalizeaz˘ faptul c˘ acesta poate trimite orice mesaj pe care îl poate crea din componentele pe a acare le cunoa¸te. s2.2.9 Modelarea m˘ rcilor de timp a Bella în [5] propune o extensie a Metodei Inductive care permite modelarea m˘ rcilor de atimp (timestamps) în formalizarea mesajelor. M˘ rcile de timp sunt numere care marcheaz˘ o a a a t˘anumit˘ instan¸a de timp si care permit evitarea atacurilor de tip reluare. Spre deosebire de non- ¸ceuri care sunt numere aleatoare si pe care modelul presupune c˘ sunt imposibil de descoperit, ¸ am˘ rcile de timp pot fi ghicite de c˘ tre un atacator. a a 18
  19. 19. Pentru a modela aceste numere avem nevoie de noi construc¸ii. Tipul de date msg este extins tcu un nou constructor Number care are ca parametru un num˘ r natural, iar m˘ rcile de timp T vor a afi reprezentate într-un mesaj prin componenta Number T. Atacatorul poate ghici aceste numeresi poate crea alte mesaje utilizându-le, deci synth H trebuie extins˘ :¸ a 5.Number N ∈ synth H Regulile de rescriere pentru operatori trebuie actualizate: parts({Number N} ∪ H) = {Number N} ∪ {parts H} analz({Number N} ∪ H) = {Number N} ∪ {analz H} Pentru a modela timpul curent trebuie specificat˘ o func¸ie care asigneaz˘ fiec˘ rui eveniment a t a adintr-o urm˘ un num˘ r care va reprezenta normalizarea instan¸ei de timp când a avut loc. a a t CT : event list → nat si vom defini ¸ CT evs lungime evs O urm˘ a unui protocol care are lungimea n reprezint˘ o istorie a protocolului dup˘ ce n a a aevenimente au avut loc, ceea ce înseamn˘ c˘ timpul curent al urmei respective este exact n. a aAcest˘ formalizare ascunde problema sincroniz˘ rii ceasurilor care va face parte din încrederile a aminimale ale fiec˘ rui agent. a2.3 Modelarea protocoalelor bazate pe smart carduri Smart cardurile înt˘ resc obiectivele protocoalelor care le utilizeaz˘ , dar acest lucru trebuie a ademonstrat formal. Metoda Inductiv˘ propus˘ de Paulson în [3] poate fi adaptat˘ conform [2] a a apentru a verifica corectitudinea protocoalelor bazate pe smart carduri. Cardul va fi modelatprintr-un nou tip si poate interac¸iona cu cel care îl de¸ine prin mesaje. Fiecare card stocheaz˘ ¸ t t ao mul¸ime de secrete în func¸ie de aplica¸iile pentru care se utilizeaz˘ . Riscurile sunt modelate t t t a¸inând cont c˘ atacatorul poate clona cardurile altor agen¸i si le poate exploata resursele det a t ¸calcul. În analiza acestor protocoale de securitate bazate pe smart carduri, diver¸i factori pot influ- sen¸a evolu¸ia protocolului, de aceea este important ca atunci când model˘ m s˘ lu˘ m în calcul t t a a atipul cardului, dac˘ este cu PIN sau far˘ , si mediul de execu¸ie adic˘ dac˘ intrusul poate inter- a a ¸ t a acepta mesajele care sunt transmise între card si posesorul acestuia. ¸ 19
  20. 20. 2.3.1 Smart Cardurile Abordarea propus˘ presupune modelarea func¸ionalit˘¸ii smart cardurilor si nu a modului a t at ¸în care sunt implementate protocoalele. Pentru aceasta se introduce un nou tip card, iar pentrua specifica c˘ fiecare agent de¸ine un card vom declara o func¸ie injectiv˘ a t t a Card : agent → card Agen¸ii interac¸ioneaz˘ cu propriile carduri prin transmiterea de inputuri si recep¸ionarea de t t a ¸ toutputuri de la acestea. Outputurile vor fi considerate corecte deoarece modelul presupune c˘ asmart cardurile construiasc outputuri doar în cazul în care inputurile oferite sunt corecte, la felca în lumea real˘ . a2.3.1.1 Vulnerabilit˘ ¸i at Furtul. Cardurile care ajung pe mâna unor persoane r˘ uvoitoare, în urma pierderii sau aa furtului, si nu mai pot fi folosite de posesorii propriu-zi¸i vor fi modelate printr-o mul¸ime ¸ s tstolen ⊆ card. Clonarea. Intrusul nu poate utiliza cardurile furate dac˘ nu cunoa¸te PIN-ul, dar se poate a sfolosi de tehnicile moderne pentru a realiza atacuri fizice prin care s˘ ob¸in˘ informa¸ii din a t a tmemoria EEPROM unde sunt stocate secretele. Având aceste date, acesta poate crea o clon˘ a acardului pe care s˘ o utilizeze. Aceste carduri vor fi modelate prin mul¸imea cloned ⊆ card. a t Clonare f˘ r˘ furt aparent. Tehnicile de atac la nivel fizic deterioreaz˘ cardul care nu mai a a apoate fi folosit dup˘ aceea. Dar dac˘ atacatorul dup˘ ce descoper˘ secretele creeaz˘ 2 clone ale a a a a acardului, din care una o înapoiaz˘ posesorlui propriu-zis f˘ r˘ ca acesta s˘ -¸i dea seama atunci a aa ascardul va putea fi utilizat atât în mod legal cât si ilegal. ¸ Defec¸iuni ale magistralelor de date. Magistralele de date ale cardului pot fi corupte astfel tîncât mesajele transmise c˘ tre CPU s˘ fie pierdute, modificate sau repetate. Acest lucru nu va fi a amodelat deoarece este în contradic¸ie cu presupunerea c˘ smart cardurile ofer˘ outputuri corecte t a asi c˘ majoritatea protocoalelor presupun mijloace de comunicare sigure între agent si smart card.¸ a ¸În cel mai r˘ u caz, atacatorul a modificat toate cardurile în acest mod înainte ca acestea s˘ fie a apersonalizate. Inductiv aceast˘ situa¸ie va fi modelat˘ prin faptul c˘ evenimentele au loc doar în a t a a s˘urma declan¸arii regulilor inductive, dar regulile nu trebuie for¸ate s˘ se declan¸eze chiar dac˘ t a s aprecondi¸iile sunt îndeplinite. Deasemenea regulile pot s˘ se declan¸eze în orice ordine, sau de t a smai multe ori, iar fiecare din aceste posibilit˘¸i trebuie înregistrat˘ în urma corespunz˘ toare. at a a Defec¸iuni interne. La un moment dat smart cardurile pot avea anumite defec¸iuni devenind t tastfel inactive temporal sau pot s˘ nu mai func¸ioneze deloc. Modelul formal va lua în calcul a taceste situa¸ii incluzând urme care dup˘ un anumit eveniment sau pentru un fragment finit dintr- t ao urm˘ aceste carduri nu mai sunt utilizate. a 20
  21. 21. 2.3.1.2 Utilizarea cardului Agen¸ii one¸ti pot utiliza propriile cardurile doar legal. Atacatorul utilizeaz˘ cardurile fu- t s arate sau clonate ilegal si propriul card în mod legal. A¸adar un card care nu este furat poate fi ¸ sutilizat de posesorul sau doar legal. Definitia 1. legallyU(Card A) (Card A) ∈ stolen ¸ / Atunci când agen¸ii comunic˘ cu cardurile prin mijloace nesigure, atacatorul poate inter- t acepta mesajele transmise si poate afla PIN-urile în unele urme dup˘ care poate utiliza aceste ¸ acarduri în mod ilegal, chiar dac˘ nu are acces fizic la ele. Dac˘ cardurile sunt f˘ r˘ PIN atunci a a aaatacatatorul le poate utiliza pe toate în mod ilegal. În cazul mijloacelor de comunicare sigure,atacatorul nu poate monitoriza evenimentele care implic˘ smart cardurile, deci nu poate afla aPIN-urile interceptând mesajele. PIN-urile nu pot fi cunoscute decât ini¸ial si este necesar ca t ¸atacatorul s˘ aibe acces fizic la aceste carduri. Dac˘ protocolul presupune carduri f˘ r˘ PIN a a aaatunci este de ajuns s˘ se specifice doar accesul fizic. Modelarea acestor situa¸ii este specificat˘ a t aîn defini¸iile 2 si 3, ¸inând cont de cuno¸tin¸ele ini¸iale ale agen¸ilor. t ¸ t s t t t Atacatorul nu î¸i va utiliza cardul propriu în mod ilegal deoarece nu va ob¸ine informa¸ii s t tnoi. La fel si în cazurile protocoalelor de securitate în care avem o entitate de încredere care ¸de¸ine un card. t Card Spy ∈ stolen ∪ cloned / Card Server ∈ stolen ∪ cloned. / În cazul clon˘ rii f˘ r˘ furt aparent, cardurile pot fi utilizate atât în mod legal cât si ilegal. a aa ¸Fiecare agent poate verifica dac˘ este în posesia propriului card, adic˘ dac˘ nu este furat. Toate a a aipotezele care vor mai fi necesare, în af˘ r˘ de acestea care pot fi verificate, reprezint˘ încrederea aa aminimal˘ a modelului care este tolerat˘ de principiul utilit˘¸ii scopului propus de Bella în [5]. a a at2.3.1.3 Secrete Deoarece ne intereseaz˘ doar partea opera¸ional˘ , vom modela doar cum secretele sunt a t autilizate si cine le cunoa¸te. De obicei pe smart carduri se stocheaz˘ 2 chei simetrice: PIN-ul si ¸ s a ¸cheia cardului. PIN-ul este stocat pe card dar este cunoscut si de agent. ¸ pinK : card → key pinK : agent →key crdK : card → key În cazul protocoalelor de distribu¸ie de chei, fiecare card stocheaz˘ si o cheie a posesoru- t a¸lui, care nu este cunoscut˘ de acesta ca în cazul protocoalelor clasice dar totu¸i se p˘ streaz˘ a s a adeclara¸ia original˘ : t a shrK : agent → key Modelul permite si includerea altor secrete în func¸ie de aplica¸iile în care va fi utilizat ¸ t t s t˘smart cardul. Formalizarea acestora se face cu u¸urin¸a prin includerea unor func¸ii potrivite si t ¸ 21
  22. 22. actualizarea cuno¸tin¸elor agen¸ilor. s t t2.3.2 Evenimente Abordarea propus˘ de Bella în [2] extinde tipul de date pentru evenimente propus de Paul- ason cu 4 noi construc¸ii. t datatype event Says agent agent msg Notes agent msg Gets agent msg Inputs agent card msg CGets card msg Outputs card agent msg AGets agent msg Primele 3 evenimente sunt pentru re¸ea respectiv trimiterea, memorarea si recep¸ionarea de t ¸ tmesaje. Ultimele 4 evenimente sunt ad˘ ugate pentru a modela interac¸iunea cu cardul. Agen¸ii a t tpot trimite inputuri c˘ tre card (Inputs) si cardurile s˘ le recep¸ioneze (CGets). Cardurile pot a ¸ a ttrimite outputuri c˘ tre agen¸i (Outputs) iar agen¸ii s˘ le recep¸ioneze (AGets). Mesajele de pe a t t a tre¸ea sunt transmise pe alte canale decât cele pentru comunicarea dintre agen¸i si carduri, de t t ¸aceea se face distinc¸ia la recep¸ie. t t Dac˘ protocolul presupune c˘ agen¸ii si cardurile comunic˘ prin mijloace sigure atunci a a t ¸ aCGets si AGets pot fi omise deoarece atacatorul nu poate împiedica recep¸ia mesajelor. Car- ¸ tdurile pot verifica dac˘ un eveniment Inputs A C X a avut loc iar agentul poate verifica dac˘ a aOutputs C A X a avut loc. Noutatea este formalizat˘ de Paulson printr-o func¸ie: a t used : event list → msg set care red˘ componentele st˘ rilor ini¸iale ale tuturor agen¸ilor si toate componentele mesajelor a a t t ¸care apar într-o anumit˘ urm˘ . a a 0. used[] B.parts(initState B) 1. used((Says A B X) # evs) parts{X} ∪ used evs 2. used((Notes A X) # evs) parts{X} ∪ used evs 3. used((Gets A X) # evs) used evs 4. used((Inputs A C X) # evs) parts{X} ∪ used evs 5. used((CGets C X) # evs) used evs 6. used((Outputs C A X) # evs) parts{X} ∪ used evs 7. used((AGets A X) # evs) used evs Func¸ia parts extrage toate componentele dintr-o mul¸ime de mesaje cu excep¸ia cheilor de t t t 22
  23. 23. criptare. Recep¸ia unui mesaj nu extinde mul¸imea inductiv˘ deoarece aceast˘ opera¸ie este t t a a tefectuat˘ la transmiterea acestuia. Dac˘ în protocolul analizat se consider˘ mijloace sigure de a a acomunicare între agen¸i si smart carduri, atunci cazurile 5 si 7 pot fi omise. t ¸ ¸2.3.3 Cuno¸tin¸ele agen¸ilor s t t2.3.3.1 Agen¸ii t La fel ca în cazul protocoalelor de securitate clasice, pentru protocoalele bazate pe smartcarduri vom nota agen¸ii one¸ti prin Friend i (i num˘ r natural), intrusul îl vom nota cu Spy, iar t s aserverul cu S sau Server. Agen¸ii compromi¸i care î¸i dezv˘ lui secretele atacatorului fac parte t s s adin mul¸imea bad. t2.3.3.2 Cuno¸tin¸ele ini¸iale ale agen¸ilor s t t t Func¸ia initState formalizeaz˘ cuno¸tin¸ele ini¸iale ale agen¸ilor. Dac˘ protocoalele de se- t a s t t t acuritate care sunt analizate utilizeaz˘ carduri cu PIN atunci cuno¸tin¸ele ini¸iale ale agen¸ilor a s t t tpot fi definite dup˘ cum urmeaz˘ . a a 1. Mul¸imea cuno¸tin¸elor ini¸iale ale serverului este format˘ din toate cheile secrete. t s t t a initState S {Key(pinK A)} ∪ {Key(crdK C)} ∪ {Key(shrK A)} 2. Agen¸ii one¸ti cunosc ini¸ial doar PIN-ul. t s t initState (Friend i) {Key(pinK (Friend i))} 3. Mul¸imea cuno¸tin¸ele ini¸iale ale intrusului este format˘ din toate cuno¸tin¸ele ini¸iale t s t t a s t tale agen¸ilor compromi¸i si secretele cardurilor clonate. t s ¸ initState Spy {Key(pinK A)|A ∈ bad ∨ (Card A) ∈ cloned}∪ {Key(crdK C)|C ∈ cloned}∪ {Key(shrK A)|(Card A) ∈ cloned} Pentru protocoalele de securitate în care se utilizeaz˘ smart carduri f˘ r˘ PIN, serverul cunoa¸te a aa sini¸ial doar cheile cardurilor si cheile care vor fi distribuite agen¸ilor în cazul protocoalelor de t ¸ tdistribu¸ie de chei, agen¸ii one¸ti nu au nici o informa¸ie ini¸ial˘ despre secrete, iar atacatorul t t s t t aare doar cuno¸tin¸ele ob¸inute din clonarea cardurilor. s t t2.3.3.3 Cuno¸tin¸ele pe care agen¸ii le extrag din observarea traficului s t t Cuno¸tin¸ele pe care agen¸ii le pot extrage din observarea traficului de pe o anumit˘ urm˘ s t t a asunt formalizate prin func¸ia: t 23

×