/* Öffentliche Umlaufbeschlüsse */ Vereinsserver auf Pro gesetzt
[stratum0-wiki.git] / StratumKey.mw
1 {{Projekt
2 |verantwortlich={{Benutzer|Comawill}}, [[Benutzer:Daniel Bohrer|Daniel Bohrer]]
3 |status=aktiv
4 |beschreibung=Elektronisches Zugangssystem
5 |bild=
6 |bildbeschreibung=
7 |interessenten={{Benutzer|DooMMasteR}}, {{Benutzer|Oni}}, {{Benutzer|Chrissi^}}, {{Benutzer|Terminar}}, {{Benutzer|Comawill}}
8 |source=https://gitli.stratum0.org/stratum0/stratumkey
9 |lizenz=|download=|version=}}
10
11 '''StratumKey''' ist das Schließsystem unseres Spaces. Geplant ist eine Umsetzung mit [[Stratum NFC Key|Hardware-Tokens]], zur Zeit ist nur die SSH-basierte Variante aktiv. Beides basiert auf einer KeyMatic, die elektronisch den Space auf- und zuschließen kann. (Dazu muss man manchmal die Batterien wechseln, es gibt dafür regelmäßige Batterie-Wechselparties.) Als Fallback gibt es [[Schlüssel|physische Schlüssel]] bei einigen Leuten.
12
13 == SSH-Hack ==
14 In Ermangelung an Schlüsseln haben wir die KeyMatic mit etwas Magie an {{Wikipedia|Secure Shell|SSH}} angebunden.
15 Damit existiert eine Möglichkeit, per SSH-Public-Key '''im Stratum 0 WLAN''' die Tür zu öffnen. Jedes Öffnen und Schließen wird protokolliert.
16
17 * '''Tür öffnen:''' <code>ssh auf@192.168.178.6</code>
18 * '''Tür schließen:''' <code>ssh zu@192.168.178.6</code>
19 * '''Testen ob der SSH-Key eingetragen ist:''' <code>ssh test@192.168.178.6</code>
20 ** das geht auch von überall sonst außerhalb: <code>ssh -p 2278 test@status.stratum0.net</code>
21
22 Um Zugang zu erhalten, musst du [[Mitglied werden]] und einen SSH-Public-Key an {{Benutzer|Comawill}}, {{Benutzer|Daniel Bohrer}}, {{Benutzer|chrissi^}} oder {{Benutzer|larsan}} senden. Mit der Zeit haben sich einige [[Tür-Regeln]] herausgebildet, die beachtet werden sollten. (Einen Public Key kann man sich zum Beispiel mit ssh-keygen oder PuTTYgen selbst erstellen. RSA mit 2048 Bit ist ausreichend). Der Versand sollte entweder PGP-signiert erfolgen, alternativ wäre auch der Vergleich des Schlüssel-Fingerprints über ein unabhängiges Medium denkbar, oder auch Übergabe per USB-Stick/QR-Code/… im Space. Aber wir wüssten auf jeden Fall gerne genau, ob der Schlüssel, den wir da in unser Schließsystem eintragen, der von euch ist, und kein anderer.
23
24 Die Fingerprints des SSH-Servers auf <code>powerberry</code> sind:
25 <pre><nowiki>
26 -----BEGIN PGP SIGNED MESSAGE-----
27 Hash: SHA512
28
29 1024 MD5:dd:99:81:e6:77:7b:31:1c:b7:24:1f:af:97:e1:41:28 (DSA)
30 2048 MD5:a6:8b:8d:4a:cc:ef:13:94:d9:1c:67:a7:db:45:48:35 (RSA)
31 256 MD5:8d:de:b0:00:72:2d:b5:8f:64:9e:8b:fb:a9:a1:7f:b3 (ECDSA)
32
33 1024 SHA1:h8vHq/WLDCRQbCzcythyOPB6Jnw (DSA)
34 2048 SHA1:F/m1wwecBSctRjPP9xcToQJhgBM (RSA)
35 256 SHA1:Dx18i8LctoeWR2oXUdSRlYPE6FA (ECDSA)
36
37 1024 SHA256:2ROva5E8UT6stQ7oqxS3uHYuO0l0gR5LgvZjrPvEBLg (DSA)
38 2048 SHA256:dBs8vh/DqDWCvu37nd6PwzGOlNmR/GSd/DlMGJw2q0A (RSA)
39 256 SHA256:Z9I6IWdocW/tjlJm23iiZ4m2dZVD512329g0B3nn/JA (ECDSA)
40 -----BEGIN PGP SIGNATURE-----
41 Version: GnuPG v2
42
43 iQIcBAEBCgAGBQJW3hw/AAoJELJBPGbdLD/qxmgP/R1LMReyyY6NZuzXmS6m6LVq
44 iwbhBdU2/GHdHa+F7n/qKNn1KhB2Op5Qp8fgAG5ltjUwPx3JjdHjLwJYUmpGbrfF
45 KFt4aj2blZnvjFJtT3z535jRP26nH8b9/DUjGUrFWRn7NS8eeZYctitaIfJ7b7cU
46 QHoKR3joYDWexPjohoSfoUd6j1+rOZ9moKsf46+lPJjCL9exN12eI7IVTMtJjAEL
47 IJ1MoUYjZ9jJYByMf7a76QpTV3+En0EAPA3fjgxt1HQjH/RZt9vsM9XaKTPk630w
48 Y4n53j/M8HS0EUWpkyyS5x3mjbVi4d+Dslx7N+MBDAF/8FLf/P3o7IKiv1SXOkmT
49 SKfwdy8b+FGYNlw6ZBEyKvzfaarFjRloT1HBjPbjb7gKteSi1dxwxyZo6HJwzN/R
50 eDQziq5d+1PofBiMjS9I9L3QDt+CChIYJIk83jG+WKgwIMIaTRtPSt0LWOeuI3XP
51 y8k5S658P6d4sBDAhlwktBqfdlxytiInGkSI9O/vNmSwMU9KItcYJ5Qp5u+2r8Ot
52 QqxMSBMKhcIDXqu1RGbVPSzPj4/U5W6y6cKuChGKypVkDFUUFkMUxDs2tW+VCcW6
53 0mm1wdw5pEFfPWNptKVsEXoN6yw/qtv3rCg75eWCjQSCa8kBJD00hus8vMTSHYwK
54 a6nh4yknzsqp8lbUndWv
55 =h0wG
56 -----END PGP SIGNATURE-----
57 </nowiki></pre>
58
59 === Apps für Smartphones ===
60 * Android: TermBot ([https://f-droid.org/en/packages/org.sufficientlysecure.termbot/ FDroid], [https://play.google.com/store/apps/details?id=org.sufficientlysecure.termbot Google Play])
61 ** SSH-Key erstellen: im 3-Punkte-Menu über "Manage Pubkeys", dann das Plus-Icon oben rechts, RSA 2048 einstellen, Rest nach Belieben, Generate-Button. Durch Lang-Tipp auf den neu erstellten Schlüssel erscheint ein Menü, über das der Public Key kopiert werden kann.
62 ** Profil erstellen: Zurück im Hauptmenü auf den Plus-Button unten rechts, Username und Host wie oben erwähnt einfüllen, und unter "Use pubkey authentication" den eben erstellten Key auswählen. Zusätzlich sinnvoll ist auch die Option "Close on disconnect" auszuschalten, sodass man mögliche Fehlermeldungen noch sehen kann. Zum Schluss das Profil mit Tipp auf den Plus-Button in der Menüleiste anlegen.
63 ** Für zusätzliche Bequemlichkeit können die beiden erstellten Termbot-Profile ("auf" und "zu") über das Widget-Auswahlmenü auf dem Homescreen platziert werden.
64 * iOS: WebSSH Pro ([https://apps.apple.com/us/app/webssh-pro/id497714887 App Store]) ''kostenpflichtig''
65 ** SSH in der Menubar auswählen
66 ** Plus Knopf drücken
67 ** "Add SSH Connection"
68 ** SSH Daten eintragen
69 ** Private Key
70 ** Schlüssel Symbool oben rechts drücken
71 ** Daten eintragen und Private Key dort importieren (Muss vorher an einem anderen Gerät erstellt werden)
72
73 === Schlüssel hinzufügen ===
74 Entitäten mit SSH-Zugriff auf dem System (siehe oben) können Schlüssel hinzufügen und entfernen.
75
76 Die Schlüssel liegen im OpenSSH-Pubkey-Format (z.B. <tt>ssh-rsa AAAAB3Nz...GR0GAzC4n gefolgt von beliebigem Kommentar</tt>, '''alles auf einer Zeile!''') in einem Git-Repo unter <tt>ssh://pi@powerberry.s0/home/pi/stratumkey-keys.git</tt>. Das Format der Dateinamen ist <tt>''nickname''.pub</tt>, wobei ''nickname'' gerne durch unterscheidbare Präfixe, z.B. <tt>''nickname''@handy</tt> ergänzt wird. Nach add + commit + push werden die neuen Schlüssel automatisch im System aktiviert und können benutzt werden.
77
78 === Aufschließen ===
79
80 Um mithilfe des Schlüssels Zugang zum Space zu erhalten, muss folgendes getan werden:
81
82 * Via IRC oder Matrix-[[Chat]] den Status des Space auf "offen" stellen.
83 ** Dazu im [[Chat]] den Befehl <code>@auf</code> senden.
84 * Jetzt öffnet sich die Außentür beim Betätigen der Klingel draußen.
85 * Mit Stratum 0 WLAN verbinden
86 * <code>ssh auf@192.168.178.6</code> ausführen, die Tür öffnet sich.
87
88 == Hardware ==
89
90 Die akuele hardware bestehend aus einem RaspberryPi und kabel befindend sich in der Überarbeitung bei [[Benutzer:Lichtfeind|Lichtfeind]].
91 Für updates siehe: https://pad.stratum0.org/p/tr-diary
92
93 == Hardware-Variante (obsolete) ==
94 {{Hinweis|Die Hardware-Variante befindet sich noch in der Planung und ist noch nicht in Betrieb.}}
95
96 Bei den Hardware-Tokens soll es sich um einen elektronischen Schlüssel handeln, mit dessen Hilfe sich ein Mitglied ohne zusätzliches Endgerät Zutritt zum Space verschaffen kann. Das System besteht aus zwei Mikroprozessoren, die (drahtgebunden) über ein One-Wire-Protokoll eine Authentifizierung per Challenge-Response-Verfahren vornehmen.
97
98 Der "Schlüssel" besteht aus einem ATTiny85, der in das Gehäuse eines 6,3mm Klinkensteckers eingegossen ist. Jedes Mitglied hat einen individuellen Schlüssel, so dass bei Verlust einzelne Schlüssel aus dem System entfernt werden können. Die Authentifizierung erfolgt durch Einstecken in eine entsprechende Buchse neben der Eingangstür.
99
100 ===System===
101
102 Das System besteht aus einer Master- und einer Slaveseite, wobei der Schlüssel den Slave darstellt. Der Slave besteht aus nicht mehr als einem 6,3mm Stereo-Klinkenstecker und einem ATTiny85, der in der fertigen Version fest im Gehäuse des Steckers vergossen sein soll. Die Masse des Steckers (Schaft) ist mit GND belegt, der linke Kanal (Spitze) mit VCC und der rechte Kanal (Ring/Mitte) mit dem One-Wire-Pin.
103
104 Auf der Masterseite ist ein ATMega8, der im Wesentlichen als Relais dient. Er leitet die über One-Wire ankommenden Daten via UART weiter an einen Rechner, der die Authentifizierung durchführt. Das wird aller Wahrscheinlichkeit nach der StatusBerry werden (oder der Rechner, auf dem der [[Open/Close-Monitor]] dann läuft).
105
106 ===Key===
107
108 ====BOM====
109
110 {| class="wikitable" style="text-align: center;"
111 |-
112 ! Anzahl !! Name !! Preis
113 |-
114 | 1 || 6,3mm Klinke mit recht großer Schraubkappe, damit der ATtiny reinpasst || 0,50-5 €
115 |-
116 | 1 || Atmel ATtiny85 (es geht ggf. auch 45) || 1,40 €
117 |-
118 | 1 || 5,5V QUAD TVS-Schutzdioden SMD VCUT05A4-05S-G-08 (dringend empfohlen) || 0,10 €
119 |-
120 | 1 || 1µF Keramik Konensator SMD (dringend empfohlen) || 0,01 €
121 |-
122 | 1 || LED (optional) || 0,10 €
123 |-
124 | x || etwas Draht || -
125 |}
126
127 ==== Fertigungsdaten HW01 ====
128 * https://gitli.stratum0.org/chrissi/stratumkey-hardware-key/tree/HW01
129
130 === Host ===
131 * BOM: https://docs.google.com/spreadsheet/ccc?key=0AoZ-nhkm1T8ndGNqVWlkdEpFbnplcGtCaXIxaTJwUmc
132 * HomeMatic: http://www.elv.de/homematic-keymatic-set-weiss.html
133 * Und warum man sie nicht direkt Steuern kann: http://www.elv.de/controller.aspx?cid=824&detail=10&detail2=3465
134 * Eine andere Funkfernbedienung für die HomeMatic: http://www.elv.de/homematic-hm-pbi-4-fm-funk-tasterschnittstelle-4fach-unterputzmontage.html (Kompatibel? --[[Benutzer:Chrissi^|Chrissi^]] 22:34, 13. Jan. 2013 (CET))
135
136 ==== Fertigungsdaten HW01 ====
137 * https://gitli.stratum0.org/chrissi/stratumkey-hardware-host/tree/HW01
138
139 === Software ===
140 [[Datei:Key.png|thumb|[[Benutzer:Oni|Oni]]s Anpassung]]
141 Die Software der AVRs ist in C geschrieben (große Überraschung) und kann von dem Github-Repository https://github.com/hellfyre/stratumkey heruntergeladen, geforkt, beobachtet oder erweitert werden.
142
143 Die Software, die die Authentifizierung übernimmt, ist in Python geschrieben und befindet sich in dem Github-Repository https://github.com/hellfyre/stratumkey-daemon.
144
145 Nach dem cbounce uns darauf hingewiesen hat, dass es evtl. schlecht ist alle Keys ungesichert zu speicher habe ich(--[[Benutzer:Oni|Oni]] 00:29, 29. Aug. 2012 (CEST)) mir mal einige Gedanken gemacht.
146 Der Schlüssel wird demnach zwei Keys bekommen, mit dem einen kann der Master dann den zweiten, für die Challenge genutzten, entschlüsseln.
147 Hab dazu mal ein Bild gemacht und was programmiert(git://github.com/oni303/stratumkey-daemon.git branch double_key)..
148
149 [[Kategorie:Projektseite ohne Illustrationen]]
This page took 0.049225 seconds and 5 git commands to generate.