Passwortverschlüsselung und -entschlüsselung [geschlossen]

8

Ich habe das Passwort als Klartext in einer txt-Datei gespeichert. Jetzt möchte ich das Skript schreiben, das den Klartext aus der txt-Datei liest und danach das verschlüsseln und entschlüsseln soll.

Sandig
quelle
Was ist das"? Warum verwenden Sie dazu kein Tool wie GnuPG?
Kusalananda

Antworten:

13

Das Verschlüsseln eines Passworts ist nutzlos, wenn Sie es nicht verschlüsselt lassen können. Sobald Sie es entschlüsseln, ist es wieder anfällig.

Egal wie kryptografisch schwierig sie sind, die Verschlüsselungs- und Entschlüsselungsmethoden sind für jeden geeignet, um sie zu sehen und zu kopieren und einzufügen. Das macht es nur dümmer.

chmodwird eine viel bessere Verteidigung gegen Schnüffeln sein als eine Rube-Goldberg-Maschine, aber mit etwas Arbeit können Sie möglicherweise die Verwendung gespeicherter Passwörter überhaupt vermeiden, was eine sehr gute Sache wäre. Denn: Abrufbar gespeicherte Passwörter sind Sicherheitskartoffeln und sollten vermieden werden. Sie sind so eine schlechte Idee , dass sudo, su, ssh, scp, und sftpvermeide nicht nur sie, sind sie alle speziell Sie von stoppen entwickelt , um sie zu verwenden.

Wenn Sie vorhaben, ein Passwort einzugeben, das nur begrenzt verwendet werden kann, ich jedoch die Möglichkeit zur Automatisierung von Vorgängen oder Ähnlichem in Betracht ziehe, können Sie ein Dienstprogramm wie verwenden openssl.

$ echo foobar | openssl enc -aes-128-cbc -a -salt -pass pass:asdffdsa
U2FsdGVkX1/lXSnI4Uplc6DwDPPUQ/WjHULJoKypTO8=

$ echo U2FsdGVkX1/lXSnI4Uplc6DwDPPUQ/WjHULJoKypTO8= | openssl enc -aes-128-cbc -a -d -salt -pass pass:asdffdsa
foobar

Alternativ können Sie dies tun,

$ touch pass.txt && echo foobar > pass.txt
$ openssl bf -a -salt -in pass.txt -out secret && rm -f pass.txt
enter bf-cbc encryption password:
Verifying - enter bf-cbc encryption password:

$ openssl bf -d -a -in secret -out pass.txt
enter bf-cbc decryption password:

$ cat pass.txt
foobar
Rahul
quelle
1
Es ist im Allgemeinen keine gute Idee, verschlüsselte Passwörter zu behalten. Es ist besser, die Asche zu speichern. Wenn Sie eine Zeichenfolge mit dem Kennwort vergleichen, verschlüsseln Sie sie erneut mit demselben Algorithmus und vergleichen die Asche. Zugegeben, es ist nicht das, was das OP verlangt, aber es wäre meine Empfehlung.
Rui F Ribeiro
1
@RuiFRibeiro Das habe ich gesagt. Das Verschlüsseln eines Passworts ist nutzlos, wenn Sie es nicht verschlüsselt halten können. Sobald Sie es entschlüsseln, ist es wieder anfällig. Anfangs hatte ich daran gedacht, das zu schreiben, aber trotzdem danke, dass du mich daran erinnert hast, ich werde es bald aktualisieren.
Rahul
Danke für den Code. Ich frage mich, wie stark aes-128 ist. Was ist die stärkste Verschlüsselung, die die aktuelle OpenSL bieten kann, damit ich sie hier verwenden kann? Vielen Dank.
user180574
5

Klingt so, als ob Sie das Rad neu erfinden möchten. Mein persönlicher Vorschlag wäre, eine Textdatei mit Ihren gewünschten Passwörtern zu erstellen, die für Sie ästhetisch ansprechend angeordnet ist (eindeutiger Benutzername, Passwort und Site, zu der sie in jeder Zeile gehört?).

Generieren Sie einen 4096-Bit-RSA-Schlüssel, gpg --full-gen-keyindem Sie "RSA und RSA" auswählen. Oder, verdammt noch mal, 2048-Bit ist technisch immer noch sicher zu verwenden. Gehen Sie einfach nicht unter 2048-Bit.

gpg -e passwords.txt um die Datei mit den darin enthaltenen Passwörtern zu verschlüsseln.

Geben Sie den Namen des Empfängers ein (der Sie sein würde). Wenn es fertig ist, überprüfen Sie, ob es password.txt.gpgexistiert. Löschen Sie dann die ursprünglichen (unverschlüsselten) passwords.txt.

Nun der einfache Teil.

Wenn Sie eines der Kennwörter in der Datei möchten, führen Sie es aus gpg -d passwords.txt.gpg

Sie müssen sich nur an das Kennwort erinnern, das Sie beim Generieren des RSA-Schlüssels ausgewählt haben, und der unverschlüsselte Inhalt wird an stdout (das von Ihnen verwendete Terminal) ausgegeben. Einfache Quetschzitrone peazy.

Eine Alternative zu RSA wäre die Verwendung dieser Schlüsselgenerierungsmethode:

gpg --full-gen-key --expert

Wählen Sie dann Option 9 - "ECC und ECC". Wählen Sie für den Algorithmus Brainpool P-512. Viel schnellere Schlüsselgenerierung als RSA und ebenso sicher bei kleinerer Schlüsselgröße. Persönliche Vorlieben wirklich. Der Rest meiner Antwort (Verschlüsselung / Entschlüsselung der Passwortdatei) gilt weiterhin.

Alternativ können Sie den superduper einfachen Weg gehen und einfach vorgefertigte Software wie KeePassX verwenden, um verschlüsselte Passwörter zu speichern.

William Bonney
quelle