Kategorie: Crypt

OpenSSL-HowTo

EDIT: Cool, irgendwie in den Entwürfen wiedergefunden, passt ja zum vorherigen Thema…: Link

Hier mal die (für mich) wichtigsten Infos über OpenSSL, CAs, Zertifikate und was weiß ich zusammengefasst:

Dateiarten:
*.csr:

*.pem:
Base64 kodiert, enthält den Schlüssel und das Zertifikat in einer Datei, beginnt (für den Schlüssel) mit „—–BEGIN RSA PRIVATE KEY—–“ und endet mit „—–END RSA PRIVATE KEY—–“, darauf folgt (für das Zertifikat) „—–BEGIN CERTIFICATE—–“ und endet mit „—–END CERTIFICATE—–“
*.crt:

*.key

*.der

Umwandlung von Zertifikaten:

Aufbau einer CA
openssl.cnf editieren, so dass die Einstellungen passen ,z.B. default_bits = 2048 (Setzt die Schküssellänge auf 2048Bit, default 512, oder 1024)
Verzeichnisse anlegen, die in der openssl.cnf beschrieben sind (ich mache es meist im Verzeichnis /etc/ssl/RootCA)
Unterverzeichnisse anlegen:
cd ./RootCA
mkdir newcerts certs crl private
# 2 separate Dateien anlegen
touch index.txt serial
# serial-Datei „befüllen“
echo „01“ > serial

Root-Zertifikat der CA erstellen
# Erst den Key
openssl genrsa -out -aes256 /etc/ssl/RootCA/private/RootCA.key.pem 2048
# Wenn -aes256 nicht angegeben wird, wird der Schlüssel unverschlüsselt (und ohne PW) abgespeichert
# 2048 am Ende steht für die Schlüssellänge

# Jetzt das Zertifikat (öffentlicher Teil)
openssl req -new -x509 -days 1027 -key private/RootCA.key.pem -out ./RootCA-cert.pem
# Das PW für den private Key muss angegeben werden
# mit
openssl x509 -in RootCA-cert.pem -text -noout | less
das Zertifikat überprüfen, die Seriennummer muss 0 sein

Jetzt ist das Zertifikat für die RootCA erstellt, es können nun Zertifikatsanforderungen gestellt werden, die die CA signieren muss
cd RootCA
# Erst den Key (wenn mit PW, dann -aes256 angeben) sonst wird kein PW hinterlegt (z.B. für Server)
openssl genrsa -out NAME.key.pem 1024
# Dann den CSR
openssl req -new -key NAME.key.pem -out NAME.req.pem
# Dann signieren
cd /etc/ssl/
openssl ca -name CA_NAME -cert ./RootCA/RootCA-cert.pem -keyfile ./RootCA/private/RootCA.key.pem -in ./RootCA/certs/ZERTIFIKAT.req.pem -out ./RootCA/certs/ZERTIFIKAT.cert.pem -outdir ./RootCA/newcerts/

Das Zertifikat wird in ./RootCA/newcerts abgelegt

CSR erstellen

Signieren

SSL-Verbindung mit sslsniff

Falls ich es mal wieder brauche:

CA und Konsorten erstellen:

CA-Key:
openssl genrsa -aes256 -out ca-key.pem 2048
Root-Cert:
openssl req -x509 -new -nodes -extensions v3_ca -key ca-key.pem -days 1024 -out ca-root.pem -sha512
Zertifikat erstellen:
openssl genrsa -out zertifikat-key.pem 4096
CSR für das Zertifikat:
openssl req -new -key zertifikat-key.pem -out zertifikat.csr -sha512
Beim CN auf den richtigen CN achten
Zertifikat erstellen:
openssl x509 -req -in zertifikat.csr -CA ca-root.pem -CAkey ca-key.pem -CAcreateserial -out zertifikat-pub.pem -days 365 -sha512

IPtables anpassen:
iptables -t nat -A PREROUTING -p tcp –-dport 443 -j REDIRECT –-to-ports 4433
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j MASQUERADE

sslsniff starten:
sslsniff -a -c /root/zertifikat-pub.pem -s 4433 -w /tmp/https.log

DM-Crypt entdecken

Wenn man mal wieder bei der Analyse von Festplatten auf einigen Partitionen nur Müll sieht, kann es sein, dass irgendwie verschlüsselte Systeme genutzt werden.
Evtl. hilft es dann, in einer evtl. unverschlüsselten Bootpartition mal nach Hinweisen danach zu suchen.
Wenn man dm-crypt nutzt, um seine Daten vor unberechtigtem Zugriff zu schützen, steht z.B. in der syslinux.cfg (sofern dies verwendet wurde) so etwas wie
APPEND cryptodevice
Bei Grub steht dort so etwas wie
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice

So einfach kann es sein…