add project info and administration topic

This commit is contained in:
Dodo 2010-03-05 05:45:40 +00:00
parent 9b66d86e38
commit f2c01cf4b0
1 changed files with 40 additions and 23 deletions

View File

@ -35,41 +35,58 @@ Die zweite Hürde war herauszufinden welcher Hardware Pin zu welchen Software Pi
==Software==
Es wird gerade an einem einmal-Token basiertem skriptbarem Webinterface in Lua gearbeitet.
===Design===
* Der Token besteht jeweils aus einer Base64 kodierten Zufallszahl
* Beim öffnen der Tür mit diesem Token wird er ungültig und ein neuer gültiger Token wird ausgegeben (Plaintext über HTTP)
* Es wird bei jeder syntaktisch korrekten Anfrage ein Token zurückgegeben (Nur physische Anwesenheit an der Tür ermöglicht validen Token zu erkennen)
* Token haben eine begrenzte Lebensdauer (TTL, ~2 Monate als Diskussionsgrundlage) nach der sie gelöscht werden
* Abgelaufene Token werden noch eine Weile aufgehoben (Admins können verfifizieren das Token abgelaufen ist wenn neuer beantragt wird, unterscheidbar zu verloren und weitergegeben)
* Der Token ist auf seinen Parent zurückführbar um Token auf Basis eines früher Tokens zurücknehmen zu können (ersten Zeichen des Tokens sind eine ID)
* Die Token sollen nicht eindeutig Personen zugeordnet werden
* Anzahl der an Personen neu vergebenen Token wird gespeichert (nur Nick und Anzahl)
* Startzeit der TTL wird obsfuscated (~1 Woche Abweichung maximal) um genaue Verfolgbarkeit zu verhindern
* Anzahl der Requests in bestimmter Zeit pro Client-Adresse ist begrenzt (Bruteforce Schutz)
* Vorschlag: Eventuell Logging der Aufschliessvorgänge (ohne Zuordnung zu Token)?
Eine einmal-Token basierte Lösung mit Webinterface in Lua.
{{Project Info|
Name=MoleFlap|
About=Türzuganssystemsoftware|
Home=https://moleflap.hq.c3d2.de/|
Lang=Lua|
Platforms=Unix|
Source=http://gitorious.hq.c3d2.de/moleflap|
Documentation=https://wiki.c3d2.de/Fonera_GPIO#Software|
Mailing_List=http://mail.skyhub.de|
Muc_Room=c3d2|
Muc_Service=muc.hq.c3d2.de|
Repository_type=GIT|
Repository=http://gitorious.hq.c3d2.de/moleflap/software|
}}
===Umsetzung===
* Hauptsächlich in Lua
* Datenhaltung in PostgreSQL
* Webinterface auf [http://moleflap.hq.c3d2.de moleflap]
* moleflap öffnet die Tür über ssh auf das Fonera
* Zufallszahl aus /dev/urandom
* 4 Zeichen Präfix
* Übergabe des Token als Query String
* Admin-Skripte liegen auf moleflap
* User-Skripte liegen gleichfalls auf moleflap und sind über das Web-Interface [http://moleflap.hq.c3d2.de/opendoor direkt] zu erreichen.
* Code liegt auf [http://gitorious.hq.c3d2.de/moleflap gitorious.hq.c3d2.de]
==Authentifizierung==
===Design===
* Der Token besteht jeweils aus einer Base64 kodierten Zufallszahl mit insgesamt 164 Zeichen. Die ersten 4 davon sind als Präfix definiert der bei den folgenden Token wieder dabei ist.
* Beim öffnen der Tür mit diesem Token wird er ungültig und ein neuer gültiger Token wird ausgegeben (Plaintext über HTTP)
* Es wird bei jeder syntaktisch korrekten Anfrage ein Token zurückgegeben (Nur physische Anwesenheit an der Tür ermöglicht validen Token zu erkennen)
* Token haben eine begrenzte Lebensdauer (TTL, ~2 Monate als Diskussionsgrundlage) nach der sie gelöscht werden
* Abgelaufene Token werden noch eine Weile aufgehoben (Admins können verfifizieren das Token abgelaufen ist wenn neuer beantragt wird, unterscheidbar zu verloren und weitergegeben)
* Der Präfix dient als hilfe für die Admins damit diese nur durch die Angabe dessen einen Token sperren können.
* Die Token sollen nicht eindeutig Personen zugeordnet werden
* Anzahl der an Personen neu vergebenen Token wird gespeichert (nur Nick und Anzahl)
* Startzeit der TTL wird obsfuscated (~1 Woche Abweichung maximal) um genaue Verfolgbarkeit zu verhindern
* Anzahl der Requests in bestimmter Zeit pro Client-Adresse ist begrenzt (Bruteforce Schutz)
* Vorschlag: Eventuell Logging der Aufschliessvorgänge (ohne Zuordnung zu Token)?
Zurzeit ist das Öffnen der Türe aber damit noch nicht möglich, weil noch ein Türknauf außen an der Tür fehlt und eine ordentlich Authentifizierung installiert werden muss. Denn man kann momentan die Tür nur öffnen wenn man mit seinem ssh-Key in dem Router angemeldet ist.<br/>
<br/>
''
'''Work in progress!'''
''
<br/>
<br/>
===Administration===
Besteht aus insgesamt 8 Skripten:
* createdb -- erstellt die Datenbank-Tabellen (sollte nichmehr nötig sein ;P)
* deletedb -- löscht alle Daten aus der Datenbank inklusive der Tabellen (wer das macht ist *very-evil*)
* addtoken -- erstellt einen neuen Token. Es können Angaben über Username und Präfix gemacht werden
* revoke -- löscht den Token mit dem angegeben Präfix um den Zugang zu sperren (nötig um evtl. verlorene Token ungültig zu machen)
* isvalid -- gibt an ob ein Token mit dem angebenen Präfix noch gültig ist
* isdead -- gibt an on ein Token mit dem angebenen Präfix bereits abgelaufen ist
* listusers -- gibt eine Liste aller User zurück die jemals einen Token erhalten haben und die Anzahl, wieoft sie schon einen neuen Token erhalten haben (fängt bei eins an :3)
* statistic -- gibt an wieviele User, gültige und abgelaufene Token das System kennt
Admins: [[Benutzer:Astro|Astro]], [[Benutzer:Dodo|Dodo]], [[Benutzer:Poelzi|Poelzi]], [[Benutzer:Thammi:Thammi]]
=Weblinks=
*http://mobileaccess.de/fonera/gpio/pinout.txt - Pinout