LaborTageBadge2013

Aus LaborWiki
Wechseln zu: Navigation, Suche
           
LaborTageBadge2013

Release status: Beta [box doku]

Labortagebadge2013 top.png
Description Badge der Labortage 2013
Author(s)  Suschman, bg
Last Version  0.9 (19.10.2013)
Platform  AVR (ATtiny85)
License  GPL
Download  Software/Hardware: GIT

About[Bearbeiten]

Das "Ticket" der Labortage 2013 ist dieses mal ein HOTP Password Generator für Zwei-Faktor Authentifizierung nach RFC4226, der auch als kleines USB-AVR Devkit herhalten kann. Eventuell später weitere Firmware mit anderen Funktionen :).

Genießt das Logo der Labortage 2013 auf der einen Seite, und bestückt euch euren eigenen HOTP Generator auf der anderen.

Funktion[Bearbeiten]

Der AVR kommuniziert mit dem PC über USB mit Hilfe der vUSB library. Er ist mit dem Micronucleus USB Bootloader vorprogrammiert.

Nach dem laden der HOTP-Firmware und der Initialisierung mit einem Seed und einem Start Counter, generiert er bei jedem Tastendruck ein OTP Kennwort, was er als USB-Tastatur direkt eingibt.

Schaltung[Bearbeiten]

Labortagebadge2013 schematic.png Labortagebadge2013 silk.png Labortagebadge2013 top.png Labortagebadge2013 btm.png

Platine[Bearbeiten]

Die Platine ist zweilagig mit Lötstoplack, Bestückungsdruck und HAL-Zinn. Auf der einen Seite befindet sich die Schaltung, auf der anderen das Logo der Labortage. Die Platine wurde mit freundlicher Unterstützung von Basista Leiterplatten gefertigt.

Stückliste[Bearbeiten]

Name Part Reichelt
C1 SMD 0805 100nF X7R-G0805 100N
R1-R2 SMD 0805 2,2 kOhm SMD-0805 2,2K
R3 SMD 0805 68 Ohm SMD-0805 68R
AVR ATtiny85 SO8 ATTINY 85-20SU
D1,D2 MiniMelf 3,6V Zenerdioden Z3,6V SMD
USB USB A Buchse USB A
SW Kurzhubtaster SMD TASTER 9314

R4,R5,R6,LED1 und der 5-Polige Stecker sind Optional, wenn man mit dem Board noch anderes basteln möchte :).

Aufbau[Bearbeiten]

Der Aufbau erfordert durch die relativ dichte Bestückung in SMD und mit 0805 Bauteilen etwas Erfahrung im Löten von SMD. Wenn ihr es euch nicht zutraut, sucht euch einen Bastler der für etwas Mate Hand anlegt ;).
Bestückt wird zuerst C1, R1, R2, R3. Dann die beiden Dioden D1 und D2, dabei auf die Polarität achten.Der (blaue) Strick muss bei beiden zur Mitte der Platine zeigen. Dann den Prozessor auflöten, die Beschriftung muss lesbar sein wenn die USB-Buchse nach Links zeigt. Nun den SMD-Taster verlöten und zum schluss die USB-Buchse. Wahrscheinlich ist an der Platinenkante ein kleiner Vorsprung, der mit einem scharfen Messer oder einer kleinen Feile entfernt werden muss.

Die Stiftleiste, R4-6 und LED1 werden nicht bestückt. Diese können für Eigenen Projekte verwendet werden.

Arbeitet sorgfältig und macht immer mal wieder eine Sichtprüfung auf Kurzschlüsse und schlechte Lötstellen.

Software[Bearbeiten]

Der AVR ist im Bauteilesatz der Labortage ist mit dem dem USB-Bootloader vorprogrammiert, das Binary für den PC muss unter Linux noch mit libusb übersetzt werden. Für Windows gibt es fertige binarys...

Bauen für Linux[Bearbeiten]

Tools installieren[Bearbeiten]

Gebraucht wird git und Tools zum erstellen von Programmen (gcc, gnu-make, ...)

Unter Debian/Ubuntu lässt sich das bewerkstelligen mit

sudo aptitude install build-essential git libusb-dev

Bootloader[Bearbeiten]

Der Bootloader ist vorinstalliert auf dem ATtiny85. Gebraucht wird allerdings noch das Programm zum flashen der Software:

git clone https://github.com/Bluebie/micronucleus-t85.git
cd micronucleus-t85/commandline
make

Nun kann ein beliebiges hex-file mit

./micronucleus --run <path/to/hexfile>

auf den Controller geflashed werden.

HOTP-Software[Bearbeiten]

Die HOTP-Software kann mit:

git clone http://code.nerilex.org/bg/labortage2013badge.git

heruntergelden werden.

In dem Verzeichnis firmware/release finden sich fertig hex-files zum flashen.

In dem Verzeichnis hostware/commandline findet sich das Tool zum parametrisieren des Sticks. Diese Tool muss mit

make

Übersetzt werden.

Wichtig ist, dass vor der Verwendung mit

./badge-tool -s <secret in hex> 

das Secret hinterlegt wird (max. 32 Byte). Außerdem muss mit

./bade-tool -r

der interne Zähler zurückgesetzt werden, und mit

./bade-tool -d 8

die Anzahl der auszugebenden Ziffern auf 8 gesetzt werden (andere valide Werte sind 6, 7 und 9).

Leider sind diese Schritte nötig, da der Bootloader nicht das EEPROM beschreiben kann, und die entsprechenden Werte im EEPROM hinterlegt sein müssen.