Empfangen eines privaten Schlüssels vom Serveradministrator: OK oder nicht?

20

Ich soll Zugang zu einem entfernten SFTP-Server bekommen. Der Administrator hat einen Benutzer für mich erstellt und ein öffentliches / privates Schlüsselpaar für mich generiert. Dann schickte er mir sicher die private Schlüsseldatei, die ich zur Authentifizierung verwende. Ich glaube, das ist nicht gut, ich sollte derjenige sein, der das Schlüsselpaar generiert und ihm den öffentlichen Schlüssel gibt. Aber ich kann mir keinen guten Grund vorstellen, warum dies schlecht ist, wenn ich diesen Schlüssel nur verwende, um mich auf diesem Server anzumelden, nicht auf anderen Servern. Gibt es solche Gründe?

matthiash
quelle
17
Zum einen schlechte Sicherheitshygiene. Der Serveradministrator sollte es besser wissen und Benutzer nicht "schulen", damit sie erwarten, private Schlüssel von externen Quellen zu erhalten.
Wmorrell
1
Wem gibt er es sonst noch? Denken Sie immer, was ist das Schlimmste, was passieren könnte?
McKenzm
1
Ich denke eigentlich nicht, dass es so schlimm ist. Eine Analogie unten (Eric Towers), dem Benutzer ein "Anfangspasswort" zu geben, das dann sofort geändert werden muss, ist gut. Aus persönlicher Erfahrung heraus kann es etwas mühsam sein, den Benutzern zu erklären, welche Schlüssel zum 100. Mal vorhanden sind - der Administrator ist immer noch ein Mensch. Es ist faul, Ihnen den privaten Schlüssel zu geben - ja, aber nichts kann Sie davon abhalten, ihn selbst zu ersetzen. Im Wesentlichen müssen Sie den Sysadmin nicht mehr belästigen, nachdem er es Ihnen gesendet hat (es sei denn, er hat die Schreibberechtigungen für die Datei deaktiviert ... dann nerven Sie ihn einfach).
Ray
@matthiash Diese Frage passt zu dieser Site, aber genau wie zu Ihrer Information gibt es eine Informationssicherheits-Site für andere Sicherheitsfragen.
topher
Ich möchte auch darauf hinweisen, dass AWS das auch so macht. Wenn Sie eine Instanz erstellen, in die Sie Ihren öffentlichen Schlüssel nicht hochladen, wird ein Schlüsselpaar für Sie generiert und Sie laden den privaten Schlüssel herunter.
GnP

Antworten:

23

Es ist genau so, wie Sie sagen: Das gesamte Konzept der Authentifizierung mit öffentlichem Schlüssel besteht darin, dass der private Schlüssel nur dem Eigentümer bekannt sein sollte, während der entsprechende öffentliche Schlüssel weit verbreitet werden kann. Die Sicherheit Ihrer Authentifizierung hängt von der Sicherheit des privaten Schlüssels ab, nicht von der Sicherheit des öffentlichen Schlüssels.

Die Tatsache, dass jemand anderes Ihnen einen privaten Schlüssel zur Verfügung stellt, macht ihn automatisch kompromittiert. (Sie wissen nicht, ob der andere Administrator noch eine Kopie hat, mit der Sie sich als Sie ausgeben können.)

HBruijn
quelle
4
Nehmen wir das Beste vom Serveradministrator an und nehmen wir an, dass es besser ist, ein neues Schlüsselpaar zu generieren, da er dem Benutzer nicht vertrauen würde, keinen kompormierten privaten Schlüssel zu haben. Vielleicht denkt der Serveradministrator, dass der private Schlüssel der Benutzer sehr alt ist und im Laufe der Jahre möglicherweise kompromittiert wurde. Dasselbe gilt für U2F, bei dem das Konsortium oder die Anbieter den Benutzern nicht vertrauen, Schlüssel zu generieren. Aus diesem Grund werden U2F-Geräte mit vorgefertigten Schlüsseln geliefert!
Cornelinux
8
Der Administrator sollte dem Benutzer helfen, einen privaten Schlüssel zu generieren und zu sichern.
Alex
1
Du hast vollkommen Recht. Aber oft sind
Administratoren
7
Der Administrator kann sich trotzdem als Sie ausgeben.
user253751
2
Ich denke, Sie verwechseln theoretische Praktiken eines engen Beispiels mit der Realität und dem Gesamtbild. Sie müssen dem Administrator trotzdem vertrauen, da er die Kontrolle über das System hat und es vermeiden kann, den Schlüssel insgesamt zu verwenden. Das Ausgeben von privaten Schlüsseln geschieht in der realen Welt, weil Endbenutzer entweder nicht verstehen, wie man einen erstellt oder wie man einen sicher erstellt.
James Ryan
10

Für diesen Schlüssel gilt für die Organisation kein Widerspruch . Wenn jemand mit "Ihrem" Schlüssel etwas Missbräuchliches oder Zerstörerisches an diesem System anrichtet, kann der Administrator Ihnen nicht die Schuld dafür geben, dass Sie allein dafür verantwortlich sind. Da die Person, die es dir gab, auch den Schlüssel hatte. Es ist wahrscheinlich nicht so schlimm für Sie, da es Ihnen eine Verteidigung gibt, aber für die Organisation, die den Server kontrolliert, schrecklich, falls jemals etwas Schlimmes passiert.

Sie können möglicherweise die Schreibrechte verwenden, die Sie für die bereitgestellten Schlüssel haben, um Ihre autorisierten Schlüssel zu aktualisieren, Ihren Schlüssel hinzuzufügen und den bereitgestellten Schlüssel zu entfernen.

Zoredache
quelle
3
Tatsächlich erwartet der Administrator möglicherweise, dass der Benutzer seinen Schlüssel während der ersten Verwendung ändert, ähnlich wie bei administrativ generierten ersten Kennwörtern.
Eric Towers
7
Wie ein großer Mann einmal sagte , "erwarten Sie weg". Eine Änderung bei der erstmaligen Verwendung ist häufig für Kennwörter erforderlich, bei der Verschlüsselung mit öffentlichen Schlüsseln jedoch nie - genau darum geht es.
womble
@EricTowers Ist das überhaupt möglich , um mit zeitgemäßem SFTP (oder sogar SSH, es sei denn, Sie sind bereit, selbst etwas zusammenzubauen) Implementierungen zu erfordern?
CVn
Diese Antwort vermittelt den Eindruck, dass Aktionen über sftp irgendwo in einem Protokoll signiert und durch diesen Schlüssel von Ende zu Ende gesichert werden. Dies ist einfach nicht der Fall, ein Administrator kann Aktionen oder Protokolle manipulieren, ohne den Schlüssel zu verwenden.
James Ryan
1
@marcelm: Es gibt einen Grund, warum ich "oft notwendig" gesagt habe, nicht "immer absolut zwingend unter allen Umständen keine Ausnahmen". Als jemand, der regelmäßig Passwort-Hashes und öffentliche Schlüssel anfordert (und akzeptiert), ist es meines Wissens eine viel höhere Hürde, jemanden dazu zu bringen, ein gehashtes Passwort (mit einem sicheren Salt und allem) bereitzustellen als einen öffentlichen Schlüssel. Wenn Sie einen SSH-Client haben, haben Sie ein Tool zur Schlüsselgenerierung. Dasselbe kann nicht für etwas gesagt werden, das in der Lage ist, crypt(2) in seinen vielen unterhaltsamen Formen zu nennen.
womble