Spacegate

Aus Stratum 0
Wechseln zu: Navigation, Suche
Spacegate


Kontakt: DooMMasteR
Status: aktiv (Was heißt das?)
Interessenten: Daniel Bohrer, Hellfyre,Chrissi^, DieLenaMaria

Idee

Das Spacegate sollte nach Möglichkeit von jedem Mitglied und ggf. auch kurzfristig autorisierten Gast geöffnet werden. Das äußere Spacegate lässt sich bisher einfach per Handy öffnen, ist zwar nicht toll, aber klappt.

Für das innere Gate wäre eine raffiniertere Lösung erstrebenswert.

Zur Verwirklichung sind 2 Hürden zu überwinden.

  1. Authentifizierung der Person, die Zugang verlangt
  2. ermöglichen des Zuganges

Authorisierung

Wir sollten zum Autorisieren des Zuganges ein System haben, welches folgende Bedingungen erfüllt:

  • Günstig
  • Sicher
  • Flexibel
  • PrivacyProtecting
  • Available

Das Problem ist dabei größer als es zunächst erscheint.

Mechanische Schlüssel scheiden aus, da sie 1. recht teuer sind und 2. bei Verlust zu Problemen in der Autorisierungskette anderer Schlüssel führen.

IP-Basierende Systeme scheiden aus, da sie den Betrieb eines IP-Fähigen Endgerätes voraussetzen und auch recht hohen Implementierungsaufwand auf verschiedenen Plattformen mit sich brächte.

Was ist mit Raspberry Pi ?!

RFID ist im Grunde sehr viel versprechend aber birgt eine gewisse Privacyproblematik in sich, die ID des Tags und damit die Traceability des Users.

Dennoch erscheint RFID als der Beste Ansatz, denn:

  • recht günstig
  • lässt sich vielfältig einsetzen (man könnte ungenutzte Bereiche von Karten offen für andere Nutzungen lassen)
  • flexibel ggf. kann ein Nutzer seine eigene Karte mitbringen und Beschreiben lassen
  • weit verbreitet, gerade 13,xxMHz Tags
  • ließe sich auch in Smartphones implementieren
  • einzelne Karten können bei Verlust de-autorisiert werden

Bleibt die privacy Problematik durch die ID, dazu: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1508247 (z.B. aus dem Uninetz lesbar)

Falls der Link oben nicht funktioniert (IEEE Seite hat merkwürdige Cookie-Magie), hier der DOI 10.1109/DEXA.2005.28

Lösung bisher: KEINE -.- Das Problem wäre beim Einsatz eines aktiven Tags nicht vorhanden

  • Der FoeBuD hat hier eine Lösung (auch in anderen Ausführungen) für alle die Privacy-Bedenken mit RFID haben.

Alternativvorschlag 1:

  • Aktiver Key auf LED-Basis
    • Protokoll basierend auf http://www.merl.com/papers/docs/TR2003-35.pdf
    • Hardware: umbauen einer fertigen LED-Keychain im einstelligen EUR-Bereich mit einem 8pin-uC (1EUR) und nem Widerstand
    • Security: Einfachste Möglichkeit ist, eine ID, einen fixen Schlüssel der Tür und einen des Tokens direkt im uC zu speichern. Die Tür "authed" sich also beim Schlüssel, er spuckt seine ID und Schlüssel zurück. Wenn man das ganze dann noch "richtig" sicher machen will, versucht man entweder ne Hashfunktion mit auf den uC zu quetschen (http://www.das-labor.org/wiki/AVR-Crypto-Lib), oder baut einen SHA-256-chip mit ein (http://de.mouser.com/Search/Refine.aspx?Keyword=AT88SA100S).
    • Nachteile:
      • noch ungetestet
      • Frickelarbeit mit der Keychain
    • Vorteile
      • LED-Funktion bleibt erhalten
      • kein Problem mit der Traceability
      • Sicher (je nach Aufwand)
      • Ich finds cool ;)

Ich wollte sowas in der Art immer mal bauen, wenn ich mich selber mal hingesetzt habe und nen Prototyp läuft, berichte ich vielleicht nochmal. --Cbounce 17:09, 3. Apr. 2012 (CEST)

Diese Variante scheint mir hinsichtlich ESD-Beständigkeit, mechanische Festigkeit (Anzahl und Zärtlichkeit der Steckzyklen) und Wandalisussicherheit (Was ist das für eine Buchse? Mal eine Büroklammer reinstecken. Oder: Mal sehen, was passiert wenn man das Ding von aussen mit 24V versorgt... ) die bessere zu sein. Nachteil: Der Key müsste eine eigene Energieversorgung haben. --Chrissi^ 10:12, 13. Mai 2012 (CEST)


Alternativvorschlag 2:

Die Idee gefällt, als Schlüssel hätte man einen ATtiny mit 2,5mm 4pol klinke, der UART und SHA2 kann und außerdem ein Secret enthält.

So mal als Pseudocode die Idee:

Host:

int challenge = random();
sendToKey(getKeyID, null);
int keyID = getFromKey();
sendToKey(authChallenge, challenge);
if (sha2(keychain[keyID] + challange) == getFromKey()) {
  openGate();
}


AVR-authkey:

void serialEvent() {
  if (header != null) {
    switch (header) {
       case getKeyID :
         uart.send(keyID);
       case authChallenge :
         uart.send(sha2(localKey + data));
       default :
         resetData();
      }
  resetData();
  }
}

void resetData() {
  data = null;
  header = null;
}

--DooMMasteR 02:06, 11. Apr. 2012 (CEST)

Gestern mal flink sha256 auf dem Arduino zum laufen gebracht und über jede Menge linkercrap gerannt :P aber es klappt so hacked erstmal. Die SHA256 Implementierung kommt von http://www.das-labor.org/wiki/AVR-Crypto-Lib und rennt in 0,01s über 64byte (32byte key + 32byte challenge) :).
https://stratum0.org/mediawiki/index.php/Spacegate/1.Crap Ist nur schnell zusammengeklatscht und sieht halt auch so aus :P aber es geht…
Nächster Schritt ist OneWire und Kommunikation zwischen 2 AVRs (inkl. authing :P). --DooMMasteR 15:35, 12. Apr. 2012 (CEST)


Warum eigentlich 1Wire, wenn du eine 4-Pol Klinke nutzen möchtest? Bietet sich nicht eher UART (bidirektional) an?--Chrissi^ 10:12, 13. Mai 2012 (CEST)


Noch ein paar Gedanken von mir:

  • ESD-Schutz: Alle Leitungen außer GND mit Transil-Dioden ausstatten um den Host-ATMega ein langes Leben zu garantieren.
  • Spannungsversorgung für Key mit Serienwiderstand oder FET-Stromquelle gegen externen Kurzschluss schützen. Eventuell zusätzlich eine Serien-Diode um Speisung von außen zu verhindern.
  • IO-Pins sollten dauerkurzschlussfest gegen GND und Vcc sein. Man weiß nie, was da rein gesteckt wird ;-)

--Chrissi^ 10:12, 13. Mai 2012 (CEST)

Alternativvorschlag IV

Cam am Rasperry Pi nach draußen, Öffnung mit QR-Code. (Hat doch jeder ein Handy dabei, gell?) --Lulu

Nette Idee, aber nicht besonders sicher gegen Icon Wikipedia.gifReplay-Angriffe, oder? ;-) --Daniel Bohrer 02:40, 6. Jun. 2013 (CEST)

Alternativvorschlag 5

Ein OAuth-System aufsetzen, das über das Space-WLAN erreichbar ist, alternativ Ethernet-Buchse nach draußen. Dann Login per Twitter/Facebook/OpenID erlauben. --Daniel Bohrer

Oeffnung

Ich habe einen Tueroeffner, den man vermutlich oben in den Tuerrahmen einbauen kann. Bei Anlegen von 12V gibt das frei. habs allerdings nie ausprobiert. Ich brings mal mit demnaechst --Valodim 20:04, 30. Mär. 2012 (CEST)

Liegt jetzt übrigens hier im Lounge-Regal. --Daniel Bohrer 22:24, 2. Apr. 2012 (CEST)
ist aber ohne Austausch der Schließmechanik leider sehr unsicher, ein Servo am Schließzylinder auf der Innenseite ist wohl sinvoller. --DooMMasteR 02:08, 11. Apr. 2012 (CEST)
Der Öffner sagt, er braucht 6V bis 12V. Hab's eben mit dem 5,7V-Netzteil vom Tür-Handy probiert, geht. --DieLenaMaria 13:03, 27. Mai 2012 (CEST)

Projekttag

Da nun ja eigentlich nurnoch wenige Schritte zur Umsetzung fehlen, hatte Oni die Idee einen Projekttag zum Abschluss der Planungsphase/Entwicklungsphase zu machen.

Es würde dann die Platine für den Master erstellt werden/ggf erstmal nur Breadboard Aufbau, BOMs erstellen, für Keys und Master, Software finalisieren und implementierung auf ALEX oder RPi testen, Zeug bestellen.

Als mögliche Termine kommen der 3.-4.01.2013 in Frage, daher ein kleines Doodle [1] daher die Bitte an alle Interessenten, das Doodle zu füllen :).

Alte Diskussion

…wurde vorher auf Open/Close-Monitor geführt, hier der Vollständigkeit halber hinverschoben --Daniel Bohrer 12:17, 31. Mär. 2012 (CEST)

Falls der Space sich hinreichend entwickelt hat, kann über weitergehende Maßnahmen nachgedacht werden. Im µCCC z.B. wird die Türschließung durch ein Zugangssystem per SSH gesteuert.

Verbesserung der Klingel

…wenn wir grad schonmal am Klingelhacken sind. Im Chat kam der Vorschlag nach einer optischen Klingel (Blinken o.ä.). Alternativ, falls alle Spaceinsassen gerade schlafen:

[11:59:51] <rohieb> dann die sofas mit drahtgeflecht versehen und die klingel stromschläge draufgeben lassen? 
[12:00:04] <tommie-lie> schon besser
[12:00:04] <neobechstein> :D
[12:00:06] <neobechstein> rohieb: +1

Alternativ wäre zu überlegen, ob man ZombiePoet beibringt, Klingelevents im IRC zu verkünden. Bzw, wenn an der Tür später eh ein µC/ARM oder ähnliches mit Netzwerk hängt, könnte man dort direkt einen IRC-Bot implementieren ;-) (ZombiePoet läuft ja auf einem externen Server, das würde dann nur noch eine Schicht mehr hinzufügen)