Ich möchte unseren SSL-Schlüssel für unsere Website vertraulich behandeln. Es ist auf 2 USB-Sticks gespeichert, einen in einem Safe und einen, den ich aufbewahre. Und dann bin ich der einzige, der es auf den Webserver anwendet, so dass es absolut sicher ist.
Außer...
Zumindest in IIS können Sie den Schlüssel exportieren. So kann jeder, der Administrator ist, eine Kopie des Schlüssels erhalten. Gibt es einen Weg, dies zu umgehen? Oder haben per Definition alle Administratoren vollen Zugriff auf alle Schlüssel?
Update: Ich habe Sysadmins, denen ich voll und ganz vertraue. Was dazu geführt hat, ist, dass einer von ihnen gekündigt hat (sie hatten eine Stunde Fahrt zu unserer Firma, eine 5-minütige Fahrt zur neuen). Ich vertraue dieser Person, genau wie wir ihr Active Directory-Konto deaktivieren, wenn jemand das Unternehmen verlässt. Ich dachte jedoch, wir sollten einen Weg finden, um sicherzustellen, dass sie nicht in der Lage sind, unser SSL zu verwenden.
Und was mir am leichtesten gefallen hat, ist, wenn ich der einzige bin, der es hat. Unser Zertifikat läuft im Januar aus, daher war dies die Zeit, die Praxis zu ändern, wenn wir konnten. Aufgrund der Antworten sieht es so aus, als könnten wir nicht.
Dies führt zu einer neuen Frage: Wenn jemand, der Zugriff auf das Zertifikat hat, das Unternehmen verlässt, ist es üblich, ein neues Zertifikat zu erhalten und das vorhandene zu widerrufen. Oder wenn die Person, die gegangen ist, vertrauenswürdig ist, fahren wir dann mit dem Zertifikat fort, das wir haben?
quelle
Antworten:
Eine Person mit administrativem (oder häufig sogar physischem) Zugriff auf einen Server kann den privaten Schlüssel extrahieren. Sei es durch Exportieren, Memory Sniffing oder andere derartige Tricks.
Ihre Administratoren haben Zugriff auf die privaten Schlüssel Ihrer Webserver. Akzeptieren Sie dies als Tatsache und umgehen Sie dies. Wenn Ihre Sysadmins nicht vertrauenswürdig sind, benötigen Sie möglicherweise bessere Sysadmins oder mindestens weniger Sysadmins mit Zugriff auf die Webserver. Wenn es um Managementsicherheits-Paranoia geht, kann es zu einem tieferen Problem hinsichtlich der Fähigkeit kommen, einem Systemadministrator zu vertrauen.
Das soll nicht heißen, dass Sie einfach jedem Zugriff auf den privaten Schlüssel gewähren sollten. Es sollte immer eine Zugangsbedürftigkeit bestehen, bevor der Zugang gewährt wird. Wirst du vor diesem Hintergrund extreme Maßnahmen ergreifen, um sicherzustellen, dass ein Sysadmin mit vollständiger Kontrolle über eine Website den privaten Schlüssel nicht exportieren kann, die Website selbst jedoch auf eine beliebige Anzahl von nahezu unauffindbaren Arten manipulieren kann? Wir können hier wieder vertrauen, und ich denke, das ist der Kern des Problems, das angegangen werden muss.
quelle
Wenn Sie den Schlüssel importieren, können Sie ihn als nicht exportierbar markieren. Dadurch wird verhindert, dass Sie IIS oder die Zertifikat-MMC zum Exportieren verwenden. Zumindest wird es dadurch etwas schwieriger.
Wenn sie jedoch ein Administratorkonto auf dem Computer haben oder physischen Zugriff darauf haben, können sie den Schlüssel auch auf andere Weise erhalten.
quelle
Hier kann eine "Intermediate CA" Abhilfe schaffen.
Die "Stammzertifizierungsstelle" in diesem Beispiel gehört einer SSL-Firma und Ihnen nicht.
Sie haben keine direkte Kontrolle über die von der Stammzertifizierungsstelle erstellten Schlüssel. Wenn also ein von der Stammzertifizierungsstelle signierter Schlüssel kompromittiert wird, müssen Sie ihn durchgehen, um ihn zu widerrufen.
Aber:
Wenn Sie eine andere Zertifizierungsstelle in die Mitte legen und Ihr gekauftes SSL-Zertifikat Ihr eigenes Zertifizierungsstellenzertifikat signieren lässt, anstatt Ihr Serverzertifikat direkt zu signieren, können Sie die Kontrolle über die unten aufgeführten Serverzertifikate behalten und Sperrzertifikate ausstellen oder andere Aktionen ausführen, wenn die darunter liegenden Punkte beeinträchtigt werden .
Sie behalten den privaten Schlüssel der Zwischenzertifizierungsstelle für sich und die Administratoren müssen ihn nicht sehen.
Sie können dies auch tun:
Sie können sich auf einen Kompromiss vorbereiten und Zertifikate im Voraus generieren, um bei einem Widerruf eines einzelnen Schlüssels schnell zu wechseln. Administratoren erhalten erst nach dem Kompromiss von 1 Schlüssel für 2 oder 3. Sie können auf Ihrer Website einen Hinweis zu diesem Schema platzieren. Dies würde auch Ihren Administratoren mitteilen, dass Sie im Falle eines Kompromisses bereit sind und dass das Geschäft lustig ist Ende wird Ihre Website nicht zerstören.
quelle
Es gibt viele Artikel, in denen vorgeschlagen wird, die privaten Schlüssel an einem anderen Ort als dem Server zu speichern. Diese privaten Schlüssel sind jedoch für Codesignaturzertifikate bestimmt . Stellen Sie sich vor, Sie haben die Schlüssel auf einem Offline-Computer, auf die nur Sie Zugriff haben, einige Software sind geschrieben, Sie erhalten den privaten Schlüssel vom Offline-Server, signieren den Code und benötigen den privaten Schlüssel erst dann wieder, wenn Sie einen signieren müssen Code erneut.
Lesen Sie mehr unter: https://www.thesslstore.com/blog/heres-what-happens-when-your-private-key-gets-compromised/
Im Gegensatz dazu sind SSL-Zertifikate für Websites vorgesehen, um die HTTPS-Kommunikation zu ermöglichen: Der private Schlüssel wird bei jedem Handshake vom Webserver benötigt. Daher funktioniert das Speichern offline nicht.
quelle