HCE: Wie sicher ist das Bezahlen ohne Secure Element?

Werbung
Host Card Emulation
Wie sicher ist das Bezahlen ohne Secure Element?
Dr. Michael Roland
IIR Jahresforum Cashless Payments • Wien
28. September 2016
This work is funded by the Christian Doppler Gesellschaft,
A1 Telekom Austria AG, Drei-Banken-EDV GmbH, LG Nexera
Business Solutions AG, NXP Semiconductors Austria GmbH,
and Österreichische Staatsdruckerei GmbH.
Josef Ressel Center for User-friendly Secure Mobile Environments (u‘smile) • www.usmile.at
A research group of the University of Applied Sciences Upper Austria, Hagenberg Campus
This document has been
downloaded from
http://www.mroland.at/
Near Field Communication
Was leistet NFC im Smartphone?
Peer-to-Peer Mode
Reader/Writer Mode
=
Card Emulation Mode
2
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Near Field Communication
Was leistet NFC im Smartphone?
Reader/Writer Mode
Peer-to-Peer Mode
=
Card Emulation Mode
3
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Near Field Communication
Bezahlen mit NFC
Transaktionsdaten
► Betrag
► Datum/Uhrzeit
► …
Freigabe
Transaktionsdaten
Enthält:
4
►
Kartendaten
►
geheimen Schlüssel
– PAN
– Ablaufdatum
– …
28. September 2016
(c) Michael Roland
►
Kartendaten
►
Signatur
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Near Field Communication
Komponenten im Smartphone
Applikationsprozessor
• Smartphone-OS
(z.B. Android)
• Apps
Applikationsprozessor
Android
…
NFC
Controller
Secure Element
• Smartcard-Chip
• Prozessor und Speicher
für sicherheitskritische
Applikationen und Daten
Secure
Element
NFC-Controller
• Analoges Front-End
• NFC-Modem
5
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Card Emulation
Secure Element vs. Host
Applikationsprozessor
Applikationsprozessor
Android
Android
…
NFC
Controller
…
Secure
Element
NFC
Controller
Befehl
Befehl
Antwort
Antwort
Host Card Emulation
Secure Element
6
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Card Emulation
Secure Element
Vorteile
►
Geschlossene und streng kontrollierte Umgebung
►
Sicheres Betriebssystem
►
Sicherer Prozessor und Speicher
►
Zertifizierung der Hardware und Software
Secure
Element
Nachteile
7
►
Sicherheit hat hohen Preis
►
SE ist nicht in jedem Gerät verfügbar
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Card Emulation
Host Card Emulation
Vorteile
Applikationsprozessor
►
Offene Umgebung
►
Praktisch in jedem aktuellen Android-Gerät
verfügbar (wenn NFC vorhanden)
Android
Nachteile
8
►
Offene Umgebung (!)
►
Bewusstes Außerkraftsetzen von
Schutzmechanismen durch Benutzer
►
Komplexes Betriebssystem
►
Hardware kaum gegen physische Angriffe
geschützt
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Host Card Emulation
„Pure“
HCE
● Smartcard-Applikation 1:1
als HCE-App umgesetzt
Applikationsprozessor
Vorteile
Android
Offline verwendbar
► Einfach zu implementieren
►
Probleme
NFC
Controller
Kartendaten und Schlüssel in
unsicherem Speicher
► Daten einfach kopierbar
► Kartenduplikate
uneingeschränkt nutzbar
►
9
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Host Card Emulation
Strategien für mehr Sicherheit
Hybrid
HCE
Online
HCE
Tokenized
HCE
+ SE oder TEE
+ „Cloud-SE“
+ Tokenization
„Pure“
HCE
10
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Host Card Emulation
Online HCE
● HCE-App leitet
Kommunikation direkt in die
Cloud weiter
Applikationsprozessor
Vorteile
►
Cloud-SE
Android
Kartendaten und Schlüssel
nicht am Smartphone
gespeichert (kein Zugriff durch
andere Apps)
NFC
Controller
Probleme
►
►
►
11
Nur online verwendbar
Ev. lange NFC-Interaktion
Verbindung zwischen HCE-App
und Cloud-SE:
Absicherung problematisch
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Host Card Emulation
Hybrid HCE
● HCE-App nutzt sicheren
Schlüsselspeicher am
Smartphone
Applikationsprozessor
Vorteile
Android
TEE
Offline verwendbar
► Schlüssel nicht durch andere Apps
kopierbar
►
Probleme
NFC
Controller
Geeigneter Schlüsselspeicher
notwendig
► SE: Komplexität, Verfügbarkeit
► TEE: geringeres Schutzniveau
► Verwendung von Schlüsselspeicher
durch andere Apps
►
12
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Host Card Emulation
Tokenized HCE
● Kurzlebige Token statt regulärer
Kartendaten/Schlüssel
● Online-Phasen: HCE-App lädt
begrenzte Anzahl an Token
Applikationsprozessor
Token Provider
Android
Vorteile
(begrenzt) offline verwendbar
► Sehr begrenzte Gültigkeit der
Schlüssel im unsicheren Speicher
►
NFC
Controller
Probleme
Verbrauch/Ablauf der Token
► Token in unsicherem Speicher
► Verbindung zwischen HCE-App
und Token Provider:
Absicherung problematisch
►
13
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Angriffsszenario
Skimming
●
●
Kopieren der für den Bezahlvorgang relevanten Daten
auf ein anderes Gerät (oder eine Smartcard)
Risiko
Nutzen
„Pure“ HCE
♦♦♦♦
♦♦♦♦♦
Online HCE
nicht anwendbar
Hybrid HCE
♦♦
♦♦♦♦♦
Bei Tokenization:
Tokenized HCE
♦♦♦♦
♦♦♦
►
Secure Element
♦
♦♦♦♦♦
Zugriff auf Daten des Wallet notwendig
►
►
●
Lokaler Angreifer (ev. auch Benutzer selbst)
Entfernter Angreifer mittels App (& Privilege Escalation)
Kopierte Daten nur sehr begrenzt nutzbar
Kopieren der
Kartendaten/Schlüssel
bzw. Token
bzw.
bzw.
Opfer
14
28. September 2016
Angreifer
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Angriffsszenario
Software-based Relay zu Wallet-App
●
Weiterleiten der NFC-Kommunikation zur Wallet-App
am Gerät des Opfers
●
App am Gerät des Opfers notwendig
●
Während Bezahlvorgang: Verbindung zwischen
Angreifer- und Opfer-Gerät notwendig
●
Android schützt HCE-Apps gegen diesen Angriff
►
Privilege Escalation könnte Schutz aushebeln
Risiko
Nutzen
„Pure“ HCE
♦♦♦♦
♦♦♦
Online HCE
♦♦♦♦
♦♦♦
Hybrid HCE
♦♦♦♦
♦♦♦
Tokenized HCE
♦♦♦♦
♦♦♦
Secure Element
♦♦♦♦
─
(direkt zum SE statt zur App)
Weiterleiten der
Kommunikation
über das Internet
Weiterleiten der
Kommunikation
Opfer
15
28. September 2016
Angreifer
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Angriffsszenario
Software-based Relay zu Cloud-Dienst
●
Nutzung des Cloud-Dienstes über anderes Gerät
●
Zugangsdaten zum Cloud-Dienst notwendig
„Pure“ HCE
nicht anwendbar
►
Online HCE
♦♦♦
Hybrid HCE
nicht anwendbar
Tokenized HCE
♦♦♦
Secure Element
nicht anwendbar
►
►
●
z.B. aus Datenspeicher der Wallet-App
Lokaler Angreifer (ev. auch Benutzer selbst)
Entfernter Angreifer mittels App (Privilege Escalation)
Schutzmaßnahmen beim Cloud-Dienst möglich
►
z.B. Erkennung mehrerer gleichzeitiger Verbindungen
Risiko
Nutzen
♦♦♦♦
♦♦♦
Nutzung der Zugangsdaten zum Cloud-Dienst
Cloud-SE /
Token Provider
Opfer
16
28. September 2016
Angreifer
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Host Card Emulation
Strategien für noch mehr Sicherheit?
Verschleierung der Funktionsweise des Programmcodes
● Problem:
►
►
Android-Apps relativ einfach in Java-Code rückübersetzbar
statische Code-Analyse und Reverse Engineering
● Techniken:
►
Code Obfuscation / Code „Encryption“
Ausweichen auf Native Code
►
White-Box Cryptography
►
– Werkzeuge und Bedienung einfach nur teurer und komplexer
– Verlust impliziter Sicherheitsmaßnahmen bei Speicherzugriffen von Java
– Eigentlich: nicht „Kryptographie“ sondern Steganographie (bzw.
Verschleierung)
● Aber:
►
17
Nur Verschleierung, kein wirklich wirksamer Schutz
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Host Card Emulation
Strategien für noch mehr Sicherheit?
Erkennung unerwünschter Geräteeigenschaften
● Probleme:
►
►
►
Bekannte Bedrohungen
Bewusstes Aushebeln von Sicherheitsmechanismen durch Benutzer
Kopieren von Daten auf andere Geräte
● Techniken:
►
►
►
Device Fingerprinting
Root Detection
Debug Detection
● Aber:
►
►
18
Nur bekannte(!) Muster können auch erkannt werden
Wer das gesamte System kontrolliert kann auch verhindern, dass er
erkannt wird
28. September 2016
(c) Michael Roland
HCE: Wie sicher ist das Bezahlen ohne Secure Element?
Dr. Michael Roland
Research Associate
Josef Ressel Center u'smile and Research Group Embedded Systems
University of Applied Sciences Upper Austria
michael.roland (at) fh-hagenberg.at
Josef Ressel Center for User-friendly Secure Mobile Environments (u‘smile) • www.usmile.at
A research group of the University of Applied Sciences Upper Austria, Hagenberg Campus
Herunterladen