2 research outputs found

    Jaettujen hajautustaulujen käyttö ja turvallisuusongelmat

    Get PDF
    Jaetut hajautustaulut (Distributed Hash Table, DHT) ovat rakenteisten vertaisverkkojen tyyppi, jotka mahdollistavat tiedon hajauttamisen ennalta määrittelemättömälle joukolle solmuja ilman keskitettyä koordinaatiota. Kuten usein vertaisverkoissa, kaikki verkon solmut osallistuvat tiedon haku- ja talletusprosessiin. Tällaisessa järjestelmässä on keskeistä, että kaikki verkon solmut noudattavat verkon protokollaa. Solmut voivat poiketa protokollasta joko ohjelmistovirheiden vuoksi tai koska ne pyrkivät häiritsemään verkon toimintaa. Toisaalta verkon sisällöstä tai liikenteestä kiinnostuneet tahot voivat myös liittää verkkoon solmuja, joiden tavoite on lokittaa verkon liikennettä ja liikennöijiä. Nämä tarkkailijat voivat toimia muutoin pääosin protokollan mukaisesti. Hyökkäyksen suorittavia solmuja tarvitaan yleensä suuri määrä normaalikäyttöön verrattuna. Mahdollisuus liittää suuri määrä tällaisia solmuja perustuu osallistujien heikkoon identiteettiin sekä hankaluuteen varmistaa ulkopuolelta solmujen oikea toiminta. Tutkijat ovat kehittäneet sekä identiteetin vahvistamiseen, että verkon ja solmujen toiminnan tilastolliseen tarkasteluun perustuvia puolustusmenetelmiä. Nämä menetelmät pyrkivät tunnistamaan hyökkäävät toimenpiteet joko havaitsemalla verkkoon liittyneet poikkeavat solmuryppäät tai pyrkimällä havaitsemaan poikkeamat protokollien invarianteista. Maailmalla eniten käytetyt DHT:t perustuvat Kademlia-algoritmiin. Tätä käyttävät muun muassa eMule-tiedostonjako-ohjelman käyttämä Kad-verkko sekä kaksi erillistä BitTorrent-asiakasohjelmien käyttämää DHT:a. Näitä verkkoja vastaan on toteutettu useita käytännön hyökkäys- ja tarkkailumekanismeja sekä esitetty useita puolustusmekanismeja. Tämä tutkielma tarkastelee tutkimuskirjallisuutta DHT:jen toiminnan ja turvallisuuden teoreettisesta perustasta sekä periaatteellisista hyökkäys- ja puolustusmekanismeista esitetyille järjestelmille. Lisäksi tutkielma tarkastelee spesifisesti Kademlia-algoritmin käyttöä käytännön sovelluksissa ja niihin sovellettavia hyökkäys- ja puolustusmekanismeja. ACM Computing Classification System (CCS): C2.1 Network Architecture and Design — Distributed networks C2.2 Network Protocols — Applications C2.4 Distributed Systems — Distributed databases E.1 Data Structures — Distributed data structures H3.4 Information Storage and Retrieval — Systems and software — Distributed system

    TrustedKad - Application of Trust Mechanisms to a Kademlia-Based Peer-to-Peer Network

    Get PDF
    Peer-to-Peer-Netzwerke (P2P) sind verteilte Systeme, die aus gleichberechtigten Knoten („Peers“) bestehen. Im Gegensatz zu klassischen Client-Server-Systemen gibt es in P2P-Netzwerken keine hierarchischen Ebenen oder zentrale Kontrolleinheiten: Alle Peers bieten gleichzeitig Dienste an und nutzen sie. Im vergangenen Jahrzehnt ist eine Vielzahl verschiedener P2P-Anwendungen entwickelt worden – Filesharing-Anwendungen wie BitTorrent und eMule und Kommunikations-Anwendungen wie Skype gehören zu den bekanntesten von ihnen. Forschungsarbeiten haben gezeigt, dass P2P-Netzwerke anfällig für verschiedene Arten von Angriffen sind. Bekannte Angriffe sind z.B. die Sybil- und die Eclipse-Attack. Die üblichen Gegenmaßnahmen gegen die Angriffe sind Replikation und das Verwenden von disjunkten Routing-Pfaden, um die Wahrscheinlichkeit zu reduzieren, während einer Routing- oder Storage-Operation mit bösartigen Knoten zu interagieren. Seit einiger Zeit wird die Anwendung von Vertrauensmechanismen auf P2P-Netzwerke untersucht. Existierende Arbeiten betrachten meist unstrukturierte P2P-Netzwerke – in realen Umgebungen überwiegen jedoch die strukturierten Netzwerke. Insbesondere Implementierungen des Kademlia-Algorithmus‘ sind weit verbreitet, da er von BitTorrent und eMule genutzt wird. Dennoch versucht keiner der vertrauensbasierten Ansätze, die strukturierte Netzwerke behandeln, speziell die Sicherheit von Kademlia zu verbessern. Aufgrund der Verbreitung von Kademlia wird TrustedKad vom Autor entwickelt, um die Sicherheit des Kademlia-Algorithmus‘ zu verbessern. In dieser Arbeit wird TrustedKad eingeführt und die Funktionsweise erläutert. TrustedKad bewertet das Verhalten von Knoten nach Routing- oder Storage-Operationen als entweder positiv oder negativ. Dafür definiert TrustedKad unter Berücksichtigung der Funktionsweise von Kademlia die Regeln, nach denen gut- und bösartiges Verhalten identifiziert wird. Basierend auf diesen Bewertungen werden Vertrauenswerte für Routing und Storage berechnet, um gutartige und bösartige Knoten zu erkennen. Jeder Knoten nutzt Schwellwerte für diese Vertrauenswerte, um zu entscheiden, welche Knoten er als vertrauenswürdig ansieht. Nicht vertrauenswürdige Knoten werden während der eigenen Operationen eines Knotens vermieden. Darüber hinaus nutzt TrustedKad zusätzliche Sicherheitsfunktionen, um die Sicherheit des Systems weiter zu erhöhen. Diese werden im Verlauf dieser Arbeit vorgestellt. Um TrustedKad zu evaluieren, wird es in einer Simulationsumgebung implementiert und analysiert. Die in dieser Arbeit präsentierten Ergebnisse zeigen, dass TrustedKad in der Lage ist, gutartige und bösartige Knoten zu unterscheiden. Es wehrt verschiedene Variationen von bekannten Angriffen ab und verbessert die Sicherheit von Kademlia-basierten Netzwerken deutlich.Peer-to-peer networks (P2P) are distributed systems that consist of equal nodes (“peers”). In contrast to classic client/server systems, there is no hierarchy or central entity: All peers offer services and use them at the same time. In the past decade, a multitude of different P2P applications has been developed – filesharing applications such as BitTorrent and eMule and communication applications such as Skype are among the most popular of them. Research has shown that P2P networks are vulnerable to different kinds of attacks. Known attacks include, e.g., the Sybil attack and the Eclipse attack. Traditional countermeasures against the attacks are replication and the usage of disjoint routing paths to reduce the probability of interacting with malicious nodes during a routing or storage operation. More recently, trust mechanisms have been proposed and analyzed for applicability to P2P networks. The existing related work mostly targets unstructured P2P networks – however, in real-world environments, the structured networks prevail. Especially implementations of the Kademlia algorithm are widely spread, as it is used by BitTorrent and eMule. Nevertheless, none of the trust-based approaches that aim at structured networks specifically attempts to enhance Kademlia’s security. Due to Kademlia’s prevalence, TrustedKad is particularly designed by the author to improve the security of the Kademlia algorithm. In this thesis, TrustedKad is introduced and its functioning is explained. TrustedKad rates the behavior of nodes after routing and storage operations as either positive or negative. To do so, it defines the rules by which inoffensive and malicious behavior is identified in dependence of the functioning of the Kademlia algorithm. Based on the ratings, routing and storage trust values are calculated to identify inoffensive and malicious nodes. Every node uses thresholds for these trust values to decide which nodes it regards as trustworthy. Non-trustworthy nodes are avoided during a node’s own operations. Furthermore, TrustedKad uses additional security features to further increase the security of the system. They are introduced in this thesis. In order to evaluate TrustedKad, it is implemented and analyzed in a simulation environment. The results presented in this thesis show that TrustedKad is able to distinguish inoffensive and malicious nodes. It counters miscellaneous variations of known attacks and improves the security of Kademlia-based networks considerably
    corecore