Security through obscurity

Prinzip, die Sicherheit eines Systems durch Geheimhaltung seiner Funktionsweise zu gewährleisten
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 19. November 2007 um 04:24 Uhr durch Jabo (Diskussion | Beiträge) (Änderung 39129910 von Jabo (Diskussion) wurde rückgängig gemacht. -> Falschen Baustein gelöscht?). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Security through obscurity oder security by obscurity (engl. „Sicherheit durch Unklarheit“) bezeichnet ein kontroverses Prinzip in der Computer- und Netzwerksicherheit, nach dem versucht wird, Sicherheit durch Geheimhaltung zu erreichen. Ein System sollte sich niemals allein auf security through obscurity verlassen, aber es kann sinnvoll sein, dadurch die Schwelle für potentielle Angreifer anzuheben.

Allgemeines

Claude Shannons Ausspruch The enemy knows the system („Der Feind kennt das System“) ist ein Ansatzpunkt, von dem man bei der Erstellung von Sicherheitskonzepten ausgehen sollte. Sicherheit, die ausschließlich auf der Geheimhaltung von Informationen beruht, hat sich oft als ungenügend herausgestellt.

Für den Bereich der Kryptologie bleibt jedoch festzuhalten, dass die Entschlüsselung immer durch Geheimhaltung von Daten verhindert wird. Die Frage ist lediglich, ob nur ein relativ kleiner Schlüssel geheimgehalten wird oder auch der verwendete Algorithmus, denn sobald der Algorithmus für viele Dinge verwendet wird, ist er nicht mehr geheim, sondern weit verbreitet. Security by obscurity ist also der Versuch, Dinge geheim zu halten, die weite Verbreitung finden.

Ein starker Algorithmus wie z. B. der Advanced Encryption Standard erfordert aus der Sicht der reinen Kryptographie-Sicherheit keine Geheimhaltung des Verfahrens, sondern nur des Schlüssels. Die Kryptographie-Sicherheit beschäftigt sich mit der Sicherheit eines Verfahrens. Immer wieder werden Verschlüsselungsalgorithmen jedoch auch geheimgehalten. Dies kann zwei Ursachen haben:

  1. Für sensible Bereiche wird ein Mechanismus immer geheimgehalten. Dies hat den entscheidenden Vorteil, dass ein Angreifer erst einmal den Mechanismus kennen und beherrschen muss, bevor er vielversprechende Angriffe vornehmen kann.
  2. Durch die Kenntnis vom verwendeten Verschlüsselungsalgorithmus könnten eventuelle Schwachstellen entdeckt werden, sodass sich erst bedeutend später herausstellt, dass die Verschlüsselung nicht effektiv ist. RC4 ist ein Beispiel dafür. Der Algorithmus ist die Basis der WEP-Verschlüsselung heute weit verbreiteter WLANs. Auf diese Weise führt security by obscurity zu einem Verlust von Sicherheit, da wegen security by obscurity die vermeintlichen Sicherheits-Methoden nicht auf ihre Wirksamkeit überprüft, die unwirksamen Methoden nicht frühzeitig als solche verworfen werden.

Das sehr weit verbreitete Konzept von Kennwörtern ist trotz der offensichtlichen Geheimhaltung meist keine security through obscurity: Man hält zwar ein Passwort geheim, um sicher zu gehen, dass nur Befugte Zugang oder Zugriff haben, die (Passwort-)Eingabemaske und der verwendete Mechanismus (der Zugang erfolgt bei korrektem Passwort) sind jedoch im Regelfall bekannt.

Beispiele

zweiter, funktionsloser Zugang
Das Anbringen eines zusätzlichen, offensichtlichen Login-Feldes, welches jedoch ohne funktion ist, um so vom eigentlichen Angriffspunkt abzulenken.
Vergleichbar ist hier das Anbringen eines funktionslosen Schlüssellochs an einer Türe und das Tarnen des eigentlichen Schlüssellochs. Dies soll einen Einbrecher dazu bewegen, seine Energie auf das funktionslose Schlüsselloch zu fokusieren.
Schlüssel in einem Blumentopf
Ein Beispiel für die Nachteile des Prinzips wäre jemand, der den Schlüssel seiner Haustüre in einem Blumentopf versteckt, für den Fall, dass er sich aus dem Haus ausschließt. Der Schwachpunkt dieser Vorgehensweise ist offensichtlich: Jeder, der weiß, wo der Schlüssel versteckt ist, kann die Haustüre öffnen. Der Hauseigentümer nimmt jedoch an, dass niemand von dem Versteck weiß und auch ein Einbrecher den Schlüssel kaum finden würde. Die Sicherheit der Schließanlage wird hier irrelevant.
Portscans „ignorieren“
Konfiguration einer Personal Firewall so, dass Anfragen auf Ports ignoriert (DENY/DROP) anstatt negativ beantwortet werden (REJECT) und hoffen so, unsichtbar und sicherer zu sein.
Dienste (Ports) verstecken
Einen Dienst, z. B. SSH-Server nicht auf dem Standardport 22, sondern auf einem anderen Port laufen lassen. Gegen einen guten Portscanner ist dies aber KEIN Schutz; dieser findet den anderen Port leicht.
Ping „ignorieren“
Einige Hosts sind aus den gleichen Gründen wie bei Portscans so konfiguriert, dass sie ICMP Echo Request-Pakete ignorieren. Das erhoffte Unsichtbarsein ist allerdings ebenfalls ein Trugschluss. Ist ein Computer nämlich tatsächlich nicht online, bekommt man, wenn man ihn „anpingt“, von einem Router meist ein ICMP Destination unreachable als Antwort. Bleibt diese jedoch aus und es kommt keine Antwort auf den Request, so kann gerade daraus auf das Vorhandensein des Zielrechners geschlossen werden - und darauf, daß er auch online ist. Vergleichbar wäre das mit einer Telefonnummer, bei der wegen ihrer tatsächlichen Existenz die Ansage "Kein Anschluß unter dieser Nummer" nicht kommt, aber dann auch weder ein Besetzt- noch ein Klingelzeichen. Man wurde also durchgestellt, aber dann nicht angenommen. Die Gegenstelle ist also alles andere als "unsichtbar".
Außerdem kann der Angreifer immer noch nach häufig benutzten TCP- oder UDP-Ports scannen.
Closed-Source-Software
Wie sich Open Source und Closed Source unter dem Aspekt der Sicherheit verhalten, ist sehr umstritten. Betriebssysteme mit öffentlich einsehbarem Quellcode wie BSD, OpenSolaris oder Linux profitieren davon, dass der Quelltext von vielen Programmierern durchgesehen wird und so auch Programmfehler gefunden werden. In diesem Zusammenhang wird oft Eric Raymond zitiert: Given enough eyeballs, all bugs are shallow. Auf eine generell größere Sicherheit von Open-Source-Software zu schließen, ist aber falsch. Wichtiger ist der Aspekt zugänglichen Quellcodes bei konkreten Algorithmen der Kryptographie.
Ausgabe von Fehlinformationen
Die Ausgabe durch Verbindungen auf Ports verändern oder das Entfernen bzw Verändern der Versions-Informationen von Webapplikationen. Durch die Veränderungen der Anwendungsinformationen wird versucht, einem Angreifer das Vorhandensein von anderer Software vorzugaukeln. Dieses Verfahren verwenden auch Honeypots.

Siehe auch