Passwort im Terminal erzeugen

Normalerweise nutze ich pwgen -s -y -n 30 zur Erzeugung eines Passwortes im Terminal. Nun habe ich einen Artikel bei gnulinux.ch gefunden wo beschrieben wird, wie ich mit gpg als alias ein Passwort erzeugen kann.

alias pw=‘gpg --gen-random --armor 1 30’

steht nun in meiner .zshrc

1 Like

In the past I used /dev/urandom to get a password:

tr -dc A-Za-z0-9_ < /dev/urandom | head -c 32 | xargs

This gives a password of length 32 with upper and lowercase characters, digits and underscore.

If you only want a password with lower case characters and only digits from 1-3 you can put:

tr -dc a-z1-3 < /dev/urandom | head -c 32 | xargs

1 Like

I played a little bit with this command. The length parameter is behaving weird.

gpg --gen-random --armor 1 5 
9FCS6n4

That is 7 characters. (+2)

gpg --gen-random --armor 1 10
Tv+bC+Knf8SxRw==

That is 16 characters (+6)

gpg --gen-random --armor 1 30        
iKQFnBWAMSu3uDAnklpQVTGdYKEUL74Y0Fitov/n

That is 40 characters (+10)

That is weird.

1 Like

Du hast recht. Das verhält sich wirklich sehr seltsam. Ich habe dieselben Parameter wie du benutzt und auch dieselbe Ausgabe bekommen.

➜  gpg --gen-random --armor 1 32
55KEiM+YkEhPyOesi/JjMlPGm66kBKl2+GRomX9aPXI=

Mit einer Anzahl von 32 Charakteren bekomme ich jedesmal eine Ausgabe am Ende mit =.

Sehr seltsam

eines Tages werden wir keine Passwörter mehr haben :wink:

Wir werden küssen wie in Qualityland :kiss:

Dann halten wir den Chip im rechten Ohr an den Scanner.

Oder ein Blutstropfen auf den dna scanner im Telefon…
Oder 2fa… Fingerabdruck… Irisscan -.-.,

The --armor option is applying base64 encoding to the output. You’ll end up with some overhead compared to binary with that representation.

2 Likes

Der Autor schreibt im Nachtrag ja auch das es immer mehr Zeichen sind … interessant…
Was @moson schreibt verstehe es doch auch nicht ganz :wink:

1 Like

Das = am Ende ist Padding. Wenn du dir https://de.wikipedia.org/wiki/Base64 durchliest, wird es klarer.

1 Like

gpg --gen-random erzeugt im Prinzip Binärdaten (du bekommst die “rohen bytes”), welche dann als “text” codiert werden mittels base64 encoding: Es macht aus 8-bit (byte) Blöcken, menschlich lesbare 6-bit “Zeichenblöcke” (Zeichen die in Passwörtern üblicherweise akzeptiert werden).

Das kostet dann allerdings: Im besten Fall werden aus 3 bytes 4 Zeichen gemacht.

Also gpg --gen-random --armor 1 10 ist im Prinzip, gib mir 10 random bytes und konvertiere zu base64. Durch das encoding kommen am Ende mehr Zeichen heraus.

Jetzt versteh ich es !

1 Like

Das erklärt es. Danke!

Danke! Auch verstanden.

Nichts desto trotz hat das ja sehr wenige oder keine Spezialzeichen+ und / nur oder?

Das ist ja gerade das Feature von base64. Es hat nur 64 Zeichen, nämlich A-Z, a-z, 0-9, / und = (nur für padding).

Damit ist das, was mit base64 encoded ist (dies kann UTF-8 Zeug sein, binaries oder was auch immer), ohne Probleme zu transportieren (siehe E-Mail attachments, die mit base64 kodiert werden) und auch konvertierbar, z.b. von ASCII nach EBCDIC.

Aber will ich das für ein Passwort?
Ist natürlich einfacher zu merken… und besser da es sozusagen weniger keymap Probleme verursacht.

1 Like

Ich denke es gelten heute grundsätzlich andere Regeln für sichere Passwörter als noch vor ein paar Jahren.

Vor ein paar Jahren war kryptische Passwörte wie “_?hds75/=K2” voll im trennt. Man glaubte kryptische Passwörter mit einer Länge von 8-10 Zeichen wären sicher. Kann man ja auch nicht erraten ein solches Passwörter. Und die Computer waren damals für brute force noch zu langsam um ein solches Passwor tin unter 100 Jahren zu knacken.

Heute sieht das anders aus, weil Computer viel schneller sind und einem Computer egal ist wie kryptisch ein Passwort aussieht. Der Computer probiert einfach stur alle möglichkeiten durch. In einem solchen Fall sind nur lange Passwörter sicher.

Ein passwort wie dieses hier: 93y60b_4ywsob_7fnd=4 ist zwar toll, weil es 15 Zeichen hat, das kann sich aber niemand merken. Man muss es aber auch nicht krpytisch machen. Wichtig ist, das das passwort lang ist. Meine wichtigen Passwörter beispielsweise sind alle >20 Zeichen lang.

Ich beziehe mich bei Berechnugen der Dauer einer brute force Attacke auf diese Webseite.

Stand 2016 schafft der schnelleste Einzel-PC 2,15 Milliarden passwörter pro Sekunde.

Um ein passwort mit 15 Stellen, bestehend 26 verschiedenen Buchstaben per brute force zu knacken, braucht dieser PC also 24.000 Jahre.

Hört sich viel an, ist mir aber nicht lang genug. Denn mit mehreren solcher PCs und einer gewissen intelligenz beim knacken kann man die Zeit stark optimieren. Wäre das Passwort aber 20 Stellen lang, dann bräuchte der gleiche Computer schon 294 Mrd Jahre. Das wird auch mit OIptimierungen nicht so schnell das es gefährlich wird.

Wie erzeugt man sich aber ein passwort das so lang ist und das man sich tritzdem noch merken kann. Man kann einfach wörter aneinander hängen und mit sonderzeiche und Zahlen verbinden:

Beispiel: EnOS-ist-ein-tolles-OS-bei-mir-seit-xyz

Das passwort besteht aus 17 verschiedenen Zeichen und ist 39 Zeichen lang. Damit bräuchte der PC 14.347.342.666.026.700.000.000 Mrd. Jahre um es zu knacken. Wenn man bedenkt, das das Universum erst knapp 14 Mrd jahre alt ist, ist das schon ein guter Wert. :wink:

Und das ist das Minimum, denn eigentlich weiß der brute force attacker nicht, das nur 17 verschiedene Zeichen benutzt wurden. Er muss davon ausgehen das das gesamte Alphabet in Frage kommt und damit muss er Zeichen aus einer Menge von 26 kombinieren.

Lange Rede kurzer Sinn: Lange Passwörter sollen es sein. Und die müssen nichts kryptisches haben. Es gibt auch Webseiten die einem dabei helfen, wenn einem die Phantasie ausgeht.

PS
Ein passwort mit nur 8 Stellen, bestehend aus einer Menge von 26 Zeichen löst der schnellste PC übrigens in 97 Sekunden.

Bei einer Länge von 10 Stellen ist es 1 Tag

Bei einer Lämge von 15 Stellen sind es 24.766 Jahre

1 Like

Ja habe ich auch schon von gelesen… bin mir nicht sicher ob es gut ist sowas Stahl-Aussicht-Rest-Fax-Gottes-Endlich als Passwort zu verwenden…
Aber es kommt auch ganz darauf on wie denn ein Angriff passiert und was angegriffen wird.
Es gibt ja andere Mittel als nur Kombinatorik… Wortlisten z.B

Ich bleibe bei meinen 64 Zeichen langen Buchstaben-Zahlen-Zeichensalat