Umgang mit Passwörtern im Allgemeinen
Passwörter, ein notwendiges Übel und häufig der einzige Schutz vor dem Zugriff auf die eigene Identität (facebook) oder andere Services. Nun kommt es aber vor, dass wir Administratoren mal Passwörter und Benutzernamen austauschen müssen. Häufig auch für mehrere Benutzer. Weiter muss man sich dann noch die Frage stellen, wie man die Passwörter und Benutzernamen sicher zum Kunden/Anwender überträgt... einfach via Mail... nein. In eine Excel... oder via Telefon?
Alles irgendwie keine geile Option. Mail ist ziemlich unsicher, weil nachwievor nicht vollständig im Kommunikationsweg verschlüsselt, vom Inhalt mal ganz abgesehen. Telefon... hmm, ob da nun wirklich jedes Zeichen des hochsicheren Passworts richtig verstanden wird? Ich weiß ja nicht. Weiter will man doch als Admin das Passwort der Anwender*innen gar nicht wissen oder?
Übertragung von Passwörtern
Also im Großen und Ganzen teilt sich der Umgang mit Passwörtern als Administrator in zwei Bestandteile auf:
- Die sichere Übertragung von Passwörtern an Dritte
- Generierung von Passwörtern (ohne unser Wissen um Inhalt) gemäß einer gewissen Komplexität
Hierfür gibt es nun manigfaltig Lösungsansätze. Für die Generierung von Passwörtern gibt es viele Tools. Unter Linux wären da zum Beispiel pwgen
oder openssl
oder mit ein wenig "Spielerei" und "Truncaten" die Verwendung von /dev/random/
. Für Einzelfälle habe ich gerne pwgen
genutzt. Aber darum soll es hier nicht gehen - dennoch, schaut mal rein ;).
Für das Übertragen der Passwörter habe ich mich irgendwann für OneTime-Links entschieden und mir verschiedenste Betreiber angeschaut. Hier gibt es ebenfalls einige Services, die einen solchen Link zum Teilen von Geheimnissen erstellen. Ohne den Entscheidungsprozess jetzt im Detail darstellen zu wollen *(Es ist f*king open source) nutze ich vermehrt OneTimeSecret (OTS) mit wachsender Begeisterung.
- Open Source
- Via API Ansprechbar
- Selfhosting wie gehosted möglich
- Open Source
Hier auch der Link zum Github von OTS.
Soweit so gut - eine sichere Übertragungsmöglichkeit sowie das Tool zum Erstellen von Passwörtern ist gefunden. Nun ist es aber nicht wirklich schön, wenn man eine Liste von sechs Benutzern oder eben einen Anwender hat und für den zwei Benutzer angelegt und die Passwörter verteilt werden müssen.
Linkgenerierung
Deshalb (und weil wir faul sind) haben wir uns überlegt, wie wir das Generieren von Passwörtern und Einmallinks vereinfachen können. Hieraus ist das kleine aber feine Projekt "ots-generate-password" Projekt entstanden.
Dies ist ein Tool um Passwörter (auf verschiedenste Weise) zu generieren und die Links dann an Benuzter zu übergeben. Wir werden dieses Tool natürlich weiter mit Features füttern.
Tool ots-generate-password
Das Tool findet Ihr in unserem Github unter dem Link "ots-generate-password" und könnt es einfach herunterladen, Es ist ein einfaches Bashscript, dass via API Schlüssel an www.onetimesecret.com oder die eigene Lösung von OTS herangeht und die entsprechenden Schritte via API-Requests ausführt. Es lassen sich Usernamen, Empfänger sowie Passwörter und ganze Listen übergeben. Bei der Listenverarbeitung werden die Rückgaben der Links nach Usernamen sortiert auch in einer CSV herausgegeben.
Hier der kleine Hilfeoutput, für ein Gefühl zur Version 1.0.
-W Use this script with power! -V More Output as usual - for debugging. -L Chose the amount of characters in the password. Default: 20 -v Version and Release of this script. -R Specify a recipient. Value needs to be an valid email address. The recipient will be set in ots. -U Specify a Username. The Username will also be set in OTS Secret. -f File with usernames and passwords. The Username is mandatory. Please use the following format for the file: First column Username and second column password. Please use a TAB as delimeter. Please use no headerrow! If a file is passed to the script, the output will also safed to a file. -O Specify a outputfile. Default: -P Specify a password, that will be send via ots link. -t Only check if the ots instance is fine and reachable.