In unserem Podcast diskutiert Thomas Bahn über Nutzen, Anwendungen und Erfahrungen aus den Bereichen Chatbots und Künstliche Intelligenz. Mehr erfahren

Zweistufige CA-Infrastruktur: Vorbereitungen

von Thomas,
assono GmbH, Standort Kiel,

Um alles möglichst detailliert und nachvollziehbar zu beschreiben, möchte ich von möglichst geringen, genau definierten Voraussetzungen ausgehen. In diesem Fall heißt das:

Ich habe eine (virtuelle) Maschine unter CentOS 8, die ich als "Server mit GUI" installiert hatte.

Außerdem habe ich OpenSSL in der aktuellsten Versionen der Distribution installiert:

yum -y install openssl

Als Basis für die Artikelserie verwende ich das Verzeichnis /local/assono-ca:

mkdir /local/assono-ca
cd /local/assono-ca

Zertifikate erhalten eine eindeutige Nummer (die wirklich immer eindeutig sein muss). Die Hexadezimalzahl muss mindestens zwei Stellen haben. In der folgenden Datei wird später die zuletzt vergebene Seriennummer gespeichert werden:

echo 01 > serial

Und schließlich werden in der folgenden Datei die von der CA ausgestellten Zertifikate aufgelistet werden. Dazu können wir mit einer leeren Datei beginnen:

touch index.txt

Verschlüsselte Passwort-Datei erstellen

Aus Sicherheitsgründen ist es äußerst sinnvoll, die CA mit einem hochkomplexen und sehr langen Passwort zu schützen. Um das Passwort aber nicht immer wieder bei jeder Nutzung der CA eingeben zu müssen, kann man es in eine Schlüsseldatei schreiben, die wiederum sicher verschlüsselt gespeichert wird.

Ein langes, komplexes Passwort in die Datei passwort.txt schreiben und speichern:

cd /local/assono-ca
nano passwort.txt

Die Datei verschlüsseln wir jetzt mit AES256. Das eingegebene Passwort darf jetzt kürzer und einfacher sein, weil es nur zusammen mit der Datei "funktioniert". Wir haben jetzt eine 2-Faktor-Authentifizierung: Die Datei ist der erste Faktor, das Passwort, mit dem sie verschlüsselt ist, ein zweiter.

openssl enc -aes256 -pbkdf2 -salt -in passwort.txt -out passwort.enc
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:

Wenn man sich den Inhalt ansieht, sieht man (hoffentlich) nicht viel:

cat passwort.enc

Oder zur Kontrolle kann man das ursprügnliche Passwort noch einmal entschlüsselt ausgeben:

openssl enc -aes256 -pbkdf2 -salt -d -in passwort.enc
enter aes-256-cbc decryption password:
***********************************

Die unverschlüsselte Datei sollte man jetzt löschen:

rm -f passwort.txt

Zur Steigerung der Sicherheit die Zugriffsrechte so weit reduzieren, dass nur noch der Benutzer root darauf zugreifen kann:

chmod -R go-rwx *

Unsere beiden Verzeichnisse sollten jetzt so aussehen:

ls -l
insgesamt 4
-rw------- 1 root root 64 6. Jul 20:46 passwort.enc
drwx------ 2 root root 37 7. Jul 11:28 root

ls -l root/
insgesamt 4
-rw------- 1 root root 0 7. Jul 11:28 index.txt
-rw------- 1 root root 3 7. Jul 11:28 serial

Damit sind unsere Vorbereitungen abgeschlossen und wir können als Nächstes unsere Root-CA erstellen.

Nächster Artikel in dieser Reihe:

Neue Artikelserie: eigene, mehrstufige Zertifizierungsstelle aufsetzen mit OpenSSL

Quellen:

Fachbeitrag Sicherheit Administration Für Entwickler

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 416
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de