PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zur Dokumentation: RSA & MD5 für die Images...



debian
18.01.2005, 19:12:22
Das Problem mit der RSA verschleierten MD5summe ist ja
mittlerweile gelöst. Also der Text hier nur noch zur Dokumentation.
Habe die Infos im Forum in einer Zusammenfassung noch nicht gesehen.

Also: Wie signiert man die Images mit Linux i386 ?

1. tarball rsaprogs.zip unten auspacken

dort sind die sourcen von rsaencode und rsadecode enthalten
make tippen und schon hat man die beiden Programme

Quelle: http://www.mirror.ac.uk/mirror/ftp.wiretapped.net/pub/security/host-security/gogmagog-4.tar.gz

2. Key files sind ja schon bekannt

siehe wswkeys.zip

3. Signieren der wsw's ab 0x400

Dafür wird md5sum verwendet.

Um 1.18small.wsw testweise zu signieren:

( dd skip=4 bs=256 count=0 && dd ) < ../firmware/1.18small.wsw | md5sum | rsaencode wsw.priv | od -A x -x -v

Als Ausgabe bekommt man den Hexdump der verschleierten MD5 Summe (hinter der Ausgabe von dd):

0+0 records in
0+0 records out
0 bytes transferred in 0.000122 seconds (0 bytes/sec)
25600+1 records in
25600+1 records out
13107592 bytes transferred in 0.400998 seconds (32687420 bytes/sec)
000000 ab96 20b8 01bd d9c6 3b2e 6e40 12b3 d5d3
000010 5d60 d0d7 30c6 c685 8f92 7999 3991 5b4f
000020 4540 d151 9680 47a1 8fe9 00b3
00002c

Ein Dump der 44 Bytes ab Position 0x08 von 1.18small.wsw ergibt:

( dd skip=8 bs=1 count=0 && dd bs=1 count=44) < ../firmware/1.18small.wsw | od -A x -x -v

0+0 records in
0+0 records out
0 bytes transferred in 0.000103 seconds (0 bytes/sec)
44+0 records in
44+0 records out
44 bytes transferred in 0.000263 seconds (167350 bytes/sec)
000000 ab96 20b8 01bd d9c6 3b2e 6e40 12b3 d5d3
000010 5d60 d0d7 30c6 c685 8f92 7999 3991 5b4f
000020 4540 d151 9680 47a1 8fe9 00b3
00002c

Match !

4. BSP: Um ein Image zu signieren müssen folgende Teile in einem Verzeichnis vorliegen:
* rsaencode
* das wsw Image, Name im Beispiel test.wsw
* der private wsw-key
* das RESULTAT liegt dann in wsw.sign

Step 1: Md5 berechnen und signieren (der binäre Output liegt dann in md5.sign)

( dd skip=4 bs=256 count=0 && dd ) < test.wsw | md5sum | rsaencode wsw.priv > md5.sign

Step 2: Die RSA Signatur ins wsw einbauen

(dd if=test.wsw bs=1 count=8 && dd if=md5.sign bs=1 count=44 && dd if=test.wsw skip=1 bs=52 ) > wsw.sign

Und man ist fertig. wsw.sign enthält dann die RSA Signatur


----------------

Die nächsten Images von Siemens sollten vor Installation überprüft werden, ob evtl. die RSA-Keys ausgetauscht werden - und plötzlich aus der bisher nur verschleierten MD5 Summe eine richtig verschlüsselte wird....