[gelöst] PIN Code nicht als Klartext in der Config

Begonnen von Heimweh, 09 Juli 2019, 18:25:33

Vorheriges Thema - Nächstes Thema

Heimweh

Ich bin gerade dabei, einen Wieland RFID Leser einzubinden. Das ganze soll einen Türöffner betätigen. Keine Sorge, es handelt sich um eine "unwichtige" Tür, also Sicherheit ist zu vernachlässigen.

Ich wollte die PINs mit Notifys abfragen, damit die Tür bei einem Match öffnet, nur möchte ich trotzdem nicht, dass die PINs als Klartext in der fhem.cfg stehen.

Gibt es die Möglichkeit, diese zu crypten?

Gesendet von meinem LYA-L29 mit Tapatalk

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

herrmannj

die Infos sind zu wenige um abschließend zu antworten - aber:

vmtl ja
bild einen kryptografischen hash (SHA, ungleich perl hash!) aus dem pin und speichere den. Wenn jetzt die pin von der Tür kommt dann bildest Du daraus ebenfalls den hash und vergleichst diese. Am besten ein wenig in die 99myUtils ..

https://perldoc.perl.org/Digest/SHA.html

Beta-User

Vielleicht ergänzend noch: mit setKeyValue() und getKeyValue() kannst du die Paare auch außerhalb der fhem.cfg/configDB speichern (wo, wird in global (?) eingestellt).
Mindert zumindest das Risiko, dass die Werte unbeabsichtigt rausgegeben werden...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

Ergänzend zu Beta-Users Idee: https://wiki.fhem.de/wiki/DevelopmentModuleAPI#setKeyValue
ZitatDie Daten werden in einer Datei auf dem Dateisystem (oder configDB) gespeichert
hmmm  ::)
Doku sagt:
ZitatkeyFileName
FHEM modules store passwords and unique IDs in the file FHEM/FhemUtils/uniqueID. In order to start multiple FHEM instances from the same directory, you may set this attribute, whose value will appended to FHEM/FhemUtils/
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Heimweh

Ich danke euch vielmals ... Ich werde mich morgen Mal in die Themen einlesen und bescheid gegeben

Gesendet von meinem LYA-L29 mit Tapatalk

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Heimweh

Ich setzte den Tread jetzt mal auf gelöst - ich werde mich im Urlaub mal näher damit auseinandersetzen,
aber es ist sehr viel Neuland für mich.... Danke für Eure Ansätze...

Zitat von: herrmannj am 09 Juli 2019, 19:02:53
die Infos sind zu wenige um abschließend zu antworten - aber:

vmtl ja
bild einen kryptografischen hash (SHA, ungleich perl hash!) aus dem pin und speichere den. Wenn jetzt die pin von der Tür kommt dann bildest Du daraus ebenfalls den hash und vergleichst diese. Am besten ein wenig in die 99myUtils ..

https://perldoc.perl.org/Digest/SHA.html

@Hermannj - ein Wiegand RFID Leser sendet die Codes über einen ESP (ESPEASY) als Reading an FHEM. Die Türöffnung erfolgt dann quasi rückwärte auch über den ESP....
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

herrmannj

#6
sollte gehen.

Zur Erklärung; dieser hash ist eine Einweg-Funktion. Vorwärts (siehe Beispiel) geht sehr schnell, Rückwärt ist quasi unmöglich.

Beispiel (SHA-256)

Pin = 1234 -> SHA-256 = 03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4

Perl core modul: https://perldoc.perl.org/Digest/SHA.html
online zum testen: https://hashgenerator.de/

Wenn Du also jeweils den hash des/der gültigen Pin im Filesystem (gerne KV Store fhem) speicherst, ist es quasi unmöglich das  jemand daraus "rückwärts" die PIN errechnen kann.

Jetzt kommt das reading vom ESP. Dieses "ver-hashen" und das Ergebnis mit den gespeicherten Werten vergleichen. Wenn die Klartext Pin in einem reading des ESP bleibt, dann solltest Du das natürlich entfernen/überschreiben denn da wird ja oft eine gültige Pin stehen.

vg
joerg





edit (hier bitte nur weiterlesen wenn man das oben _gut_ versteht ;) ):

Im richtigen Leben sollte(muss) man den hash zusätzlichen "salzen" oder "pfeffern" -> https://de.wikipedia.org/wiki/Salt_(Kryptologie)