SSH-keygen ist ein essentielles Kommandozeilenwerkzeug zur Erstellung, Verwaltung und Konvertierung von Authentifizierungsschlüsseln für SSH-Verbindungen. Das Tool ist integraler Bestandteil der OpenSSH-Suite und steht auf nahezu allen modernen Betriebssystemen zur Verfügung, einschließlich Raspberry Pi, Linux, macOS sowie Windows 10 und 11. „SSH Key Generierung und RFC4716-Format Konvertierung mit ssh-keygen für Elliptische Kurven (ed25519)“ weiterlesen
Elliptische Kurven sind für sichere Verschlüsselungen wichtig deshalb hier den Elliptic Curve Diffie-Hellman (ECDH)
Elliptische Kurven sehen auf den ersten Blick aus wie geschwungene Linien, ähnlich einer Schlaufe, aber sie haben nichts mit Ellipsen zu tun, die wie Ovale aussehen. Ihr Name kommt aus der Mathematik, aber es ist nur ein Name, keine Beschreibung der Form. Habe hier schon einige Artikel zu Raspberry Pi und XCA geschrieben.
Man kann sich elliptische Kurven so vorstellen: Wenn du zwei Punkte auf der Kurve hast, kannst du eine Linie durch diese Punkte zeichnen. Diese Linie trifft die Kurve meistens an genau einem dritten Punkt. Diesen dritten Punkt spiegelt man dann an der x-Achse, und das Ergebnis ist eine Art Summe der beiden Punkte. So kann man mit Punkten auf der Kurve nach bestimmten Regeln rechnen.
Diese besondere Art zu rechnen macht elliptische Kurven für sichere Verschlüsselungen wichtig, weil es sehr schwer ist, aus einem Ergebnis die ursprünglichen Punkte zurückzurechnen.
Wollte auch noch, wie gestern, den Diffie-Hellman-Schlüsselaustausch mit Elliptische Kurven in Java zeigen:
Diffie-Hellman-Schlüsselaustausch – das erste der sogenannten asymmetrischen Kryptoverfahren (auch Public-Key-Kryptoverfahren)
Der Diffie-Hellman-Schlüsselaustausch ist ein Weg, wie zwei Menschen einen geheimen Schlüssel finden können, ohne ihn direkt hin- und herzuschicken.
Zuerst einigen sie sich öffentlich auf eine große Zahl (eine Primzahl) und eine Basiszahl.
Jeder wählt dann eine geheime Zahl für sich selbst. Mit der geheimen Zahl rechnen sie eine neue Zahl aus, die sie dem anderen schicken.
Danach kann jeder mit der Zahl vom anderen und seiner eigenen geheimen Zahl denselben geheimen Schlüssel berechnen. Und zwar so:
Einfach gesagt und ein Beispiel in Java: „Diffie-Hellman-Schlüsselaustausch – das erste der sogenannten asymmetrischen Kryptoverfahren (auch Public-Key-Kryptoverfahren)“ weiterlesen
Portainer.io CE im Docker mit docker-compose mit eigenen Zertifikaten auf dem Raspberry Pi
Portainer.io CE (Community Edition) ist eine Open-Source-Management-Plattform für Docker-Container und Kubernetes. Es bietet eine grafische Benutzeroberfläche, mit der Benutzer ihre Container, Netzwerke und Volumes einfach verwalten können, ohne komplexe CLI-Befehle verwenden zu müssen. Es unterstützt mehrere Umgebungen und bietet Funktionen wie Benutzer- und Zugriffsverwaltung, App-Deployment und Monitoring.
Es richtet sich an Entwickler und Administratoren, die Container-Infrastrukturen effizienter und intuitiver verwalten wollen. Infos zu Portainer.io CE hier.
Wenn man keine eigenen Zertifikate verwendet, werden eigenen selbstsignierte verwendet. „Portainer.io CE im Docker mit docker-compose mit eigenen Zertifikaten auf dem Raspberry Pi“ weiterlesen
Syncthing Zertifikate und Keys für die HTTPS-GUI-Verbindung durch benutzer Zertifikate auf dem Raspberry PI ersetzen
Syncthing generiert automatisch selbstsignierte Zertifikate und Keys. Wenn man eigene Zertifikate verwenden will, muss man den Server runterfahren und die Zertifikats Datei https-cert.pem und den privaten Schlüssel https-key.pem durch eigene Zertifikate ersetzen. Die Zertifkate liegen z.B. auf dem Raspberry Pi wenn das syncthing mit apt install installiert wurde im
~/.config/syncthing
Verzeichnis. Alle Parameter von synching sind hier zu finden.
Dann einfach den Server neu starten. „Syncthing Zertifikate und Keys für die HTTPS-GUI-Verbindung durch benutzer Zertifikate auf dem Raspberry PI ersetzen“ weiterlesen
flightaware update: öffentlicher Schlüssel nicht verfügbar: NO_PUBKEY B931BB28DE85F0DD und gpg anstatt apt-key
Bei einem sudo apt update, kommt es mit einem piaware Repo von flightaware.com zu dieser
Fehlermeldung: „flightaware update: öffentlicher Schlüssel nicht verfügbar: NO_PUBKEY B931BB28DE85F0DD und gpg anstatt apt-key“ weiterlesen
Curve25519 private/public Key generieren für Hidden Onion-Services inkl. sprechenden Domainnamen mit mkp224o
Hidden Onion Services sind eine Art von Tor-Service, die es Benutzern ermöglichen, anonym und sicher mit anderen zu kommunizieren. Um einen Hidden Onion-Service einzurichten, ist es erforderlich, einen privaten und öffentlichen Schlüssel zu generieren (Also vanity address generator for tor onion v3 (ed25519) hidden services).
Dank an Dr.Kleinhirn.eu für die Mindmap.
Curve25519 … eine elliptische Kurve, die für asymmetrische Kryptosysteme genutzt wird. Sie wird üblicherweise für digitale Signaturen und Schlüsselaustauschprotokolle genutzt und gilt als besonders schnell. Sie ist von der IETF als RFC 7748 standardisiert. Die Kurve ist nicht durch bekannte Patente geschützt. Sie ist Public Domain. „Curve25519 private/public Key generieren für Hidden Onion-Services inkl. sprechenden Domainnamen mit mkp224o“ weiterlesen
RSA Checkliste für SSL-Zerfikate erstellen mit XCA für Portainer
ECC wird oft als zukunftssicherer angesehen, da es auf mathematischen Konzepten basiert, die voraussichtlich auch bei Fortschritten in der Kryptanalyse sicher bleiben. RSA hingegen könnte anfälliger für Angriffe werden, wenn leistungsfähigere Computer und Algorithmen entwickelt werden. ECC wird aufgrund seiner Effizienz und Sicherheitseigenschaften RSA in vielen modernen Anwendungen ersetzen. ECC läuft aber halt noch nicht überall. Portainer kann leider noch keine ECC (secp256k1), deshalb in diesen Beitrag einer Zertifikatserzeugung mit RSA Key und XCA.
Es sind diese 9 Schritte nötig. Unten gibt es die Checkliste zum kostenlosen Download.
1. XCA installieren (https://hohnstaedt.de/xca/index.php)
2. XCA starten (XCA-Menü: Zubehör-XCA, http://blog.wenzlaff.de/?p=20761) „RSA Checkliste für SSL-Zerfikate erstellen mit XCA für Portainer“ weiterlesen
Die wichtigsten Unterschiede zwischen Trust Stores und Key Stores für Java und HTTPS
Die wichtigsten Unterschiede zwischen Trust Stores und Key Stores für Java und HTTPS.
Der Key Store speichert private Schlüssel und zugehörige Zertifikate zur Identifizierung und Authentifizierung.
Der Trust Store speichert Zertifikate von vertrauenswürdigen Zertifizierungsstellen zur Überprüfung der Glaubwürdigkeit von Remote-Entitäten.
Beide Speicher sind wichtig, um eine sichere Kommunikation über HTTPS und andere verschlüsselte Protokolle zu gewährleisten. Der Key Store ermöglicht die Identifizierung und Authentifizierung, während der Trust Store das Vertrauen in die Gegenstelle sicherstellt. Hier die Unterschiede als Mindmap und als Tabelle:
„Die wichtigsten Unterschiede zwischen Trust Stores und Key Stores für Java und HTTPS“ weiterlesen
JSON Web Token mit Java (JWT) erzeugen ist nicht schwer mit JJWT
Ein Web-Token ist mit Java schnell erzeugt…. „JSON Web Token mit Java (JWT) erzeugen ist nicht schwer mit JJWT“ weiterlesen
CA-Zertifikat mit Elliptic Curve Cryptography (ECC) Key auf dem Raspberry Pi für 10 Jahre erzeugen
Hier hatte ich beschrieben, wie ein 521-Bit private Elliptic Curve Cryptography (ECC) Key erzeugt werden kann. Mit diesem privaten Key können wir auch leicht eine CA-Zertifikat erzeugen. Einfach in dem Verzeichnis mit dem privaten Key ein:
openssl req -new -x509 -days 3650 -extensions v3_ca -key private-key.pem -out ecc-cacert.pem
eingeben und diese Fragen beantworten (oder einfach Return, dann wir der default verwendet).
Zuerst zweimal das gleich gutes Passwort eingeben. Wichtig ist auf jeden Fall der Common Name (e.g. server FQDN or YOUR name) Z.B. www.wenzlaff.de oä. und dann:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-State]:Niedersachsen Locality Name (eg, city) []:Langenhagen Organization Name (eg, company) [Internet Widgits Pty Ltd]:TW-Soft Organizational Unit Name (eg, section) []:TW-Soft CA-Zertifikat Common Name (e.g. server FQDN or YOUR name) []:pi-zero Email Address []:info-anfrage@wenzlaff.de Warning: No -copy_extensions given; ignoring any extensions in the request |
Und schon liegt ein CA-Zertifikat in der Datei ecc-cacert.pem.
Die kann mit cat ecc-cacert.pem angesehen werden: „CA-Zertifikat mit Elliptic Curve Cryptography (ECC) Key auf dem Raspberry Pi für 10 Jahre erzeugen“ weiterlesen
Bitcoin (XBT) >38k wg. Amazon? – dann mal gleich ein private ECC Key auf dem Pi mit neuem OpenSSL 3.0.0-beta1 generieren
Ein 521-Bit private Elliptic Curve Cryptography (ECC) Key mit secp521r1 erzeugen. Kleiner geht auch 😉
Ganz einfach:
openssl ecparam -out private-key.pem -name secp521r1 -genkey
Ausgabe des keys mit cat private-key.pem z.B.: „Bitcoin (XBT) >38k wg. Amazon? – dann mal gleich ein private ECC Key auf dem Pi mit neuem OpenSSL 3.0.0-beta1 generieren“ weiterlesen
OpenSSL nicht nur mit dem Raspberry Pi oder wie können Zertifikate selbst signiert werden mit eigener selbst-signierter Root-CA?
OpenSSL ist ein in C entwickeltes Kryptographiewerkzeug für das Secure Socket Layer (SSL). Es enthält das Mehrzweck-Befehlszeilenwerkzeug /usr/bin/openssl. Das Programm eignet sich für kryptographische Operationen wie:
- Erzeugung von RSA-, DH- und DSA-Schlüssel-Parametern
- Erzeugung von X.509-Zertifikaten, CSRs und CRLs
- Berechnung von kryptographischen Einweg-Hashfunktionen
- Ver- und Entschlüsselung mit Chiffren
- Prüfung von SSL-/TLS-Clients und -Servern
- Bearbeitung von S/MIME-signierter oder verschlüsselter E-Mail
Welche Version ist auf dem Raspberry Pi installiert? Ein „OpenSSL nicht nur mit dem Raspberry Pi oder wie können Zertifikate selbst signiert werden mit eigener selbst-signierter Root-CA?“ weiterlesen
SSH Anmeldung an dem Raspberry Pi ohne Passwort mit Elliptische Kurve – ed25519 Key
Wenn man vom Mac (Windows geht natürlich auch) aus auf einen entfernten Raspberry Pi 4 B zugreifen will, kann man das auch ohne jedesmal ein Passwort eingeben zu müssen. Dafür kann das moderne ed25519 Key Verfahren verwendet werden.
Dazu muss auf dem Pi ein .ssh Verzeichnis mit einer authorized_keys Datei angelegt werden:
1 2 3 4 5 6 7 |
# wenn das <strong>.ssh</strong> Verzeichnis (Achtung, Verzeichnisname mit Punkt) noch nicht da ist, dann anlegen mit mkdir .ssh cd .ssh touch authorized_keys chmod 700 ~/.ssh/ chmod 600 ~/.ssh/authorized_keys |
Dann in der /etc/ssh/sshd_config des Pi die folgenden Einträge setzen: … „SSH Anmeldung an dem Raspberry Pi ohne Passwort mit Elliptische Kurve – ed25519 Key“ weiterlesen
Upgrade deine SSH Keys auf: ed25519
Die auf dem Rechner installierten SSH-Keys können mit diesem Befehl gelistet werden:
1 |
for keyfile in ~/.ssh/id_*; do ssh-keygen -l -f "${keyfile}"; done | uniq |
Dabei ist der Algorithmus wichtig, der angezeigt wird. … „Upgrade deine SSH Keys auf: ed25519“ weiterlesen
Java Bitcoin: BIP39 Mnemonic Generierung mit Adressen mit Java auf einem Raspberry Pi in 1 Minute – Crypto BPMN
Wie kann man für Bitcoin die geheimen Wörter, private und public Key und Adressen mit Java auf einem Raspberry Pi generieren? Hier mal ein Beispiel. Zuerst ein BPMN für den Überblick wie es läuft.
Das geht in 1 Minute, mit diesen drei Schritten auf der Komandozeile … „Java Bitcoin: BIP39 Mnemonic Generierung mit Adressen mit Java auf einem Raspberry Pi in 1 Minute – Crypto BPMN“ weiterlesen
Update des Raspberry Pi mit PiAware von 2.1 auf 3.5.3 und Bing Map einstellen
Bin nun wieder von meiner Weltreise zurück. In der zwischenzeit gab es einige Updates.
Es gibt eine neue Version von PiAware mit der Nummer 3.5.3 Deshalb diese Version laden und gleich das ganze System updaten:
1 2 3 4 5 6 7 |
wget http://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_3.5.3_all.deb sudo dpkg -i piaware-repository_3.5.3_all.deb sudo apt-get update sudo apt-get upgrade sudo apt-get install piaware piaware -v # Ergebnis 3.5.3 |
Dann auch gleich dump1090-mutability_1.15~dev neu erstellen und installieren: „Update des Raspberry Pi mit PiAware von 2.1 auf 3.5.3 und Bing Map einstellen“ weiterlesen
Was ist zu tun, wenn auf einem Raspberry Pi bei apt-get update der folgende Fehler erscheint: „GPG error: http://repo.mutability.co.uk wheezy Release: The following signatures were invalid: KEYEXPIRED“
Was ist zu tun, wenn auf einem Raspberry Pi bei einem
1 |
sudo apt-get update |
der folgende Fehler erscheint:
„GPG error: http://repo.mutability.co.uk wheezy Release: The following signatures were invalid: KEYEXPIRED“
Da ist ein GPG Key abgelaufen. Der Key kann wie folgt aktualisiert werden: „Was ist zu tun, wenn auf einem Raspberry Pi bei apt-get update der folgende Fehler erscheint: „GPG error: http://repo.mutability.co.uk wheezy Release: The following signatures were invalid: KEYEXPIRED““ weiterlesen
Sicherheitsupdate für das Raspberry Pi wheezy Package APT erschienen
Mittels APT (Advanced Packaging Tool) ist es sehr einfach, Programmpakete zu suchen, zu installieren oder auch das ganze System auf den neuesten Stand zu bringen. Für dieses Tool gibt es nun ein Sicherheitspatch der installiert werden sollte.
Zitat: „It was discovered that APT, the high level package manager, does not
properly invalidate unauthenticated data (CVE-2014-0488), performs
incorrect verification of 304 replies (CVE-2014-0487), does not perform
the checksum check when the Acquire::GzipIndexes option is used
(CVE-2014-0489) and does not properly perform validation for binary
packages downloaded by the apt-get download command (CVE-2014-0490).
For the stable distribution (wheezy), these problems have been fixed in
version 0.9.7.9+deb7u3.
For the unstable distribution (sid), these problems have been fixed in
version 1.0.9.“
Bei der Gelegenheit gleich alles updaten mit: „Sicherheitsupdate für das Raspberry Pi wheezy Package APT erschienen“ weiterlesen
Mit welcher Konfiguration kann man lokal per VPN auf ein OpenVPN-Server der auf OpenWtr läuft mit dem Mac Client Tunnelblick zugreifen?
Wenn der VPN Client Tunnelblick installiert ist, ein Verzeichnis anlegen mit der Extension
.tblk
z.B. OpenWRT10.tblk
In diese Verzeichnis die Datei OpenWRT10.ovpn mit folgenden Inhalt kopieren:
remote 192.168.2.223 1194
client
dev tun
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert thomas.crt
key thomas.key
cipher bf-cbc
comp-lzo
# Statische IP Adresse: Server 10.0.0.1 Client 10.0.0.2
ifconfig 10.0.0.2 10.0.0.1
verb 3
mute 20
Die folgenden drei Zertifikate müssen auch in diesem Verzeichnis vorhanden sein:

Dann kann mit einem doppelklick auf das Verzeichnis die VPN Verbindung aufgebaut werden. Wenn die Verbindung geklappt hat, erscheint: