Kartenlesegerät/LogIn Card auslesen?

  • VB.NET

Es gibt 84 Antworten in diesem Thema. Der letzte Beitrag () ist von Sio_x.

    Ich glaube wir schauen in die Falsche Richtung! Wir versuchen hier grad alles mit den Reiner-Sachen auszulesen... Kann man nciht direkt an die Daten ran, die der Leser ausspuckt? Direkt mit dem Lesegerät Kommunizieren? Anhand dessen würde man doch ALLES, was die karte ausgibt auslesen und:

    Man könnte aus noch andere Karten, die mit dieser Technik (kontaktlose sender, 13,irgendwas Mhz) arbeiten auslesen (Den neuen Perso z.B.)

    MfG
    wie cool, habe mich nun hier registriert, und befasse mich genau mit dem selben Problem :)

    hatte die .net-Anwendung auch soweit auseinandergenommen, aber die interessanten Details zum Zugriff auf die Karte liegen in ecpCore32.dll, welche leider nicht in .net geschrieben ist... :whistling:

    konkret ging es mir um die Frage, wie die Karte durch die Anwendung überhaupt authentifiziert wird; auf der Karte selbst (Mifare Desfire EV1) konnte ich keine Veränderung nach Benutzung durch die Login-Software erkennen - und auf einem anderen Windows wird die Karte als 'verwendbar' erkannt, ohne dass irgendwelche Accounts angezeigt werden.

    d.h. es scheinen definitiv keine Login-Daten darauf gespeichert zu sein;
    aber wie soll die Identifizierung dann funktionieren? kann doch nicht wirklich nur die 7-Bytes lange UID der Karte sein ;(


    soweit das was ich aus der Karte lesen konnte:
    sebastianschaper.net/index.php/archives/13
    naja, anscheinend wird zumindest auch der Key der Karte überprüft;
    das Verfahren hierzu findet sich in den Spezifikationen ab Seite 9:
    read.pudn.com/downloads165/ebook/753406/M075031_desfire.pdf
    (interessant gelöst übrigens, dass auf der Karte nur die Verschlüsselung nach 3DES implementiert zu sein braucht...)

    Es wird also mittels Zufallszahlen der Schlüssel gegenseitig überprüft, ohne dass man diesen (als man-in-the-middle) durch Mitloggen der Kommunikation zwischen Gerät und Karte berechnen könnte.
    Aber trotzdem: die Anwendung selbst muss hierfür ja erstmal den Schlüssel kennen! (um damit zunächst RndB zu entschlüsseln usw.)

    Da bei Verwendung der winlogin-Software keine Online-Verbindung benutzt wird, muss also dieser Schlüssel irgendwo in der ecpCore32.dll drinstecken... (leider fehlen mir die Reverse-Engineering-Kenntnisse, um den da rauszupflücken :D )

    Wahrscheinlich wird auch, wie in dem PDF empfohlen, der Schlüssel nicht global eindeutig sein sondern anhand der UID für jede Karte individuell abgeleitet werden (d.h. man müsste nicht einfach nur einen Key, sondern eben diesen Algorithmus der ecpCore32.dll entnehmen ;( )

    Da sich zwei AIDs auf der Karte befinden, wird die andere (mit abweichendem Schlüssel) dann wohl für die Online-Authentisierung übe OWOK benutzt...
    D.h. der Key verbleibt ausschließlich auf dem OWOK-Server, welcher die von der Karte generierten Zufallsdaten damit entschlüsseln kann usw.

    Somit würde ich zumindest diese Online-Variante momentan als einigermaßen 'sicher' beurteilen, während die Sicherheit von "Winlogin", "Datensafe" und "Karten-Tresor" nur davon abhängt, ob sich jemand, der Ahnung davon hat, diese .dll mal etwas genauer anguckt :)

    @Manawyrm:
    du hattest ein paar Seiten vorher einen Screenshot gepostet; was waren das für Methodennamen, woher stammen die!? (die .dll-Aufrufe in der .net-Anwendung begannen doch immer mit ecpIrgendwas...)
    Laut einem Suppoerter aus dem Owok forum kommt die tage eine Fertige Dokumentation raus.. Ich bekomme sie anschließend per E-Mail...

    Andererseits scheinst du ja sehr viele infos zu haben bezüglich der Karten ;) Was ich gestern noch Probiert habe ist etwas anderes:

    Die RFID karte funktioniert ja Kontaklos, d.h. sie sendet ein Funksignal auf einer Frequenz aus...

    Somit hatte ich schonmal n anhaltspunkt als Elektriker in mir ;)

    Also hab ich mir mal was kleines gebastelt, und siehe da: an 13Mhz krieg ich was, bei 13,78 hatte ich ein ausreichendes signal um bits zu empfangen... Zumindest konnte ich kodierte bit's kriegen... Bringt uns glaube ich auch nciht weiter weil sich hier sicher keiner sowas bauen wird (außer er hat die teile liegen :D)


    Ich hoffe mal, dass demnächst die Dokumentation kommt, oder wir an die Daten so kommen :D Ich hatte ja oben 2 Schnipsel gepostet, welche wir ausgelesen hatten... Anhand derer müsste es funktionieren...

    MfG
    ÄH mal de Frage zum Reader(software)
    Bei dem Formular wo man den Reader auswählen muss, da ist bei mir immer standartmäßig so ein komischer drinnen und dann mus ich das immer umstellen(wenn ich den Hagen "immer anwenden" (oder so^^) rein mach dann nützt das nix!).
    Ist das bei euch auch so(oder kann man das irgend wo anderst umstallen)?
    Danke
    okay, das klingt ja schonmal interessant :)
    wenn es wirklich eine transparente Dokumentation usw. gibt, könnte es sich ja doch noch als Standard etablieren, warum nicht :thumbup:

    Die RFID karte funktioniert ja Kontaklos, d.h. sie sendet ein Funksignal auf einer Frequenz aus...

    Somit hatte ich schonmal n anhaltspunkt als Elektriker in mir ;)

    Also hab ich mir mal was kleines gebastelt, und siehe da: an 13Mhz krieg ich was, bei 13,78 hatte ich ein ausreichendes signal um bits zu empfangen... Zumindest konnte ich kodierte bit's kriegen... Bringt uns glaube ich auch nciht weiter weil sich hier sicher keiner sowas bauen wird (außer er hat die teile liegen :D)
    habe zwar auch nicht die Teile dafür rumliegen (und nicht sooviel Ahnung in dem Bereich), aber interessant klingt es trotzdem.. :D

    soweit ich mich erinnere, ist es aber eher nur das Lesegerät, das aktiv Hochfrequenz auf 13,56 MHz 'sendet';

    die Karte bräuchte relativ viel Energie dafür, die erst vom Lesegrät induziert und solange in irgendwelchen Kondensatoren gespeichert werden müsste, die würden auf dem winzigen Chip aber zuviel Platz einnehmen...

    stattdessen hat die Karte einen Transistor, mit dem sie (kurzzeitig) ihre Antennenspule mehr oder weniger kurzschließen kann, die wird dann halt etwas warm und das Lesegerät bemerkt, dass da jemand Energie aus seinem Feld abzapft... (irgendwie so müsste der Rückkanal von der Karte zum Leser realisiert sein, aber im Zweifel müsste man doch mal in die ISO14443-1 Spezifikationen gucken.. und das wird jetzt doch etwas off-topic hier)

    ich hatte mal in das Datasheet vom PN512 geguckt, dachte da auch erst schon in Richtung mitloggen... ;)
    oder zumindest soll man damit eine Karte emulieren können, das scheint doch grundsätzlich mal interessant... d.h. wenn man da nun einen USB-UART Controller anlöten würde (evtl. die Leiterbahnen zu dem andren IC im Leser durchtrennen), müsste man den chip mehr oder weniger low-level ansteuern können; der Umfang von dem PDF hat mich bisher aber abgeschreckt, auch nur *irgendwas* in diese Richtung näher zu versuchen... :D


    @QB2VB: da ist wahrscheinlich noch irgendein anderer PC/SC-Treiber auf deinem System installiert?
    guck mal im Geräte-Manager unter Smartcard-Leser, ansonsten die Registry nach dem Namen durchsuchen und ggf. Einträge löschen..
    Wohw :D Ich musste mir das glatt 2x durchlesen... Aber deine vermutung geht in die richtige richtung ;) In der Karte selbst ist eine mini spule, im Reader das gegenstück, welche die Spannung induziert... So ählich zumindest ;)

    Aber das ganze bringt uns doch vom thema ab :D Wir wollen hier keinen Reader/keine Karte nachbauen, sondern die bestehende auslesen :D Ich hoffe dass die Doku einigermaßen verständlich sein wird, auf jedenfall werd ich sie euch umgehend zur verfügung stellen.

    /off-topic
    Wohw :D Hätte nie gedacht dass das thema hier mal so beliebt und mit so vielen zugriffen/antworten wird :D
    /off-topic off

    MfG
    Hallo,

    ich hab von der Materie eigentlich keine Ahnung, lese hier aber gespannt mit. Find ich ja toll, dass ihr euch damit auseinandersetzt.
    Wenn man die Karte für den Computer-Login einrichtet, wird auf der Karte nichts geändert, las ich soeben. Es ist aber zudem möglich mit dem Tool "Karten-Tresor" der Computerbild bis zu 1000 Zeichen Text auf die mitgelieferte Karte zu speichern und mit einem Passwort zu versehen. Das wurde hier bislang noch nicht erwähnt.

    Vielleicht hilft das in irgendeiner Weise weiter.

    Frohes Schaffen,
    manni2

    DJ Re-DarK schrieb:

    Wir wollen hier keinen Reader/keine Karte nachbauen, sondern die bestehende auslesen :D
    Genau.. ^^
    Habs inzwischen tatsächlich mal ausprobiert mit dem 'Karten-Tresor', und damit wird tatsächlich auch etwas auf der Karte hinterlegt, und es ließ sich mit dem Tool von Manawyrm auch wunderbar auslesen :) (hätte man mal früher alle 3 Tools durchprobieren müssen, nicht nur das eine...)

    Es irritierte mich halt am Anfang, dass nach Nutzung von winlogin und mein-cockpit.de offenbar *nichts* an der Karte verändert wurde; die Windows-Passwörter bleiben lokal auf dem Rechner und die PIN für die OWOK-Onlinefunktion auf deren Servern - die Karte dient nur zur Authentifizierung.

    Aber hätte man nun diesen Schlüssel (oder Algorithmus zum Generieren des Schlüssels aus der UID) aus der .dll, bräuchte man - theoretisch - nur die UID einer anderen Karte auslesen (=trivial, das geht nun schon mit immer mehr Handys :P ), und könnte sich damit als der Nutzer unter Windows anmelden... (DESFire-Emulation vorausgesetzt... aber trotzdem zumindest in der Theorie problemlos möglich :whistling: )

    Nunja, bin auch mal gespannt auf die Dokumentation :) (hatte den Thread gestern auch nur zufällig über google gefunden und war angenehm überrascht, dass sich hier schon so dem Thema angenommen wird)
    Heyho.
    Interessiere mich auch für dieses Thema, bin seit heut stolzer Besitzer von 2 Lesegeräten & 2 loginCards :D

    Ich habe das Demo-Projekt schon getestet und es funktioniert super.

    Was mich noch interessieren würde:
    1. Kann man das Passwort an den OWOK Treiber übergeben, ohne dass der Benutzer es dort nochmal eingeben muss?
    2. Kann man das OWOK Fenster verbergen und die entsprechenden Status-texte im eigenen Programm anzeigen lassen?
    3. Wie kann ich prüfen, ob die Karte noch im Lesegerät liegt, ohne eine Schleife mit LoadFromCard zu machen?

    THX und großes Lob für eure bisherige Arbeit :love: