Bauform B. schrieb:
Wie schreibt obfuscating auf deutsch?
Ich würde das, wie auch andere im Thread, mit "verschleiern" oder "verwirren" übersetzen.
1 |
I want to do this
|
2 |
> PASSWORD="10101001001010010101010100101" #binary or other code
|
3 |
> NEW_PASS=`decrypt $PASSWORD`
|
4 |
> program --pass=$NEW_PASS
|
Wie andere schon angemerkt haben, ist eine Übergabe über die Kommandozeile zweifellos die unsicherste Möglichkeit. Denn dann steht das Passwort in der Prozeßliste und auch in /proc/<pid>/cmdline, zumindest bis das $program sein argv überschreibt (ja, das geht). Auch als Environment-Variable ist das kaum sicherer, da das Paßwort dann in /proc/<pid>/environ steht...
Wenn man die Ausgabe von decrypt per file descriptor übergeben kann, ist
das Passwort schon ziemlich unsichtbar -- außer, jemand bekommt das
Script in die Finger.
Korrekt.
Wenn aber decrypt eine 4-stellige Pin abfragen würde, wäre es knapp
10000 Mal sicherer... Geldautomaten funktionieren auch mit einer
4-stelligen Pin (ok, die können die Karte einziehen).
Nunja, Geldautomaten benutzen eine Multifaktor-Authentifizierung: "what you have" ist die Karte, "what you know" die Pin.
Finde ich nur nichts zum Thema oder warum macht man das nicht?
So etwas wird tatsächlich gemacht, beispielsweise GnuPG (GPG) kann man die Passphrase über einen Dateideskriptor mit --passphrase-fd und über eine Datei mit --passphrase-file übergeben, wenn zusätzlich die Option --batch angegeben wird. Ansonsten wird so etwas deswegen selten gemacht, weil es genügend andere Möglichkeiten zur Absicherung gibt: UNIX-Gruppen, ACLs, AppArmor / SE-Linux / RSBAC, sudo / doas / run0, (HashiCorp|Ansible) Vault, Docker Secrets, ... und ja, das hat was von [1].
Wenn Du uns genauer erklärst, welches Programm Du genau wogegen absichern möchtest, dann können wir Dir sicherlich besser helfen. Vieles ließe sich beispielsweise für alle möglichen (und natürlich auch eigene) Programme über die Pluggable Authentication Modules (PAM, libpam) realisieren.
[1] https://xkcd.com/927/