Was SSH wirklich macht
Obwohl Splync HTTPS verwendet, um die Verbindung zwischen Ihrem Smartphone und unserem Server zu schützen, müssen wir dennoch den Server selbst sichern, um die Sicherheit der Benutzerdaten zu gewährleisten. App-Entwickler und Systemadministratoren benötigen einen sicheren Weg, um auf diesen Server zuzugreifen, um Wartungen durchzuführen und Updates bereitzustellen. Hier kommt SSH (Secure Shell) ins Spiel. Es ist ein Protokoll, das es autorisierten Benutzern ermöglicht, sich sicher auf entfernten Computern anzumelden, sogar über unsichere Netzwerke hinweg. SSH ersetzt ältere, unsichere Methoden wie Telnet, das Benutzernamen und Passwörter im Klartext übertrug.
Die Idee hinter „Schlüsseln“
SSH verlässt sich nicht auf ein typisches Passwort. Stattdessen verwendet es kryptografische Schlüssel — ein zueinander passendes Paar aus einem öffentlichen und einem privaten Schlüssel. Stellen Sie sich diese als Schloss und Schlüssel vor, die nur zusammenpassen. Der öffentliche Schlüssel liegt auf dem Server und der private Schlüssel bleibt beim Benutzer. Wenn Sie sich verbinden, fordert der Server Sie heraus, zu beweisen, dass Sie den privaten Schlüssel besitzen, ohne ihn jemals offenzulegen. Das macht es nahezu unmöglich, dass jemand Sie nachahmt. Während herkömmliche Passwörter erraten, geleakt oder wiederverwendet werden können, sind SSH-Schlüssel lange, zufällige kryptografische Zeichenfolgen — praktisch unerratbar. Selbst wenn es jemandem gelingt, die Verbindung abzuhören, sieht er nur verschlüsseltes Rauschen. Da SSH-Schlüssel niemals über das Netzwerk gesendet werden, gibt es unterwegs nichts zu stehlen.
Wie ein SSH-Schlüssel tatsächlich aussieht
Wenn Sie noch nie einen SSH-Schlüssel gesehen haben, könnte er abstrakt klingen — aber es ist wirklich nur ein langer Block kodierten Textes. Ein öffentlicher Schlüssel ist typischerweise ein paar hundert Zeichen lang, während ein privater Schlüssel weit über tausend Zeichen erreichen kann. Beide werden als Textdateien gespeichert, aber ihr Inhalt sieht aus wie zufälliges Rauschen — eine Mischung aus Buchstaben, Zahlen und Symbolen. Der öffentliche Schlüssel kann sicher geteilt werden; es ist wie das Anbringen Ihres Schlosses am Server. Der private Schlüssel hingegen ist Ihre einzigartige digitale Identität und darf niemals geteilt werden. Er wird lokal auf Ihrem Computer gespeichert und nur verwendet, um zu beweisen, dass Sie der sind, der Sie vorgeben zu sein — ohne jemals den Schlüssel selbst offenzulegen.
Öffentlicher Schlüssel und privater Schlüssel
Ein öffentlicher Schlüssel ist wie ein Schloss, das Sie an Ihrem Haus anbringen. Jeder kann es von der Straße aus sehen, genau wie das Schloss an Ihrer Haustür. Aber das Anschauen des Schlosses verrät niemandem, wie man es öffnet. Mit anderen Worten, jeder kann es sehen, aber nur der richtige Schlüssel kann es entsperren. Der private Schlüssel hingegen ist der Schlüssel, der das Schloss öffnet — und er bleibt sicher bei Ihnen. Wenn jemand anderes Ihren privaten Schlüssel in die Hände bekommt, kann er Ihr Haus betreten, als wäre er Sie. Deshalb muss er immer geheim gehalten werden.
SSH-Mechanismus
Jeder öffentliche und private Schlüssel bildet ein einzigartiges Paar. Sie werden zusammen durch einen mathematischen Prozess generiert, sodass nur dieser bestimmte private Schlüssel zu seinem entsprechenden öffentlichen Schlüssel passt. Sie können sie sich als maßgeschneidertes Schloss und Schlüssel vorstellen — zusammen geschmiedet, und kein anderer Schlüssel auf der Welt passt zu diesem Schloss. Selbst wenn Sie ein weiteres Paar mit demselben Algorithmus (wie RSA oder Ed25519) generieren, werden die inneren Zahlen völlig unterschiedlich sein. Die Mathematik, die die beiden verbindet, ist einseitig: Sie können den öffentlichen Schlüssel leicht aus dem privaten ableiten, aber es ist praktisch unmöglich, den privaten Schlüssel aus dem öffentlichen zu ermitteln. Deshalb ist jedes SSH-Schlüsselpaar einzigartig und sicher.
Wie SSH Ihre Identität beweist
Wenn Sie sich mit SSH auf einem Server anmelden, verlässt Ihr privater Schlüssel niemals Ihren Computer. Stattdessen sendet der Server eine zufällige Herausforderung — wie ein einmaliges Rätsel — das nur Ihr privater Schlüssel lösen kann. Ihr Computer signiert diese Herausforderung mathematisch und erzeugt eine kurze Antwort, die der Server mit Ihrem öffentlichen Schlüssel überprüfen kann. Wenn die Antwort passt, weiß der Server, dass Sie den korrekten privaten Schlüssel besitzen — ohne ihn jemals zu sehen. Das ist die Magie der modernen Kryptografie: Sie können Ihre Identität beweisen, ohne Ihr Geheimnis preiszugeben. Die SSH-Authentifizierung funktioniert, weil Ihr privater Schlüssel alle Informationen enthält, um den öffentlichen Schlüssel abzuleiten, aber der umgekehrte Prozess ist praktisch unmöglich.
Wie Entwickler SSH in der Praxis nutzen
Jedes Mal, wenn Entwickler Code bereitstellen, eine Datenbank aktualisieren oder einen Dienst neu starten, verbinden sie sich häufig über SSH mit ihren Remote-Servern. Nach der Authentifizierung erhalten sie eine sichere Kommandozeilenverbindung zum Server. Von dort aus können sie Dateien verwalten, Dienste neu starten oder Protokolle überprüfen — alles Ende-zu-Ende-verschlüsselt. Im Fall von Splync ist SSH der Weg, wie wir unseren Cloud-Server sicher verwalten. Jede Administrationsaufgabe — Updates bereitstellen, Protokolle überprüfen, Daten sichern — wird durch SSH-Verbindungen durchgeführt, die durch kryptografische Schlüssel geschützt sind. Niemand kann auf den Server zugreifen, ohne den korrekten privaten Schlüssel. Selbst wenn jemand unsere IP-Adresse wüsste, öffnet sich die Tür ohne diesen Schlüssel einfach nicht.
Als Nächstes: Verschlüsselung im Inneren des Servers
SSH schützt den Zugang zum Server, und HTTPS schützt die Daten während der Übertragung. Aber wie sichern wir die Daten, sobald sie in der Datenbank sind? Hier kommen Hashing und Verschlüsselung ins Spiel — die letzte Verteidigungsschicht.