Manual Spear
Upcoming SlideShare
Loading in...5
×
 

Manual Spear

on

  • 764 views

 

Statistics

Views

Total Views
764
Views on SlideShare
763
Embed Views
1

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Manual Spear Manual Spear Document Transcript

  • Spear : The Semantic Peer Stefan Silvestru1, 1 Master Securitatea Informatiei II, Facultatea de Informatica Iasi, Romania stefan.silvestru@infoiasi.ro Abstract. Documentul introduce Spear, o aplicatie ce creaza o retea Friend-to- Friend (F2F), menita sa usureze cautarea de resurse pe retea. Acest lucru este realizat in principal prin folosirea bazelor de date semantice si a cererilor de cautare semantice. Keywords: P2P, F2F, semantic storage, semantic queries, filesharing1 Introducere1.1 Problema initialaSemantic WindowsSimilar iniţiativei Nepomuk pentru KDE, să se imagineze o soluţie pentru Windows(de dorit, vizând ultima versiune). Se va dezvolta un prototip de instrument"inteligent" de regăsire şi recomandare de resurse (fişiere) în funcţie de intereseleutilizatorului.1.2 Problema rafinataSe doreste crearea unei aplicatii Peer-to-Peer (P2P) care sa imbunatateasca gasirea deresurse pe retea. Acest lucru va fi posibil prin atasarea de metadate, resurselor ce vorfi facute publice. Metadatele vor fi stocate in format RDF iar interogarile vor fi facutecu limbajul Sparql. Astfel, aplicatia trebuie sa puna la dispozitie servicii ca: chat,adaugare de metadate, cautare de fisiere (dupa metadate) si filesharing.
  • 2 Arhitectura2.1 Arhitectura reteleiArhitectura retelei Spear este de tip F2F (P2P cu anumite restrictii ce imbunatatescsecuritatea). Figura 1 prezinta un exemplu de o astfel de retea. Alice are o serie deprieteni pe care ii are in lista si cu care comunica, insa prietenii lui Alice nu stiu pecine are aceasta in lista. Fiecare din ei o are pe Alice in lista, si o multime de altiprieteni. Imaginea prezinta de fapt punctul de vedere al lui Alice asupra retelei.Arhitectura retelelor F2F este de obicei de tip stea (ca si aceasta), spre deosebire dearhitectura retelelor P2P clasice care este de tip (full) mesh.2.2 Logica aplicatiei Spear este derivat dintr-o alta aplicatie F2F, Gazebo F2F, si ca imbunatatire aducecapabilitatile semantice. Tot protocolul de baza (Gazebo) cu schimbul de mesaje siformatul acestora, partea criptografica, adaugarea de utilizatori noi , adaugarea deprieteni noi, serviciile disponibile, intr-un cuvant “anatomia” aplicatiei, sunt descrisepe larg in lucrarea [1]. In cele ce urmeaza vom prezenta principalele adaugiri si diferente fata deGazebo F2F, urmand ca in capitolul urmator sa fie prezentat un studiu de caz folosindSpear, si pe alocuri vor mai fi discutate elemente ce tin de logica aplicatiei.Remarca 1. Pe parcursul acestei lucrari vom considera cazul a doi utilizatori ceutilizeaza aceasta aplicatie. Ei vor fi numiti generic Alice si Bob, Alice fiindutilizatorul “principal”, astfel ca atunci cand nu vom specifica nici un nume, va fivorba despre actiunile intreprinse de ea.Adaugarea de prieteni noi in Gazebo se bazeaza pe schimbul de certificate intrepersoanele participante, aceste certificate continand diverse elemente de securitate,informatii personale si chei publice. In Spear acest sistem a fost relaxat, astfel ca,atunci cand Alice se conecteaza la Bob pentru prima data dorind sa il adauge caprieten, este trimis un mesaj de tip PublicKey-Request. Bob ii raspunde cu un mesajPublicKey-Reply in care se gaseste cheia sa publica. Alice ii raspunde la randul ei cuun mesaj PublicKey-Reply in care se regaseste cheia ei publica. Dupa ce fac rost de cheile publice cei doi continua protocolul precum esteprezentat in [1]. Dupa ce s-au adaugat in lista de prieteni vor dori sa comunice. Pentrua nu folosi cheile publice la criptarea fiecarui mesaj (costisitor din punct de vedere altimpului de criptare) vor desfasura noi pasi in protocol pentru a stabili o cheie (AES)de sesiune. Cu aceasta cheie simetrica vor cripta si decripta mesajele. Resursele pe care vrem sa le facem publice (pentru ca altii sa aiba acces laele, sa le poata descarca) le adaugam dintr-un meniu special Tags. Fiecarui fisiertrebuie sa ii atasam macar un tag principal (unul din : Any, Archive, Audio, CD-
  • Image, Document, Picture, Program, Source File, Video). Apoi intr-un camp special iiputem atasa oricate alte taguri definite de noi, si de asemenea ii putem atasa si odescriere. In Figura 2 se poate vedea un exemplu de resurse facute publice, asa cumapar ele in Spear dupa ce li se ataseaza metadate. Fig. 1. Arhitectura retelei Spear“In spate” se creaza o noua descriere pentru resursa adaugata. Descrierea este informat RDF (rdf:description), si contine proprietati ca HasMainTag (tagul principal)si HasTag pentru taguri secundare (cele definite de utilizator), si de asemenea continedescrierea introdusa de utilizator, care va fi pusa intre taguri RDFS:comment. Aceastadescriere in RDF este stocata la nivelul fiecarui utilizator intr-un model (baza de date)RDF, care apoi este salvat pe disc intr-un repository central – Centro. In Figura 3 sepoate vedea modelul RDF serializat pentru resursele din Figura 2.
  • Fig. 2. Metadate atasate unor resurse Fig. 3. Modelul RDF serializatLa un moment dat, Alice va dori sa caute pe retea anumite fisiere. In meniul Search,ea poate alege diferite moduri in care se poate realiza cautarea. Poate alege sa cautedupa numele fisierului, sa caute dupa tagul principal, sa caute dupa taguri secundare,sau sa caute dupa combinatii de aceste optiuni. Cand apasa butonul Search un mesajde tip Query-Request va fi trimis in modul broadcast tuturor prietenilor ei din lista,care la momentul acela sunt online. Cererea contine optiunile introduse de ea pentrucautare. La fiecare din prietenii ei, cererea este procesata si pe baza informatiilor dinea se creaza o interogare Sparql. Apoi, pe baza acesteia, este interogat modelul RDF(baza de date), si se primesc anumite informatii despre fisiere.
  • Acestea sunt transmise lui Alice intr-un mesaj Query-Response. Mesajele Query-Request contin un numar de secventa care va fi regasit cu aceeasi valoare in mesajelede Response. Astfel cand Query-Response este primit, intai se verifica daca numarulsau de secventa este egal cu numarul de secventa curent. Daca da, atunci rezultatelesunt afisate pe ecran, daca nu (inseamna ca utilizatorul a initiat alte cautari), mesajuleste ignorat. Atat lucrul cu triplele RDF cat si interogarile Sparql sunt realizate cuAPI-ul oferit de Soprano, aceeasi biblioteca de functii fiind folosita la creareaproiectului Nepomuk. Utilizatorul alege apoi ce resurse doreste sa descarce.3 Scenariu de utilizareIn continuare vom prezenta un scenariu de utilizare a aplicatiei Spear intre aceiasiutilizatori generici, Alice si Bob. Cum este prezentat si in Figura 4, cei doi utilizatori trebuie sa isi creeze cateun profil pentru a putea utiliza aplicatia. Fig. 4. Crearea unui nou profilApoi, acestia vor dori sa comunice unul cu celalalt. Astfel, fiecare va adauga adresaIP a celuilalt in Meniul Chat, dand click dreapta pe arborele Friends si alegandoptiunea Add New Friend (Figura 5).
  • Fig. 5. Adaugarea unui nou prietenDupa acest pas si dupa ce se termina protocolul de initializare cu succes, fiecare dincei doi apare in lista de prieteni a celuilalt (Figura 6). Fig. 6. Lista de prieteniUrmand apoi pasii prezentati in capitolul anterior, dupa ce vor stabili o cheie desesiune, vor putea comunica (in siguranta). In Figurile 7 si 8 este prezentata o sesiunede chat intre cei doi utilizatori. Fig. 7. Alice utilizand serviciul de chat
  • Fig. 8. Bob utilizand serviciul de chatDand click dreapta pe un prieten, apare un meniu cu anumite optiuni : chat, sa potvizualiza profilul prietenului, sau sa-i modific detaliile de contact (Figura 9). Fig. 9. Actiuni posibile asupra unui prieten din listaUtilizatorii adauga apoi metadate resurselor pe care le vor face publice, din meniulTags. In partea stanga exista un arbore ce simuleaza sistemul de fisiere (Figura 10) Fig. 10. Sistemul de fisiere simulat in Spear
  • Din acest arbore alegem o resursa, dam dublu click pe ea si va aparea o fereastra ca inFigura 11. In aceasta fereastra trebuie sa alegem macar un tag principal pentruresursa. De asemenea putem pune alte taguri proprii (separate prin cate o virgula), si odescriere a resursei. Fig. 11. Adaugare de metadate unei resurseFigura 12 prezinta cateva resurse cu metadatele aferente, adaugate de Bob. Fig. 12. Metadatele lui Bob
  • Fig. 13. Optiunile de cautareAlice va dori sa caute anumite resurse pe retea. Astfel ea va selecta meniul Search.Acolo va putea selecta dupa ce optiuni doreste sa faca interogarea de cautare.Optiunile prezentate in sectiunea 2 se pot vedea in Figura 13. Alice doreste sa invete sa joace sah, astfel ca pentru inceput va dori sa cautecarti de sah pe retea. Avand un singur prieten in lista, in momentul cautarii doar el vaprimi aceasta cerere. Avand metadatele lui Bob in Figura 12 si stiind ca ea va cautadupa cuvantul Chess, rezultatul cautarii este destul de previzibil si se poate vedea inFigura 14. Fig. 14. Rezultatele cautariiPentru a vedea descrierea fiecarei resurse gasite, Alice poate da click dreapta pefiecare din ele – Figurile 15 si 16. Fig. 15. Descrierea unei resurse
  • Fig. 16. Descrierea unei resurseAlice va dori sa descarce cele doua carti si sistemul de operare Ubuntu 10.10 pe carel-a gasit pe computerul lui Bob. Astfel ea da dublu click pe fiecare resursa gasita. InFigura 17 se pot vedea fisierele descarcate de Alice de la Bob in timp ce in Figura 18se regasesc fisierele ce au fost uploadate de Bob catre Alice. Fig. 17. Fisierele descarcate de Alice de la Bob Fig. 18. Fisierele uploadate de Bob catre AlicePe langa acestea, Spear mai are si un meniu Events ce retine evenimentele care s-aupetrecut in aplicatie – Figura 19.
  • Fig. 19. Meniul EventsFig. 20. Meniul Options
  • De asemenea aplicatia mai include si un meniu Options (Figura 20), folosit pentru aseta anumite informatii. Meniul contine categorii de optiuni generale, pentruvizualizarea aplicatiei, pentru setarea cailor de acces la directoarele utilizate, pentruretea, pentru securitate si pentru informatiile pe care utilizatorul le publica despresine. Fig. 21. Meniul AboutNu in ultimul rand, aplicatia contine informatii despre creatorul ei. Acestea pot fivizulizate in meniul About (Figura 21).
  • 4 Instrumente utilizate4.1 wxWidgets [2]wxWidgets este un widget toolkit pentru crearea de interfete(cu utilizatorul) grafice(GUI) pentru aplicatii cross-platform. wxWidgets permite codului GUI a unuiprogram sa fie compilat si rulat pe platforme diferite cu schimbari ale coduluiminime. Ruleaza pe sisteme ca Windows, Linux, MacOS, OpenVMS, OS/2,AmigaOS. Este unul dintre cele mai complete toolkit-uri GUI, avand foarte multe claseutile si documentatie pentru ele. Oricand este posibil, wxWidgets foloseste SDK-ulplatformei native. Asta inseamna ca un program compilat pe Windows va avea “lookand feel”-ul unui program Windows, iar un program compilat pe Linux va avea “lookand feel”-ul unui program Linux. Toolkit-ul este atat open source cat si gratuit pentrufolos personal si comercial. Biblioteca este implementata in C++ dar are binding-uri si pentru altelimbaje de programare : C# (wx.Net), Java (wx4j), Perl(wxPerl), Python (wxPython),Haskell (wxHaskell), Lua (wxLua), Ruby(wxRuby) si altele. O serie de aplicatii cunoscute au fost construite cu wxWidgets : aMule(aplicatie P2P de filesharing), Audacity (sound editor), BitTorrent(P2P filesharing ),Code::Blocks (C/C++ IDE), RapidSVN(Subversion client) sau TortoiseCVS(CVSclient).4.2 Boost [3]Bibliotecile de functii Boost sunt o colectie de biblioteci open-source care extindfunctionalitatea C++. Majoritatea bibliotecilor se gasesc sub licenta Boost, putand fifolosite atat la proiecte open cat si closed source. Multi din fondatorii Boost sunt incomitetul pentru standardizarea C++, iar o serie de biblioteci Boost au fost inclusedeja atat in Technical Report 1 cat si in noul standard C++ (C++0x). Mai mult,majoritatea bibliotecilor functioneaza pe mai multe sisteme de operare, permitandastfel dezvoltarea de aplicatii cross-platform.4.3 Soprano [4]Soprano este o biblioteca de functii care pune la dispozitie un framework C++/QTpentru manipularea datelor RDF. Soprano a fost creat ca un sub-proiect al Nepomuksi formeaza o parte a desktop-ului semnatic din KDE 4. Soprano functioneaza ca unrepository pentru stocarea informatiilor generate de server-ul Nepomuk. Sopranoofera suport pentru backend-urile Redland si Sesame2 ce sunt folosite pentru stocareasi interogarea datelor RDF.
  • 4.4 Premake [5]Premake este un utilitar open source, folosit pentru a construi automat configuraripentru un anumit cod sursa. Pentru a functiona, trebuie configurat un script premake(folosind limbajul de scripting Lua), care apoi poate genera proiecte Visual Studio,Codelite, Code::Blocks sau makefile-uri. Astfel este un excelent utilitar pentrudezvoltarea de aplicatii cross-platform.4.5 Crypto++ [6]Crypto++ este o biblioteca de functii C++, distribuita gratis, folosita pentrucriptografie. Include : ciphers, message authentication codes, one-way hash functions,public-key cryptosystems si key agreement schemes. Este o biblioteca cross-platform; C++ cu Crypto++ poate fi compilat pediferite sisteme de operare (Windows, Unix, Linux, MacOS, Solaris). Anumite versiuni de Crypto++ au fost validate de NIST(National Institute ofStandards and Technology ) si CSE(The Communications Security Establishment)pentru conformanta de nivel 1 cu FIPS 140-2.5 ConcluziiLucrarea a prezentat modul de functionare si de utilizare a Spear, o aplicatie ce creazao retea Friend-to-Friend, unde utilizatorii se conecteaza doar la prietenii pe care iicunosc. Astfel, multe din atacurile posibile in retelele Peer-to-Peer (DoS, Sybil sauEclipse [1] ) sunt neutralizate. Fiecare nod este “single point of failure”, astfel ca,daca un nod pica sau este corupt, asta nu influenteaza in nici un fel buna functionare aretelei. Datorita topologiei retelei , asa cum este vazuta de fiecare nod ( - stea), Spearintroduce o alta proprietate de securitate foarte importanta : anonimitatea. Spre deosebire de proiectul de baza (Gazebo F2F [1]), Spear introducecomponenta semantica in capabilitatile aplicatiei. Astfel, resurselor care sunt facutepublice, utilizatorul le poate atasa metadate care apoi vor imbunatati rezultatelecautarilor. Legat de aceasta, utilizatorul are de asemenea posibilitatea de a face cautaride resurse nu numai dupa nume ci si dupa metadate. In cazul in care utilizatoruldoreste sa descarce anumite resurse gasite pe retea, Spear ii ofera aceasta posibilitateprin serviciul de filesharing. Ca directii de dezvoltare a aplicatiei ar fi orientarea pe imbunatatirea calitatiiserviciilor puse la dispozitie de Spear, si implementarea unui numar mai mare defunctionalitati.
  • 6 Referinte1. Silvestru, S. : Gazebo F2F : A Friend-to-Friend Application, 2009, Bachelor of Science Thesis2. wxWidgets, http://www.wxwidgets.org/3. Boost, http://www.boost.org/4. Soprano, http://soprano.sourceforge.net/5. Premake, http://premake.sourceforge.net/6. Crypto++, http://www.cryptopp.com/