Das Folgende war also etwas zu lang für einen Kommentar ...
Vielleicht hilft es, einen Schritt zurückzutreten und die Vorteile von Präventions- und Detektivkontrollen zu vergleichen. Zu den vorbeugenden Kontrollen gehört die Verschlüsselung. Sie können das Kennwort jedoch auch verschlüsseln, um es weniger offensichtlich zu machen. Dieser Ansatz soll das Kennwort vor versehentlichem Teilen schützen (eine b32-Codierung würde weniger aussagekräftige Zeichen erzeugen (b32 erzeugt eine längere Zeichenfolge als b64). Ein solcher Ansatz erhöht nur die Schwierigkeit, sich die zufällige Folge von Zahlen zu merken, sowie die Methode, die dies tun sollte Die Base32 / 64-Codierung ist eine einfache Methode zum Schutz von Kennwörtern, für die keine zusätzliche Logik erstellt / verwaltet werden muss.
Bei den anderen Ansätzen zur vorbeugenden Steuerung wird wahrscheinlich die Verschlüsselung verwendet Es gibt viele verschiedene Möglichkeiten, den Schlüssel zu schützen. Ohne auf die Details einzugehen oder zu wiederholen, was DW bereits veröffentlicht hat, können Sie Detektivkontrollen überlagern, um die Sicherheitslage zu verbessern. Sie können beispielsweise den Zugriff auf eine Datei überwachen, die den Schlüssel enthält. Sie können Ereignisse korrelieren (z. B. Neustart des Servers / Dienstes) mit Zugriff auf die Schlüsseldatei. Jede andere Zugriffsanforderung (erfolgreich oder nicht) auf die Schlüsseldatei kann auf eine abnormale Aktivität hinweisen.
Um zu Ihrer Warteschlange zu gelangen Hier ist meine Meinung:
Wenn Sie ein Passwort in einer Konfigurationsdatei speichern müssen, würde ich empfehlen, das Passwort nach Möglichkeit zumindest zu verschlüsseln. Das Codieren des Kennworts verringert die Wahrscheinlichkeit, dass es durchgesickert ist, falls jemand durch die Datei blättert, z. B. wenn ein Mitarbeiter des Anbieters den Support überwacht. Das Verschlüsseln des Passworts ist viel sicherer, erfordert jedoch zusätzliche Komplexität.
Umgang mit der Tatsache, dass ein Schlüssel fest codiert oder in einer anderen Datei gespeichert werden muss. Das Trennen des Verschlüsselungsschlüssels in einer anderen Datei erhöht die Schwierigkeit für jemanden, den Schlüssel anzuzeigen. Sie können beispielsweise die Zugriffssteuerung verwenden, um den Zugriff auf die Schlüsseldatei zu beschränken, aber dennoch eine offenere ACL für die Konfigurationsdatei beizubehalten. In ähnlicher Weise können Sie die Überwachung für den Zugriff auf die Schlüsseldatei implementieren, mit der Sie auf Ereignisse zurückgreifen können, für die die Verwendung eines Schlüssels erforderlich ist. Eine harte Codierung des Schlüssels kann in Ordnung sein, wenn Sie den Zugriff auf die Binärdatei beschränken. Eine sorgfältige Codierung des Passworts kann leicht erkannt werden, indem "Zeichenfolgen" für die Binärdatei ausgeführt werden. Sie können das fest codierte Kennwort verschlüsseln / verschlüsseln (dh eine separate Funktion (möglicherweise mit Überwachung) benötigen, um das Kennwort zu dekodieren. Dies erhöht jedoch die Komplexität für Entwickler und Administrator (dh wie ändert man den Schlüssel, ohne die Binärdatei neu zu erstellen / neu zu kompilieren) ?).
Sollten die Verschlüsselungsschlüssel für das Kennwort für Menschen lesbar sein? Dies hängt davon ab. Es gibt nur eine begrenzte Anzahl von Möglichkeiten, den Schlüssel zu schützen. Ein Verschlüsselungsschlüssel wird normalerweise als alphanumerische Zeichenfolge angesehen, die schwer zu bestätigen ist Sie können den Schlüssel jederzeit codieren / verschlüsseln, aber solche Methoden schrecken niemanden ab, der klug genug ist, um einen Screenshot zu erstellen. Sie können jedoch einfache "Schlüssel" (eher wie Kennwörter) als Eingabe für eine Schlüsselerweiterungsfunktion verwenden In diesen Fällen können zusätzliche Maßnahmen wie die Codierung einen zusätzlichen Wert im Verhältnis zu den Kosten der Komplexität hinzufügen.
Wenn überhaupt, besteht ein guter Ansatz darin, mehrere Ebenen von Kontrollen zu implementieren. Vorbeugende Kontrollen sind beim Detektiv schwieriger Forts Rollen sind im Allgemeinen einfacher zu implementieren. Das Trennen von Schlüsseldateien könnte die Gesamtarchitektur und die Implementierung von Steuerelementen vereinfachen. Unabhängig davon, ob vorbeugende oder detektivische Kontrollen verwendet werden, ist die Aktivierung einiger Überwachungsfunktionen zusammen mit der Überprüfung der Überwachungsprotokolle ein Muss. Auf diese Weise können Sie im Falle eines Unwahrscheinlichen (Zugriff auf den Schlüssel) Korrekturmaßnahmen ergreifen.