Kleiner Hacking-Contest

    • Offizieller Beitrag

    Hallo!

    Eine kleine Herausforderung will ich uch heute mal stellen. Es geht um die Verschlüsselung, die wir in Galenda eingebaut haben. Ich bin der Ansicht, dass die Kalender trotz des Open-Source-Status außergewöhnlich sicher sind.

    Nach dem "Prinzip von Kerckhoff" muss ein gutes Verchlüsselungsverfahren so konzipiert sein, dass es auch dann noch sicher ist, wenn der Algorithmus bekannt ist. Daher hier für euch die Details:
    Grundlage: Das Passwort wird nie gespeichert - nicht als Klartext, auch nicht verschlüsselt. Beim Schließen gibt man das Passwort zweimal ein, um Vertipper zu verhindern. Die komplette [Kalendername]l.gld wird per SHA1 (DLL) gehasht und der Hash in der settings.gld hinterlegt. Mit dem Passwort wird die DLL zur Verschlüsselung aufgerufen, die sich im Resources-Verzeichnis befindet. Wenn ich es richtig im Kopf habe, arbeitet diese nach dem AES-Algorithmus. Danach wird das Passwort im RAM überschrieben. Die Originaldatei wird gelöscht und durch die verschlüsselte ersetzt. In diesem Zustand habe ich euch einen Kalender in den Anhang gepackt.
    Beim Entschlüsseln wird das PW einmal abgefragt. Dann damit Entschlüsselungs-DLL aufgerufen. Danach der SHA1-Hash des Ergebnisses ermittelt und mit dem gespeicherten verglichen. bei Übereinstimmung wird geöffnet, bei Unterschied die scheinbar entschlüsselte Datei verworfen.

    huggy hat es nicht geschafft, an die Daten heranzukommen. Es sind im Beispiel Termine am 10.10.2006 und 12.10.200 eingetragen. Den Titel von letzterem würde ich gerne wissen ;)

    Viel Erfolg,
    peethebee

  • Also ich habs geschafft den die Kategorie rauszufinden , mehr nicht :klatschen:


    probiere aber noch weiter :hammer: :hammer: :hammer: :hammer:


    EDIT

    hab mich mal im hackerboard schlau gemacht, kam :


    Hallo,
    sofern er 3DES verwendet, wie es der Name sagt, wirst du wahrscheinlich keine Schwachstelle finden, denn die besten Cryptographen der Welt haben noch keine verwertbare gefunden, oder halten diese unter Verschluss. Also sofern der Algorithmus richtig implementiert ist, ist darüber kein weiterkommen.

    Aber evt. verwendet das Programm ein Master-PW, welches Fest im Programmcode steht. Wenn du es schafft, dieses auszulesen, kannst du auch den Kalender entschlüsseln.


    ...


    Glückwunsch :rofl: :rofl:

    Einmal editiert, zuletzt von huggy (11. Oktober 2006 um 17:01)

  • Also ähm mein gedächtnis is schlecht aber ich weiß denke noch nen bisschen also:
    1. siehe Hash code in test.gdl oder was das war
    2. umwandeln in dec per hex editor egal welcher/hab nen speziellen den hat keiner xD
    3. wissen welche buchstaben/zahlen/ usw für zahlenkombinationen sind
    4. und dann hatte ich -1#QNAN irgendwann raus :

    QNAN = Lösung ?
    Wenn nicht hab ich vllt doch nen zahlendreher gehabt

    Ah also nen richtiges wort ich depp darauf hätte ich doch komm könn :hammer:

    Stimmt wenigstens die länge des wortes oder bin ich aufn holzpfad ?

    [edit] aber wo bekomm ich die exe ?

    2 Mal editiert, zuletzt von Bartuc (11. Oktober 2006 um 20:20)

    • Offizieller Beitrag

    Nein, es ist ein sinnvolles Wort. Man sollte die Datei dann auch im Galenda öffnen lassen. Wenn der was anzeigt, habt ihr es geknackt...
    Aber gerne weiterversuchen!

    @Bartuc:
    Du dürftest auf einem Holzpfad sein. Man muss es wohl über die dtdes.exe wieder entschlüsseln, aber eben mit dem richtigen Passwort.
    Der beste Weg wäre wohl ein Keylogger (was hier aber nicht geht) oder social Hacking, was ihr gerne versuchen könnt ;)
    Wortlänge ist leider falsch. Es ist eine Fernsehsendung - damit kannst du deine Ergebnisse in Zukunft selbst prüfen.

    peethebee

  • hi,

    ich habe mir die sache auch mal angesehen und habe mir vergebens die Zähne augebissen. Bis auf 2 gleiche und einen anderen Hash-Key konnte ich im Klartext nichts weiteres finden, bis auf natürlich das Eingabe-Password das man als User eingibt. Es sollte also, so schnell nicht möglich sein das Ding zu knacken. Wenn ich mich recht errinnere arbeitet die Verschlüsselung sogar mit einer zusätzlichen CRC32-Prüfung was die Sache um einiges schwerer macht.
    Meiner Meinung nach ist die Verschlüsselung sicher genug - ich glaube nicht das es einer so schell hinbekommt den 168-Bit-Key zu brechen, jedenfalls nicht in dieser Kombination.

    Mfg
    trallala

  • peet komm mal online damit ich meinen Trojaner den ich bei dir versteckt habe abrufen kann wie das passwort lautetete :)

    • Offizieller Beitrag

    Raten hat im Realfall (bei sicherheitsbewusstem User) wenig Sinn. Und auch in diesem Fall werdet ihr damit eher nicht weiterkommen. Theoretisch kann man es natürlich so versuchen - falls man sowieso bruteforcen muss, kann man ja einfach wahrscheinliche Passwörter zu erst prüfen.

    peethebee

  • mein rechner hat gerade ca 170000 wörter und zahlen Probiert hab mir schnell ein Brutforge Programmiert, hat zwar leider nicht das richtige passwort herausbekommen weil das pw sicher ist aber ist bestimmt sicherer für Galenda wenn mann nicht immer das passwort wieder eingeben kann...Also ,mal exit oder sonst was währe geil.
    Sonst n1

  • Zitat

    Original von Tam0r
    mein rechner hat gerade ca 170000 wörter und zahlen Probiert hab mir schnell ein Brutforge Programmiert, hat zwar leider nicht das richtige passwort herausbekommen weil das pw sicher ist aber ist bestimmt sicherer für Galenda wenn mann nicht immer das passwort wieder eingeben kann...Also ,mal exit oder sonst was währe geil.
    Sonst n1


    Wieso programmierst du dir sowas?
    Gibt ja genug tools dafür (siehe german computer freaks)

    Und die Idee mit dem falschen PW 5 mal falsch eingeben und der kalender wird vll für 10 minuten gesperrt gefällt mir!

  • Weil das nur soviel cod war :) und lieber mein Prog als irgendeine exe von jemand anderem :)

    [autoit]


    #include <file.au3>
    Opt("Trayicondebug", 1)

    [/autoit][autoit][/autoit][autoit]

    Opt("WinTitleMatchMode", 1)
    For $i = 1 to 100000000

    [/autoit][autoit][/autoit][autoit]

    $text = FileReadLine ( "c:\Wortliste.txt",$i)
    WinWait ("Passwort")
    WinActivate ("Passwort")
    Send ( $Text)
    Send ("{enter}")
    _FileWriteLog ( "Log.txt", $text&@CRLF)
    WinWait ("Falsches Passwort")
    Send ("{enter}")
    Next

    [/autoit]
  • Also ich habs zwar jetzt keinen bruteforce dauerhaft laufen gehabt, aber es ist auf jedenfall Bruteforce anfällig, da es kein Trylimit gibt :P

  • Sagmal wie hast du das Wortliste erstellt?

    DicGen?

    Sind ja sau groß diese Sachen :D


    Aber für mich ist autoit einfach zu lahm im gegensatz zu eiinem von profis geschriebenen C++ proggi :)


    Ich werde vll auch probieren es zu brutforcen, aber wirkliich Bringen tuts ja nix :)