Wie sichere ich den privaten Schlüssel meiner Zertifizierungsstelle?

24

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

Nun gibt es ein Problem, dass die private CA niemals ausgenutzt werden sollte. Im Moment ist der private Schlüssel also verschlüsselt.

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

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

Antworten:

25

Ich habe in einem Unternehmen gearbeitet, in dem die Sicherheit des CA-Schlüssels für den weiteren Geschäftserfolg entscheidend war. Zu diesem Zweck wurde der Schlüssel unter Verwendung eines benutzerdefinierten Protokolls verschlüsselt, bei dem mindestens 2 Personen mit physischen Tokens an den Terminals anwesend sein mussten, um ihn zu entschlüsseln (mindestens 5 dieser Tokens würden funktionieren, 2 könnten kombiniert werden). Die Terminals wurden mit dem CA-Schlüssel physisch vom eigentlichen Computer getrennt. Die Schnittstelle, die die Benutzer hatten, die es entschlüsselt hatten, war ein VT220-Terminal, das es ihnen ermöglichte, die Entschlüsselungstoken einzugeben und dann auszuwählen, was sie mit dem Schlüssel "signieren" wollten (ihnen niemals Zugriff auf den entschlüsselten Schlüssel gewähren). Dieses System bedeutete, dass mindestens 4 Personen zusammenarbeiten mussten, um den Schlüssel zu kompromittieren, zwei Token-Inhaber, der Typ, der Zugriff auf das Rechenzentrum hatte,

Wenn Sie mehr über diese Art der Einrichtung erfahren möchten, hat Bruce Schneier eine großartige Website, die sich mit dem Entwurf und der Implementierung von Computersicherheit befasst:

http://www.schneier.com/

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

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

Polynom
quelle
2
Und die Zwei-Tasten-Bedienung (oder ein beliebiges n von m, m> = n, n> 1) ist eine weitere hervorragende Vorsichtsmaßnahme - aber für mein Geld sollten Sie zuerst den Luftspalt aktivieren und je nach Grad Ihrer Paranoia Verbesserungen wie diese hinzufügen (z. B. die Kosten des Scheiterns).
MadHatter unterstützt Monica
1
Warum kann die Person mit Root-Zugriff den Inhalt des Speichers nicht in eine Datei sichern, während zwei autorisierte Personen ihre Arbeit erledigen? Dies bedeutet, dass der Typ mit root den Schlüssel nur mit den zusätzlichen Ressourcen erhalten kann, die erforderlich sind, um den Speicherauszug vom Computer zu erhalten.
Slartibartfast
Die geprüfte physische Zugriffskontrolle ist für diese Art von Sicherheit genauso wichtig wie die geprüfte logische Zugriffskontrolle. Für den Signaturvorgang sollten keine Berechtigungen für die Box erforderlich sein (diese Steuerung wird von der Any-n-from-M-Anforderung übernommen). Daher sollte der Root-Kennwortinhaber bei der Keysignierung überhaupt nicht anwesend sein. (S) Er wird für Systemwartungsaktivitäten benötigt, diese sollten jedoch nach einem genau festgelegten Skript von einer anderen Person als dem Drehbuchautor ausgeführt und von einer sachkundigen dritten Person in Echtzeit überprüft werden.
MadHatter unterstützt Monica
16

Ein großer Vorteil ist, dass der private CA-Schlüssel auf einem dedizierten Computer vollständig vom Netzwerk abgeschnitten bleibt. Sie würden dann neue Zertifikate auf diesem Computer signieren und möglicherweise auch generieren und dann einen physischen Datenträger verwenden, um die neuen Zertifikate vom CA-Computer zu übertragen.

Zum Einrichten gehören natürlich auch Überlegungen zur physischen Verfügbarkeit des Computers sowie Einschränkungen für zulässige Medien. Ein weit gereister USB-Stick ist wahrscheinlich nicht die beste Wahl ...

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

andol
quelle
Airgap ist eine hervorragende Sicherheitsvorkehrung, und die Gefahr von Wechselmedien kann gemindert werden, indem das Signaturfeld so eingestellt wird, dass keine automatische Ausführung erfolgt, SUID-Binärdateien zugelassen werden oder auf andere Weise ausführbaren Dateien auf solchen Medien vertraut wird .
MadHatter unterstützt Monica
Dies kann durch die Verwendung einer Smartcard zum Generieren, Speichern und Verwenden des Schlüssels weiter optimiert werden. Stellen Sie sich eine Smartcard als eine dedizierte Maschine vor, die einen gewissen Schutz gegen Manipulationen bietet (im Grunde genommen würde der Chip eher zerbrechen als den Schlüssel preisgeben, was bei einem komplexeren System schwierig ist) und deren Schnittstelle so einfach ist, dass die Der Protokollstapel könnte ordnungsgemäß überwacht worden sein.
Simon Richter
Ich stimme dem Smartcard-Vorschlag zu, aber dort besteht ein Risiko. Wenn sich der Schlüssel nur an einer Stelle befinden kann, muss nur ein Teil der Hardware ausfallen, damit auf den Schlüssel nicht zugegriffen werden kann. Ich denke jedoch, dass eine oder mehrere Smartcards einen wichtigen Teil in einer sicheren Schlüsselgenerierungs- und Speicherpraxis darstellen können.
Slartibartfast
In Bezug auf das Autorun-Problem. Im Falle eines GUI-Dateimanagers kann es auch ratsam sein, ausdrücklich darauf hinzuweisen, dass keine intelligenten Vorschauen / Miniaturansichten der aufgelisteten Dateien erstellt werden sollen. Obwohl es an sich keine Gefahr darstellt, kann es eine Angriffsmethode für vorhandene Sicherheitslücken sein.
Andol
Wenn Sicherheit wirklich wichtig ist, würde ich ein paar einmal beschreibbare CD-Rs mitnehmen.
Lie Ryan
15

Ich habe die beiden anderen Antworten positiv bewertet und kommentiert, weil ich finde, dass sie beide ausgezeichnet sind. Wenn Sie sich für beide entscheiden, und das könnte durchaus angebracht sein, empfehle ich dringend , bei der ersten Erstellung des Schlüssels vorsichtig zu sein, da der beste Zeitpunkt für die Kompromittierung eines Schlüssels nicht verwendet wird (wo viele standardmäßige, wiederholbare Vorsichtsmaßnahmen möglich sind) angewendet), aber zur Generationszeit, was eine einmalige ist viel einfacher zu untergraben.

In diesem ausgezeichneten Leitfaden für die Durchführung einer Schlüsselgenerierungszeremonie werden einige der Standardprotokolle beschrieben, die zur Sicherung der Schlüsselgenerierung beitragen können. Meistens geht es jedoch darum, dass (a) alles von mehreren sachkundigen Prüfern bezeugt wird, von denen (b) gleichzeitig Aufzeichnungen gemacht werden alles, was getan wird (c) gemäß einem vorher festgelegten Protokoll, das von einer anderen Person als dem Testamentsvollstrecker geschrieben wurde.

MadHatter unterstützt Monica
quelle
Yepp, guter Punkt zum ursprünglichen Schlüsselgen.
Andol
7

Je nachdem, wie ernst Sie es meinen, sollten Sie die Verwendung von FIPS 140-2- Hardware ( http://en.wikipedia.org/wiki/FIPS_140#Security_levels ) in Betracht ziehen , um CA-Schlüssel und Backups dieser Schlüssel zu speichern. Sie sollten eine Stammzertifizierungsstelle und eine Zwischenzertifizierungsstelle haben, damit Sie Ihre Stammzertifizierungsstelle offline und physisch geschützt halten können. Der Stamm wird nur zum Erneuern oder Signieren neuer Zwischenzertifizierungsstellen benötigt, während die Zwischenzertifizierungsstellen für den täglichen Betrieb online bleiben. Wie andere vorgeschlagen haben, ist eine sichere Schlüsselerzeugung und Schlüsselverwaltung mit n von m Kontrolle wichtig.

Das VeriSign-CPS (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 an, insbesondere: http://www.verisign.com/repository/cps/ . (Ich habe mehrere Jahre bei VeriSign gearbeitet)

Außerdem hat NIST mehrere gute Veröffentlichungen zum Thema Schlüsselverwaltung ( 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 Hier werden die Richtlinien und Vorgehensweisen angegeben, die Sie für die Verwaltung Ihrer Zertifizierungsstelle verwenden. Die IETF bietet eine gute Vorlage: http://www.ietf.org/rfc/rfc2527.txt

Perry
quelle
1

Tolle Frage und auch einige tolle Antworten.

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

Nachdem ich das bedacht und die anderen Ratschläge hier befolgt habe, möchte ich einfach hinzufügen: Ruhen Sie sich nicht auf Ihren Lorbeeren aus; Behalten Sie die Sicherheits- und Kryptografienachrichten im Auge, sowohl bei allgemeinen Problemen im Zusammenhang mit der Ausstellung, dem Widerruf, dem Knacken von Zertifikaten usw. als auch bei Sicherheitslücken und Problemen mit den spezifischen Produkten, die Sie zum Generieren und Verwalten Ihrer Schlüssel verwenden.

Schließlich: physische Sicherheit. Etwas "hackerfest" zu machen ist keine Hilfe, wenn ich einfach einen Job als Vertragsreiniger in Ihrem Gebäude bekommen und dann eines Tages die Diskette mit Ihrem Root-Zertifikat in meine Tasche stecken kann. Sie wären überrascht, wie viele Leute diesen vermissen.

Rob Moir
quelle
Ich bin froh, das zu hören @jmw - wie gesagt, du bist bereits 90% oder sogar 99% der meisten Leute voraus und es hört sich so an, als hättest du alles in der Hand. Sie wären schockiert über die Menge an Leuten, die Wochen und Tonnen von Geld ausgeben, um die Software zu betrachten, ohne etwas zu tun, um die Daten physisch zu sichern.
Rob Moir
Danke, Sie haben vollkommen recht: Jeder Administrator muss über neue Risiken informiert sein. :-) zur physischen Sicherheit: Das Rechenzentrum, in dem sich unsere Server befinden, verfügt über eine hohe physische Sicherheit. Daher sind BIOS & & & Grub Passwörter konfiguriert. Die Partition, in 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 Warnungen auslösen, die besagen, dass der Server nicht erreichbar ist. Ich mache mir mehr Sorgen um "nicht-physische" Exploits. :-)
JMW