Angriffsmöglichkeiten aus dem eigenen Netzwerk?

Hallo Leute,
da ich gerade in einem anderen Thread nochmal über diesen Link EasyBox Standard WPA2 Key | wotan.cc gestolpert bin, frage ich mich gerad welche Angriffmöglichkeiten jemand überhaupt hat wenn er in sich im selben Netzwerk wie sein Ziel befindet.

Wenn unnötig viel an Daten einfach so im Netzwerk freigegeben sind, kann man natürlich ganz einfach einen Virus einschleusen und sich dann frei austoben.

Wenn nichts freigegeben ist könnte man mit gängigen Tools wie C&A durch ARP Spoofing den ganzen Verkehr mitlesen. Praktisch gesehen ist der für ein Angreifer "interessante" Verkehr mit HTTPS gesichert, also bringt das ihm nicht viel.

Also müsste man sowas wie ein SSL Proxy nutzen.
Wenn man keinen Zugriff auf den fremden PC hat müsste man doch erstmal sowas wie C&A selber schreiben (bzw. ARP Spoofing selber schreiben), nur dass der Internetverkehr nicht einfach weitergeleitet wird, sondern an dem PC des Angreifers noch manipuliert werden kann. So kann der Angreifer lauschen, ob irgendwann eine HTTPS Verbindung hergestellt werden soll und er verhandelt die gängigen Parameter einer HTTPS Verbindung mit dem Opfer aus.
Dafür kommen dann die Zertifikate ins Spiel. Kann mir jemand erklären wie genau Zertifikate funktionieren oder einen vernünftigen Link geben? Wikipedia usw. scheint das Ganze immer nur sehr oberflächlich zu beschreiben. Was ich noch von früher weiß, dass Zertifikate von einer CA erstellt und ausgegeben werden. Zertifikate gängiger CAs, wie z.B. VeriSign, hat man im Browser als vertrauenswürdig installiert. Nur was sichert jetzt genau die Integrität ab, dass das Zertifikat nicht doch von jemand Fremden ist? Daher verstehe ich bis jetzt auch noch nicht was den Angreifer daran hindern würde das Zertifikat, was er von der ursprünglichen Seite die vom Opfer aufgerufen werden soll bekommt, einfach an das Opfer weiterzuleiten.
 
zertifikate sind in diesem kontext asymetrische kryptografie ...


dabei gibt es sogenannte schlüsselpaare ... 2 teile die zusammen gehören, wovon je nach verfahren ein teil zum entschlüsseln/signieren oder beidem, der zugehörige andere zum verschlüsseln/signatur prüfen, oder beidem eingesetzt werden kann.

der letztgenannte wäre der öffentliche, der erste der private schlüssel ...

ein zertifikat basiert nun darauf, dass man an den öffentlichen schlüssel noch weitere informationen dran hängt, wie z.b. einen host-namen, order einen benutzernamen, etc.

der inhaber des zertifikats besitzt das zertifikat + den dazugehörigen privaten schlüssel ...

das zertifikat kann er nun verüffentlichen, oder jemand anderem zukommen lassen, um sich gegenüber diesem zu identifizieren, und oder sicher zu kommunizieren:

wenn er sich identifizieren soll, bekommt er von demjenigen gegenüber dem er das tun soll, etwas das er signieren soll ... kann er eine gültige signatur erzeugen (dafür braucht er den privaten schlüssel), gilt er als inhaber des zertifikats ... da der öffentliche schlüssel im zertifikat enthalten ist, kann jeder der das zertifikat bekommt, prüfen ob eine signatur gültig ist.

will man mit dem zertifikate inhaber sicher kommunizieren, muss das verwendete system ver und entschlüsselung erlauben (im gegensatz zu systemen die nur signatur und prüfung erlauben)

dazu erzeugt derjenige der eine nachricht schreiben will, eine nachricht N und verschlüsselt diese mit einem zufälligen schlüssel K und einem symetrischen cipher wie z.b. AES ...

nun verschlüsselt er K mit dem öffentlichen schlüssel des zertifikats, und schick das ergebnis, sowie die verschlüsselte nachricht an den zertifikatsinhaber.

dieser kann mit dem privaten schlüssel den schlüssel K dechiffrieren, und danach N dechiffrieren...

für eine antwort kann er den schlüssel K benutzen, oder einen davon abgeleiteten schlüssel (SHA1(K) oder ähnliches) den der ursprüngliche absender auch errechnen kann

im prinzip also keine großartige magie, sondern stink normale asymetrische krypto ...

der witz kommt erst noch:

woher weiß man, dass der öffentliche schlüssel im zertifikat wirklich der richtige ist, und nicht von einem bösen angreifer ersetzt wurde?

woher weiß man, dass der angegebene inhaber (hostname/benutzername/etc) wirklich stimmt, und sich nicht jemand ein phantasie zertifikat ausgedacht hat?

zertifikate werden ihrerseits digital signiert ... sprich:

über alle angaben die in einem zertifikat stehen, wird ein hash gebildet, und dieser wird von einer CA signiert ...

die CA wiederum hat dafür ein zertifikat ... das liegt in einer zertifikats kette höher als das zertifikat um das es gerade noch ging ...

auch dieses zertifikat muss irgendwer signiert haben ... das kann eine andere CA sein, so dass die kette mitunter länger werden kann ...

irgendwann kommt man in dieser kette aber an ein zertifikat, dass nicht von einer anderen CA unterschrieben wurde, sondern das mit seinem eigenen öffentlichen schlüssel signiert wurde ... ein sog. self-signed-certificate

das ist dann ein root zertifikat ... eines von vielen, die beispielsweise mit browsern ausgeliefert werden ...


die unterschreibende CA hat die aufgabe sicherzustellen, das sie nur berechtigte zertifikate ausstellt, sprich die identität zu prüfen



aufgabe von zertifikaten ist es also sicherzustellen, dass an einem öffentlichen schlüssel eine möglichst nicht fälschbare information anhängt, die aussagen darüber erlaubt, wer den zugehörigen privaten schlüssel haben sollte ...



im konkreten fall von ssl/tls (https):
was hindert einen angreifer daran das zertifikat einfach weiter zu reichen?
nichts ... aber auch gar nichts ...

nur bringt ihm das auch gar nichts ... er hätte keinen einfluss auf den im zertifikat befindlichen öffentlichen schlüssel ... kann diesen also nicht unbemerkt austauschen (andernfalls wäre die signatur des zertifikats ungültig, da er die CA signatur nicht fälschen kann)

da er den zugehörigen privaten schlüssel nicht hat, könnte er dinge die ihm zum signieren gegeben werden nicht signieren -> identifikation schlägt fehl

aus dem gleichen grund könnte er auch dinge die mit dem öffentlichen schlüssel verschlüsselt wurden nicht wieder entschlüsseln, was ihm das lesen oder sinnvoll beantworten einer verschlüsselten nachricht in der regel unmöglich macht ...

er könnte höchstens die kommunikation stören in dem er dinge verändert oder unterdrückt ... verfälschte nachrichten würden in der regel an ungültigen signaturen auffallen ... unterdrückte nachrichten kommen halt nicht an ...


um wirklich eingreifen zu können, müsste er das zertifikat ersetzen, und die gesammte kommunikation rechiffrieren ... das scenario ist als MITM (man in the middle) hinreichend (bis zum erbrechen) beschrieben ...

damit so ein angriff nicht auffällt, braucht man also entweder den privaten schlüssel eines als vertrauenswürdig eingestuften CA zertifikats, die gelegenheit ein solches zertifikat auf dem rechner zu hinterlegen und als vertrauenswürdig zu kennzeichnen, oder eine möglichkeit das darunterliegende kryptoverfahren zu brechen ...


ganz gallien? nein ...

es hat schon öfter schwachstellen gegeben: beispielsweise mit nicht hinreichender prüfung der CA ... wenn der browser nicht prüft ob ein zertifikatsinhaber als CA agieren darf (inhalt eines zertifikats ist für gewöhnlich eine angabe die aussagt ob das zertifikat ein CA zertifikat ist oder nicht) kann jeder ein anderes zertifikat ausstellen ...


abgesehen davon gibts noch andere angriffscenarien auf "eigentlich" SSL geschützte verbindungen ...
 
Vielen Dank für die lange Antwort!

Ich wusste zwar noch was eine asymmetrische Verschlüsselung ist und wie diese mit privaten und öffentlichen Schlüssel funktioniert und konnte auch was mit Begriffen wie Self-Signed anfangen, aber der Zusammenhang zwischen allem war mir nicht mehr klar.

Was meinst du denn mit "abgesehen davon gibts noch andere angriffscenarien auf "eigentlich" SSL geschützte verbindungen ..." ? Welche Angriffsmöglichkeiten gibts denn da noch ?
Auf den ersten Blick scheinen nämlich SSL Verbindungen mit Zertifikaten sicher zu sein unter der Vorraussetzung, dass keiner an den Rootzertifikaten auf dem Rechner rumgespielt hat.
Was man ab und zu mal liest ist, dass Leute sich in eine CA gehackt haben und sich dort Zertifikate ausstellen lassen haben.
 
Zurück
Oben