====== Portable Thunderbird mit GPG, TOR und mehr ======
===== Download der aktuellen Version =====
* **Portable Thunderbird 68.3.1 + Enigmail 2.1.4 + gpg4win 3.1.11** (Legacy 68.x)
* [[https://mega.nz/#!5MkkyAQL!6IIt3ar0ynEFonlSUiynrJpcpz3Aptn5xYMIntzXq4E|Download bei MEGA]]
* [[https://www.magentacloud.de/lnk/LmABi7Me|Download bei Magenta Cloud]]
* **Portable Thunderbird 60.8.0 + Enigmail 2.0.12 + gpg4win 3.1.10** (Legacy 60.x)
* [[https://mega.nz/#!JQcHxIaT!Tn1FTpIxKmTqP1diFSTiMf-H3gaE-_vws-ZLXxjTyRw|Download bei MEGA]]
* [[https://www.magentacloud.de/lnk/kVABiRxv|Download bei Magenta Cloud]]
([[#versionen|weitere Versionen]])
Dieses Ein-Mann-Hobby-Projekt ist derzeit noch in Arbeit und wird ohne jede Gewähr oder Garantie bereitgestellt.
Da ab Version 78.x von Thunderbird die GPG-Funktionen integriert sind und die Integration von Enigmail und GPG wegfallen, und durch den Wegfall von TorBirdy auch weitere Ziele entfallen, ist dieses Projekt eingestellt. Diese Seite bleibt zu Dokumentationszwecken bis auf Weiteres erhalten.
[[https://github.com/Bwansen/portable_thunderbird|GitHub-Repository]]
Bei diesem Projekt handelt es sich um eine portable (also ohne Installation vom USB-Stick direkt ausführbare) Version von **Mozilla Thunderbird** inklusive OpenPGP-Verschlüsselung. Für die Verschlüsselung wurde die Erweiterung **Enigmail** integriert, die auf ein ebenfalls im Paket enthaltenes portables **Gpg4win** für die Verschlüsselungsfunktionen zurückgreift. **TorBirdy** (für die TOR-Integration) ist derzeit noch nicht enthalten, aber geplant. Der Aufbau dieser portablen Version (Verzeichnisstruktur etc.) wurde absichtlich kompatibel zum [[http://stadt-bremerhaven.de/category/portable-programme/|portablen Thunderbird von Cashy]] gehalten, um ggf. einen Umzug zu erleichtern.
===== Instruktionen zum Selberbauen =====
Obwohl das Paket, das oben zum Download bereitsteht, nach dem Entpacken direkt nutzbar ist, halte ich es für sinnvoll, den Bauprozess für das Paket und den Quellcode des Loaders hier festzuhalten.
Für das Projekt sollte ein eigener Ordner erstellt werden, in den der Loader gelegt wird. Zusätzlich gehören in dieses Verzeichnis folgende Unterverzeichnisse (der Inhalt wird im folgenden erläutert):
* ''GnuPG''
* ''Thunderbird''
* ''Profilordner''
* ''pEp''
==== Downloads ====
Der Übersicht halber hier einmal alle notwendigen Downloads. Entsprechende Links sind aber auch noch einmal im Text wiederholt.
* [[https://mega.nz/#!dNMiwaZb!mbfAllcsPX_S4-HnKyMCBkokLivRLr3jFkTAClJqbB8|Kompilierter Loader mit leerer Ordnerstruktur]]
* [[https://www.mozilla.org/de/thunderbird/|Thunderbird]]
* [[https://www.gpg4win.de/download-de.html|Gpg4win]]
* [[https://addons.mozilla.org/de/thunderbird/addon/enigmail/|Enigmail]]
* [[https://enigmail.net/download/pEp/winnt/|p≡p-Binaries]]
==== Thunderbird ====
Thunderbird findet man [[https://www.mozilla.org/de/thunderbird/|auf der Website von Mozilla zum Download]], das deutsche Sprachpaket und die Kalender-Erweiterung //Lightning// sind bereits integriert.
Das Programm wird zuerst ganz normal auf die Festplatte installiert, allerdings nach Abschluss der Installation nicht gestartet. Der Inhalt des Ordners ''%programfiles(x86)%\Mozilla Thunderbird'' wird inklusive aller Unterordner in den ''Thunderbird''-Ordner des portablen Programms kopiert. Alternativ scheint sich der heruntergeladene Installer mit einem Packprogram wie 7zip öffnen zu lassen, so daß man dort auf einen Ordner namens ''core'' stößt, der ebenfalls alle notwendigen Dateien und Unterverzeichnisse enthält.
Da das Programm nicht gestartet wird, wurde auch kein leeres Profil angelegt unter ''%appdata%\Thunderbird\Profiles'' angelegt. Der ''Profilordner'' wird später beim ersten Start der portablen Applikation befüllt.
==== Gpg4win ====
Die aktuelle Version von Gpg4win gibt es [[https://www.gpg4win.de/download-de.html|auf der Homepage des Gpg4win-Projektes]]. Die kleinste Version ("Vanilla") sollte reichen, um Thunderbird und Enigmail lauffähig zu bekommen, die größeren Versionen bieten zusätzliche Tools. Ich selbst habe die Komplettversion benutzt.
Das Programm muss ebenfalls zuerst lokal installiert werden. Im Programmverzeichnis ''%programfiles(x86)%\GNU\GnuPG\bin'' befindet sich eine ''mkportable.exe'', mit deren Hilfe man eine portable Version erstellen kann. Der entsprechende Aufruf lautet ''mkportable ////'', bzw ''mkportable %%--%%full ////'', wenn man eine Vollinstallation vornehmen will. Der Inhalt des von ''mkportable'' erstellten Verzeichnisses wandert in den ''GnuPG''-Ordner des portablen Thunderbirds.
In der mkportable-Version von Gpg4win 2.3.3 war ein Bug, der bewirkte, daß das Programm sich über zwei fehlende DLL-Dateien beschwert (''libgcc_s_sjlj-1.dll'' und ''libstdc++-6.dll''). Diese sind zwar vorhanden, aber liegen nicht in dem Unterverzeichnis ''pub'', unter dem mkportable sucht. Um das Problem zu beheben, reicht es, sie in dieses Verzeichnis zu kopieren, danack läuft mkoprtable fehlerfrei durch.(([[http://wald.intevation.org/forum/forum.php?thread_id=1684&forum_id=21&group_id=11|GPG4Win 2.3.3 mkportable - glitch workaround]]))
==== Loader ====
Beim Loader handelt es sich um ein kompiliertes [[https://www.autoitscript.com/site/autoit/|AutoIt]]-Script. Ein fertig kompilierter Loader inklusive leerer Ordnerstruktur kann [[https://mega.nz/#!dNMiwaZb!mbfAllcsPX_S4-HnKyMCBkokLivRLr3jFkTAClJqbB8|hier]] heruntergeladen werden. Eine Batch-Datei hätte es wohl auch getan, aber als kompilierte EXE sieht's cooler aus. Sei's drum, hier der Quelltext:
#NoTrayIcon
#Region AutoIt3Wrapper Directives
#AutoIt3Wrapper_Icon=.\Thunderbird\chrome\icons\default\messengerWindow.ico
#AutoIt3Wrapper_Outfile=ThunderbirdGPGLoader.exe
#AutoIt3Wrapper_Res_Description=Loader for Portable Thunderbird with Enigmail and GnuPG
#AutoIt3Wrapper_Res_Fileversion=0.3.1
#AutoIt3Wrapper_Res_ProductVersion=0.3.1
#EndRegion AutoIt3Wrapper Directives
#Region Includes
#include
#EndRegion
$params = IniRead( "ThunderbirdGPGLoader.ini", "Thunderbird", "parameters", "" )
If $cmdline[0] Then $params = $params & " " & $cmdline[1]
$tb_path = @ScriptDir & "\" & IniRead( "ThunderbirdGPGLoader.ini", "Thunderbird", "exe_directory", "Thunderbird" )
$tb_profile = IniRead( "ThunderbirdGPGLoader.ini", "Thunderbird", "profile_directory", "Profilordner" )
$tb_cmdline = $tb_path & "\thunderbird.exe -profile " & $tb_profile & " " & $params
$gpg_path = @ScriptDir & "\" & IniRead( "ThunderbirdGPGLoader.ini", "GnuPG", "exe_directory", "GnuPG\bin" )
$pep_path = @ScriptDir & "\" & IniRead( "ThunderbirdGPGLoader.ini", "pEp", "exe_directory", "pEp\bin" )
$path = EnvGet("path")
EnvSet("path", $gpg_path & ";" & $pep_path & ";" & $path)
If ProcessExists("thunderbird.exe") Then
$a_process_list = ProcessList("thunderbird.exe")
For $i = 1 To $a_process_list[0][0]
$current_process = StringLower(_WinAPI_GetProcessFileName($a_process_list[$i][1]))
If $current_process <> StringLower($tb_path & "\thunderbird.exe") Then
$tb_cmdline = $tb_path & "\thunderbird.exe -no-remote -profile " & $tb_profile & " " & $params
EndIf
Next
EndIf
Run($tb_cmdline)
ProcessWaitClose("thunderbird.exe")
Sleep(1000)
If ProcessExists("gpg.exe") Then
$a_process_list = ProcessList("gpg.exe")
For $i = 1 To $a_process_list[0][0]
$current_process = StringLower(_WinAPI_GetProcessFileName($a_process_list[$i][1]))
If $current_process = StringLower($gpg_path & "\gpg.exe") Then
ProcessClose($a_process_list[$i][1])
EndIf
Next
EndIf
If ProcessExists("pep-json-server.exe") Then
$a_process_list = ProcessList("pep-json-server.exe")
For $i = 1 To $a_process_list[0][0]
$current_process = StringLower(_WinAPI_GetProcessFileName($a_process_list[$i][1]))
If $current_process = StringLower($pep_path & "\pep-json-server.exe") Then
ProcessClose($a_process_list[$i][1])
EndIf
Next
EndIf
[Thunderbird]
; Relative path to the installation directory of Thunderbird, default is "Thunderbird".
exe_directory=Thunderbird
; Relative path to the profile folder of Thunderbird, default is "Profilordner".
profile_directory=Profilordner
; command-line parameters for Thunderbird.
parameters=
[GnuPG]
; Relative path to the binaries directory of GnuPG (where gpg.exe is located), default is "GnuPG\bin".
; For older versions, this used to be "GnuPG\pub".
exe_directory=GnuPG\bin
[pEp]
; Relative path to the binaries directory of pEp (where pep-json-server.exe is located), default is "pEp\bin".
exe_directory=pEp\bin
Der Loader tut eigentlich nicht viel mehr, als der lokalen ''PATH''-Variable von Windows den Pfad zum portablen GPG hinzuzufügen, damit Enigmail diese finden kann, und dann den Thunderbird zu starten. Der Pfad zum portablen GPG wird dabei an den Anfang der ''PATH''-Variable angefügt, damit nicht aus Versehen eine lokale Version von GPG verwandt wird. Ebenso erfolgt der Start von Thunderbird mit dem Parameter ''-profile Profilordner'', um den Profilordner der portablen Version anzusprechen und nicht ein lokal auf dem Rechner installiertes Profil einzubinden. Außerdem erfolgt eine Prüfung, ob bereits eine (nicht portable) Instanz von Thunderbird auf dem Rechner gestartet wurde. In diesem Fall wird Thunderbird mit der Option ''-no-remote'' geladen(([[https://developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options|MDN: Command Line Options]])). Der Loader liest außerdem Kommandozeilenparameter aus, die ihm übergeben wurden und gibt diese ggf. an Thunderbird weiter. Nachdem die ''thunderbird.exe'' beendet wurde, überprüft der Loader nach kurzer Wartezeit, ob noch abhängige Prozesse (''gpg.exe'' und ''pep-json-server.exe'') im Hintergrund laufen und beendet diese gegebenenfalls.
Falls der Loader kompiliert werden soll, kann als Icon das Thunderbird-Icon unter ''%programfiles(x86)%\Mozilla Thunderbird\chrome\icons\default\messengerWindow.ico'' genutzt werden.
Sobald die Ordner nach der obigen Anleitung befüllt sind und der Loader im Hauptverzeichnis liegt, kann der portable Thunderbird gestartet werden - lediglich Enigmail fehlt noch.
==== Enigmail ====
Enigmail kann man [[https://addons.mozilla.org/de/thunderbird/addon/enigmail/|auf der AddOns-Seite von Mozilla]] herunterladen. Statt Thunderbird zu starten und die Erweiterung in das Profil zu installieren, übertragen wir sie stattdessen folgendermaßen in den Programm-Ordner: Die ''.xpi''-Datei kommt in das Verzeichnis ''\Thunderbird\distribution\extensions\'' und wird in ''{847b3a00-7ab1-11d4-8f02-006008948af5}.xpi'' umbenannt.(([[https://developer.mozilla.org/en-US/Add-ons/Extension_Packaging#Including_add-ons_in_a_customized_application|Mozilla Developer Network: Extension Packaging]])) Es ist nicht mehr (wie bei früheren Versionen) nötig, die Inhalte der XPI-Datei zu entpacken. Beim ersten Start der portablen Applikation wird Enigmail so automatisch in das Profil installiert, bleibt aber erhalten, falls der Profilordner mal geleert (oder ein anderes Profil angelegt) wird.
{{anchor:pep}}
==== p≡p ====
Beim ersten Start würde Enigmail 2.x versuchen, Dateien für p≡p herunterzuladen und im Profil abzuspeichern. Das können wir bereits im Voraus erledigen, die entsprechenden Dateien finden sich [[https://enigmail.net/download/pEp/winnt/|im Downloadbereich der Enigmail-Homepage]]. Dort die ZIP-Datei mit der neuesten stabilen Version wählen und in den Ordner ''\pEp'' entpacken, damit sie vom Profil unabhängig sind.
===== ToDo =====
* TorBirdy
* Checksumme
* ggf. weitere Extensions
* ggf. weitere Privacy-Einstellungen
=====Versionen =====
* [[https://mega.nz/#!5MkkyAQL!6IIt3ar0ynEFonlSUiynrJpcpz3Aptn5xYMIntzXq4E|Portable Thunderbird 68.3.1 + Enigmail 2.1.4 + gpg4win 3.1.11]] (Legacy 68.x)
* [[https://mega.nz/#!1VMRRQzJ!m90Wh8SRTwhDXxYaHnXQXH-jtLz3_c4YO5M6DwboOKw|Portable Thunderbird 68.1.1 + Enigmail 2.1.2 + gpg4win 3.1.10]] (veraltet)
* [[https://mega.nz/#!JQcHxIaT!Tn1FTpIxKmTqP1diFSTiMf-H3gaE-_vws-ZLXxjTyRw|Portable Thunderbird 60.8.0 + Enigmail 2.0.12 + gpg4win 3.1.10]] (Legacy 60.x)
* [[https://mega.nz/#!cVMg1YaZ!MLxdxHODMKZtJZimoNv_ESpgfcHFo_k7QQTeWxdEJ4U|Portable Thunderbird 60.6.0 + Enigmail 2.0.9 + gpg4win 3.1.5]] (veraltet)
* [[https://mega.nz/#!5J9iXIaJ!BnDDw9ewhsnKxqskwD_X-ZOHHjbeP0Djcvpy63oHI5w|Portable Thunderbird 52.7.0 + Enigmail 2.0.2 + gpg4win 3.1.0]] (veraltet)
* [[https://mega.nz/#!BN8HEKZY!OJQ4ghV9aU2J_izFPoi99_Cmt66zBBYhoFzmTCKhaXw|Portable Thunderbird 52.7.0 + Enigmail 1.99 + gpg4win 3.1.0]] (veraltet)
* [[https://mega.nz/#!xAkHXJzY!3wH_4lQhYmCowwoaW0pmbcEs-ZSqXz5vxogSFapbFyU|Portable Thunderbird 52.2.0 + gpg4win 2.3.3 (korrigierter Build ohne Update-Ordner)]] (veraltet)
* [[https://mega.nz/#!BcUUEBBI!a9sNMk4jjWA3M3TXdb97zOz5mwUSsw8xkyx26_qIvTs|Portable Thunderbird 52.2.0 + gpg4win 2.3.3]] (veraltet)
* [[https://mega.nz/#!pRUGXBTJ!uCS6-yXRC2ulHXq-9cN0jdf6Mw24q6jA1pDL8YtRY9M|Portable Thunderbird 45.1.0 + gpg4win 2.3.1]] (veraltet)
===== Links =====
* [[https://github.com/Bwansen/portable_thunderbird|GitHub-Repository]]
* [[http://stadt-bremerhaven.de/category/portable-programme/|Cashys Blog: Portable Programme]]
* [[https://wiki.archlinux.org/index.php/Thunderbird|ArchWiki: Thunderbird]]
* [[https://securityinabox.org/en/guide/thunderbird/windows|security-in-a-box: Thunderbird]]
* [[https://addons.mozilla.org/de/thunderbird/addon/enigmail/|Thunderbird Add-Ons: Enigmail]]
* [[https://www.thunderbird-mail.de/lexicon/entry/17-enigmail/|Thunderbird Mail DE: Enigmail]]
* [[https://addons.mozilla.org/de/thunderbird/addon/torbirdy/|Thunderbird Add-Ons: TorBirdy]]
* [[https://www.privacy-handbuch.de/handbuch_31d.htm|Privacy-Handbuch: Hinweise für eine sichere Konfiguration von Thunderbird]]
* [[https://github.com/Perflyst/thunderbird-privacy-profile|GitHub: Provacy Thunderbird Profile]]
* [[https://dev.pep.foundation/Enigmail%20pEp/Enigmail|p≡p Foundation developer wiki]]
* [[https://proxallium.dtw.tools/|ProxAllium - FOSS GUI wrapper for Tor]]
* [[https://stackoverflow.com/a/30896241|7zip SFX installer]]
{{tag>Software HyperCom Thunderbird Mail eMail E-Mail Crypto Encryption Technomagie Download Downloads}}