Zertifikats- bzw. SSL-pinning als Allheilmittel?

Immer wieder liest man, wie der Datenverkehr zwischen Apps und den entsprechenden Servern abgehört wird. Als Gegenmittel bietet sich dafür zunächst SSL-Verschlüsselung an. Damit ist der Datenverkehr verschlüsselt und nicht mehr einzusehen. Allerdings sind SSL-Verbindungen nicht gegen man-in-the-middle-Attacken (mitm-Attacken) geschützt. Dabei schaltet sich der Angreifer zwischen Server und Client. Der Client baut statt zum Server zum Angreifer eine Verbindnung auf. Diese Kommunikation ist zwar verschlüsselt, kann aber vom Angreifer entschlüsselt werden, so dass dieser seinerseits eine verschlüssselte Verbindung zum Server aufbauen kann. Er reicht die Daten transparent durch, liest mit und verändert gegebenenfalls.

Die Verifizierung, dass ich wirklich mit dem Server spreche, kann über SSL-Zertifikate erfolgen. Dabei lässt der Serverbetreiber sich ein Zertifikat von einer Zertifizierungsstelle (CA, Certification Authority) ausstellen, der ich (bzw. mein Browser) vertraut. Das Zertifikat ist an den Servernamen gebunden. Ein Angreifer kann höchstens ein selbst unterschriebenes Zertifikat anbieten. Beim Verbindungsaufbau wird das Zertifikat überprüft und abgelehnt, da die Unterschrift nicht gültig ist.

Bei einem App-Zugriff hat der Nutzer in der Regel keine Möglichkeit, das Zertifikat zu überprüfen. Daher muss dies die App tun. Dies kann durch sogenannten SSL-Pinning geschehen. Die App kennt das zu erwartende Zertifikat und akzeptiert nur dieses.

Nun wird es spannend. An dieser Stelle steigt leider auch der Artikel auf golem.de aus. Es werden die unterschiedlichen Angriffsvektoren durchmischt:

Es wird beschrieben, dass SSL-Pinning auf Android leicht zu umgehen ist. Das mag sein. Aber hier wird auf einmal von anderen Voraussetzungen ausgegangen. Bis eben haben wir dem Client noch vertraut. Als Anwender will ich mitm-Attacken verhindern. Dann ist SSL-Pinning sinnvoll.

Vertaue ich aber nicht mehr dem Client, muss man sich in der Tat etwas anderes überlegen. Dann ist aber das Ziel auch ein anderes: Als Anbieter möchte ich mit einem nicht vertrauenswürdigen Gegenüber Daten austauschen. Solange es nicht irgendeinen vertrauenswürden Kanal gibt, wird dies im Zweifel nicht gelingen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *