it-swarm.com.de

SSH-Passwort vs. Schlüsselauthentifizierung

Mir wurde normalerweise gesagt, dass die Authentifizierung mit öffentlichem Schlüssel der Kennwortauthentifizierung für SSH stark vorgezogen wird. Unser vorheriger Administrator war jedoch gegen öffentliche Schlüssel und gab nur Passwörter aus und achtete darauf, unterschiedliche Passwörter für verschiedene Server zu verwenden (von pwgen generierte Passwörter; sie sind relativ schwer zu erzwingen, aber garantiert von aufzuschreiben der Nutzer). Also möchte ich fragen:

  1. Ist die Verwendung eines Kennworts für die Verwaltung sinnvoller (Nicht-Root mit mehr oder weniger Sudo-Funktionen)? Angesichts der Tatsache, dass Passwörter anders sind, wo der Schlüssel wahrscheinlich nicht wäre, und das Passwort auch für Sudo verwendet wird.
  2. War es auch für ein spezielles Konto für den SFTP-Upload (auf ein bestimmtes Verzeichnis beschränkt) in Ordnung, bei dem das Kennwort in einer Datei auf einem anderen Server landet, da der Upload unbeaufsichtigt sein muss? Der öffentliche Schlüssel würde unverschlüsselt auf demselben anderen Server gespeichert.
25
Jan Hudec

Es ist so ähnlich… Ich bin geschieden und habe eine vitriolische Ex-Frau. Ich habe auch drei großartige Jungen, die wie die meisten Jungen vergesslich sein können, Dinge verlieren und die auch ihre Mutter lieben. Als meine Jungen alt genug wurden, um einen Schlüssel für mein Haus zu benötigen, hatte ich eine Entscheidung zu treffen: Benutze ich ein Schlüsselschloss oder einen dieser numerischen Tastenfelder? Wenn ich das Schlüsselschloss benutze, war es sicher, dass meine Söhne regelmäßig Schlüssel verlieren würden; Ich würde Anrufe bekommen, um von der Arbeit nach Hause zu kommen und sie hereinzulassen; und es gab eine große Möglichkeit, dass ich das Schloss ersetzen oder von Zeit zu Zeit neu verschlüsseln musste, weil die Anzahl der "verlorenen Schlüssel" (oder die Wahrscheinlichkeit, dass meine vitriolische Ex-Frau jetzt einen besaß) eine unangenehme Grenze erreichte.

Obwohl es vielleicht nicht das sicherste auf der Welt ist, hatte ich mit dem Zahlenschloss keine Bedenken, dass die Schlüssel verloren gehen könnten. Ich könnte meinen Söhnen die Combo von der Arbeit schreiben (ohne nach Hause zu kommen), wenn sie es vergessen hätten; und ich konnte es regelmäßig ändern, wenn ich das Gefühl hatte, dass es kompromittiert wurde. Ich konnte auch entscheiden, wie lange und/oder komplex ich es wollte. Wenn ich dachte, mein Ex hätte es, könnte ich es auch ändern. Viel einfacher und weniger Gesamtbetriebskosten.

Das Schlüsselschloss ist wie PK. Die numerische Sperre ähnelt Passwörtern. Am Ende kann ich Ihnen sagen, dass ich mit der numerischen Sperre viel sicherer bin, weil ich mein eigenes Schicksal wähle und dies so dynamisch tun kann, wie ich möchte. Und denken Sie daran, die Realität ist, dass die Tür nur einer der Wege in mein Haus ist.

21
Tek Tengu

Bei der Passwortauthentifizierung merkt sich das Passwort und ist dafür verantwortlich, dass es niemandem mitgeteilt wird. Bei der Authentifizierung mit öffentlichem Schlüssel hat der Benutzer irgendwo den privaten Schlüssel als Datei gespeichert.

Benutzer bevorzugen die schlüsselbasierte Authentifizierung, da sie in der Praxis bequemer zu verwenden ist (SSH-Clients verwenden den Schlüssel transparent, sodass der Benutzer keinen Aufwand hat). Die schlüsselbasierte Authentifizierung impliziert jedoch Folgendes:

  • Der Benutzer selbst verwaltet die Schlüssel und welche Schlüssel akzeptiert werden oder nicht, indem er die öffentlichen Schlüssel in sein .ssh/authorized_keys Datei.
  • Der private Schlüssel wird notwendigerweise irgendwo als Datei gespeichert, möglicherweise (aber nicht unbedingt) durch eine Passphrase geschützt.
  • Die Wahl der lokalen Passphrase (oder deren Fehlen) ist für den Server-Systemadministrator völlig unerreichbar.

Einige Systemadministratoren bevorzugen die Verwendung der schlüsselbasierten Authentifizierung, da sie menschlichen Benutzern nicht vertrauen, wenn sie sich ein sicheres Kennwort merken. Sie glauben, dass die Sicherheit einer privaten Schlüsseldatei für durchschnittliche Benutzer einfacher zu gewährleisten ist als die Generierung und Verwendung eines sicheren Kennworts. Die meisten Systemadministratoren sind jedoch der Ansicht, dass private Schlüsseldateien eine offensichtliche Sicherheitslücke darstellen, während sie bei Kennwörtern über Schadensbegrenzungsmechanismen verfügen: Sie können "Kennwortregeln" durchsetzen, wenn das Kennwort ausgewählt wird, und sie können Kennwörter zentral blockieren oder zurücksetzen, wenn sie dies wünschen. Es ist wirklich ein Gleichgewicht zwischen dem Vertrauen des Systemadministrators in die Benutzer (Vertrauen in ihre Kompetenz, nicht in ihre Ehrlichkeit) und dem Kontrollfreak des Systemadministrators.

11
Tom Leek

Passwörter

  • kann leicht zu vergessen sein.
  • kann leicht zu erraten/zu knacken sein.
  • kann unterschiedliche Einschränkungen in Bezug auf Zeichen haben, die Sie verwenden können, Länge ...
  • werden sehr oft auf verschiedenen Diensten wiederverwendet.
  • haben Sie von dieser durchgesickerten Passwortdatenbank gehört?

Challenge-Response

SSH-Schlüssel (oder API-Token)

  • sie müssen nicht erinnert werden (auf Ihrem Computer gespeichert).
  • sind schwieriger zu erraten/zu knacken (im Vergleich zu Wörterbuchangriffen).
  • müssen nicht auf verschiedenen Diensten geteilt werden.

Asymmetrie/Passwortstärke.

  • Die meisten öffentlichen/privaten Schlüssellösungen verwenden asymmetrische Schlüssel (haben nichts anderes gehört, würden aber mein Geld nicht dafür einsetzen). Wenn Ihr öffentlicher Schlüssel kompromittiert ist, erhält ein Angreifer keinen Zugriff auf das System.
  • Kennwortdatenbanken müssen in eine Richtung verschlüsselt sein. und eine, die stark genug ist oder genug Rechenzyklen verschwendet, so dass es schwierig wird, Brute-Force zu betreiben.

Workflow zurücksetzen

Die Verwendung von Passwörtern oder SSH-Schlüsseln ist hier irrelevant. Irgendwann wird ein Benutzer entweder sein Passwort vergessen (z. B. hatte er CAPS LOCK, als er es erstellt hat ...) oder sein System neu installieren (z. B. Zeitmaschine/Upgrades ...). Wie gehen Sie mit solchen Situationen um? Sie müssen das Passwort/den Schlüssel ändern (vorausgesetzt, der vorherige ist kompromittiert) und dem Benutzer den neuen sicher mitteilen.

Siehe akzeptierte Antwort . Wenn Ihr Kind versucht, in Ihr Haus zu gelangen. Die Herausforderung besteht darin, dass Sie zuerst bestätigen müssen, dass es Ihr Sohn ist (z. B. wenn Sie wissen, dass es sich um ihre Telefonnummer handelt, Sie ihre Stimme erkennen, das ist der Herausforderungsteil ). . Der häufig verwendete Workflow besteht darin, ein temporäres Kennwort/ein Einmalkennwort zu generieren und Ihren Sohn das Kennwort ändern zu lassen. Dies könnte jedoch durchaus sein: Geben Sie ihnen ein Einmalkennwort und lassen Sie sie ihren neuen SSH-Schlüssel/API-Token hochladen. Sie könnten sich sogar nicht die Mühe machen, sie ihre Anmeldeinformationen ändern zu lassen und sie nur aus der Ferne einzulassen, wenn Ihre Tastatur/Tastensperre verbunden ist.

Hinweis: Nichts hindert Ihre Ex-Frau daran, mit Ihrem Sohn zusammenzuarbeiten, um Sie auszutricksen und Zugang zum Haus zu erhalten.

Welches ist besser?

Dies hängt von Ihrem Anwendungsfall und akzeptablen Verlusten ab. Da ein Benutzer beide Passwörter/SSH-Schlüssel/API-Token besitzt, kann der Benutzer sie freigeben. Wenn Sie die Kennwortauthentifizierung unterstützen und Kennwörter verloren gehen, müssen einige Ihrer Benutzer möglicherweise ihre Kennwörter auf externen Websites ändern - nur weil sie dieselben Kennwörter an anderer Stelle wiederverwenden. Wenn Sie öffentliche/private Schlüssel verwenden, müssen Sie sich weniger Sorgen machen.

Sie müssen nicht das eine oder andere auswählen. Sie können beide verwenden! ZB. Sie können sowohl eine Tastensperre (Ihre persönliche Kopie) als auch ein numerisches Vorhängeschloss (Gäste) haben.

8
dnozay

Passwörter können brutal erzwungen werden. Das Erraten eines öffentlichen Schlüssels ist so wesentlich unmöglich, dass sie als vollkommen sicher angesehen werden können. Kennwörter können nur einem pro Benutzer zugewiesen werden, während auf einem einzelnen Benutzerkonto mehrere Schlüssel installiert sein können. Wenn ich meinen Laptop verliere, muss ich nur den Eintrag für den Schlüssel meines Laptops in der Datei authorised_keys löschen, und auf dieses Konto kann ich von meinen anderen Geräten aus weiterhin mit eigenen Schlüsseln zugreifen. Einzelne Schlüssel können auch Befehlsbeschränkungen erhalten, wodurch eine automatisierte Verbindung ermöglicht wird, die einen bestimmten Befehl, jedoch keine vollständige Shell ausführt. Die einzige Möglichkeit, wie Kennwörter von Vorteil sind, besteht darin, den Zugriff auf ein vorhandenes Konto zu teilen, ohne sich anzumelden (um den neuen Schlüssel hochzuladen). Dies eröffnet die Sicherheitslücke, dass Sie dieses Kennwort ändern müssen, wenn Sie diesen Zugriff entfernen müssen, wenn ein Schlüssel individuell ist.

5
mikebabcock

Interessantes Thema, für mich ist das Passwort das sicherste. Ich verwende 4 verschiedene Passwörter für verschiedene Dinge, abhängig von der erforderlichen Sicherheit. Zum Beispiel verwende ich für eine Site wie diese so etwas wie (mexico1970), was mir egal ist, wenn es geknackt wird, da ich gerade bin poste auf der Seite und es gibt keine Kreditkarteninformationen oder andere wichtige Informationen zum Schutz, dann werde ich ein anderes Passwort für wichtigere Probleme haben, sagen wir für E-Mail etwas wie (!! carmelita.99), dann werde ich eines für Serverbenutzer haben Zugriff (XrE.67-73up), dann ein anderer für Root-Zugriff und für Bankkram (!!. CeRto-49er). Dann stelle ich sicher, dass ich diese Passwörter nicht aufschreibe. Ich merke sie mir, wenn ich mich mit meinen Servern verbinde Stellen Sie sicher, dass der SSH-Fingerabdruck bereits zu meinen bekannten Hosts hinzugefügt wurde. Andernfalls kann es zu einem MITM-Angriff kommen. Stellen Sie außerdem sicher, dass das TLS/SSL-Zertifikat der Bank gültig ist, und geben Sie niemals Kennwörter weiter.

Was ich hasse, sind jene Dienste, bei denen Sie ein Passwort festlegen müssen, das so unmöglich ist, dass Sie es aufschreiben müssen, oder andere, die Passwortrichtlinien haben, bei denen ich jeden Monat ein anderes Passwort verwenden muss und die letzten 5 verwendeten Passwörter nicht verwenden kann ist einfach nur dumm, da es keine Sicherheit gibt, die Passwörter aufzuschreiben. Das Ändern von Passwörtern ist etwas Gutes, sollte aber nicht erzwungen werden. Andererseits können Zertifikate verloren gehen oder sogar kompromittiert werden. Denken Sie, Sie haben jemanden mit Zugriff auf Ihren Computer Sie können Keylogger installieren oder auch die Zertifikate erhalten. Es gibt also nichts, was Sie schützt, aber Zertifikate sind sicher nicht sicherer als Passwörter. Bei Servern habe ich ein Gefühl der Sicherheit, wenn mehrere Mechanismen eingerichtet sind. Nehmen wir an, ein VPN für den Zugriff auf einen Computer, von dem aus Sie über SSH eine Verbindung zu Ihren Servern herstellen können. vielleicht aber noch nie gehackt worden.

Prost, ich mag eine Seite, auf der ich ohne Passwörter posten kann.

3
Carlos Ruiz