Site Loader
Steinrieselstrasse 52, 3203 Mühleberg

Firnware Images von SNOM sind verschlüsselt und signiert. Wer seine eigenen Updates auf das Telefon bringen möchte, muss das öffentliche Zertifikat am Telefon durch sein eigenes tauschen.

Das ganze funktioniert nur für jene Modelle für welche das Update vorgesehen wurde. Ihr könnt aber auch gerne testen, was passiert wenn man das Update vom D765 auf 760 spielt…

Über die serielle Schnittstelle auf der Rückseite erhält man ein Terminal. uBoot mit einem Tastendruck anhalten und folgendes eintippen.


setenv norm_bootargs 'mem=192M console=ttyS0,115200n8 root=/dev/mtdblock7 rw rootfstype=jffs2 noinitrd init=/bin/sh'

ODER wir aktivieren den Test-Modus mit

setenv development 'yes'

dabei wird der SSH Server gestartet. Der Bootvorgang dauert etwas, da die Zertifikate erstellt werden müssen.

Wir möchten das Zertifikat (firmware1.pub), sucht einfach am Telefon danach..


find / -name firmware1.pub

Wenn wir das haben, können wir die Update-Files schon entpacken….


#!/bin/bash

imgFile="$1"
updateFile="$1"
sigFile="update.sig"
pubFile="firmware-1.pub"
keyFile="update.key"

 


dd if=$imgFile bs=128 count=1 > $sigFile

dd if=$imgFile bs=128 skip=1 2>/dev/null | openssl dgst -sha1 -verify "$pubFile" -signature $sigFile

Jetzt holen wir uns den Key zum entschlüsseln


dd if=$imgFile bs=128 skip=1 count=1 2>/dev/null | openssl rsautl -verify -out $keyFile -inkey "$pubFile" -pubin

und entschlüsseln das Image mit


dd if=$updateFile bs=128 skip=2 | openssl enc -aes128 -d -kfile $keyFile >> image.tar.gz

Nun einfach entpacken und mal schauen was drin ist…

Wenn ihr möchtet, erstellt euer eigenes Schlüssel-Paar, ersetzt den firmware1.pub durch euren eigenen Schlüssel und euer SNOM nimmt nur noch Updates von euch an!

 

Image verpacken:


tar -czvf $imgFolder image

Das vorliegende tar.gz wird nun verschlüsselt


openssl aes256 -kfile $keyFile -in $imgFolder -out firmware

Jetzt signieren wir es mit unserem Privaten Key


openssl dgst -sha1 -sign private.pem -out sign.sha1 firmware

und erstellen anschliessend unser neues SNOM Image


dd if=sign.sha1 of=firmware-s1 bs=1 count=128 seek=1

dd if=firmware of=firmware-s1 bs=1024 seek=128

Fertig.

 

Post Author: roema

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.