Skip to content

Latest commit

 

History

History
318 lines (299 loc) · 16.6 KB

studienarbeit.org

File metadata and controls

318 lines (299 loc) · 16.6 KB

Noch offene Punkte

Paper zu Community-Algorithmen an Hauck schicken

Metagraph zeichnen

Selbstkanten entfernen

Knoten ohne Kanten entfernen

Wie viele Komponenten müssen weggelassen werden, damit das ganze zeichenbar wird? < 10?

Bild an Hauck schicken

Modul für wotsap-export schreiben

  • State “DONE” [2009-11-12 Thu 15:24]
  • State “STARTED” [2009-11-09 Mon 12:30]

In sksdump alle benötigten Daten extrahieren

  • State “DONE” [2009-11-12 Thu 18:24]
  • State “STARTED” [2009-11-11 Wed 12:00]

Alle gültigen UIDs pro Schlüssel ausgeben -> Liste von UIDs pro Schlüssel

  • State “DONE” [2009-11-12 Thu 11:05]
  • State “TODO” [2009-11-12 Thu 11:04]

Ablaufdatum eines Schlüssels und Ablaufdatum von Signaturen

  • State “DONE” [2009-11-12 Thu 11:05]
  • State “TODO” [2009-11-12 Thu 11:05]

Testen

  • State “DONE” [2009-11-12 Thu 18:24]
  • State “TODO” [2009-11-12 Thu 11:05]

Build-Problem mit batteries Debian Paket beheben

  • State “DONE” [2009-11-13 Fri 11:46]

Datenformat umstellen: wotsap + postgres für Schlüsselinformationen

  • State “DONE” [2009-11-25 Wed 16:23]

Modul schreiben, dass Liste von ekeys in postgresql ablegt

  • State “DONE” [2009-11-19 Thu 10:52]
  • State “STARTED” [2009-11-17 Tue 11:21]

möglichst minimal-invasiv kaputtes UTF8 in UIDs reparieren

  • State “TODO” [2009-11-17 Tue 15:00]

DEFERRED vorhandenen Code für Wotsap-import anpassen

  • State “DEFERRED” [2009-11-16 Mon 14:27]

Vorhandenen Code (insb. clustering_coefficient und betweeness) überprüfen

Warum fehlen teilweise Werte?

Statistik über Schlüsseleigenschaften

  • State “DONE” [2009-11-25 Wed 16:24]

Verwendete Algorithmen (Pubkey, Signatur)

Wie verändert sich die Verwendung von Algorithmen über die Zeit (abhängig von ctime?)

Schlüssellängen (insb. für RSA interessant – gibt es noch nennenswert RSA-Schlüssel <= 1024 bit?)

Gibt es noch Schlüssel, die MD5 einsetzen und damit signieren? Gibt es halbwegs aktuelle Signaturen auf Basis von MD5?

Cert level (werden Level != 0x10 von nennenswert vielen Leuten verwendet?)

Wie viele Schlüssel haben ein Ablaufdatum?

Wie viele Signaturen haben ein Ablaufdatum?

Alter der Schlüssel

Möglicherweise diese ganzen Eigenschaften für die MSCC und den Rest ausreichen und vergleichen

Untersuchung der grösseren Komponenten (2-3 grössten)

  • State “DONE” [2009-11-25 Wed 16:24]

Wie alt sind die Schlüssel im Durschschnitt?

Wann wurde in dieser Komponente das letzte mal signiert?

aus welchen Domains kommen user-ids?

bool Feld in Keys-Tabelle einfügen, dass Mitgliedschaft in MSCC markiert.

  • State “DONE” [2009-12-03 Thu 11:22]

MSCC in ungerichteten Graphen umwandeln und in igraph-Format exportieren

  • State “DONE” [2009-12-03 Thu 16:58]

Komponentenstruktur aus DB extrahieren, mit dump_graph vergleichen mit snapshot-Funktionalität

Statistiken abschliessen und ausdrucken

Reachable und Reaching set ausrechnen

Anhand des Metagraphen ausrechnen, wie viele Knoten von der MSCC erreicht werden können bzw. wie viele diese erreichen können

Systematisch die Entwicklung der Komponenten anhand von 3 Dumps nachvollziehen

Bisher wurden zwei Dumps verwendet: 1. Anfang August, 2. Ende September (?). Beim zweiten ist erwartungsgemäss die MSCC gewachsen (wenige hundert Knoten). Allerdings hat sich die nächstkleinere Komponente eine geringere Grösse als beim 1. dump. Das kann eigentlich nur daran liegen, dass diese Komponente durch das Expiren von Schlüsseln/Signaturen zerfallen sind.

Analyse der Community-Struktur

Kann der Graph ohne (wesentlichen) Informationsverlust in einen ungerichteten Graphen umgewandelt werden?

Literatur über Community-Algorithmen sichten

  • State “DONE” [2009-12-15 Tue 14:38]

Literaturrecherche: gibt es jemand der schon die Community-Struktur des WoT analysiert hat?

  • State “DONE” [2009-11-30 Mon 17:24]
  • State “TODO” [2009-11-12 Thu 12:07]

Einen Algorithmus auswählen und implementieren

Versuchen, mit igraph Ergebnisse zu erhalten

Berechnung mit fastgreedy/walktrap/eigenvector für ungerichtete Graphen

Vergleich der Ergebnisgüte -> Modularity, “Draufschauen”. Wichtig: Resolution limit beachten

Versuchen, ein Ergebnis mit igraph.community_edgebetweeness zu erhalten

Falls nötig edge betweenness auf Basis von MPI und Vertex betweeness implementieren, auf HPC-BW laufen lassen.

Ergebnisse von ungerichteten und gerichteten Algorithmen vergleichen i.B. auf Modularity

Ergebnisse quantitativ analysieren: Verteilung der Community-Grössen + ?

Ergebnisse inhaltlich analysieren

Macht die Einteilung intuitiv Sinn?
Können die Communities inhaltlich zugeordnet werden? (Benutze investigate_component)

Zeitlichen Verlauf der ZKs untersuchen

Daten analysieren und interpretieren

Lablog

Notizen <2009-11-05 Thu>

Frage: Woher stammen die Signaturen?

Lässt sich unterscheiden, ob Signaturen aus einem privatem Face-to-face-meeting stammen oder auf einer (grossen) Keysigning-Party entstanden sind? Wie hoch ist der Anteil der Nicht-Keysigning-Signaturen?

Idee: Unterscheidung soziale Gruppe <-> KSP

Die Unterscheidung, ob eine Community eine soziale Gruppe oder eine Keysigning-Party darstellt, kann anhand der Signaturzeit getroffen werden. Wenn alle (die meisten) Signaturen in einer Community in einem engen Zeitfenster gemacht wurden, ist es höchstwahrscheinlich eine Keysigning-Party.

Ergebnis one-way-Signaturen

Mit dem Datenstand vom 05.11.09 sind 408464 von 439355 Signaturen nicht one-way, d.h. die grosse Mehrzahl der Signaturen beruht auf Gegenseitigkeit. Das sind wie erwartet wenige, da Signaturen im normalen Vorgang in beide Richtungen unternommen werden. Damit scheint es vertretbar, den Graphen für die Community-Analyse in einen ungerichteten Graphen umzuwandeln.

Zwischenstand Metagraph

Mit 263 (max_size = 10) Knoten wird das Ganze darstellbar (fdp -> spring model, Fruchtermann und Rheingold).

Allerdings:

Jeder Knoten hat eine Kante zu sich selbst – Grund?

Eine Reihe von Komponten hat keine ausgehenden/eingehenden Kanten. Solche Knoten entfernen und herausfinden, wie weit die Komponentengrösse dann reduziert werden kann.

Ohne singleton Knoten und n = 224 (max_size = 8) ist der Graph noch zeichenbar. Allgemein scheint fdp die besten bzw. einzig brauchbaren Ergebnisse zu liefern. Die Qualität der Zeichnung ist noch sehr zu verbessern. Dazu könnte die Grösse der Knoten reduziert werden (nur Grösse, Kreis enger gezeichnet). Ausserdem sollte die Anzahl der aggregierten Kanten sichtbar sein, z.B. indem eine “Metakante” unterschiedlich dick gezeichnet wird.

Notizen <2009-11-06 Fri>

Richtiges Ergebnis one-way-Signaturen

Es sind nicht 408000 Signaturen nicht-one-way wie gestern behauptet, sondern es ist gerade anders herum. D.h. zu 408000 Signaturen gibt es keine Signatur in umgekehrter Richtung. Demnach gibt es nur zwischen $(440000-408000) / 2 = 16000$ Paaren von Knoten wechselseitige Signaturen. Das kann eigentlich nicht sein und wirft (offensichtlich optimistische) Annahmen über die Entstehung von Signaturen über den Haufen.

Allerdings wird das plausibler, wenn man sich die Gradverteilung anschaut. Die grosse Mehrheit der Knoten hat einen Grad von höchstens 3 (allein 18000 mit 1) und es scheint nicht unwahrscheinlich, dass das eine Signaturenpaar eines Grad-1-Knotens gerade nicht auf Gegenseitigkeit beruht. Das würde bedeuten, dass die ganzen Grad-1/2/3 Knoten nur signiert haben (eher nicht signiert wurden bzw. nicht vom signierten signiert wurden).

Wie sieht die Verteilung der Indegrees aus? Trifft out-degree < 3 und in-degree < 3 häufig zusammen (sehr wahrscheinlich)?

Das Problem bleibt allerdings, dass der Graph nicht so ohne weiteres in einen ungerichteten Graphen umgewandelt werden kann. Es muss jetzt darüber nachgedacht werden:

wie gross der Informationsverlust ist, wenn one-way- und two-way Signaturen unterschiedslos in eine ungerichtete Kante überführt werden

ob es Sinn macht, wie bei Pons et al. angemerkt, iterativ Kanten mit Grad 1 zu entfernen. Tragen diese tatsächlich nichts zur Community-Struktur bei?

Notizen <2009-11-11 Wed>

Problem: Zusammengefasste Signaturen

Wenn die statistische Auswertung mit den ekeys durchgeführt werden soll, ergibt sich ein Problem: Von allen (validen) Signaturen, die ein issuer auf einem bestimmten Key angebracht hat, wird nur eine (d.h. eine signierte uid) übernommen. Problematisch wird das, wenn der issuer zu unterschiedlichen Zeiten unterschiedliche UIDs signiert hat und sich dabei z.B. der Signaturalgorithmus (unwahrscheinlich weil gleicher Key), die Ablaufzeit (schon wahrscheinlicher unter der Prämisse dass überhaupt Ablaufzeiten auf Signaturen verwendet werden) oder der cert level (nicht unwahrscheinlich insoweit cert level != 0x10 benutzt werden) geändert hat.

Notizen <2009-11-17 Tue>

Warum doppelte Keys in ekey-Liste?

Notizen <2009-11-19 Thu>

Problem

Kein einziger Schlüssel im dump 091109 hat ein Ablaufdatum. Das ist entweder ein Fehler im DB-Export oder im SQL-import. Vermutlich das erste.

Subkeys

wotsap beachtet scheinbar keine subkeys, d.h. auch keine Signaturen auf Subkeys. Es scheint daher gerechtfertigt, das genau so zu machen.

Notizen <2009-11-25 Wed>

Ergebnis Schlüsselstatistiken

Die Statistiken über die zeitliche Entwicklung von Algorithmenbenutzung und Schlüssellänge für RSA/DSA sehen hübsch aus und scheinen auch Sinn zu machen. Z.b. sieht man in jüngster Zeit einen Peak von RSA-keys mit grosser Schlüssellänge, der wahrscheinlich mit dem Bekanntwerden der Probleme mit SHA-1 korreliert.

Das Problem dabei ist, das im Moment nur die Keys betrachtet werden, die im Moment als valide und signiert betrachtet werden. Eigentlich müssten aber für ein Intervall alle Keys betrachtet werden, die in diesem Intervall erstellt wurden, auch wenn sie inzwischen nicht mehr gültig bzw. nicht vernetzt sind.

Es müssten also alle Keys aus der Datenbank extrahiert und in SQL abgelegt werden. Dabei muss für revoked Keys abgespeichert werden, wann der Key revoked wurde. Bei der Abfrage muss dann zusätzlich zu den Intervall-Kriterien beachtet werden, ob der Key vor Intervallende abgelaufen ist oder revoked wurde.

Notizen <2009-12-02 Wed>

Mitgliedschaft von Keys in Komponenten explizit in DB eintragen

Nur bool flag für mscc

Komponenten benennen (durchnummerien a la metagraph) und dann für jeden key die nummer merken (falls er in einer komponente ist).

CFinder

Bleibt auf hpc-bw per PBS nach 54 % Prozent hängen (reproduzierbar).

Läuft nicht auf LRZ-TU Cluster (Itanium)

dauert auf Frontend-Rechner des hpc-bw zu lange (gibt ärger)

Igraph

Fast-Modularity

Notizen <2009-12-03 Thu>

Problem

dump_graph ist offensichtlich fehlerhaft, weil es Keys liefert, die längst expired sind. Ein Vergleich der MSCC mit wot-all deutet an, dass von den knapp 43000 Keys ca. 4000 expired sind. wotsap liefert aktuell (03.12.09) 42000 Keys mit ca. 420000 Signaturen. Mit grosser Wahrscheinlichkeit waren das vor kurzem aber noch eher ca. 38000 Schlüssel.

Update: Die aktuell bearbeiteten Daten stammen vom 15.11.09. Der wotsap-Datensatz vom 13.11.09 enthält tatsächlich nur ~37000 Keys. Aus den Dateigrössen ist auch ersichtlich, dass die Grösse erheblich schwankt. Der übliche Wert scheint aber eher bei ca. 42000 Keys zu liegen.

Möglichkeit: Noch mal einen neuen Dump ziehen und vergleichen.

Notizen <2009-12-08 Tue>

Resolution-Limit bei Modularity

Modularity hat anscheinend eine Auflösungsgrenze (resolution limit), die es schwierig oder sogar unmöglich macht, Communities unterhalb einer gewissen Mindestgrösse zu finden. (Siehe Good2009, Leung2009).

Near-linear paralleisierbarer Algorithmus

Siehe Leung2009, dort auch interessante Aspekte über Modularity, Performance-Vergleich mit Modularity-Methoden.

Giant component

Die Komponentenstruktur und insbesondere ihre Grössenverteilung müsste mit der Literatur verglichen werden. Insbesondere scheint es in random graphs normal zu sein, dass eine giant component entsteht und der Rest der Komponenten sehr viel kleiner ist (Newman2001).

Notizen <2009-12-15 Tue>

Walktrap (igraph)

Die Walktrap-Implementierung aus igraph (aber wahrscheinlich auch der Algorithmus an sich) ist auf der vorhandenen Hardware nicht benutzbar. Der Prozess wächst innerhalb von 20 Minuten auf ~2.4 GB Speicher an.

Fastgreedy

Der Fastgreedy-Algorithmus in der Igraph-Implementierung liefert auf roadw innerhalb von ca. 10 Minuten ein Ergebnis. Es entstehen 665 Communities. Auffällig ist, dass einige (5-6) sehr grosse (ca 4000-5000 Knoten) dabei sind. Ansonsten gibt es einige (15-20) von mittlerer Grösse (100-500). Die grosse Mehrzahl (fast der gesamte Rest) liegt zwischen 5 und 20 Knoten.

Vergleich von Ergebnissen

Die jeweiligen Methoden für ungerichtete und gerichtete Graphen können einfach verglichen werden, indem Modularity als Gütemass verwendet wird (Modularity für gerichtete Graphen siehe Arenas2007, Leicht/Newmann2008).

Das funktioniert allerdings auf den ersten Blick nicht zwischen gerichteten und ungerichteten Graphen, weil es sich um unterschiedliche Masse bzw. um eine andere Struktur handelt. Können die Masse trotzdem verglichen werden? Wie machen das die Autoren, die gerichtete Algorithmen vorschlagen?

Notizen <2009-12-16 Wed>

Fragestellung bei Communities

Interne Vernetzung der Communities (Gradverteilung, Durchschnittsgrad etc)

Semantische Zuordnung (Sozial, zeitlich (KSP) -> siehe investigate_component).

Starke Zusammenhangskomponenten sind letztendlich auch Extremfälle von Communities

Verwendung von Expire times auf Signaturen

Werden die hauptsächlich von CA’s eingesetzt? (CA Cert Signing Autority…, PGP directory verification…)

Notizen <2009-12-17 Thu>

Idee

Wie sind die Auswirkungen, wenn MD5-Signaturen entfernt werden? Zerfällt die MSCC in mehrere Teile? Das könnte relevant werden, wenn es effiziente preimage-Angriffe gegen MD5 gibt.

Gleiches könnte man sich auch für die Knoten mit höchstem Grad, Knoten mit höchster Betweeness-Centrality und CA-Knoten (Heise, CACert) anschauen.

Notizen <2010-02-08 Mon>

Neue Methoden

Clique-Mod (Gregory) basiert auf dem mergen von Cliquen. Funktioniert fuer ungerichtete Netze. Ist konsistent schneller und hat hoerere max. Modularity als Fast-Modularity. Gibt an, dass weniger Monster-Comm. entstehen als bei FastMod.

COPRA (Gregory): overlapping communities basiert auf label propagation.

Methoden fuer Overlapping: CONGA/CONGO/Peacock (Gregory)

org-mode configuration