Script: Verschlüsselten Ordner via Keyfile (.key) entschlüsseln

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

b666m

Benutzer
Registriert
01. Jan. 2014
Beiträge
4
Reaktionspunkte
0
Punkte
0
Hi zusammen,

ich möchte gerne per Script einen verschlüsselten Ordner entschlüsseln lassen.

Das Ganze jedoch nicht mit einem Passwort (dafür gäbe es ja den "synoshare --enc_mount share password" Befehl),
sondern mit der .key-Datei, welche beim Erstellen des Ordners automatisch exportiert wurde.

In der Weboberfläche kann man diese Datei einfach per Rechtsklick importieren lassen.
Wie sieht der Befehl hierfür im Terminal aus?
Geht das direkt quasi "befehlsname share keyfile" oder kann ich aus dem keyfile irgendwie das ursprüngliche Passwort extrahieren?

Ich habe es schon mit "ecryptfs-unwrap-passphrase keyfile" versucht, aber leider ohne Erfolg. :(

Dank und Gruß,
Bastian
 
Mit mount sollte es eigentlich gehen.
 
Hallo,

ich habe jetzt einige Möglichkeiten durchprobiert, bin aber immer noch auf kein Ergebnis gekommen.
Wie sieht der Befehl im Detail aus?

--------
Zusatz:

Ich habe unter /usr/lib/ecryptfs/ noch die Datei "libecryptfs_key_mod_passphrase.so" gesehen.
Anscheinend wurde hier seitens Synology die passphrase-Abfrage durch ecryptfs modifiziert.
Leider nicht sehr hilfreich, da außer Maschinencode nur ein paar uninteressante Strings enthalten sind... :/

--------

Wenn man das Keyfile in der Weboberfläche importiert, sieht man in den Prozessen, dass dieses als Erstes hochgeladen wird.

Danach scheint folgender Befehl darauf angewendet zu werden: (die upload_tmp.8163 ist identisch mit meinem Keyfile.)
Rich (BBCode):
/usr/syno/sbin/ecryptfs-unwrap-passphrase /volume1/@tmp/upload_tmp.8163

Im Anschluss wird wohl nochmals der selbe Befehl auf eine andere Datei ausgeführt: (Die Datei b666m hat einen ähnlich unleserlichen Inhalt wie das Keyfile.)
Rich (BBCode):
/usr/syno/sbin/ecryptfs-unwrap-passphrase /usr/syno/etc/.encrypt/b666m

Und dann - Magie, Magie - erscheint dieser Befehl im Terminal:
Rich (BBCode):
/usr/syno/sbin/mount.ecryptfs /volume1/@b666m@ /volume1/b666m -o key=passphrase:passphrase_passwd=$PLAINTEXT_PASSWORD,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_passthrough=n,no_sig_cache,ecryptfs_enable_filename_crypto

Hier steht dann wirklich mein Passwort in Klartext als Parameter ($PLAINTEXT_PASSWORD) im letzten Befehl.

--------

Will ich das Ganze nachvollziehen, so frägt mich ecryptfs-unwrap-passphrase immer nach einer "Passphrase:".
Ich dachte eigentlich, dass es das admin-Passwort sein müsste (also das Passwort, welches ich beim Einrichten angegeben habe), aber nada.
Auch leer lassen oder "password" oder "synology" (in allen möglichen Variationen) funktioniert nicht.

--------

Ich habe zwar noch eine einfach zu realisierende Alternative (Datei mit Klartext-Passwort in einem ecryptfs-verschlüsselten Ordner auf einem Server),
aber wenn es das Keyfile schon gibt, dann möchte ich dieses auch gern verwenden. :)

Hat jemand noch eine Idee?
 
Zuletzt bearbeitet:
Lösung gefunden

So...
Habe inzwischen eine nette englischsprachige Antwort vom Synology-Support bekommen, welcher meinte, dass sie ihre Terminal-Tools nicht supporten.
Dann wurde mir noch eine ellenlange Lösung darunter beschrieben, wie ich das Ganze mit meinem Klartext-Passwort lösen kann.
(Das hätte ich mit dem synoshare-Wrapper auch mit einer Zeile geschafft - ich glaube, die kennen sich selbst nicht damit aus.)

Aber:
Ich habe dennoch mein Problem gelöst.
Kann jetzt aus dem Keyfile das Klartext-Passwort generieren lassen und damit dann das share via synoshare-Wrapper mounten.
Die Lösung darf ich hier aber wohl nicht posten, da sich sonst die Synology-Jungs auf die Füße getreten fühlen dürften.
(Wenn man ein bisschen überlegt, ist die Lösung (bzw. das fehlende Puzzelstück) innerhalb weniger Minuten gefunden - und hat bei mir für einen kleinen Schmunzler gesorgt.)

Meine Implementierung sieht nun folgendermaßen aus:
1. Eigene Fritzbox per VPN mit einer anderen Fritzbox verbinden.
2. Auf der anderen Fritzbox auf einen angeschlossenen Stick das Keyfile speichern und diesen Stick dann auf der Diskstation mounten lassen.
3. Per Script beim Hochfahren mit Hilfe des Keyfiles das Passwort generieren und per synoshare-Wrapper das entsprechende share mounten.

Sollte also meine Diskstation mal abhanden kommen, so ist das Keyfile an einem fremden, sicheren Ort - und nirgendwo eine Spur eines Entschlüsselungs-Passwortes zu sehen. :)

Gruß,
b666m
 
Hallo b666m
Ich habe leider nach dem Upgrade auf DSM 5 einen verschlüsselten Share verloren (dieser war auf Automount gestellt, ein anderer verschlüsselter Share ohne Automount funktioniert noch). Ich kann diesen (ersten) nun nicht mehr mounten (The operation failed...) und habe das Passwort vergessen. Dafür habe ich noch das Keyfile ;-)
Kannst Du mir nicht bitte sagen, wie ich aus dem Keyfile das Passwort generieren kann? Denn dann kann ich mir einen neuen verschlüsselten Share mit demselben Passwort generieren, die Files kopieren und ich hätte wieder Zugriff...

Besten Dank und Gruss
Tom
 
Zuletzt bearbeitet:
hi b666m

kannst du mir sagen (gerne auch per PM) wie das skript aussieht um aus dem keyfile das klartext pw zu bekommen`?

Danke :)
 
hab jetzt lange nach so einer Lösung gesucht, bisher aber nix gefunden. b666m, kannst Du mir Dein Script evtl. per pn schicken? Oder weiß sonst noch jemand ne Lösung, wie man einen verschlüsselten Ordner sicher automounten kann? Danke!!
 
Ohne keyfile aber automatisch per Skript mit dem Passwort auf USB stick kann ich dir verraten


D.h wenn man bootet und der USB stick ist dran wird entschlüsselt ... Ohne USB stick beim booten bleibts verschlüsselt.
Bei Interesse melden
 
Hey shorty! Dank Dir! Die Methode hab ich schon ausprobiert und funktioniert auch gut. Allerdings stört mich da, dass das Passwort dann klar auf dem USB-Stick abgelegt ist. Und ich will die shares auch von unterwegs mit meinem Mac mounten können.
 
Hallo b666m,

ich habe mein Passwort verlegt und bisher immer die .key importiert, um Ordner einzuhängen. Nun möchte ich das automatische Einhängen nutzen und brauche dafür das PW. Ist es möglich, dass du mir die Vorgehensweise per PN mitteilst? Andererseits wäre es auch sehr interessant zu erfahren, wie Du die Prozesse geloggt hast. So könnte ich es ja selbst rausfinden. Wobei ich nicht ganz verstehe, wieso das PW aus dem plaintext dann bei dir nicht funktioniert hat.

Viele Grüße,
Ben
 
Ich habe mit b666m mal geschrieben und er war sehr nett und hat mir ein bisschen geholfen.
Das Script auf der FB hat er leider nicht mehr, aber er konnte mir noch erklären wie man an den Synology passphrase kommt.

Im Grunde ist das echt ganz einfach und man muss beim mounten per key nur die Prozesse per Terminal aufrufen.

Ich habe es gerade ausprobiert und konnte innerhalb von Sekunden den Key auslesen und habe das Passwort ausgelesen.
Falls also jemand damit Probleme hat, kann er sich gerne melden.



Jetzt hört meine Scripterfahrung aber auf.


Ich überlege ob ich meine jetzige DS doch noch behalte und an einem anderen Ort aufstelle die immer eine Internetverbindung hat aufstelle.
Wenn ich meine neue DS habe, soll diese von der entfernten DS (USB Stick) Die Key laden und die verschlüsselten Ordner mounten.

Kann mir einer verraten wie ich die Key Datei auf die andere DS übertragen kann und nach dem auslesen und mounten löschen kann?
Oder kann ich auf der entfernen DS die Key auslesen den Wert als Variable speichern, übertragen und dort nutzen? Am besten soll die Variable dann überschrieben werden.

Krieg ich das problemlos per SSH hin?


Eventuell hat ja eine ne Idee wie ich so ein Script hinbekomme.


Das beste wäre dann ja beim Hochfahren.

NAS 1 startet Script auf NAS 2 "USB gemountet? Wenn ja, dann Key auslesen als Variable speichern und zu NAS 1 übertragen"
Auf NAS 1 wird jetzt ein Script gestartet, die übertragene Variable wird verwenden, mountet die verschlüsselten Ordner und löscht die Variablen.


Wenn ich z.B. folgendes Script auf der DS ausführe kriege ich das PW ausgegeben

#!/bin/bash

/usr/syno/sbin/ecryptfs-unwrap-passphrase /volumeUSB1/Share.key "passphrase"


Dann könnte ich doch theoretisch von NAS 1 direkt folgendes Script starten und den Wert direkt als Variable speichern oder?

#!/bin/bash

/usr/syno/sbin/ecryptfs-unwrap-passphrase root@NAS2:/volumeUSB1/Share.key "passphrase"

Nur wie kriege ich den Wert als Variable gespeichert?

Vielleicht hat einer ja noch eine Idee
 
@PsychoHH könntest du dich mal bei mir melden? Ich bräuchte kurz Hilfe bei der passphrase.

vielen Dank!
 
Genau das gleiche Problem habe ich momentan auch. Schade, dass man synoshare nicht das Key-File als Argument mitgeben kann.

@PsychoHH wäre klasse, wenn Du auch mir sagen könntest, wie man aus dem Keyfile das Passwort auslesen kann, um synoshare zu verwenden. Alternative wäre mount.ecryptfs + Keyfile, wenn wir wüssten, wie danach auch die DSM Oberfläche aktualisiert werden kann. Danke!
 
Wenn ihr euch schon extra anmeldet müsst ihr auch pn aktivieren, sonst kann ich euch das nicht schicken :)
 
Kann sein, dass dafür zwei Posts erforderlich sind.
 
Danke für den Hinweis, das scheint noch nicht aktiviert zu sein, da keine Berechtigung.

Was spricht gegen eine Anleitung als Post hier im Thema? Es handelt sich doch um einen legitimen Workaround für ein noch nicht vorhandenes Feature.
 
Alles zu seiner Zeit :)
 
Hallo PsychoHH,

ich muss leider auch mein Passwort aud dem Keyfile auslesen.
Kannst Du mich hierbei bitte unterstützen?

Danke!

Gruß, Michael.
 
Hallo PsychoHH,

mich würde auch interessieren, wie die Methode funktioniert, sofen das noch geht.

Kannst Du mir bitte auch die Anleitung zukommen lassen?

Vielen Dank!
 
Hi, ich reihe mich hier mal ein - ich bräuchte auch Hilfe das Passwort aus dem Keyfile auszulesen. Kann mir jemand weiterhelfen? Was muss ich als Passphrase angeben bei ecryptfs-unwrap-passphrase?
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat