- Mitglied seit
- 04. Sep 2008
- Beiträge
- 2.341
- Punkte für Reaktionen
- 14
- Punkte
- 84
Vorbereitungen
Mit DSM 5.1 beta hat Synology die Unterstützung von Herausgeber-Zertifikaten integriert. Diese werden, sofern vorhanden, von der jeweiligen Paketquelle oder per Public-Key an die gewünschten User verteilt.
Ich verwende hier als Ausgangsverzeichnis /usr/local/src, wer ein anderes Verzeichnis benutzen möchte, muss die Pfade entsprechend anpassen.
Bei Erstellung der Keys auf der DiskStation muss zuvor per ipkg das Paket gnupg installiert werden, da der gpg-agent fehlt.
Anschließend einen symbolischen Link
anlegen.
Verzeichnis toolkit erstellen
Entwicklungsumgebung aufsetzen
pkgscripts.tgz herunterladen, entpacken und in das Verzeichnis wechseln
Eine Liste der verfügbaren Architekturen ${platform} für die Entwicklungsumgebung erhält man mit
v [x.x] = gewünschte DSM Version, wir benötigen mindestens 5.0
Entwicklungsumgebung für die gewünschte Architektur herunterladen und entpacken
pkgscripts in die Entwicklungsumgebung kopieren - ${version} = entpackte Version
Mit chroot in die Entwicklungsumgebung wechseln
Dem .gnupg Verzeichnis die richtigen Rechte geben
Die Entwicklungsumgebung steht, im nächsten Schritt folgt das Erstellen des gpg-Keypaares
gpg-Keypaar erzeugen (Private und Public)
Für die Generierung der Zufallsbytes benötigt gpg, abhängig von der Größe des Schlüssels und anderen Faktoren, eine bestimmte Menge an Entropie auf dem System. Wieviel Entropie zur Zeit vorhanden ist, kann mit dem Befehl
überprüft werden, allerdings verändert jede Überprüfung ebenfalls den Wert (ein Teufelskreis). Es ist ratsam, wärend der Erzeugung des Schlüssels, andere Arbeiten auf dem System durchzuführen, damit genügend Entropie zur Verfügung steht.
Die folgenden Methoden/Befehle verhelfen zu mehr Entropie auf dem System:
Wichtig: Die genannten Methoden sollten, bis auf haveged, erst während der Erstellung - gezielt ab dem Zeitpunkt der Frage nach der Passphrase - durchgeführt werden.
Keypaar erzeugen
Die folgenden Fragen wie angegeben beantworten:
Die anschließend in der Key-Datenbank enthaltenen Schlüssel können mit dem Befehl
angezeigt werden, gezielt auch für public und private Keys (siehe Abschnitt Nützliche gpg Befehle und Dokumentationen)
gpg Public-Key exportieren
Public-Key kann direkt im Paket-Zentrum unter "Einstellungen - Zertifikat" importiert werden (Wichtig, wenn Pakete manuell installiert werden müssen)
gpg Private-Key exportieren
gpg private-key exportieren und an einem sicheren Ort aufbewahren. ***Am Besten in einem passwortgeschützten Keysafe sichern, da der Key keine Passphrase enthält***
Den exportierten privaten Schlüssel nach Kopie an einen sicheren Ort nicht auf der Diskstation liegen lassen...LÖSCHEN
Package signieren (nur innerhalb CHROOT)
Fehler "curl_exec() failed" beheben
Codesign.php benötigt eine Internetverbindung (zu Synology)
Nützliche gpg Befehle und Dokumentationen
gpg --list-keys
gpg --list-secret-keys
gpg --list-public-keys
gpg --delete-secret-key [#keynumber]
gpg --delete-key [#keynumber]
http://www.hauke-laging.de/sicherheit/openpgp.html
Wie immer geht Alles auf eigene Kappe!
Mit DSM 5.1 beta hat Synology die Unterstützung von Herausgeber-Zertifikaten integriert. Diese werden, sofern vorhanden, von der jeweiligen Paketquelle oder per Public-Key an die gewünschten User verteilt.
Ich verwende hier als Ausgangsverzeichnis /usr/local/src, wer ein anderes Verzeichnis benutzen möchte, muss die Pfade entsprechend anpassen.
Bei Erstellung der Keys auf der DiskStation muss zuvor per ipkg das Paket gnupg installiert werden, da der gpg-agent fehlt.
Code:
ipkg install gnupg
Anschließend einen symbolischen Link
Code:
ln -s /opt/bin/gpg-agent /usr/syno/bin/gpg-agent
Verzeichnis toolkit erstellen
Code:
cd /usr/local/src
mkdir toolkit
cd toolkit
Entwicklungsumgebung aufsetzen
pkgscripts.tgz herunterladen, entpacken und in das Verzeichnis wechseln
Code:
wget http://sourceforge.net/projects/dsgpl/files/toolkit/pkgscripts.tgz/download -O pkgscripts.tgz
tar zxvf pkgscripts.tgz
cd pkgscripts
Eine Liste der verfügbaren Architekturen ${platform} für die Entwicklungsumgebung erhält man mit
Code:
./EnvDeploy -v 5.0 --list
Entwicklungsumgebung für die gewünschte Architektur herunterladen und entpacken
Code:
./EnvDeploy -v 5.0 -p ${platform}
pkgscripts in die Entwicklungsumgebung kopieren - ${version} = entpackte Version
Code:
cd /usr/local/src/toolkit
cp -r pkgscripts build_env/ds.${platform}-${version}
Mit chroot in die Entwicklungsumgebung wechseln
Code:
chroot build_env/ds.${platform}-${version}
Dem .gnupg Verzeichnis die richtigen Rechte geben
Code:
cd /root
chmod 700 .gnupg
Die Entwicklungsumgebung steht, im nächsten Schritt folgt das Erstellen des gpg-Keypaares
gpg-Keypaar erzeugen (Private und Public)
Für die Generierung der Zufallsbytes benötigt gpg, abhängig von der Größe des Schlüssels und anderen Faktoren, eine bestimmte Menge an Entropie auf dem System. Wieviel Entropie zur Zeit vorhanden ist, kann mit dem Befehl
Code:
cat /proc/sys/kernel/random/entropy_avail
Die folgenden Methoden/Befehle verhelfen zu mehr Entropie auf dem System:
-
Code:
ls / -R
-
Code:
find / > /dev/null
- ein Programm mit ./configure zum compilen vorbereiten und anschließend compilieren.
Wichtig: Die genannten Methoden sollten, bis auf haveged, erst während der Erstellung - gezielt ab dem Zeitpunkt der Frage nach der Passphrase - durchgeführt werden.
Keypaar erzeugen
Code:
gpg --gen-key
- (1) RSA and RSA (default) [enter]
- 2048 [enter]
- 0 kein Ablauf des Keys [enter]
- Name: [gewünschter Name wie er im Paket-Zentrum unter "Einstellungen - Zertifikat" angezeigt wird] [enter]
- Email: [gewünschte Email] [enter]
- Passphrase: [leer lassen] und alle Anfragen bezügl. der leeren Passphrase bestätigen, da Keys ohne Passphrase sehr unsicher sind. [enter]
Die anschließend in der Key-Datenbank enthaltenen Schlüssel können mit dem Befehl
Code:
gpg --list-keys
gpg Public-Key exportieren
Rich (BBCode):
gpg --armor --export [Nummer hinter dem Slash] > [gewünschter Dateinname].asc
gpg Private-Key exportieren
gpg private-key exportieren und an einem sicheren Ort aufbewahren. ***Am Besten in einem passwortgeschützten Keysafe sichern, da der Key keine Passphrase enthält***
Code:
gpg --armor --export-secret-keys [Nummer hinter dem Slash] > [gewünschter Dateinname]_sec.asc
Den exportierten privaten Schlüssel nach Kopie an einen sicheren Ort nicht auf der Diskstation liegen lassen...LÖSCHEN
Package signieren (nur innerhalb CHROOT)
Rich (BBCode):
php /pkgscripts/CodeSign.php --sign=[/Pfad/zum/Paket.spk]
Fehler "curl_exec() failed" beheben
Codesign.php benötigt eine Internetverbindung (zu Synology)
- Internetverbindung überprüfen
mit chroot in die Entwicklungsumgebung wechseln
ping google.de oder ähnlich ausführen, wenn man keine Antwort erhält, dann die Datei /etc/resolv.conf mit einem funktionierendem Nameserver versorgen, üblicherweise die Adresse des Routers.
Nützliche gpg Befehle und Dokumentationen
gpg --list-keys
gpg --list-secret-keys
gpg --list-public-keys
gpg --delete-secret-key [#keynumber]
gpg --delete-key [#keynumber]
http://www.hauke-laging.de/sicherheit/openpgp.html
Wie immer geht Alles auf eigene Kappe!
Zuletzt bearbeitet: