# Security through obscurity

Security through Obscurity oder Security by Obscurity (deutsch „Sicherheit durch Obskurität“, auch „Sicherheit durch Unklarheit“ oder „Sicherheit durch Dunkelheit“) ist ein Prinzip in der Computer- und Netzwerksicherheit. Es versucht, die Sicherheit eines Systems oder eines Verfahrens zu gewährleisten, indem seine Funktionsweise geheim gehalten wird. Der Begriff ist negativ konnotiert und wird zumeist als Kritik an der Geheimhaltung gebraucht.

## Hintergrund

Der Mathematiker Auguste Kerckhoffs postulierte 1883 das Kerckhoffs’sche Prinzip, nach dem ein Verschlüsselungssystem keine Geheimhaltung erfordern darf und es ohne Nachteile in die Hände des Feindes gelangen darf. Der Informationstheoretiker Claude Shannon formulierte dies als: „The enemy knows the system“ („Der Feind kennt das System“). Hierbei handelt es sich um eine pessimistische Annahme, dass der Angreifer letztlich Kenntnis von dem Verschlüsselungsverfahren erhält. Hängt die Sicherheit von der Geheimhaltung des Verfahrens ab, so ist das Verfahren mit Eintritt der Annahme gebrochen. Hängt die Sicherheit stattdessen von der Geheimhaltung eines Schlüssels ab, so ist das Verfahren auch nach Offenlegung noch sicher.
Moderne Kryptographie folgt diesem Grundsatz. Kryptographische Verfahren wie der Advanced Encryption Standard oder das RSA-Kryptosystem erfordern keine Geheimhaltung des Algorithmus, sondern nur des verwendeten Schlüssels. Die Geheimhaltung des Schlüssels fällt nicht unter Security through Obscurity, da der Schlüssel nicht die Funktionsweise des Verfahrens beschreibt und austauschbar ist. Dies entspricht dem Grundsatz, möglichst wenige Teile geheim zu halten, um diese dann umso leichter schützen und mit vergleichsweise geringen Kosten ersetzen zu können.
Der Begriff wird nicht nur auf die Kryptographie, sondern auch auf andere Bereiche der IT-Sicherheit angewandt. Bei einem Computersystem mit Passwort würde beispielsweise die Geheimhaltung der Methode zur Eingabe und Überprüfung des Passworts unter Security through Obscurity fallen. Die Geheimhaltung des Passworts hingegen gehört analog dem kryptographischen Schlüssel nicht zur Funktionsweise des Systems.

## Kritik

Security through Obscurity steht im Gegensatz zu einem Systemdesign, das inhärent sicher ist, unabhängig davon ob es offengelegt wurde oder nicht (Security by Design). Dies wird auch Security through Transparency bezeichnet. So rät beispielsweise das National Institute of Standards and Technology (NIST), dass die Systemsicherheit eines Servers nicht von der Geheimhaltung der Implementierung oder dessen Komponenten abhängen sollte: “Open Design—System security should not depend on the secrecy of the implementation or its components.”
Sicherheit, die ausschließlich auf der Geheimhaltung oder Verschleierung von Verfahren beruht, hat sich oft als ungenügend herausgestellt. Demnach kann Geheimhaltung ein Indiz für ein tatsächlich unsicheres System darstellen, muss es jedoch nicht zwangsläufig. Neben einem vermeintlichen Sicherheitsgewinn kann Geheimhaltung auch aus anderen Gründen erfolgen. Die Obfuskation von Software oder Hardware kann beispielsweise zum Schutz von geistigem Eigentum erfolgen. Im Einzelfall ist die Absicht der Geheimhaltung nicht eindeutig erkennbar. So wurden etwa die kommerziell verwerteten Verschlüsselungsalgorithmen A5/1 und RC4 von den Herstellern nicht veröffentlicht. Beide Algorithmen wurden durch Informationslecks öffentlich bekannt und später außerdem gebrochen.
Im Bereich der Kryptographie hat sich die Veröffentlichung von Algorithmen bewährt, um sie einem Peer Review auszusetzen und Sicherheitslücken frühzeitig aufzudecken. Laut Bruce Schneier liege das an der mathematischen Natur eines Verschlüsselungsalgorithmus, dass die gesamte Sicherheit von einem einzigen Schlüssel abhinge. In anderen Bereichen sei dies schwieriger. Schneier nennt Luftsicherheit als Beispiel, wo die Sicherheit von Dutzenden potentiellen Geheimnissen abhinge, etwa wie man in das Cockpit eindringen kann, dem Design der Cockpittür, den Prozeduren für die Fluggast- und Gepäckkontrolle etc. Kerckhoffs’ Prinzip sei nicht anwendbar, weil man die Luftsicherheit nicht auf einen einzelnen „Schlüssel“ abbilden könne.
Kritiker verweisen darauf, dass Security by Obscurity für den Anwender intransparent ist und somit kein Vertrauen in die Sicherheit eines Produkts schafft.

## Beispiele
### Ping „ignorieren“

    Einige Hosts sind so konfiguriert, dass sie kein Gesuch um ein Echo erfüllen. Unbeachtet bleibt dabei, dass das Internet Control Message Protocol Rückmeldungen des Gateways vorsieht, wenn der hinter dem Gateway befindliche Host nicht erreichbar ist. Bleibt eine solche Rückmeldung aus, kann man daraus auf die Erreichbarkeit des Hosts schließen.

### Portscans „ignorieren“

    Konfiguration einer Firewall, so dass Anfragen auf Ports still verworfen (DROP) statt ablehnend beantwortet (REJECT) werden. Dies hat allerdings den Nebeneffekt, dass auf sendender Seite Timeouts auftreten, die z. B. automatisierte Brute-Force-Angriffe über Netzwerke sehr stark verlangsamen oder gar unmöglich machen sollen.

### Netzwerkdienste verstecken

    Dienste wie die Secure Shell oder MySQL nicht auf ihren standardisierten Ports, sondern auf anderen Ports laufen lassen. Bei einem automatisierten Angriff mit der Frequenz von 50 Millisekunden auf dem Niveau einer Paketumlaufzeit im Internet dauert das Ausprobieren aller 65.535 Ports knapp eine Stunde. Übliche Portscanner wie Nmap unterstützen meist einen parallelen Angriff (Multithreading) auf die einzelnen Ports, dadurch lässt sich der Zeitaufwand ohne weiteres auf unter 5 Minuten verkürzen.

### Ausgabe von Fehlinformationen

    Die auf eingehende Verbindungen folgende reguläre Antwort ändern, beispielsweise Namen oder Versionsnummern der Programme, um Angreifern eine andere Software vorzugaukeln, die uninteressant ist. Dieses Verfahren verwenden auch Honeypots.

### Closed-Source-Software

    Wie sich Open Source und Closed Source unter dem Aspekt der Sicherheit verhalten, wird teilweise kontrovers diskutiert. Betriebssysteme mit öffentlich einsehbarem Quellcode wie BSD, OpenSolaris oder Linux profitieren davon, dass der Quelltext von vielen Programmierern durchgesehen werden kann und so auch Programmfehler gefunden werden. In diesem Zusammenhang wird oft Eric Raymond zitiert: “Given enough eyeballs, all bugs are shallow.” Wichtig ist der Aspekt des zugänglichen Quellcodes bei allen konkreten Algorithmen der Kryptographie (Kerckhoffs’ Prinzip) – dies ist selbst unter Microsoft Windows 10 nicht gewährt, weswegen das BSI vom Einsatz in sicherheitskritischen Bereichen abrät.

### E-Postbrief

    In einem Interview mit dem Magazin CIO gab der Projektleiter des E-Postbriefs, Georg Rau, an: „Grundsätzlich gilt, dass wir hier bei uns keine Sicherheitslücke sehen. Mehr will ich nicht sagen. Denn ein wesentlicher Aspekt unseres Sicherheitskonzeptes ist: Wir reden in der Öffentlichkeit nicht darüber. Das ist Teil des Sicherheitskonzeptes.“

### Nichtveröffentlichung von Sicherheitslücken

    Die Nichtveröffentlichung von bekannten Sicherheitslücken, damit sie nicht durch Angreifer ausgenutzt werden können, fällt unter Security through Obscurity. Das Gegenstück dazu ist Full Disclosure: die unmittelbare und vollständige Veröffentlichung durch den Finder einer Sicherheitslücke. Einen Kompromiss stellt Responsible Disclosure dar, bei dem die Veröffentlichung zeitverzögert in Absprache mit dem Hersteller erfolgt.

### Geheim- und Sabotageschutz

    Im Bereich des Geheimschutzes und Sabotageschutzes ist Geheimhaltung ein übliches Element des Sicherheitskonzepts. Dies betrifft nicht nur die eigentlich zu schützenden Objekte, sondern auch das Sicherheitskonzept selbst und die Konzeption der eingesetzten IT-Sicherheitssysteme.