Arduino Hashfunktion?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wo hast du gesucht ? https://github.com/mr-glt/Arduino-SHA-1-Hash

Nebenbei ist die Idee Mist. Wenn jemand einen paar Schlüssel abhört, kann er die paar möglichen Hashalgorithmen ausprobieren bis er einen Folgeschlüssel hat und dann alles entschlüsseln. Das Ding sollte zumindest nicht nur den vorigen Hash nehmen, sondern den noch mit einem Geheimnis (das auch der Empfänger hat) zusammenhängen, bevor der erneut gehasht wird. Ne simple Prüfsumme mit zu übertragen wäre auch ne gute Idee, wenn das per Funk ist.

Auf Empfängerseite musst du dann ggfs. dann mehrere Schlüssel erzeugen, weil ja ggfs. ein paar Schlüssel mal abhanden kommen können, wenn man nicht in Reichweite ist, es eine Übertragungsstörung gibt, etc....

Woher ich das weiß:Hobby – Hardware bauen & programmieren
Schuuschkroete 
Fragesteller
 22.01.2020, 16:26

Erstmal danke. dass es bei meinem plan offensichtlich einen denkfehler gibt fällt mir gerade auch auf, hätte ich früher merken sollen 🤦‍♂️mein klassenkamerad hat mir das so überzeugend präsentiert dass ich da gar nicht drüber nachgedacht habe😁 PeterKremsner hat oben wenn ich das richtig verstanden habe was ähnliches vorgeschlagen. Den Link werde ich mir definitiv mal anschauen, vielen dank! An das Problem, dass ich außer Reichweite drücken könnte hab ich schon gedacht und werde wie du gesagt hast mehrere asuprobieren.

0
iQa1x  22.01.2020, 16:45
@Schuuschkroete

Das Ganze hat noch mehr Probleme... wenn du den Schlüssel nur mit dem "Senden"-Knopf einschaltest, braucht es EEPROM/Flash für den Zustand. Je nach Controller sind die Schreibzyklen da eher niedrig, musst das also ggfs. noch verteilen, etc.

0
Schuuschkroete 
Fragesteller
 22.01.2020, 17:51
@iQa1x

Wenn ich ihn solange er nicht sendet im energiesparmodus habe, sollte eine Batterie doch trotzdem ziemlich lange halten oder?

0
iQa1x  22.01.2020, 22:14
@Schuuschkroete

Musst du ins Datenblatt schauen, da sollte die Stromaufnahme im Energiesparmodus stehen, sowas weiss ich nicht auswendig...

0

Arduino Libs kenn ich auch nicht. Ich habe aber mal den Sha512 Code von openssl auf ein eigenes Projekt geportet.

Ist hald reines C und da muss man schon relativ gut Programmieren können aber möglich ist es.

Btw ein Hash ist keine Verschlüsselung und deine Methode ist auch nicht sicher. Wenn der Angreifer dein Verfahren kennt braucht er nur einmal deine Nachricht abhören und kann dann alle zukünftigen Schlüssel berechnen.

Sicher wäre zB ein Onetimepad mit einem integrierten Schlüssel. Dazu hast du am Arduino eine bekannte Passphrase zB "geheim" und einen Rundencounter n der ist zunächst 1 dann 2 usw.

An die Gegenstelle sendest du dann immer den Sha512 Hash von passphrase + n also beim ersten mal den Sha Hash von geheim1. Da ein Angreifer deine Passphrase nicht kennt kann er auch nicht auf den nächsten Hashwert schließen. Es empfielt sich allerdings die Passphrase länger zu machen und auch den Zusatz etwas anders zu erzeugen.

Schuuschkroete 
Fragesteller
 22.01.2020, 16:17

Erstmal danke. Nun kann ich 1. nicht gut programmieren (eigentlich gar nicht, ich hab auf dem Arduino bis jetzt quasi nur ein paar leds blinken lassen xD) hast du hier vllt einen weiterführenden link? 2. verdammt, dass es bei meinem plan offensichtlich einen denkfehler gibt fällt mir gerade auch auf, hätte ich früher merken sollen 🤦‍♂️mein klassenkamerad hat mir das so überzeugend präsentiert dass ich da gar nicht drüber nachgedacht habe😁 Deinen Vorschlag habe ich aber verstanden und du hast natürlich recht, das macht viel mehr sinn.

Allerdings glaube ich dass ich ohne einen vorgefertigten Teil für die Hashfunktion nicht viel weiterkommen werde, da meine Fähigkeiten hier wirklich noch sehr begrenzt sind:(

0
PeterKremsner  22.01.2020, 16:24
@Schuuschkroete

Naja link habe ich nur den Quelltext von openssl.

oQa1x hat aber anscheinend eine Arduino implementierung von Sha1 gefunden. Sha1 sollte jedoch nicht mehr verwendet werden weil auf den schon ein paar Angriffe bekannt sind. Sha2 darunter auch Sha512 gelten aber meines wissens nach immer noch als sicher.

0
Schuuschkroete 
Fragesteller
 22.01.2020, 16:29
@PeterKremsner

Naja, es muss auch nur den Streichen meiner Klassenkameraden standhalten :) Ich werde mir den Link von oQa1x mal ansehen, schaut auf jeden Fall schon vielversprechender aus als meine bisherigen versuche. vielen dank!

0
PeterKremsner  22.01.2020, 16:34
@Schuuschkroete

Das wirds jedenfalls, aber da kannst du gleich auch MD5 oder noch einfacher eine CRC32 übertragen ;)

1