NFC-Tags steuern FHEM

Begonnen von Martin Haas, 16 Januar 2013, 20:07:58

Vorheriges Thema - Nächstes Thema

ext23

Klingt interessant ja, schau ich mir mal an wenn Zeit ist. Muss nur mal checken ob einer meiner USB RFID Reader die ich noch im Schrank habe damit laufen...
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Martin Haas

Zitat von: henryk schrieb am So, 03 Februar 2013 05:02Okay, ich hab da mal was gebaut: https://github.com/henryk/libopenkey
Die Seite ist gerade nicht mehr da (Fehler 404). Mal hoffen, dass es da keine schweren Probleme gibt.

Meine DESFire EV1-Karten kommen wohl erst morgen, aber bis hier ist alles erstaunlich glatt verlaufen. Für Beginner sicher eine Herausforderung ;-), aber sonst alles kein Hexenwerk.
Bisher sieht alles toll aus :-)
root@raspberrypi:~# openkey-producer openkey_secrets my_card
Note: Bootstrapping card producer role and generating secret keys
This may take some time ...
No card to initialize found

Also warten wir mal gespannt auf die Kartenlieferung morgen :-)

henryk

Moin,

Zitat von: Martin Haas schrieb am Mo, 04 Februar 2013 19:00Die Seite ist gerade nicht mehr da (Fehler 404). Mal hoffen, dass es da keine schweren Probleme gibt.

Ja, sorry, ich hab das grade mal (hoffentlich vorübergehend) weggenommen, da mein Chef mich darauf hinwies dass es nicht nur darum geht, die NXP-NDA de facto nicht zu verletzen, sondern auch dafür zu sorgen, dass NXP gegenüber nichtmal der Anschein entsteht, ich/wir könnten sie verletzt haben. Also doch erstmal Rücksprache mit NXP halten, da hab ich wohl etwas schnell geschossen.

--
Henryk Plötz
Grüße aus Berlin

Neuer_User

Hallo

Ich bin noch neu im NFC Thema. Hatte mir kürzlich verschiedene Tags zum Ausprobieren gekauft, u.a. auch eine Desfire EV1. Bin dann über diesen Thread gestolpert. Ist ja genial, was hier geschieht!!!! (Und tierischer Respekt vor Henry!!!)

Habe das jetzt mal alles auf meinem Ubuntu-PC ausprobiert. Läuft soweit ganz gut :-)

Hatte allerdings beim openkey-authenticator ein paar seltsame Effekte. So hatte ich es zweimal, dass sich irgendwas im Prozess aufgehängt hat. Oder eher noch im Reader. Zumindest war er nach dem Abbruch des openkey-authenticators nicht mehr erreichbar und musste abgezogen und wieder angeschlossen werden. Einmal hatte ich beim Abbruch des openkey-authenticators sogar eine Kernel Panic.

Eine Noobie-Frage habe ich noch: Die Karte ist nach der Initialisierung durch den openkey-producer ja mit den Schlüsseln gesperrt. Wie könnte ich die Karte noch einmal komplett löschen? Oder geht das gar nicht mehr?

Michael

Neuer_User

Hmm, nach dem Durchlesen der echt guten Doku von Henryk scheint es mir, als ob man die Karten auch wieder komplett löschen können müsste. Man muss "nur" den richtigen PICC-Key berechnen.

Ich kriege es aber nicht richtig hin. Habe jetzt einige Stunden probiert, "mifare-desfire-format" so zu ändern, dass es den Key richtig berechnet. Kriege aber keine Authentification hin. Kann mir jemand auf die Sprünge helfen, wo mein Fehler liegt? (Datei ist attached).

Übrigens scheint es mir so, dass Henryks code keine Karten mit Random UID akzeptiert. Weiss jemand, warum das so ist? Sollte doch eigentlich kein Hindernisgrund sein, oder? Das würde ja bedeuten, dass man eine Karte, nachdem man sie einmal mit openkey benutzt hat und dann wieder neuformattiert hat, nicht mehr benutzen kann.

Übrigens habe ich immer noch ein paar Probleme mit dem openkey-authenticator. Die LED auf dem Lesegerät flackert die ganze Zeit und eine Kartenidentifikation kann zwischen 1 und 10 Sekunden dauern oder auch gar nicht klappen. Zwischendurch schmiert das ACR122u dann noch ab und ist erst nach ausstecken/einstecken wieder erreichbar. Also noch nicht so ganz einsatzfähig. :-(

Martin Haas

Softwaretechnisch kann ich leider nicht helfen.

Auch bei meinem SCM SCL3711 habe ich ähnliche Erfahrungen gemacht. Also Ein-/Ausstecken war notwendig usw. Es funktioniert also noch nicht.

Hierzu hatte ich mit Henryk Mailkontakt. Er berichtete, dass er mit seinem "touchatag über pcscd an libnfc" offenbar nur wenige Kinderkrankheiten hat und es prinzipiell läuft.
Ja, bei mir liegen jetzt auch drei eingerichtete Desfire EV1 - Karten herum, die ich bislang auch nicht löschen konnte.

Bei mir läuft die im Wiki beschriebene Variante mit dem Auslesen der NFCID (was mit den neu formatierten Karten nicht mehr geht, da sie nun Random-Antworten liefern).

Wäre toll, wenn das libopenkey irgendwann auch mit meinem SCM SCL3711 und auch deinem ACR122u stabil laufen würde.

Hat jemand die libopenkey-Lösung im Einsatz und wenn ja mit welchem NFC-Device?

Übrigens ist die Akzeptanz von NFC bei der Family nicht überragend, nun kommt zusätzlich ein Zahlenschloss vor die Tür :-)
Link

Neuer_User

Zitat von: Martin Haas schrieb am Do, 07 März 2013 16:45Softwaretechnisch kann ich leider nicht helfen.
Hmm, ich vermute mal, dass da Henryk am besten geeignet sein sollte. Vermutlich ist das eine Sache von zwei Minuten für ihn.

Kannst Du den Post vielleicht zu ihm weiterleiten? Oder mir seine Email per PM senden?

ZitatAuch bei meinem SCM SCL3711 habe ich ähnliche Erfahrungen gemacht. Also Ein-/Ausstecken war notwendig usw. Es funktioniert also noch nicht.
Hierzu hatte ich mit Henryk Mailkontakt. Er berichtete, dass er mit seinem "touchatag über pcscd an libnfc" offenbar nur wenige Kinderkrankheiten hat und es prinzipiell läuft.
Könnte vielleicht eine Kernel oder libusb Sache sein. Ich hatte ja sogar einmal eine Kernel Panic. Vielleicht sollten wir ihn mal fragen, was für eine exakte Konfiguration sein System hat (also Kernel, Libusb, etc).

Nutzt er denn den ACR122_pcsc Treiber oder den ACR122_usb?

ZitatJa, bei mir liegen jetzt auch drei eingerichtete Desfire EV1 - Karten herum, die ich bislang auch nicht löschen konnte.
Also meiner (unerfahrenen) Meinung nach müsste das auf jeden Fall gehen. Man braucht nur den richtigen Key, der aber aus dem Master-Key und der Random UID berechnet wird.

ZitatBei mir läuft die im Wiki beschriebene Variante mit dem Auslesen der NFCID (was mit den neu formatierten Karten nicht mehr geht, da sie nun Random-Antworten liefern).

Ich weiss nicht, ob man die Karten nach Formattierung wieder auf feste UIDs zurückstellen kann. Glaube, mal gelesen zu haben, dass das nicht ginge. Aber nutzen könnte man die Karten dann auf jeden Fall noch, am besten  Prinzipiell auch wieder mit openkey.

ZitatWäre toll, wenn das libopenkey irgendwann auch mit meinem SCM SCL3711 und auch deinem ACR122u stabil laufen würde.
+1 :-)

ZitatÜbrigens ist die Akzeptanz von NFC bei der Family nicht überragend, nun kommt zusätzlich ein Zahlenschloss vor die Tür :-)
Link
Schade, warum denn nicht?

P.S.: Trage übrigens seit fast 10 Jahren eine Junghans-Uhr mit integriertem Mifare-Chip. Habe jetzt mal die Schlüssel geknackt und kann den Chip endlich mal verwenden...

Martin Haas

Zitat von: Neuer_User schrieb am Do, 07 März 2013 18:22Hmm, ich vermute mal, dass da Henryk am besten geeignet sein sollte. Vermutlich ist das eine Sache von zwei Minuten für ihn.

Kannst Du den Post vielleicht zu ihm weiterleiten? Oder mir seine Email per PM senden?
Henryk bekommt genauso wie du immer eine Benachrichtigung, wenn hier neue Posts eingehen. Insofern hoffe ich ja noch, dass er sich meldet.
User haben hier das Recht ihre Mailadresse zu verbergen, wenn sie wollen -- das respektiere ich.
Als angemeldeter Nutzer sollte es dir offenstehen, nach Klick auf seinen Namen hier ihm ein PM-Nachricht zukommen zu lassen (das habe ich auch so gemacht).
Am Rande: einfach mal googlen, ich war total überrascht wie oft (mit Mailadresse) ich ihn im Internet gefunden habe.

ZitatNutzt er denn den ACR122_pcsc Treiber oder den ACR122_usb?
Weiss ich nicht. Mein letzter Mailkontakt mit ihm war am 12. Februar, evtl. gibt es ja Fortschritte.

ZitatAlso meiner (unerfahrenen) Meinung nach müsste das auf jeden Fall gehen. Man braucht nur den richtigen Key, der aber aus dem Master-Key und der Random UID berechnet wird.
Wegen mir schmeisse ich meine drei Karten auch weg und kaufe neue -- das ist mir diese Fortbildung wert!


ZitatÜbrigens ist die Akzeptanz von NFC bei der Family nicht überragend, nun kommt zusätzlich ein Zahlenschloss vor die Tür :-)
Link
ZitatSchade, warum denn nicht?

Verwöhnte Family ;-) Bei mir ist noch 90% FS20. Damals gab es die FS20-Keymatic mit Funk-Zahlenschloss (KeyMatic CAC). So sind die Kids ohne Schlüssel etc. aufgewachsen. Jetzt bin ich auf die HM-Keymatic gewechselt, die von FHEM aus gesteuert werden kann, aber eben kein HM-Zahlenschloss mehr hat.

ZitatP.S.: Trage übrigens seit fast 10 Jahren eine Junghans-Uhr mit integriertem Mifare-Chip. Habe jetzt mal die Schlüssel geknackt und kann den Chip endlich mal verwenden...

Ich glaube, du kannst hier noch einiges beitragen :-)

opa007

Hallo Welt!

Für meinen hochbetagten Vater, der jetzt alleine wohnt, baue ich gerade an einer Senioren-Sicherheitsvariante von FHEM. Kopfzerbrechen bereitet mir dabei immernoch der "Anwesenheitsstatus". Ein Mobiltelefon nutzt mein Vater nicht. Da wäre ein passiver RFID/NFC-Chip ideal. Kann man der Fritzbox das (NFC-)Kartenlesen nicht beibringen? Ich möchte eigentlich auch nicht noch einen extra Rechner dafür anstellen.

Vielen Dank auch mal an die Vordenker!

Christfried

Grüße aus Berlin

Martin Haas

Zitat von: opa007 schrieb am Mi, 10 April 2013 10:35Für meinen hochbetagten Vater, der jetzt alleine wohnt, baue ich gerade an einer Senioren-Sicherheitsvariante von FHEM. Kopfzerbrechen bereitet mir dabei immernoch der "Anwesenheitsstatus".
Das hört sich für mich nach Homematic-Bewegungsmelder an, zur Not in jeden Raum einen.

ZitatDa wäre ein passiver RFID/NFC-Chip ideal. Kann man der Fritzbox das (NFC-)Kartenlesen nicht beibringen? Ich möchte eigentlich auch nicht noch einen extra Rechner dafür anstellen.
So einen RFID/NFC-Chip muss man explizit auflegen, da geht nichts aus der Entfernung. Das halte für diesen Fall für unzuverlässig (vergessen von Auflegen + Logik für Verlassen der Wohnung).
NFC auf Fritzbox: wenn ich sehe wie schwer es offenbar war, FHEM mehr oder weniger gut auf die Fritzbox zu portieren, dann halte ich das Unterfangen das alles NFC-relevante auf der FB zu bauen, für aussichtslos und für vertane Zeit.
Eine Raspberry Pi ist ein 3W-Rechner, sehr einfach zu installieren und kann per z.B. WLAN vollkommen unabhängig vom Standort der FB in der Wohnung montiert werden.

Nee, das hört sich für mich nach Homematic-Bewegungsmeldern in der Wohnung an. Man könnte auch per Mail alarmieren, wenn in einer gewissen Zeit keine Bewegung mehr festgestellt wurde.

==> Bitte für solche Diskussionen einen anderen Thread aufmachen und nicht hier unter "NFC-Tags steuern FHEM"

Danke und Grüße,
Martin

opa007

Ja, an Bewegungsmelder bzw. IR-Sensoren habe ich auch schon gedacht. Aber die reagieren auch auf die Katze. Da wäre eine eindeutige Anwesenheitsindentifizierung schon besser.
Im professionellen Bereich werden  RFID/NFC-Chips in Armbändern bei dementen alten Menschen mit "weg-lauf-Tendenzen" schon eingesetzt. Die Lösen einen Alarm aus wenn der Betreffende durch die Tür geht. Hat keiner eine Idee, wie die das machen?
Wenn Vater (bei Anwesenheit in der Wohnung) dann wieder nach einem Schlaganfall bewegungslos (Bewegungsmelder!) in der Wohnung liegt kann ich schneller reagieren


Wenn es eine andere, bessere Lösung für einen sicheren Anwesenheitsmelder gibt als RFID/NFC, ziehe ich mich auch demütig aus diesem Thread zurück... :-)


der Christfried aus Berlin

Neuer_User

Hallo Christfried

Wenn es Dir wirklich um solch lebensbedrohliche Ereignisse wie einen Schlaganfall geht, dann würde ich niemals auf Selbstbaulösungen setzen. Es gibt Fallmelder, die per GSM sofort Alarm auslösen, wenn ältere Personen fallen (werden auch bei Arbeitern in gefährdeten Bereichen eingesetzt). Die arbeiten sicher und funktionieren überall, nicht nur in der Wohnung.

Wenn Du nur ein wenig mit der Technik experimentieren willst, dann muss ich Martin zustimmen: NFC heisst Near Field Communication und ist normalerweise nur für Distanzen zwischen 1 und max. 8cm ausgelegt. Um die Anwesenheit einer Person sicherzustellen, brauchst Du entweder 800MHz RFIDs (nur beschränkt sinnvoll, da Du für jeden Raum eine grosse Antenne bräuchtest) oder du machst es eben ganz anders (was ich empfehlen würde).

Eine Möglichkeit wäre mit Bluetooth zu arbeiten. Mit Bluetooth 4.0 (geringer Stromverbrauch) und Empfängern in jedem Raum kannst Du recht genau feststellen, ob die Person in der Wohnung ist. Oder, wenn Du Bewegungsmelder hast und einen Türkontakt, kannst Du mit etwas Logik auch berechnen, ob die Person die Wohnung verlassen hat oder nicht.

Viele Grüsse

Michael

opa007

Hallo Martin,

das mit dem Fallmelder schaue ich mir mal genau an. Gute Idee!
Mit der Bastellösung hast Du natürlich recht.

Danke!

Christfried

henryk

Moin,

Zitat von: Neuer_User schrieb am Do, 07 März 2013 16:29Ich kriege es aber nicht richtig hin. Habe jetzt einige Stunden probiert, "mifare-desfire-format" so zu ändern, dass es den Key richtig berechnet. Kriege aber keine Authentification hin. Kann mir jemand auf die Sprünge helfen, wo mein Fehler liegt? (Datei ist attached).

Zwei Probleme: A) Der Rückgabewert von freefare_get_tag_uid() ist aus Gründen die sich der Welt wohl auf immer verschliessen werden ein ASCII-Strings mit der eigentlichen UID in Hex (also "0473..." statt "\x04\x73..." etc. Alle meine Operationen erwarten eine Octet-Folge mit Längenangabe. B) freefare_get_tag_uid() ist die zufällige UID, nicht die feste. Zur Ableitung des Masterschlüssels habe ich (mehr aus Gewohnheit als aus anderen Gründen) die Original-UID verwendet. Die findest du in der log-Datei des card producers.

Zitat von: Neuer_User schrieb am Do, 07 März 2013 16:29Übrigens scheint es mir so, dass Henryks code keine Karten mit Random UID akzeptiert. Weiss jemand, warum das so ist? Sollte doch eigentlich kein Hindernisgrund sein, oder? Das würde ja bedeuten, dass man eine Karte, nachdem man sie einmal mit openkey benutzt hat und dann wieder neuformattiert hat, nicht mehr benutzen kann.

Ja, das ist so. Siehe oben. Der Grund für die UID ist, dass ich einen eindeutigen String brauchte für die Schlüsselableitung und die UID bequem verfügbar war und die Anforderungen erfüllte. Im Prinzip[tm] kann man auch hier eine UUID nehmen, muss sie nur, wie jetzt auch schon die UID, irgendwo speichern, falls man den PICC-Masterschlüssel nochmal braucht. (Die UID hat den Vorteil, dass man sie von der Karte abfragen kann, wenn man mindestens einen Schlüssel kennt.) Mir erschien der use case aber bisher noch nicht besonders plausibel, um das wirklich einzubauen. Da ich mir ohnehin grade Gedanken über Interoperabilität über Anwendungsgrenzen hinweg mache (arbeite noch an einer Bezahllösung), könnte das evt. noch kommen.

Zitat von: Neuer_User schrieb am Do, 07 März 2013 16:29Übrigens habe ich immer noch ein paar Probleme mit dem openkey-authenticator. Die LED auf dem Lesegerät flackert die ganze Zeit und eine Kartenidentifikation kann zwischen 1 und 10 Sekunden dauern oder auch gar nicht klappen. Zwischendurch schmiert das ACR122u dann noch ab und ist erst nach ausstecken/einstecken wieder erreichbar. Also noch nicht so ganz einsatzfähig. :-(

Probier mal, ob das besser geworden ist. Ich hab das auch beobachtet und erst in anderem Kontext wirklich einordnen können: libfreefare trackt den Kartenzustand nicht (wie ich das bisher von PC/SC gewöhnt bin) und gibt auch keinen Zugriff auf Fehlermeldungen von der darunterliegenden libnfc. Wenn eine Karte entfernt wurde, und man aber noch Kommandos absetzt (in dem Fall hier das Selektieren von anderen Slot-AIDs), dann werden die wirklich auf dem Funkinterface gesendet und Kontrolle kehrt erst nach dem Timeout zurück. Ich hab dagegen jetzt einen bösen Hack in den Code integriert der das Verhalten bei mir wesentlich verbessert, so sehr dass ich keine Timing-Probleme mehr sehe.

--
Henryk Plötz
Grüße aus Berlin

henryk

Moin,

Zitat von: opa007 schrieb am Do, 11 April 2013 07:36Im professionellen Bereich werden  RFID/NFC-Chips in Armbändern bei dementen alten Menschen mit "weg-lauf-Tendenzen" schon eingesetzt. Die Lösen einen Alarm aus wenn der Betreffende durch die Tür geht. Hat keiner eine Idee, wie die das machen?

"RFID" ist ein breites Feld und umfasst alles was irgendwie "Funk" und "Identifikation" enthält, von Freund/Feind-Erkennung in Kampfflugzeugen bis Diebstahlsicherung im Supermarkt. Anwendungen auf 13.56MHz sind nur ein kleiner Teil davon, und ISO 14443 (bzw. neuerdings NFC oder ISO 18092) ist nur ein kleiner Teil *davon*. ISO 14443 ist spezifiziert auf bis zu 10cm (real in der Regel unter 7cm). ISO 15693, ebenfalls auf 13.56MHz, ist immerhin schon auf bis zu 1m spezifiziert, für eine Tür-Anwendung durchaus akzeptabel. Noch andere (teilweise nicht standardisierte) Systeme auf teilweise noch anderen Frequenzen können noch größere Reichweiten haben. Speziell Backscatter-Systeme im UHF- oder Mikrowellenbereich können auch in die hunderte Meter Reichweite gehen. Und das sind nur die passive Systeme. Wenn du etwas Aktives mit Batterie verwenden kannst (ein Freund von hier hat dafür http://www.openbeacon.org/ entwickelt, im Einsatz unter anderem in Museen), kannst du noch viel freier sein und mehr damit machen.

--
Henryk Plötz
Grüße aus Berlin