Restriktive Foren

Thema:
eröffnet von mischa am 16.10.18 16:46
letzter Beitrag von Poppler am 13.07.20 18:13

1. Selbstverschlussidee ersonnen im Baumarkt

geschrieben von mischa am 16.10.18 16:46

Hallo beisammen,

wie wir alle wissen, können Baumarktbesuche sehr inspirierend sein Unlängst habe ich dort ein Schloss von Masterlock gefunden, dass mich auf neue Ideen gebracht hat. Ich war auf der Suche, da mein alter, selbstgebauter Schlüsselsafe für keysafe.org seit einem Serverupdate nicht mehr funktioniert hat

Da Schloss:

Master Lock

besticht durch die Vielfalt an möglichen Kombinationen, die ungleich schwerer zu merken sind, als die der normalen Zahlenschlösser. Ich empfehle allerdings dringend, sich mit dem Schloss vor Verwendung auseinanderzusetzen und insbesonders das Öffnen und die Eingabe neuer Codes zu üben!! Da steckt man schneller fest, als man glaubt!!

Der Selbstverschluss erfolgt wie immer: alle zum KG gehörigen Schlüssel werden in einer Stahlkasette eingeschlossen, zu der nur ein einziger Schlüssel existiert (die anderen wurden entsorgt)!

Stahlkasette

Der einzige Schlüssel zur Stahlkasette wird mit dem neuen Schloss an eine Stahlöse, die in die Betonwand im Keller verschraubt ist, fixiert.

Schlüssel

Was noch fehlt, ist ein Programm, dass das ganze steuert

Also ab an den PC

Das Programm - ich habe es in Powershell geschrieben - soll:

- einen Code generieren und anzeigen
- die gewünschte Verschlussdauer abfragen
- drei Optionen anbieten:
-- Zeit so wie sie eingegeben wurde
-- Verschlusszeit +/- 25%
-- Verschlusszeit +/- 70%
-- die Darstellung soll via Fenster oder Bildern mit eingebetteten Texten ("close that lock", "your request for release is... ...denied", und "you're lucky, your release-code is...."
- es gibt keinerlei Hinweise auf die tatsächliche Verschlusszeit
- Endzeit und Schlosscode sind verschlüsselt abgespeichert
- es gibt keine Chance auf Code-Hacking durch reverse-code-engineering

Das Programm war innerhalb ein paar Tagen geschrieben, von Bugs befreit und getestet, alles perfekt.

Lediglich das Problem mit dem Code-Hacking gab es noch zu lösen

Die Lösung war ein Powershell to EXE Compiler, der den gewünschten Erfolg brachte und den 96-Bit-Key unleserlich im EXE-File verpackte. Im Anschluss war nur mehr ein neuer, 96-Bit-Code in die Sourcen einzufügen und zu speichern. Technischer KO des Keuschlings

Momentan bin ich seit einer Woche verschlossen, die +/- 70% Option war wohl doch etwas zu wagemutig bei 14 geplanten Tagen Verschlusszeit, aber es ist ja alles genau so wie ich es wollte

LG. Mischa
2. RE: Selbstverschlussidee ersonnen im Baumarkt

geschrieben von stephanson am 16.10.18 17:46

Das hört sich nach einer echt tollen Möglichkeit an für die keuschlinge, die sich selbst verschließen. Coole sache
3. RE: Selbstverschlussidee ersonnen im Baumarkt

geschrieben von private_lock am 18.10.18 00:25

@mischa

Ich hätte da noch mal ne Frage: Was bringt die Stahlkassette als Matroschka? Könntest Du nicht auch direkt den Schlüssel zum KG an das Masterlock hängen?

Oh und dann frage ich mich gerade, wie das Master-Lock den Schlüssel von der Stahlkassette unbenutzbar macht? Dazu müsste beides ja schon so angebracht sein, dass sich die ziemlich kleine Kassette nicht mehr auf den Schlüssel stecken und drehen lässt. Wie ist da die "Aufhängung" des Schlüssels?

Die Software-Seite ist natürlich nicht minder interessant. Dummerweise denke ich, dass eine Lösung die nur lokal auf dem eigenen Rechner bleibt nicht kryptographisch abzusichern ist, solange nicht ein Service von außerhalb einbezogen wird. Egal wie verwurstet der digitale Schlüssel in der exe versteckt wird ... er steckt nunmal immer noch drin und kann nicht nur von Deinem Programm selbst gelesen werden.

Der Haken an externen Services ist aber gerade, dass man sie nicht selbst unter Kontrolle hat. Dann werden die einfach von heute auf morgen eingestellt oder ändern ihre Schnittstelle. Hast Du mal dran gedacht, einen bestehenden Service wie emlalock oder carlilock einzubeziehen? Du könntest Deinen zufällig-erzeugten Code für das Master-Lock in ein Bild rendern und dort hochladen.

Alternativ gibt es bereits Apps, z.B. zum Abfotografieren von herkömmlichen Zahlencodes, die dann lokal auf dem Handy verschlüsselt abgelegt werden. Die Sicherheit ist natürlich grundsätzlich die Gleiche wie bei Deinem Programm. Am Ende muss der Verschlossene seinen Verschluss wollen.

Inzwischen gibt es auch "Schlösschen" mit einer Zeitschaltuhr bzw. fertige Boxen mit Zeitschaltuhr. Die sind natürlich prinzipiell auch knackbar, allerdings trifft das auch auf die meisten Schlösschen am KG selbst zu.

Die eigene Software sollte also jenseits der reinen Wartezeit schon mit Zusatzfeatures aufwarten, um dem Ideal einer künstlichen Schlüsselherrin näher zu kommen. Welche Ideen hast Du da?

LG
private_lock
4. RE: Selbstverschlussidee ersonnen im Baumarkt

geschrieben von mischa am 18.10.18 11:08

Hi private_lock,

Zitat
@mischa

Ich hätte da noch mal ne Frage: Was bringt die Stahlkassette als Matroschka? Könntest Du nicht auch direkt den Schlüssel zum KG an das Masterlock hängen?


das wäre theoretisch möglich, geht aber nicht, da ich in den kleinen Schlüssel kein 6mm Loch bohren kann. Da bleibt kaum noch Material vom Schlüssel über.

Zitat

Oh und dann frage ich mich gerade, wie das Master-Lock den Schlüssel von der Stahlkassette unbenutzbar macht? Dazu müsste beides ja schon so angebracht sein, dass sich die ziemlich kleine Kassette nicht mehr auf den Schlüssel stecken und drehen lässt. Wie ist da die \"Aufhängung\" des Schlüssels?


die Stahlkassette ist auch im Keller an die Betonwand geschraubt, in einem guten Meter Entfernung zum Masterlock.

Zitat

Die Software-Seite ist natürlich nicht minder interessant. Dummerweise denke ich, dass eine Lösung die nur lokal auf dem eigenen Rechner bleibt nicht kryptographisch abzusichern ist, solange nicht ein Service von außerhalb einbezogen wird. Egal wie verwurstet der digitale Schlüssel in der exe versteckt wird ... er steckt nunmal immer noch drin und kann nicht nur von Deinem Programm selbst gelesen werden.


das EXE-File wurde natürlich ohne die -debug Option generiert. Mit dem Hex-Editor alleine wirst du da nicht sehr erfolgreich sein...

Zitat

Der Haken an externen Services ist aber gerade, dass man sie nicht selbst unter Kontrolle hat. Dann werden die einfach von heute auf morgen eingestellt oder ändern ihre Schnittstelle. Hast Du mal dran gedacht, einen bestehenden Service wie emlalock oder carlilock einzubeziehen? Du könntest Deinen zufällig-erzeugten Code für das Master-Lock in ein Bild rendern und dort hochladen.


diese Seiten kenne ich alle schon lange und es gibt viele Gründe warum sie unpraktisch sind. Ich wollte aber eine lokale Lösung, die ich selbst unter „Kontrolle“ habe.

Zitat

Alternativ gibt es bereits Apps, z.B. zum Abfotografieren von herkömmlichen Zahlencodes, die dann lokal auf dem Handy verschlüsselt abgelegt werden. Die Sicherheit ist natürlich grundsätzlich die Gleiche wie bei Deinem Programm. Am Ende muss der Verschlossene seinen Verschluss wollen.


ohne den ernsthaften Willen des Verschlossenen geht ohnehin gar nichts. Für Manipulationen und fiese Tricks gibt es da unendlich viel Raum.

Zitat

Inzwischen gibt es auch \"Schlösschen\" mit einer Zeitschaltuhr bzw. fertige Boxen mit Zeitschaltuhr. Die sind natürlich prinzipiell auch knackbar, allerdings trifft das auch auf die meisten Schlösschen am KG selbst zu.


ja, so ein Klump habe ich auch in der Lade herumkugeln.

Zitat

Die eigene Software sollte also jenseits der reinen Wartezeit schon mit Zusatzfeatures aufwarten, um dem Ideal einer künstlichen Schlüsselherrin näher zu kommen. Welche Ideen hast Du da?


in die nächste Version habe ich bereits eingebaut, dass bei ungebührlich oftem Abfragen ob der Verschlusscode schon verfügbar ist, ein Zeitzuschlag von 12% der Restzeit hinzugefügt wird. Kann ich aber erst einsetzen, wenn der aktuelle Verschluss beendet ist, sonst zerstöre ich mir den Key der laufenden Session!


Zitat

LG
private_lock


Liebe Grüße,
Michael
5. RE: Selbstverschlussidee ersonnen im Baumarkt

geschrieben von private_lock am 19.10.18 00:58

Hi Michael,

Danke für die geduldige Erklärung Deines Projektes. Wie viele Stellen hat eigentlich der Code für das Masterlock? Es muss ja auch in der Mechanik umgesetzt sein. Hast Du schon mal versucht, es zu knacken? Spürst Du z.B. einen Widerstand, wenn am Bügel gezogen wird während Du die Kombination einstellst?

Zitat
in die nächste Version habe ich bereits eingebaut, dass bei ungebührlich oftem Abfragen ob der Verschlusscode schon verfügbar ist, ein Zeitzuschlag von 12% der Restzeit hinzugefügt wird. Kann ich aber erst einsetzen, wenn der aktuelle Verschluss beendet ist, sonst zerstöre ich mir den Key der laufenden Session!


Um die Zeit zu verlängern muss ja irgendwo die neue Ende-Zeit geschrieben werden. Wie schützt Du Dich da gegen Replay-Attacken, also dass die vorherige kürzere Version der Verschlusszeit aus einem Backup wiederhergestellt wird?

Bitte nicht falsch verstehen. Ich möchte Dir das nicht madig machen. Es ist nur verdammt schwer so ein selbst entwickeltes System Wasser-dicht zu bekommen. Vielleicht merkst Du an meinen Fragen, dass ich selbst auch schon in der Richtung experimentiert habe, mir aber leider für einige sich stellende Fragen keine schlüssigen Antworten eingefallen sind, so dass ich in einem halbgaren Zustand stecken geblieben bin.

LG
private_lock
6. RE: Selbstverschlussidee ersonnen im Baumarkt

geschrieben von mischa am 21.10.18 12:25

Servus private_lock,

Zitat


Danke für die geduldige Erklärung Deines Projektes. Wie viele Stellen hat eigentlich der Code für das Masterlock? Es muss ja auch in der Mechanik umgesetzt sein. Hast Du schon mal versucht, es zu knacken? Spürst Du z.B. einen Widerstand, wenn am Bügel gezogen wird während Du die Kombination einstellst?


nein, das Einstellrad dreht sich immer ganz gleichmäßig und ohne Widerstände oder "Haker". Der Code umfasst lediglich 3 Stellen, die sind aber komplex genug um sie erfolgreich zu verdrängen

Zitat

Um die Zeit zu verlängern muss ja irgendwo die neue Ende-Zeit geschrieben werden. Wie schützt Du Dich da gegen Replay-Attacken, also dass die vorherige kürzere Version der Verschlusszeit aus einem Backup wiederhergestellt wird?


Das Zurückladen der Ursprungskombination von einer Sicherung ist kaum verhinderbar. Ich habe mir allerdings etwas einfallen lassen, um es wesentlich zu erschweren:

Bei jedem Aufruf des Programmes wird bei einem aktiven Verschluss ein - ebenfalls verschlüsselter - Counter um eins erhöht und abgespeichert. In der Sicherungsdatei ist de Counter immmer Null und das Programm überprüft bei jedem Start, ob der Counter größer Null ist. Das lässt sich mit einer späteren, manuellen Sicherung aber auch aushebeln...

In jedem Fall werde ich aber auch nicht darüber informiert, ob oder wann eine Strafzeit zu meinem Verschluss hinzugefügt wurde, da ich dies nicht notifiziere. Da sich das Datum des verschlüsselten Files auch bei jedem Aufruf ändert, bietet das auch keinen Anhaltspunkt

Zitat

Bitte nicht falsch verstehen. Ich möchte Dir das nicht madig machen. Es ist nur verdammt schwer so ein selbst entwickeltes System Wasser-dicht zu bekommen. Vielleicht merkst Du an meinen Fragen, dass ich selbst auch schon in der Richtung experimentiert habe, mir aber leider für einige sich stellende Fragen keine schlüssigen Antworten eingefallen sind, so dass ich in einem halbgaren Zustand stecken geblieben bin.


keine Sorge, ich kann deine Neugier gut verstehen Allerdings ist es wie bei jedem Verschluss - egal ob mit oder ohne Keyholderin - wenn ich nicht selbst dazu bereit bin und dementsprechend agiere, wird es kein gutes Erlebnis werden.

Wenn ich mich selber linken möchte, kann ich den Schlüssel auch gleich daheim ans Schlüsselbrett hängen

LG
Michael
7. RE: Selbstverschlussidee ersonnen im Baumarkt

geschrieben von Poppler am 13.07.20 18:13

Hi Mischa,

zu deinem Problem das es lokal verschlüsselt ist und damit knackbar ist habe ich eine Lösung gefunden. Für mich war das auch das Problem, dass ich als Programmierer ja das Programm so umschreiben kann, dass es das Geheimnis lüftet. Ich habe es wie folgt gelöst:

Ich habe die App für Android geschrieben und ich habe angenommen, dass das Telefon nicht gerootet ist. Bei einem gerooteten oder jailbreaked Phone geht das nicht mehr.

Der Schlüssel um das Geheimnis zu verschlüsseln und entschlüsseln ergibt sich aus einer Checksumme über das Programm selber, d.h. das Programm errechnet sich aus sich selbst eine "quasi Zufallszahl". Diese entsteht immer wieder neu wenn man das Programm kompiliert.

D.h. man spielt die App auf und kann jetzt alles schön ver- und /entschlüsseln. Wenn man allerdings das Programm austauscht, dann entsteht ein neuer Schlüssel und die alten Geheimnisse sind verloren.


Impressum
© all rights reserved, 2024