SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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, filesharing




1 Introducere


1.1 Problema initiala

Semantic Windows
Similar 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 interesele
utilizatorului.


1.2 Problema rafinata

Se doreste crearea unei aplicatii Peer-to-Peer (P2P) care sa imbunatateasca gasirea de
resurse pe retea. Acest lucru va fi posibil prin atasarea de metadate, resurselor ce vor
fi facute publice. Metadatele vor fi stocate in format RDF iar interogarile vor fi facute
cu limbajul Sparql. Astfel, aplicatia trebuie sa puna la dispozitie servicii ca: chat,
adaugare de metadate, cautare de fisiere (dupa metadate) si filesharing.
2 Arhitectura



2.1 Arhitectura retelei

Arhitectura retelei Spear este de tip F2F (P2P cu anumite restrictii ce imbunatatesc
securitatea). Figura 1 prezinta un exemplu de o astfel de retea. Alice are o serie de
prieteni pe care ii are in lista si cu care comunica, insa prietenii lui Alice nu stiu pe
cine are aceasta in lista. Fiecare din ei o are pe Alice in lista, si o multime de alti
prieteni. 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 de
arhitectura 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 aduce
capabilitatile semantice. Tot protocolul de baza (Gazebo) cu schimbul de mesaje si
formatul acestora, partea criptografica, adaugarea de utilizatori noi , adaugarea de
prieteni noi, serviciile disponibile, intr-un cuvant “anatomia” aplicatiei, sunt descrise
pe larg in lucrarea [1].
          In cele ce urmeaza vom prezenta principalele adaugiri si diferente fata de
Gazebo F2F, urmand ca in capitolul urmator sa fie prezentat un studiu de caz folosind
Spear, 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 ce
utilizeaza aceasta aplicatie. Ei vor fi numiti generic Alice si Bob, Alice fiind
utilizatorul “principal”, astfel ca atunci cand nu vom specifica nici un nume, va fi
vorba despre actiunile intreprinse de ea.

Adaugarea de prieteni noi in Gazebo se bazeaza pe schimbul de certificate intre
persoanele 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 ca
prieten, este trimis un mesaj de tip PublicKey-Request. Bob ii raspunde cu un mesaj
PublicKey-Reply in care se gaseste cheia sa publica. Alice ii raspunde la randul ei cu
un mesaj PublicKey-Reply in care se regaseste cheia ei publica.
         Dupa ce fac rost de cheile publice cei doi continua protocolul precum este
prezentat in [1]. Dupa ce s-au adaugat in lista de prieteni vor dori sa comunice. Pentru
a nu folosi cheile publice la criptarea fiecarui mesaj (costisitor din punct de vedere al
timpului 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 la
ele, sa le poata descarca) le adaugam dintr-un meniu special Tags. Fiecarui fisier
trebuie 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 ii
putem atasa oricate alte taguri definite de noi, si de asemenea ii putem atasa si o
descriere. In Figura 2 se poate vedea un exemplu de resurse facute publice, asa cum
apar 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 in
format RDF (rdf:description), si contine proprietati ca HasMainTag (tagul principal)
si HasTag pentru taguri secundare (cele definite de utilizator), si de asemenea contine
descrierea introdusa de utilizator, care va fi pusa intre taguri RDFS:comment. Aceasta
descriere 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 se
poate vedea modelul RDF serializat pentru resursele din Figura 2.
Fig. 2. Metadate atasate unor resurse




                              Fig. 3. Modelul RDF serializat




La 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 caute
dupa 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 mesaj
de 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 pentru
cautare. La fiecare din prietenii ei, cererea este procesata si pe baza informatiilor din
ea 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 mesajele
de Response. Astfel cand Query-Response este primit, intai se verifica daca numarul
sau de secventa este egal cu numarul de secventa curent. Daca da, atunci rezultatele
sunt afisate pe ecran, daca nu (inseamna ca utilizatorul a initiat alte cautari), mesajul
este ignorat. Atat lucrul cu triplele RDF cat si interogarile Sparql sunt realizate cu
API-ul oferit de Soprano, aceeasi biblioteca de functii fiind folosita la crearea
proiectului Nepomuk.
         Utilizatorul alege apoi ce resurse doreste sa descarce.




3 Scenariu de utilizare

In continuare vom prezenta un scenariu de utilizare a aplicatiei Spear intre aceiasi
utilizatori generici, Alice si Bob.
          Cum este prezentat si in Figura 4, cei doi utilizatori trebuie sa isi creeze cate
un profil pentru a putea utiliza aplicatia.




                               Fig. 4. Crearea unui nou profil

Apoi, acestia vor dori sa comunice unul cu celalalt. Astfel, fiecare va adauga adresa
IP a celuilalt in Meniul Chat, dand click dreapta pe arborele Friends si alegand
optiunea Add New Friend (Figura 5).
Fig. 5. Adaugarea unui nou prieten

Dupa acest pas si dupa ce se termina protocolul de initializare cu succes, fiecare din
cei doi apare in lista de prieteni a celuilalt (Figura 6).




                                  Fig. 6. Lista de prieteni


Urmand apoi pasii prezentati in capitolul anterior, dupa ce vor stabili o cheie de
sesiune, vor putea comunica (in siguranta). In Figurile 7 si 8 este prezentata o sesiune
de chat intre cei doi utilizatori.




                          Fig. 7. Alice utilizand serviciul de chat
Fig. 8. Bob utilizand serviciul de chat

Dand click dreapta pe un prieten, apare un meniu cu anumite optiuni : chat, sa pot
vizualiza profilul prietenului, sau sa-i modific detaliile de contact (Figura 9).




                   Fig. 9. Actiuni posibile asupra unui prieten din lista

Utilizatorii adauga apoi metadate resurselor pe care le vor face publice, din meniul
Tags. 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 in
Figura 11. In aceasta fereastra trebuie sa alegem macar un tag principal pentru
resursa. De asemenea putem pune alte taguri proprii (separate prin cate o virgula), si o
descriere a resursei.




                        Fig. 11. Adaugare de metadate unei resurse

Figura 12 prezinta cateva resurse cu metadatele aferente, adaugate de Bob.




                               Fig. 12. Metadatele lui Bob
Fig. 13. Optiunile de cautare


Alice 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 caute
carti de sah pe retea. Avand un singur prieten in lista, in momentul cautarii doar el va
primi aceasta cerere. Avand metadatele lui Bob in Figura 12 si stiind ca ea va cauta
dupa cuvantul Chess, rezultatul cautarii este destul de previzibil si se poate vedea in
Figura 14.




                               Fig. 14. Rezultatele cautarii

Pentru a vedea descrierea fiecarei resurse gasite, Alice poate da click dreapta pe
fiecare din ele – Figurile 15 si 16.




                           Fig. 15. Descrierea unei resurse
Fig. 16. Descrierea unei resurse

Alice va dori sa descarce cele doua carti si sistemul de operare Ubuntu 10.10 pe care
l-a gasit pe computerul lui Bob. Astfel ea da dublu click pe fiecare resursa gasita. In
Figura 17 se pot vedea fisierele descarcate de Alice de la Bob in timp ce in Figura 18
se 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 Alice




Pe langa acestea, Spear mai are si un meniu Events ce retine evenimentele care s-au
petrecut in aplicatie – Figura 19.
Fig. 19. Meniul Events




Fig. 20. Meniul Options
De asemenea aplicatia mai include si un meniu Options (Figura 20), folosit pentru a
seta anumite informatii. Meniul contine categorii de optiuni generale, pentru
vizualizarea aplicatiei, pentru setarea cailor de acces la directoarele utilizate, pentru
retea, pentru securitate si pentru informatiile pe care utilizatorul le publica despre
sine.




                                  Fig. 21. Meniul About


Nu in ultimul rand, aplicatia contine informatii despre creatorul ei. Acestea pot fi
vizulizate in meniul About (Figura 21).
4 Instrumente utilizate



4.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 unui
program sa fie compilat si rulat pe platforme diferite cu schimbari ale codului
minime. Ruleaza pe sisteme ca Windows, Linux, MacOS, OpenVMS, OS/2,
AmigaOS.
          Este unul dintre cele mai complete toolkit-uri GUI, avand foarte multe clase
utile si documentatie pentru ele. Oricand este posibil, wxWidgets foloseste SDK-ul
platformei native. Asta inseamna ca un program compilat pe Windows va avea “look
and feel”-ul unui program Windows, iar un program compilat pe Linux va avea “look
and feel”-ul unui program Linux. Toolkit-ul este atat open source cat si gratuit pentru
folos personal si comercial.
          Biblioteca este implementata in C++ dar are binding-uri si pentru alte
limbaje 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(CVS
client).


4.2 Boost [3]

Bibliotecile de functii Boost sunt o colectie de biblioteci open-source care extind
functionalitatea C++. Majoritatea bibliotecilor se gasesc sub licenta Boost, putand fi
folosite atat la proiecte open cat si closed source. Multi din fondatorii Boost sunt in
comitetul pentru standardizarea C++, iar o serie de biblioteci Boost au fost incluse
deja atat in Technical Report 1 cat si in noul standard C++ (C++0x). Mai mult,
majoritatea bibliotecilor functioneaza pe mai multe sisteme de operare, permitand
astfel dezvoltarea de aplicatii cross-platform.



4.3 Soprano [4]

Soprano este o biblioteca de functii care pune la dispozitie un framework C++/QT
pentru manipularea datelor RDF. Soprano a fost creat ca un sub-proiect al Nepomuk
si formeaza o parte a desktop-ului semnatic din KDE 4. Soprano functioneaza ca un
repository pentru stocarea informatiilor generate de server-ul Nepomuk. Soprano
ofera suport pentru backend-urile Redland si Sesame2 ce sunt folosite pentru stocarea
si interogarea datelor RDF.
4.4 Premake [5]

Premake este un utilitar open source, folosit pentru a construi automat configurari
pentru 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 pentru
dezvoltarea de aplicatii cross-platform.



4.5 Crypto++ [6]

Crypto++ este o biblioteca de functii C++, distribuita gratis, folosita pentru
criptografie. 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 pe
diferite sisteme de operare (Windows, Unix, Linux, MacOS, Solaris).
          Anumite versiuni de Crypto++ au fost validate de NIST(National Institute of
Standards and Technology ) si CSE(The Communications Security Establishment)
pentru conformanta de nivel 1 cu FIPS 140-2.




5 Concluzii

Lucrarea a prezentat modul de functionare si de utilizare a Spear, o aplicatie ce creaza
o retea Friend-to-Friend, unde utilizatorii se conecteaza doar la prietenii pe care ii
cunosc. Astfel, multe din atacurile posibile in retelele Peer-to-Peer (DoS, Sybil sau
Eclipse [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 a
retelei. Datorita topologiei retelei , asa cum este vazuta de fiecare nod ( - stea), Spear
introduce o alta proprietate de securitate foarte importanta : anonimitatea.
          Spre deosebire de proiectul de baza (Gazebo F2F [1]), Spear introduce
componenta semantica in capabilitatile aplicatiei. Astfel, resurselor care sunt facute
publice, utilizatorul le poate atasa metadate care apoi vor imbunatati rezultatele
cautarilor. Legat de aceasta, utilizatorul are de asemenea posibilitatea de a face cautari
de resurse nu numai dupa nume ci si dupa metadate. In cazul in care utilizatorul
doreste sa descarce anumite resurse gasite pe retea, Spear ii ofera aceasta posibilitate
prin serviciul de filesharing.
          Ca directii de dezvoltare a aplicatiei ar fi orientarea pe imbunatatirea calitatii
serviciilor puse la dispozitie de Spear, si implementarea unui numar mai mare de
functionalitati.
6 Referinte

1. Silvestru, S. : Gazebo F2F : A Friend-to-Friend Application, 2009, Bachelor of Science
   Thesis
2. 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/

Mais conteúdo relacionado

Destaque

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

Destaque (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Manual Spear

  • 1. 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, filesharing 1 Introducere 1.1 Problema initiala Semantic Windows Similar 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 interesele utilizatorului. 1.2 Problema rafinata Se doreste crearea unei aplicatii Peer-to-Peer (P2P) care sa imbunatateasca gasirea de resurse pe retea. Acest lucru va fi posibil prin atasarea de metadate, resurselor ce vor fi facute publice. Metadatele vor fi stocate in format RDF iar interogarile vor fi facute cu limbajul Sparql. Astfel, aplicatia trebuie sa puna la dispozitie servicii ca: chat, adaugare de metadate, cautare de fisiere (dupa metadate) si filesharing.
  • 2. 2 Arhitectura 2.1 Arhitectura retelei Arhitectura retelei Spear este de tip F2F (P2P cu anumite restrictii ce imbunatatesc securitatea). Figura 1 prezinta un exemplu de o astfel de retea. Alice are o serie de prieteni pe care ii are in lista si cu care comunica, insa prietenii lui Alice nu stiu pe cine are aceasta in lista. Fiecare din ei o are pe Alice in lista, si o multime de alti prieteni. 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 de arhitectura 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 aduce capabilitatile semantice. Tot protocolul de baza (Gazebo) cu schimbul de mesaje si formatul acestora, partea criptografica, adaugarea de utilizatori noi , adaugarea de prieteni noi, serviciile disponibile, intr-un cuvant “anatomia” aplicatiei, sunt descrise pe larg in lucrarea [1]. In cele ce urmeaza vom prezenta principalele adaugiri si diferente fata de Gazebo F2F, urmand ca in capitolul urmator sa fie prezentat un studiu de caz folosind Spear, 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 ce utilizeaza aceasta aplicatie. Ei vor fi numiti generic Alice si Bob, Alice fiind utilizatorul “principal”, astfel ca atunci cand nu vom specifica nici un nume, va fi vorba despre actiunile intreprinse de ea. Adaugarea de prieteni noi in Gazebo se bazeaza pe schimbul de certificate intre persoanele 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 ca prieten, este trimis un mesaj de tip PublicKey-Request. Bob ii raspunde cu un mesaj PublicKey-Reply in care se gaseste cheia sa publica. Alice ii raspunde la randul ei cu un mesaj PublicKey-Reply in care se regaseste cheia ei publica. Dupa ce fac rost de cheile publice cei doi continua protocolul precum este prezentat in [1]. Dupa ce s-au adaugat in lista de prieteni vor dori sa comunice. Pentru a nu folosi cheile publice la criptarea fiecarui mesaj (costisitor din punct de vedere al timpului 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 la ele, sa le poata descarca) le adaugam dintr-un meniu special Tags. Fiecarui fisier trebuie sa ii atasam macar un tag principal (unul din : Any, Archive, Audio, CD-
  • 3. Image, Document, Picture, Program, Source File, Video). Apoi intr-un camp special ii putem atasa oricate alte taguri definite de noi, si de asemenea ii putem atasa si o descriere. In Figura 2 se poate vedea un exemplu de resurse facute publice, asa cum apar 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 in format RDF (rdf:description), si contine proprietati ca HasMainTag (tagul principal) si HasTag pentru taguri secundare (cele definite de utilizator), si de asemenea contine descrierea introdusa de utilizator, care va fi pusa intre taguri RDFS:comment. Aceasta descriere 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 se poate vedea modelul RDF serializat pentru resursele din Figura 2.
  • 4. Fig. 2. Metadate atasate unor resurse Fig. 3. Modelul RDF serializat La 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 caute dupa 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 mesaj de 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 pentru cautare. La fiecare din prietenii ei, cererea este procesata si pe baza informatiilor din ea se creaza o interogare Sparql. Apoi, pe baza acesteia, este interogat modelul RDF (baza de date), si se primesc anumite informatii despre fisiere.
  • 5. 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 mesajele de Response. Astfel cand Query-Response este primit, intai se verifica daca numarul sau de secventa este egal cu numarul de secventa curent. Daca da, atunci rezultatele sunt afisate pe ecran, daca nu (inseamna ca utilizatorul a initiat alte cautari), mesajul este ignorat. Atat lucrul cu triplele RDF cat si interogarile Sparql sunt realizate cu API-ul oferit de Soprano, aceeasi biblioteca de functii fiind folosita la crearea proiectului Nepomuk. Utilizatorul alege apoi ce resurse doreste sa descarce. 3 Scenariu de utilizare In continuare vom prezenta un scenariu de utilizare a aplicatiei Spear intre aceiasi utilizatori generici, Alice si Bob. Cum este prezentat si in Figura 4, cei doi utilizatori trebuie sa isi creeze cate un profil pentru a putea utiliza aplicatia. Fig. 4. Crearea unui nou profil Apoi, acestia vor dori sa comunice unul cu celalalt. Astfel, fiecare va adauga adresa IP a celuilalt in Meniul Chat, dand click dreapta pe arborele Friends si alegand optiunea Add New Friend (Figura 5).
  • 6. Fig. 5. Adaugarea unui nou prieten Dupa acest pas si dupa ce se termina protocolul de initializare cu succes, fiecare din cei doi apare in lista de prieteni a celuilalt (Figura 6). Fig. 6. Lista de prieteni Urmand apoi pasii prezentati in capitolul anterior, dupa ce vor stabili o cheie de sesiune, vor putea comunica (in siguranta). In Figurile 7 si 8 este prezentata o sesiune de chat intre cei doi utilizatori. Fig. 7. Alice utilizand serviciul de chat
  • 7. Fig. 8. Bob utilizand serviciul de chat Dand click dreapta pe un prieten, apare un meniu cu anumite optiuni : chat, sa pot vizualiza profilul prietenului, sau sa-i modific detaliile de contact (Figura 9). Fig. 9. Actiuni posibile asupra unui prieten din lista Utilizatorii adauga apoi metadate resurselor pe care le vor face publice, din meniul Tags. In partea stanga exista un arbore ce simuleaza sistemul de fisiere (Figura 10) Fig. 10. Sistemul de fisiere simulat in Spear
  • 8. Din acest arbore alegem o resursa, dam dublu click pe ea si va aparea o fereastra ca in Figura 11. In aceasta fereastra trebuie sa alegem macar un tag principal pentru resursa. De asemenea putem pune alte taguri proprii (separate prin cate o virgula), si o descriere a resursei. Fig. 11. Adaugare de metadate unei resurse Figura 12 prezinta cateva resurse cu metadatele aferente, adaugate de Bob. Fig. 12. Metadatele lui Bob
  • 9. Fig. 13. Optiunile de cautare Alice 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 caute carti de sah pe retea. Avand un singur prieten in lista, in momentul cautarii doar el va primi aceasta cerere. Avand metadatele lui Bob in Figura 12 si stiind ca ea va cauta dupa cuvantul Chess, rezultatul cautarii este destul de previzibil si se poate vedea in Figura 14. Fig. 14. Rezultatele cautarii Pentru a vedea descrierea fiecarei resurse gasite, Alice poate da click dreapta pe fiecare din ele – Figurile 15 si 16. Fig. 15. Descrierea unei resurse
  • 10. Fig. 16. Descrierea unei resurse Alice va dori sa descarce cele doua carti si sistemul de operare Ubuntu 10.10 pe care l-a gasit pe computerul lui Bob. Astfel ea da dublu click pe fiecare resursa gasita. In Figura 17 se pot vedea fisierele descarcate de Alice de la Bob in timp ce in Figura 18 se 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 Alice Pe langa acestea, Spear mai are si un meniu Events ce retine evenimentele care s-au petrecut in aplicatie – Figura 19.
  • 11. Fig. 19. Meniul Events Fig. 20. Meniul Options
  • 12. De asemenea aplicatia mai include si un meniu Options (Figura 20), folosit pentru a seta anumite informatii. Meniul contine categorii de optiuni generale, pentru vizualizarea aplicatiei, pentru setarea cailor de acces la directoarele utilizate, pentru retea, pentru securitate si pentru informatiile pe care utilizatorul le publica despre sine. Fig. 21. Meniul About Nu in ultimul rand, aplicatia contine informatii despre creatorul ei. Acestea pot fi vizulizate in meniul About (Figura 21).
  • 13. 4 Instrumente utilizate 4.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 unui program sa fie compilat si rulat pe platforme diferite cu schimbari ale codului minime. Ruleaza pe sisteme ca Windows, Linux, MacOS, OpenVMS, OS/2, AmigaOS. Este unul dintre cele mai complete toolkit-uri GUI, avand foarte multe clase utile si documentatie pentru ele. Oricand este posibil, wxWidgets foloseste SDK-ul platformei native. Asta inseamna ca un program compilat pe Windows va avea “look and feel”-ul unui program Windows, iar un program compilat pe Linux va avea “look and feel”-ul unui program Linux. Toolkit-ul este atat open source cat si gratuit pentru folos personal si comercial. Biblioteca este implementata in C++ dar are binding-uri si pentru alte limbaje 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(CVS client). 4.2 Boost [3] Bibliotecile de functii Boost sunt o colectie de biblioteci open-source care extind functionalitatea C++. Majoritatea bibliotecilor se gasesc sub licenta Boost, putand fi folosite atat la proiecte open cat si closed source. Multi din fondatorii Boost sunt in comitetul pentru standardizarea C++, iar o serie de biblioteci Boost au fost incluse deja atat in Technical Report 1 cat si in noul standard C++ (C++0x). Mai mult, majoritatea bibliotecilor functioneaza pe mai multe sisteme de operare, permitand astfel dezvoltarea de aplicatii cross-platform. 4.3 Soprano [4] Soprano este o biblioteca de functii care pune la dispozitie un framework C++/QT pentru manipularea datelor RDF. Soprano a fost creat ca un sub-proiect al Nepomuk si formeaza o parte a desktop-ului semnatic din KDE 4. Soprano functioneaza ca un repository pentru stocarea informatiilor generate de server-ul Nepomuk. Soprano ofera suport pentru backend-urile Redland si Sesame2 ce sunt folosite pentru stocarea si interogarea datelor RDF.
  • 14. 4.4 Premake [5] Premake este un utilitar open source, folosit pentru a construi automat configurari pentru 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 pentru dezvoltarea de aplicatii cross-platform. 4.5 Crypto++ [6] Crypto++ este o biblioteca de functii C++, distribuita gratis, folosita pentru criptografie. 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 pe diferite sisteme de operare (Windows, Unix, Linux, MacOS, Solaris). Anumite versiuni de Crypto++ au fost validate de NIST(National Institute of Standards and Technology ) si CSE(The Communications Security Establishment) pentru conformanta de nivel 1 cu FIPS 140-2. 5 Concluzii Lucrarea a prezentat modul de functionare si de utilizare a Spear, o aplicatie ce creaza o retea Friend-to-Friend, unde utilizatorii se conecteaza doar la prietenii pe care ii cunosc. Astfel, multe din atacurile posibile in retelele Peer-to-Peer (DoS, Sybil sau Eclipse [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 a retelei. Datorita topologiei retelei , asa cum este vazuta de fiecare nod ( - stea), Spear introduce o alta proprietate de securitate foarte importanta : anonimitatea. Spre deosebire de proiectul de baza (Gazebo F2F [1]), Spear introduce componenta semantica in capabilitatile aplicatiei. Astfel, resurselor care sunt facute publice, utilizatorul le poate atasa metadate care apoi vor imbunatati rezultatele cautarilor. Legat de aceasta, utilizatorul are de asemenea posibilitatea de a face cautari de resurse nu numai dupa nume ci si dupa metadate. In cazul in care utilizatorul doreste sa descarce anumite resurse gasite pe retea, Spear ii ofera aceasta posibilitate prin serviciul de filesharing. Ca directii de dezvoltare a aplicatiei ar fi orientarea pe imbunatatirea calitatii serviciilor puse la dispozitie de Spear, si implementarea unui numar mai mare de functionalitati.
  • 15. 6 Referinte 1. Silvestru, S. : Gazebo F2F : A Friend-to-Friend Application, 2009, Bachelor of Science Thesis 2. 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/