Warum ist Sicherheit durch Dunkelheit eine schlechte Idee? [geschlossen]


72

Ich bin kürzlich auf ein System gestoßen, bei dem alle DB-Verbindungen von Routinen verwaltet wurden, die auf verschiedene Weise verdeckt waren, einschließlich Basis-64-Codierung, MD5-Summen und verschiedenen anderen Techniken.

Ist es nur ich oder ist das übertrieben? Was sind die Alternativen?


1
Wirklich Leute? Sie werden ehrlich gesagt hier sitzen und mir und der Welt sagen, dass Dunkelheit eine schlechte Idee ist? Es ist keine schlechte Idee und es sollte nicht Ihr Gesamtplan zum Schutz vor unbefugtem Zugriff sein. Ein guter Sicherheitsplan sollte Unklarheit, ein sicheres Passwort, Verschlüsselung und das Schließen von Hintertüren erfordern, sobald diese entdeckt werden.
Jeff

1
/ etc / shadow bietet zusätzliche Sicherheit mit Dunkelheit. Vor / etc / shadow befanden sich die Hashes in / etc / passwd, die jeder Benutzer lesen konnte, wodurch sie für Regenbogentabellenangriffe anfällig wurden. Wenn Sie sie in / etc / shadow einfügen, die nur von root gelesen werden können, werden die Hashes von nicht privilegierten Benutzern verdeckt.
Alice Wonder

2
Das Erzwingen der Zugriffskontrolle wird normalerweise als "Unklarheit" angesehen (und das Passwort-Hashing wird auch nicht durchgeführt, wenn es korrekt durchgeführt wird).
eckes

Antworten:


113

Sicherheit durch Dunkelheit würde Ihr Geld unter einem Baum vergraben. Das einzige, was es sicher macht, ist, dass niemand weiß, dass es da ist. Echte Sicherheit besteht darin, es hinter ein Schloss oder eine Kombination zu stellen, beispielsweise in einen Safe. Sie können den Safe an die Straßenecke stellen, denn was ihn sicher macht, ist, dass niemand außer Ihnen hineinkommen kann .

Wie von @ ThomasPadron-McCarty unten in einem Kommentar unten erwähnt:

Wenn jemand das Passwort entdeckt, können Sie es einfach ändern, was einfach ist. Wenn jemand den Ort findet, müssen Sie das Geld ausgraben und an einen anderen Ort bringen, was viel mehr Arbeit bedeutet. Und wenn Sie Security by Obscurity in einem Programm verwenden, müssen Sie das Programm neu schreiben.


15
Die nächste Frage wäre: Was ist der Unterschied zwischen der Geheimhaltung des Standorts und der Geheimhaltung des Passworts?
Albert

4
@ Albert Der Unterschied ist die Größenordnung (en) zwischen der Wahrscheinlichkeit, den Ort / die Dunkelheit ohne Wissen zu finden (hoch) und dem Passwort ohne Wissen zu finden (niedrig).
Rex M

27
Eine andere Antwort: Wenn jemand das Passwort entdeckt, können Sie das Passwort ändern, was einfach ist. Wenn jemand den Ort findet, müssen Sie das Geld ausgraben und an einen anderen Ort bringen, was viel mehr Arbeit bedeutet. Und wenn Sie Sicherheit durch Dunkelheit in einem Programm verwenden, müssten Sie das Programm neu schreiben ...
Thomas Padron-McCarthy

3
Gute Antwort. Unter welchem ​​Baum begraben Sie Ihr Geld?
Chris Ballance

31
Was ist, wenn ich mein Geld unter einem Baum in einem Safe vergrabe?
Mathieu Pagé

37

Sicherheit durch Dunkelheit kann als schlecht bezeichnet werden, da dies häufig impliziert, dass die Dunkelheit als Hauptmittel der Sicherheit verwendet wird. Dunkelheit ist in Ordnung, bis sie entdeckt wird, aber sobald jemand Ihre besondere Dunkelheit herausgearbeitet hat, ist Ihr System wieder anfällig. Angesichts der Beharrlichkeit von Angreifern bedeutet dies überhaupt keine Sicherheit.

Dunkelheit sollte niemals als Alternative zu geeigneten Sicherheitstechniken verwendet werden.

Dunkelheit ist ein weiteres Thema, um Ihren Quellcode zu verbergen und das Kopieren zu verhindern. Ich bin in diesem Thema ziemlich gespalten. Ich kann verstehen, warum Sie das vielleicht tun möchten. Ich persönlich war noch nie in einer Situation, in der es gewünscht wäre.


2
+1: Der Code für die Verschlüsselung und die ordnungsgemäße Schlüsselverwaltung kann vollständig verfügbar gemacht werden. Lesen Sie den gesamten gewünschten Code, Sie erhalten nie den Schlüssel. Wenn Sie Ihre Leute genug bezahlen, wird selbst Social Engineering die Schlüssel nicht preisgeben.
S.Lott

15

Sicherheit durch Dunkelheit ist ein interessantes Thema. Es ist (zu Recht) als Ersatz für wirksame Sicherheit bösartig. Ein typisches Prinzip in der Kryptographie ist, dass eine Nachricht unbekannt ist, der Inhalt jedoch nicht. Encyrption-Algorithmen werden in der Regel weit verbreitet veröffentlicht, von Mathematikern analysiert und nach einiger Zeit wird ein gewisses Vertrauen in ihre Wirksamkeit aufgebaut, es gibt jedoch keine Garantie dafür, dass sie wirksam sind.

Einige Leute verstecken ihre kryptografischen Algorithmen, aber dies wird als gefährliche Praxis angesehen, da solche Algorithmen dann nicht die gleiche Prüfung durchlaufen haben. Nur Organisationen wie die NSA, die über ein beträchtliches Budget und Mitarbeiter von Mathematikern verfügt, können mit diesem Ansatz davonkommen.

Eine der interessantesten Entwicklungen in den letzten Jahren war das Risiko der Steganographie , bei der die Praxis darin besteht, Nachrichten in Bildern, Audiodateien oder einem anderen Medium zu verbergen. Das größte Problem bei der Steganalyse besteht darin, festzustellen, ob eine Nachricht vorhanden ist oder nicht, und diese Sicherheit durch Dunkelheit zu gewährleisten.

Letztes Jahr bin ich auf eine Geschichte gestoßen , in der Forscher die Kapazität eines steganografischen Kanals berechnen, aber das wirklich Interessante daran ist:

Das Studium eines Stego-Kanals auf diese Weise führt zu kontraintuitiven Ergebnissen: Unter bestimmten Umständen kann beispielsweise die Verdoppelung der Anzahl von Algorithmen, die nach versteckten Daten suchen, die Kapazität des Steganographie-Kanals erhöhen.

Mit anderen Worten, je mehr Algorithmen Sie zum Identifizieren von Nachrichten verwenden, desto weniger effektiv wird es, was der normalen Kritik an Sicherheit durch Dunkelheit widerspricht.

Interessantes Zeug.


Sicherheit durch Dunkelheit - Steganographie - ist nützlich, wenn Sie eine kriminelle oder terroristische Organisation sind, die im Schatten lebt. Wenn Sie jedoch nicht im Schatten leben, sind geeignete Sicherheitstechniken die beste Wahl.
Yfeldblum

10
"Verbrecher oder Terrorist" wird ein bisschen philosophisch. Schließen Sie Hugenotten, Samizdat-Verlage in der UdSSR und iranische Homosexuelle ein?
Brent.Longborough

12

Der Hauptgrund, warum es eine schlechte Idee ist, ist, dass die zugrunde liegenden Probleme nicht behoben werden, sondern nur versucht wird, sie zu verbergen. Früher oder später werden die Probleme entdeckt.

Eine zusätzliche Verschlüsselung verursacht zusätzlichen Aufwand.

Schließlich macht übermäßige Dunkelheit (wie die Verwendung von Prüfsummen) die Wartung zu einem Albtraum.

Bessere Sicherheitsalternativen bestehen darin, potenzielle Schwachstellen in Ihrem Code zu beseitigen, z. B. erzwungene Eingaben, um Injektionsangriffe zu verhindern.


Ja, es handelt sich um Techniken zur Überprüfung der Code-Integrität, die jedoch zum Verschlüsseln einiger Aspekte der DB-Verbindungen verwendet wurden.
Jrgns

Abhängig davon, wie oft Ihre Datenbank getroffen wird, kann das Hinzufügen einiger zusätzlicher Schritte zum Verschlüsseln / Entschlüsseln einen enormen Overhead verursachen.
z -

Wenn es sich jedoch um besonders sensible Informationen handelt, können diese zusätzlichen Sicherheitsmaßnahmen verständlich sein. Sie möchten in keinem Netzwerk SSNs im Freien senden.
z -

aber dann ... gibt es einen Unterschied zwischen Dunkelheit und Verschlüsselung. Was Sie also wirklich tun, ist Verschlüsselung?
z -

7

Ein Faktor ist die Fähigkeit, sich von einer Sicherheitsverletzung zu erholen. Wenn jemand Ihr Passwort entdeckt, setzen Sie es einfach zurück. Aber wenn jemand Ihr obskures Schema aufdeckt, werden Sie abgespritzt.


6

Die Verwendung von Dunkelheit, wie all diese Leute zustimmen, ist keine Sicherheit, sondern Zeit für sich. Das heißt, ein anständiges Sicherheitssystem zu implementieren und dann eine zusätzliche Schicht der Dunkelheit hinzuzufügen, ist immer noch nützlich. Nehmen wir an, morgen findet jemand einen unschlagbaren Riss im SSH-Dienst, der nicht sofort gepatcht werden kann.

In der Regel habe ich intern implementiert ... alle öffentlich zugänglichen Server legen nur die benötigten Ports (http / https) und nichts weiter offen. Bei einem öffentlich zugänglichen Server ist ssh dann an einem unklaren Port mit hoher Nummer dem Internet ausgesetzt, und es wird ein Port-Scan-Trigger eingerichtet, um alle IP-Adressen zu blockieren, die versuchen, ihn zu finden.

Dunkelheit hat ihren Platz in der Welt der Sicherheit, aber nicht als erste und letzte Verteidigungslinie. Im obigen Beispiel bekomme ich keine Skript- / Bot-Angriffe auf ssh, weil sie nicht die Zeit damit verbringen möchten, nach einem nicht standardmäßigen ssh-Service-Port zu suchen, und wenn sie dies tun, ist es unwahrscheinlich, dass sie ihn vor einer anderen Ebene von finden Sicherheit tritt ein und schneidet sie ab.


Ein verteilter Scan kann Ihre Dunkelheit durchbrechen. Ich könnte mit nur einem Computer nach Ihrem SSH-Port suchen, wenn ich über TOR scanne.
Lunatic Experimentalist

Und er kann das TOR-Netzwerk leicht auf die schwarze Liste setzen. Wenn Sie Proxys kaufen, befinden sie sich wahrscheinlich im selben Subnetz, das er drosseln könnte. Diese Art von Barrieren ist nicht sinnlos.
Eric Muyser

@EricMuyser Für einen Kunden mit einem Markt nur in den USA habe ich nur ARIN auf die Whitelist gesetzt. Das war eine ziemlich effektive Strategie für alles außer 0-Tage-Robotern.
David

4

Alle verfügbaren Sicherheitsformen sind tatsächlich Sicherheitsformen durch Dunkelheit. Jede Methode wird komplexer und bietet eine bessere Sicherheit. Alle Methoden basieren jedoch auf einem Algorithmus und einem oder mehreren Schlüsseln, um die verschlüsselten Daten wiederherzustellen. "Sicherheit durch Dunkelheit", wie die meisten es nennen, ist, wenn jemand einen der einfachsten und am einfachsten zu knackenden Algorithmen wählt.

Algorithmen wie das Verschieben von Zeichen sind einfach zu implementieren und leicht zu knacken. Deshalb sind sie eine schlechte Idee. Es ist wahrscheinlich besser als nichts, aber es verhindert höchstens, dass ein gelegentlicher Blick auf die Daten leicht gelesen werden kann.

Im Internet gibt es hervorragende Ressourcen, mit denen Sie sich über alle verfügbaren Verschlüsselungsmethoden und ihre Stärken und Schwächen informieren können.


4

Bei Sicherheit geht es darum, Menschen hereinzulassen oder fernzuhalten, je nachdem, was sie wissen, wer sie sind oder was sie haben. Derzeit ist die Biometrie nicht gut darin, herauszufinden, wer Sie sind, und es wird immer Probleme damit geben (Fingerabdruckleser für jemanden, der einen schweren Unfall hatte, gefälschte Fingerabdrücke usw.). Tatsächlich geht es bei einem Großteil der Sicherheit darum, etwas zu verschleiern.

Bei guter Sicherheit geht es darum, die Dinge, die Sie geheim halten müssen, auf ein Minimum zu beschränken. Wenn Sie einen ordnungsgemäß verschlüsselten AES-Kanal haben, können Sie die Bösen alles außer dem Passwort sehen lassen, und Sie sind sicher. Dies bedeutet, dass Sie einen viel kleineren Bereich für Angriffe haben und sich auf die Sicherung der Passwörter konzentrieren können. (Nicht, dass das trivial wäre.)

Dazu muss man auf alles außer dem Passwort vertrauen können. Dies bedeutet normalerweise die Verwendung von Krypto nach Industriestandard, die zahlreiche Experten untersucht haben. Jeder kann eine Chiffre erstellen, die er nicht brechen kann, aber nicht jeder kann eine Chiffre erstellen, die Bruce Schneier nicht brechen kann. Da es an theoretischen Grundlagen für die Sicherheit von Chiffren mangelt, wird die Sicherheit einer Chiffre dadurch bestimmt, dass viele sehr kluge und sachkundige Personen versuchen, Angriffe zu entwickeln, auch wenn sie nicht praktikabel sind (Angriffe auf Chiffren werden immer besser) niemals schlimmer). Dies bedeutet, dass der Krypto-Algorithmus allgemein bekannt sein muss. Ich habe großes Vertrauen in den Advanced Encryption Standard und fast keinen in einen proprietären Algorithmus, den Joe geschrieben und verschleiert hat.

Es gab jedoch Probleme bei der Implementierung von Kryptoalgorithmen. Es ist leicht, versehentlich Löcher zu hinterlassen, durch die der Schlüssel gefunden oder andere Unfälle begangen werden können. Dies geschah mit einem alternativen Signaturfeld für PGP und Schwachstellen mit SSL, das unter Debian Linux implementiert war. Es ist sogar OpenBSD passiert, dem wahrscheinlich sichersten verfügbaren Betriebssystem (ich denke, es sind bis zu zwei Exploits in zehn Jahren). Daher sollten diese von einem seriösen Unternehmen durchgeführt werden, und ich würde mich besser fühlen, wenn die Implementierungen Open Source wären. (Geschlossene Quelle wird einen entschlossenen Angreifer nicht aufhalten, aber es wird für zufällige gute Jungs schwieriger, zu schließende Löcher zu finden.)

Wenn ich also Sicherheit wollte, würde ich versuchen, mein System so zuverlässig wie möglich zu machen, was bedeutet, dass es bis auf das Passwort so offen wie möglich ist.

Das Auflagern von Sicherheit durch Dunkelheit auf ein bereits sicheres System kann einigen helfen, aber wenn das System sicher ist, ist es nicht erforderlich, und wenn es unsicher ist, ist es am besten, es sicher zu machen. Stellen Sie sich Dunkelheit wie die weniger seriösen Formen der "alternativen Medizin" vor - es ist sehr unwahrscheinlich, dass sie viel hilft, und obwohl es unwahrscheinlich ist, dass sie von sich aus viel tut, kann es den Patienten weniger wahrscheinlich machen, einen kompetenten Arzt oder Computersicherheitsspezialisten aufzusuchen, je nachdem, was auch immer.

Zuletzt möchte ich einen völlig unaufgeforderten und desinteressierten Plug für Bruce Schneiers Blog machen , als nichts weiter als einen interessierten Leser. Ich habe viel über Sicherheit gelernt.


3

Eine der besten Möglichkeiten, ein Sicherheitsprodukt zu bewerten, zu testen oder zu verbessern, besteht darin, es von einer großen, cleveren Peer Group anschlagen zu lassen.

Produkte, die sich aus Sicherheitsgründen darauf verlassen, eine "Black Box" zu sein, können diese Art von Test nicht nutzen. Eine "Black Box" zu sein, lässt natürlich immer den Verdacht aufkommen (oft gerechtfertigt), dass sie dieser Art von Prüfung sowieso nicht standhalten würden.


"Eine der besten Möglichkeiten, ein Sicherheitsprodukt zu bewerten, zu testen oder zu verbessern, besteht darin, es von einer großen, cleveren Peer Group anschlagen zu lassen." - einverstanden. Daher sollten Sie hier Ihre DB-Details zusammen mit allen relevanten Routinen veröffentlichen. Lassen Sie uns auf Ihrer Datenbank "spielen" und wir sagen Ihnen, wie sicher sie ist. :)
Abelenky

@abelenky: Wenn ich der Erfinder / Eigentümer einer Software wäre, die ein "Totally Secure DB System" ist, würde ich mich freuen, wenn sie angeschlagen wird, und als potenzieller Benutzer würde ich erwarten, dass sie sicher ist, auch wenn alle Meine Schemata wurden veröffentlicht.
Brent.Longborough

3

Ich habe in einem Fall argumentiert, dass Passwortschutz wirklich Sicherheit durch Dunkelheit ist. Die einzige Sicherheit, die ich mir vorstellen kann, wäre STO, ist eine Art biometrische Sicherheit.

Abgesehen von dieser Semantik und der Auswahl von Fehlern ist STO (Sicherheit durch Dunkelheit) offensichtlich in jedem Fall schlecht, in dem Sie echte Sicherheit benötigen. Es kann jedoch Fälle geben, in denen dies keine Rolle spielt. Ich werde oft XOR eine Textdatei auffüllen, die niemand lesen soll. Aber es ist mir egal, ob sie es tun, ich würde es einfach vorziehen, wenn es nicht gelesen wird. In diesem Fall spielt es keine Rolle, und ein XOR-Pad ist ein perfektes Beispiel für einen leicht zu findenden STO.


Ja, ich habe mich gefragt, was der Unterschied für mich ist.
Rimian

2

Es ist fast nie eine gute Idee. Es ist das gleiche zu sagen, ist es eine gute Idee, ohne Sicherheitsgurt zu fahren? Natürlich können Sie einige Fälle finden, in denen es passt, aber die Antwort aus Erfahrung scheint offensichtlich.


Es ist eher so, als würde man mit einem Sicherheitsgurt aus Pappe fahren. Es sieht auf den ersten Blick sicher aus, bietet aber keinen wirklichen Schutz.
Greg

Sicherheitsgurt aus Pappe mit Glassplittern bedeckt. Auch wenn es keinen Unfall gibt, werden Sie immer noch Schmerzen haben.
EBGreen

Nicht die richtige Metapher. Eher wie mit wahnsinnigen Geschwindigkeiten ohne Sicherheitsgurt auf schwer zu findenden Nebenstraßen zu fahren, in der Hoffnung, dass niemand sonst die Nebenstraßen entdeckt.
S.Lott

1

Eine schwache Verschlüsselung wird nur die am wenigsten motivierten Hacker abschrecken, daher ist sie nicht wertlos, sie ist nur nicht sehr wertvoll, insbesondere wenn eine starke Verschlüsselung wie AES verfügbar ist.

Sicherheit durch Dunkelheit basiert auf der Annahme, dass Sie klug und Ihre Benutzer dumm sind. Wenn diese Annahme auf Arroganz und nicht auf empirischen Daten basiert, bestimmen Ihre Benutzer - und Hacker -, wie die versteckte Methode aufgerufen, die nicht verknüpfte Seite aufgerufen, das Klartextkennwort aus der DLL dekompiliert und extrahiert wird.

Das Bereitstellen umfassender Metadaten für Benutzer ist jedoch keine gute Idee, und das Verschleiern ist eine absolut gültige Technik, solange Sie sie mit Verschlüsselung, Autorisierung, Authentifizierung und all diesen anderen Sicherheitsprinzipien sichern.



1

Der einzige Punkt, den ich hinzufügen muss, der noch nicht angesprochen wurde, ist die unglaubliche Fähigkeit des Internets, Sicherheit durch Dunkelheit zu zerschlagen.

Wie immer wieder gezeigt wurde, ist Ihre einzige Verteidigung, wenn "niemand weiß, dass die Hintertür / der Bug / der Exploit da ist", nur eine Person, die darüber stolpert, und innerhalb von Minuten werden es Hunderte von Menschen tun kennt. Am nächsten Tag wird so ziemlich jeder, der es wissen will, es tun. Autsch.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.