[HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Anregungen & Feature Requests
firefriend
Posts: 7
Joined: January 28th, 2015, 6:54 pm

[HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by firefriend » January 30th, 2015, 8:20 pm

Hallo zusammen,

habe mir hier http://www.ibbergmann.org den USB Zufallszahlengenerator PRG310 bestellt. Ist heute angekommen und lässt sich prinziepiel auch über rng-tools nutzen.

Habe aktuell einen Syslink von /dev/ttyUSB0 auf /dev/hwrng gemacht und dann über minicom den Generator parametriert und gestartet. Danach noch rng-tools von hand gestartet und schon ist die Entropie von ~200Bits auf über 12.000 Bits nach oben gegangen. :)

Jetzt gibt es allerdings einige Themen wo ich etwas Hilfe benötige ?!?

1. Wie müssen die udev rules aussehen, damit der FDTI USB controller auf dem Stick an /dev/hwrng angebunden wird? Habe mal folgendes unter /lib/udev/rules.d/ 90-hwrng.rules eingetragen:

Code: Select all

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A101CBVH", SYMLINK+="hwrng"
ACTION=="add|remove", KERNEL=="hw_random", RUN+="/etc/rc.d/init.d/rngd udev-event"

Wie muss ich jetzt noch setserial dazu bauen?

2. Der Generator startet nicht von selbst und kann auch noch parametriert werden. Wie kann ich hier ein Skript einbinden welches z.B. erst einmal die Version von dem Generator abfrägt und dann diesen startet?

3. Der Generator hat eine Selbsttestfunktion und kann auch Fehlermeldungen ausgeben, falls er keine korrekten Zufallszahlen mehr erzeugen kann. Hierzu müsse aber der serielle Datenstrom überwacht werden. Hat hier einer eine Idee wie man das angehen könnte?

Grüße ipfirefriend
Last edited by firefriend on January 31st, 2015, 2:27 pm, edited 4 times in total.

firefriend
Posts: 7
Joined: January 28th, 2015, 6:54 pm

Einbindung HW Zufallszahlengenerator PRG310 - udev rools wirken nicht bei boot

Post by firefriend » January 30th, 2015, 9:11 pm

Hallo,

erster Erfolg !!! :)
Mit den obigen udev rules wird /dev/hwrng angelegt sobald der Stick gesteckt wird. Bei einem Boot mit gestecktem Stick passiert allerdings nicht. :(

Muss hier mit dem Kernel Parameter

Code: Select all

SUBSYSTEM=="tty", KERNEL=="hw_random", ATTRS{idVendor}=="0403",
ATTRS{idProduct}=="6001", ATTRS{serial}=="A101CBVH", SYMLINK+="hwrng"
bei den udev rules noch gespielt werden?

Grüße firefriend

User avatar
MichaelTremer
Core Developer
Core Developer
Posts: 5677
Joined: August 11th, 2005, 9:02 am

Re: Einbindung HW Zufallszahlengenerator PRG310

Post by MichaelTremer » January 31st, 2015, 12:16 pm

firefriend wrote:3. Der Generator hat eine Selbsttestfunktion und kann auch Fehlermeldungen ausgeben, falls er keine korrekten Zufallszahlen mehr erzeugen kann. Hierzu müsse aber der serielle Datenstrom überwacht werden. Hat hier einer eine Idee wie man das angehen könnte?


Das macht rngd. Wenn der Pool leer wird, dann beginnt rngd Daten aus /dev/hwrng einzulesen und legt diese in den Entropie-Pool. Das geschieht aber nur, wenn die Daten einfache Tests bestehen. Die sind aber niemals eine Garantie, dass der Zufall auch gut ist.

Der Rest sieht doch schon mal ganz gut aus...

-Michael
Support the project with our Donation Challenge!

Get Commercial Support for IPFire and more from Lightning Wire Labs!

Image

firefriend
Posts: 7
Joined: January 28th, 2015, 6:54 pm

HOWTO Einbindung HW Zufallszahlengenerator PRG310

Post by firefriend » January 31st, 2015, 12:58 pm

So der erste Schritt ist geschafft. Der Generator startet automatisch beim Booten oder beim Einstecken von dem Stick. Folgendes war hierzu nötig:

1. Ein kleines Startskript um das Senden der Zufallszahlen zu starten.
Hierzu wird die Datei /scripts/hwrng/startp310 mit folgendem Inhalt angelegt:

Code: Select all

#!/bin/bash
/usr/bin/logger P310 - HWRNG detected
/usr/bin/logger P310 - setup stty
/bin/stty raw -echo -ixoff -F /dev/hwrng speed 921600 > /dev/null
/usr/bin/logger P310 - execute start command
/bin/echo 4b > /dev/hwrng

Die 4 aktiviert die PTG.3 AES128 Verschlüsselung der Zufallszahlen.
Mit b wird die kontinuierliche Datenübertragung gestartet.

Danach natürlich noch chmod +x /scripts/hwrng/startp310 ausführen.

2. Dann unter /lib/udev/rules.d/ eine neue Regel 10-ftdi.rules mit folgendem Inhalt anlegen:

Code: Select all

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001",
ATTRS{serial}=="xxxxxxxx", SYMLINK+="hwrng", RUN+="/scripts/hwrng/startp310"

Die Seriennummer von dem FTDI Serial to Usb Controller muss bei ATTRS{serial}=="xxxxxxxx" natürlich auf den eigenen P310 angepasst werden.
Diese kann man mit udevadm info -a -p $(udevadm info -q path -n ttyUSB0) | egrep -i "ATTRS{serial}|ATTRS{idVendor}|ATTRS{idProduct}" -m 3 ermitteln.

3. Restart von udev mit /etc/init.d/udev start

4. Kurzter Test indem man den Stick ab- und wieder einsteckt. Die gelbe LED (Anzeige für eine aktive Datenübertragung) sollte jetzt leuchten. Danach kann man rng-tools per /etc/init.d/rngd start manuell aufstarten. Jetzt sollte die Entropieanzeige der ipfire sofort steil nach oben gehen.

5. Reboot von dem System - Tada - HWRNG startet automatisch.

Testhalber habe ich ca. 1 MByte per cat /dev/hwrng > test.rng umgeleitet und die Entropie berechnet.

Code: Select all

Max. mögliche Entropie: 8
Entropie der Daten: 7.99999783
99.99997283% des Maximums erreicht

Der Zufall ist somit um einiges besser geworden!!!

So jetzt mal noch schauen ob ich es irgendwie hin bekommen, dass ich den Stick noch direkt monitore. Im Gegensatz zu den rng-tools könnte dann in diesem Fall sogar das vom Hersteller empfohlene Fallbackszenario (Intensiver Selbsttest) noch durchgeführt werden.

Grüße firefriend

firefriend
Posts: 7
Joined: January 28th, 2015, 6:54 pm

Wie Status von rngd abfragen???

Post by firefriend » February 14th, 2015, 6:51 pm

Hallo Forum,

ich bin mit meinem Totmann Skript für den PRG schon ein gutes Stück weiter gekommen, d.h. auslesen Fehlerzähler und Selbsttest funktionieren soweit (ich bin hier mit einem Bash Skript unterweg). Allerdings möchte ich mein Skript bezüglich Fehlermanagement noch etwas optimieren.

Falls der PRG einen Selbsttest ausführen soll/muss (da der Fehlerzähler angesprochen hat) wird der rngd Dienst angehalten (damit die Statusinformationen nicht in den Random Pool gelangen). Nach erfolgtem Neustart von dem PRG wird dann der rngd Dienst wieder gestartet. Das funktioniert entsprechend per /etc/init.d/rngd start|stop.

Im Ergebnis möchte ich allerdings am Ende natürlich noch wissen ob der rngd Dienst auch wirklich gestartet wurde. Soll ich hier den consolen output abfangen und auswerten oder kann ich den Status auch irgendwie anderst abfragen, z.B. status rngd?

Grüße firefriend

ummeegge
Community Developer
Community Developer
Posts: 4714
Joined: October 9th, 2010, 10:00 am

Re: [HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by ummeegge » February 15th, 2015, 2:22 am

Hallo firefriend,
sehr interessantes Thema, muss mich mal durch die Datenblätter und das Handbuch durcharbeiten. Danke mal von hier für deine Arbeit :) .

Grüsse,

UE
Image
Image
Image

firefriend
Posts: 7
Joined: January 28th, 2015, 6:54 pm

Maintenance Script

Post by firefriend » February 22nd, 2015, 7:10 pm

Wer möchte kann gerne das von mir erstellte Maintenance Script für den PRG310 verwenden. Ich nutze dieses sowohl in den udev Rules zum Setup beim Start wie auch zyklisch per Cron Job um den Fehlerzähler auszuwerten und ggf. den Selbsttest von dem PRG310 durchzuführen.

Ich habe das Script prg310.sh unter /scripts/hwrng abgelegt. Der Aufruf erfolgt dann mit /scripts/hwrng/prg310.sh hwrng

Das Script ist aktuell so ausgelgt, dass ich mehrer PRG310 damit ansprechen kann. Deshalb der Parameter mit welchem der gewünschte hwrng Device Node ausgewählt werden kann. Das Script geht davon aus, dass wie weiter oben beschrieben per udev Rule ein SymLink für ein Device /dev/hwrng erstellt wurde.

Grüße firefriend
Attachments
prg310.zip
(1.86 KiB) Downloaded 207 times

Mumpitz
Posts: 182
Joined: June 12th, 2014, 5:47 am

Re: [HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by Mumpitz » April 17th, 2016, 4:04 am

Hallo,

schon etwas älter das Thema, aber funktioniert das immer noch? Ist das mittlerweile integriert ? Läuft das problemlos?
Spiele mit dem Gedanken mir den stick zuzulegen.

Grüße

Mumpitz
Posts: 182
Joined: June 12th, 2014, 5:47 am

Re: [HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by Mumpitz » April 20th, 2016, 7:11 pm

Kurze Meldung:

Script läuft, Symlink angelegt mittels nano /etc/udev/rules.d/20_usbprg.rules

Code: Select all

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="xxxxxxxx", SYMLINK+="hwrng", RUN+="/#pfad/prg310.sh hwrng"
und fcrontab -e

Code: Select all

# HWRNG USB310
*/10 * * * * /#pfad/prg310.sh hwrng
alle 10 Minuten testen/ausführen/prüfen.

Entropy bei laufenden OpenVPN von 900 auf 3K gestiegen, Versuch war ein voller Erfolg!

Danke und Grüße!

frickelpit
Posts: 290
Joined: April 18th, 2011, 7:34 am

Re: [HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by frickelpit » April 23rd, 2016, 12:44 pm

Danke an Euch,

Für meine "apu1c" habe ich mir den "PRG310-51" für den internen Einbau geholt. Der passt prima auf den USB Pfostenstecker des Mainboards und hat nach allen Seiten und zum Gehäuse genügend Abstand. So bleibt der externe USB frei für diversen anderen Kram. Funktioniert prima! Die Entropie stieg von im Schnitt knapp 600 auf über 3000 8)

Gruß
Pit

Massaguana

Re: [HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by Massaguana » April 29th, 2016, 6:59 pm

Wer weiß zufällig ob die "rote Keksdose" vom Michael Eco Appliance ein internen USB Port für so etwas hat?

Bin aktuell nicht daheim um die Kiste zu zerlegen...

Grüße
Massaguana

PS: In der aktuellen CT´ ist ein Artikel über den Raspeberry Pi der wohl ein Hardware Generator mitbringt, ob man den dafür auch nutzen kann?

udo1toni
Posts: 19
Joined: August 26th, 2012, 8:02 pm
Location: Darmstadt
Contact:

Re: [HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by udo1toni » June 13th, 2016, 3:37 pm

Mal 'ne ganz blöde Frage: Wo gibt es denn die Module?
Machen die bei ibbergmann nur Direktvertrieb über Mailbestellung, oder bin ich zu blöde, den Shop zu finden?

Mumpitz
Posts: 182
Joined: June 12th, 2014, 5:47 am

Re: [HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by Mumpitz » June 17th, 2016, 1:09 pm

Genauso siehts aus, einfach anschreiben.

udo1toni
Posts: 19
Joined: August 26th, 2012, 8:02 pm
Location: Darmstadt
Contact:

Re: [HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by udo1toni » June 20th, 2016, 5:31 pm

Danke für die Info :)

Lux73
Posts: 24
Joined: January 31st, 2017, 5:40 pm

Re: [HOWTO] Einbindung HW Zufallszahlengenerator PRG310

Post by Lux73 » July 27th, 2017, 7:44 pm

@ firefriend

geile Sache!

Danke für das howto! Funktioniert mit einem PRG310-51 :)

Grüße aus Bielefeld
IPFire 2.21 (x86_64) - Core Update 126 | RGBO
APU2c4|mSATA i530 120GB|Compex WLE600-VX@ac|PRG310-51

Post Reply