Frage So sichern Sie den privaten Schlüssel Ihrer Zertifizierungsstelle


Ich bin dabei, meine eigene Zertifizierungsstelle (CA) nur für den internen Gebrauch zu implementieren.

Jetzt gibt es ein Problem, dass die CA private niemals jemals ausgenutzt werden sollte. Jetzt ist der private Schlüssel verschlüsselt.

Was könnte noch getan werden, um die Sicherheit des privaten Schlüssels zu verbessern?


23
2017-09-03 15:41


Ursprung


Können wir OS bekommen, auf dem Sie den Webserver betreiben? Sie könnten wahrscheinlich die Berechtigungen für die Datei festlegen, so dass sie von niemandem außer von der App und dem Superuser gelesen werden kann. - Rilindo
Wir betreiben RHEL - JMW


Antworten:


Ich arbeitete in einem Unternehmen, in dem die Sicherheit des CA-Schlüssels entscheidend für den weiteren Erfolg des Unternehmens war. Zu diesem Zweck wurde der Schlüssel mit einem benutzerdefinierten Protokoll verschlüsselt, das mindestens 2 Personen benötigte, die mit physischen Token ausgestattet waren, die an Terminals angeschlossen waren, um sie zu entschlüsseln (es gab mindestens 5 dieser Tokens, 2 kombinierte würden funktionieren). Die Terminals wurden mit dem CA-Key physisch von der eigentlichen Maschine getrennt. Die Schnittstelle, die die Benutzer entschlüsselt hatten, war ein VT220-Terminal, mit dem sie die Entschlüsselungstoken eingeben und dann auswählen konnten, was sie mit dem Schlüssel "signieren" wollten (ihnen nie Zugriff auf den entschlüsselten Schlüssel zu geben). Bei diesem System mussten mindestens vier Personen zusammenarbeiten, um den Schlüssel zu kompromittieren, zwei Token-Inhaber, der Typ, der Zugriff auf das Rechenzentrum hatte, und eine andere Person, die Root-Zugriff auf dem Server hatte (weil der entschlüsselte Schlüssel nie gespeichert wurde) der Server nur im Speicher konnte man nicht einfach die Box stehlen, und die Leute mit root zu diesem bestimmten Server durften keinen DC-Zugang haben).

Wenn Sie sich für mehr Details zu dieser Art von Setup interessieren, hat Bruce Schneier eine großartige Website, die das Design und die Implementierung von Computersicherheit abdeckt:

http://www.schneier.de/

Er hat auch ein wirklich gutes Buch Applied Cryptography veröffentlicht, das mir geholfen hat, die Grundlagen solcher Systeme zu verstehen und sicherere Infrastrukturen zu erstellen (lesbar für Leute, die keinen Taschenschutz tragen):

http://www.schneier.com/book-applied.html


25
2017-09-03 16:50



Und Zwei-Tasten-Betrieb (oder jede n von m, m> = n, n> 1) ist eine weitere hervorragende Vorsichtsmaßnahme - aber für mein Geld, Luftspalt zuerst, und fügen Sie Verfeinerungen wie diese zweite, abhängig von Ihrem Grad der Paranoia (dh die Kosten des Scheiterns). - MadHatter
Warum kann die Person mit Rootzugriff den Inhalt des Arbeitsspeichers nicht in eine Datei ablegen, während zwei autorisierte Personen ihre Arbeit verrichten? Dies bedeutet, dass der Typ mit root den Schlüssel mit nur den zusätzlichen Ressourcen erhalten kann, die erforderlich sind, um den Speicherauszug von der Maschine abzurufen. - Slartibartfast
Geprüfte physische Zugriffssteuerung ist für diese Art von Sicherheit genauso wichtig wie geprüfte logische Zugriffssteuerung. Der Signiervorgang sollte keine Berechtigung für die Box erfordern (diese Kontrolle wird von der Anforderung any-n-from-m gehandhabt), daher sollte der Inhaber des root-Kennworts nicht vorhanden sein überhaupt wenn Keysigning läuft. (S) er wird für Systemwartungsaktivitäten benötigt, aber diese sollten nach einem genau vorgefertigten Skript von jemand anderem als dem Drehbuchautor ausgeführt und in Echtzeit von einer sachkundigen dritten Person auditiert werden. - MadHatter


Ein großer Vorteil besteht darin, den privaten CA-Schlüssel auf einem dedizierten Computer vollständig vom Netzwerk getrennt zu halten. Sie würden dann neue Zertifikate auf diesem Computer signieren und möglicherweise auch generieren und dann ein physisches Medium verwenden, um die neuen Zertifikate vom CA-Computer zu übertragen.

Ein solches Setup würde natürlich auch Überlegungen hinsichtlich der physischen Verfügbarkeit des Rechners sowie der Beschränkungen für erlaubte Medien beinhalten. Ein gut gereister USB-Stick ist wahrscheinlich nicht die beste Wahl ...

(Dies ist übrigens ein sehr deutliches Beispiel für den Kompromiss zwischen Sicherheit und Komfort.)


16
2017-09-03 15:59



Airgap ist eine hervorragende Sicherheitsvorkehrung, und die Gefahr von Wechselmedien kann gemildert werden, indem die Signierbox so eingestellt wird, dass nichts autorisiert wird, SUID-Binärdateien zugelassen werden oder auf andere Weise vertrauenswürdig ist ausführbare Dateien auf solchen Medien. - MadHatter
Dies kann weiter optimiert werden, indem eine Smartcard zum Erzeugen, Speichern und Verwenden des Schlüssels verwendet wird. Stellen Sie sich eine Smartcard als eine dedizierte Maschine vor, die einen gewissen Schutz gegen Manipulationen bietet (im Grunde würde der Chip eher brechen als den Schlüssel aufgeben, was mit einem komplexeren System schwierig ist) und eine Schnittstelle hat, die einfach genug ist, dass der Der Protokollstapel könnte ordnungsgemäß geprüft worden sein. - Simon Richter
Ich unterstütze den Smartcard-Vorschlag, aber dort besteht ein Risiko. Wenn der Schlüssel nur an einem Ort sein kann, muss nur ein Teil der Hardware fehlschlagen, um den Schlüssel unzugänglich zu machen. Ich denke, dass eine oder mehrere Smartcards eine wichtige Rolle in einer sicheren Schlüsselgenerierungs- und Speicherpraxis spielen könnten. - Slartibartfast
In Bezug auf das Autorun-Problem. Im Falle eines GUI-Dateimanagers kann es auch ratsam sein, explizit darauf hinzuweisen, dass keine intelligenten Vorschaubilder / Thumbnails der aufgelisteten Dateien erstellt werden sollen. Obwohl es keine Gefahr für sich darstellt, kann es ein Angriffsvektor für vorhandene Sicherheitslücken sein. - andol
Wenn Sicherheit wirklich wichtig ist, würde ich mit einer Reihe von einmal beschreibbaren CD-Rs gehen. - Lie Ryan


Ich habe die anderen zwei Antworten aufgefrischt und kommentiert, weil ich denke, dass sie beide ausgezeichnet sind. Ob Sie entscheiden sich für beide, und das könnte gut sein, ich stark Vorsicht bei der ersten Generation des Schlüssels, da die beste Zeit, um einen Schlüssel zu kompromittieren, nicht verwendet wird (wo viele standardmäßige, wiederholbare Vorsichtsmaßnahmen angewendet werden können), sondern zur Generationszeit, die einmal leichter zu unterlaufen ist.

Dieser ausgezeichnete Leitfaden für die Durchführung einer Schlüsselgenerationskizziert einige der Standardprotokolle, die helfen können, die Schlüsselgenerierung zu sichern, obwohl sie meistens darauf hinauslaufen, dass (a) alles von mehreren sachkundigen Auditoren bezeugt wird, die (b) zeitgleich Aufzeichnungen über alles machen, was getan wird (c) nach a vorgegebenes Protokoll, das von einem anderen als dem Executor geschrieben wurde.


15
2017-09-03 17:35



Yepp, guter Punkt über das erste Schlüsselgen. - andol


Je nachdem, wie ernst Sie sind, sollten Sie FIPS 140-2 (http://en.wikipedia.org/wiki/FIPS_140#Security_levels) Hardware zum Speichern von CA Schlüsseln und Backups dieser Schlüssel. Sie sollten über eine Stammzertifizierungsstelle und eine Zwischenzertifizierungsstelle verfügen, damit Sie Ihre Stammzertifizierungsstelle offline und physisch gesichert erhalten können. Der Stamm wird nur benötigt, um neue Zwischenzertifizierungsstellen zu erneuern oder zu signieren, während die Zwischenzertifizierungsstellen für den täglichen Betrieb online bleiben. Wie andere vorgeschlagen haben, sichere Schlüsselerzeugung und Schlüsselverwaltung mit n von m Kontrolle ist wichtig.

Das CPS von VeriSign (jetzt Symantec) ist eine gute Referenz dafür, wie eine kommerzielle Zertifizierungsstelle ihre Schlüssel generiert und schützt. Sehen Sie sich die Kapitel 5 und 6 genauer an: http://www.verisign.com/repository/cps/. (Ich habe mehrere Jahre bei VeriSign gearbeitet)

Außerdem hat das NIST mehrere gute Veröffentlichungen zum Schlüsselmanagement (http://csrc.nist.gov/publications/drafts/800-57/Draft_SP800-57-Part1-Rev3_May2011.pdf) und Generation, und Ihr Unternehmen sollte auch über ein CPS verfügen, in dem die Richtlinien und Verfahren angegeben sind, die Sie für die Verwaltung Ihrer Zertifizierungsstelle verwenden. Die IETF bietet eine gute Vorlage: http://www.ietf.org/rfc/rfc2527.txt


7
2017-09-04 09:35





Große Frage und einige gute Antworten auch.

Denken Sie daran, dass Sie den meisten anderen Leuten um 90% voraus sind, indem Sie einfach dieses Problem in Betracht ziehen, anstatt blindlings voranzukommen.

Wenn ich das im Hinterkopf behalten und den anderen Rat hier genommen habe, würde ich einfach hinzufügen: ruhen Sie sich nicht auf Ihren Lorbeeren aus; Behalten Sie die Neuigkeiten zu Sicherheit und Kryptographie im Auge, sowohl für allgemeine Probleme in Bezug auf Zertifikatsausstellung, Widerruf, Cracking usw. als auch auf Sicherheitslücken und Probleme mit den spezifischen Produkten, die Sie zum Generieren und Verwalten Ihrer Schlüssel verwenden.

Zuletzt: physische Sicherheit. Etwas "Hacker-Beweis" zu machen, ist keine Hilfe, wenn ich einfach einen Job als Vertragsreiniger in Ihrem Gebäude bekommen und dann die Diskette mit Ihrem Root-Zertifikat eines Tages in meine Tasche stecken kann. Du wärst überrascht, wie viele Menschen diese verpassen.


1
2017-09-04 10:22



Freut mich, es zu hören @jmw - wie ich schon sagte, du bist schon 90% oder vielleicht sogar 99% der meisten Leute voraus, und es klingt wie du hast alles in der Hand. Sie wären schockiert über die Menge an Leuten, die Wochen und Tonnen Geld damit verbringen, die Software-Seite der Dinge zu betrachten, ohne etwas zu tun, um die Daten physisch zu sichern. - Rob Moir
Danke, Sie haben absolut recht: Über neue Risiken informiert zu bleiben, ist für jeden Admin obligatorisch. :-) über physische Sicherheit: Das Rechenzentrum, in dem sich unsere Server befinden, hat eine hohe physische Sicherheit. somit sind bios && grub passwörter konfiguriert. Die Partition, auf der das CA-Material gespeichert ist, wird ebenfalls verschlüsselt. Außerdem ist der CA-Schlüssel selbst verschlüsselt. Und Nagios würde im Falle eines physischen Diebstahls "Server Down" -Alarm auslösen. Ich mache mir eher Sorgen um "nicht-physische" Exploits. :-) - JMW