Compass Event08 Smartcard Apdu Analysis but v1.2

39
Tel.+41 55-214 41 60 Fax+41 55-214 41 61 [email protected] www.csnc.ch Compass Security AG Glärnischstrasse 7 Postfach 1628 CH-8640 Rapperswil Smart Card APDU Analysis Compass Event 2008 Ivan "e1" Buetler [email protected] Compass Security AG - Switzerland

Transcript of Compass Event08 Smartcard Apdu Analysis but v1.2

Page 1: Compass Event08 Smartcard Apdu Analysis but v1.2

Tel.+41 55-214 41 60Fax+41 55-214 41 [email protected]

Compass Security AGGlärnischstrasse 7Postfach 1628CH-8640 Rapperswil

Smart Card APDU Analysis

Compass Event 2008

Ivan "e1" [email protected]

Compass Security AG - Switzerland

Page 2: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 2www.csnc.ch

Hypothesis::Statement

SOFTWARE cannot protect

SOFTWARE

Page 3: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 3www.csnc.ch

Hypothesis::Situation

Attacker Toolkit: Please choose your victim...

Network

ConnectivityServer

Infrastructure

Client

Infrastructure

VictimVictimVictimVictim 1:1:1:1:

E-Mail Contamination

Visits to malicious Web Sites

Second Channel Attacks

VictimVictimVictimVictim 2:2:2:2:

Phishing, Pharming

DNS Spoofing

Network Interception

VictimVictimVictimVictim 3:3:3:3:

Web 2.0 Hacking

Cross Site Scripting ...

Malicious Web Sites

Page 4: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 4www.csnc.ch

Hypothesis::Situation

Attacker Toolkit: Please enter the attacking strategy ...

Network

ConnectivityServer

Infrastructure

Client

Infrastructure

Most Most Most Most promisingpromisingpromisingpromising targettargettargettarget

----> Client Computer> Client Computer> Client Computer> Client Computer

E-Mail Malicious

Web Site

Page 5: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 5www.csnc.ch

Hypothesis::Situation

Client Infection Approaches� E-Mails

� Malicious Web Sites

� Rogue Access Points (drive-by-injection)

� Exploitation of internet enabled client software

� Malicious U3, USB stick

� Malicious CD-Rom

� .... [many infection strategies – as you know]

Client Security Defense Strategies � Latest patches / Update services

� Firewall / Personal Firewall

� Anti-Virus protection

� Spyware protection

� Device Locking Suite

� Hard disk encryption

SOFTWARE cannot protect

SOFTWARE

Pentest Pentest Pentest Pentest ExperienceExperienceExperienceExperience::::

Success rate in client

exploitation = 95%

Page 6: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 6www.csnc.ch

Hypothesis::Conclusion

We need Secure Devices - Tamper Proof – Trusted Minicomputers

Page 7: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 7www.csnc.ch

Hypothesis::Conclusion

Secure devices provide ...� AuthenticationAuthenticationAuthenticationAuthentication

� EncryptionEncryptionEncryptionEncryption

� SignaturesSignaturesSignaturesSignatures

Secure devices are ...� Tamper ProofTamper ProofTamper ProofTamper Proof

� Virus/Trojan resistantVirus/Trojan resistantVirus/Trojan resistantVirus/Trojan resistant

Network

ConnectivityServer

Infrastructure

Client

Infrastructure

Page 8: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 8www.csnc.ch

Smart Card::Life Cycle

Smart CardLife Cycle

Page 9: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 9www.csnc.ch

Smart Card::Life Cycle

Producer -> Company -> User

SmartCard Producer MyBank John Doe

Initialize()

sw + policy

Personalize()

Page 10: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 10www.csnc.ch

Smart Card::Life Cycle::Initialize()

MyBank::Unitialized Smart Card

Smart Card needs to be initialized before usage!

Initialization means:

a) PIN policyb) PUK policyc) Key generationd) MasterKeySet... and more...see next page

Page 11: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 11www.csnc.ch

Smart Card::Life Cycle::Initialize()

Page 12: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 12www.csnc.ch

Smart Card::Life Cycle::Initialize()

During Initialization...� Applets are configured (policy)

� Applets are loaded from computer to Smart Card

� Applets are instantiated on Smart Card

This is like „initial software package“ on a Personal Computer� The password for doing so must be known => Master Key Set!!!

.java

Java Compiler

.class

Java Card

Converter

.cap

.ijc

Cardlet Development

Page 13: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 13www.csnc.ch

Smart Card::Life Cycle::Personalize()

Certificate Enrollment� Generate Key on Card

� Generate CSR (certificate signing request)

� Send CSR to CA (certification authority)

� Receive Certificate from CA

� Store Certificate on Card

Smart Card is then useable � Authentication

� Encryption

� SignaturesPersonalize()

Page 14: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 14www.csnc.ch

Smart Card::APDU

Smart CardCommunicationAPDU

Page 15: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 15www.csnc.ch

Smart Card::APDU

Application Protocol Data Unit � Communication between CSP/PKCS#10 and Smart Card

� ISO 7816 Specification + Vendor extensions

HostSmart Card

ReaderAPDU Layer

Physical Layer

(serial, usb, bluetooth, ...)

Page 16: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 16www.csnc.ch

Smart Card::APDU::Architecture

Architecture

Page 17: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 17www.csnc.ch

Smart Card::APDU::Command

APDU Command and Response Structure

APDU Command Details

Page 18: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 18www.csnc.ch

Smart Card::APDU::Response

APDU Command and Response Structure

APDU Response Details

Page 19: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 19www.csnc.ch

Smart Card::APDU::Enter PIN

Example: APDU Enter PIN

APDU Command

C0 20 00 01 08 3030303030303030

APDU Response

90 00

00000000

Page 20: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 20www.csnc.ch

Smart Card::APDU::Standards

GSC-IS (Government Smart Card Interoperability Specification)� ISO Standard (APDU)ISO Standard (APDU)ISO Standard (APDU)ISO Standard (APDU)

� 7816781678167816----4: Organization, security and commands for interchange4: Organization, security and commands for interchange4: Organization, security and commands for interchange4: Organization, security and commands for interchange

� 7816781678167816----8: Commands for security operations8: Commands for security operations8: Commands for security operations8: Commands for security operations

� Goal of GSCGoal of GSCGoal of GSCGoal of GSC----ISISISIS

� Interoperability requirements of the enterprise marketInteroperability requirements of the enterprise marketInteroperability requirements of the enterprise marketInteroperability requirements of the enterprise market

EMV - CAP� EuropayEuropayEuropayEuropay/MasterCard/Visa /MasterCard/Visa /MasterCard/Visa /MasterCard/Visa ---- Chip Authentication ProgramChip Authentication ProgramChip Authentication ProgramChip Authentication Program

GSM (Global System Mobile)� GSM StandardGSM StandardGSM StandardGSM Standard

Page 21: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 21www.csnc.ch

Smart Card::ATR::Answer to Reset

ATR String: Unique Identification for Smart Cards � ATR (Answer to Reset) returns unique number

� Unique number references to the appropriate DLL (registry key)

Page 22: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 22www.csnc.ch

Smart Card::APDU::CSP

ATR: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\Smart Cards

Service Provider: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider

Page 23: Compass Event08 Smartcard Apdu Analysis but v1.2

Tel.+41 55-214 41 60Fax+41 55-214 41 [email protected]

Compass Security AGGlärnischstrasse 7Postfach 1628CH-8640 Rapperswil

ATTACKING Smart CardSOLUTIONS

Page 24: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 24www.csnc.ch

Introduction::Smart Card Attacks

Attacking Approaches� Host Computer (Software)

� Transmission (Link Layer)

� Internal Smart Card (Physical, Side Channel Attacks, not covered here)

Trojan

Link Layer

Internal

Page 25: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 25www.csnc.ch

Hardware::Sniffing APDU

Hardware APDU Sniffing Device� The APDU sequences are not commonly known – hidden secret disclosure

� ATM APDU analysis

� GSM APDU analysis

Page 26: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 26www.csnc.ch

Hardware::Sniffing APDU

Season2 Interface

Smart

Card

RS232

Sniffing

Port

To the SC

Reader

To the SC Reader

Page 27: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 27www.csnc.ch

Hardware::Sniffing APDU

RS232

Sniffing

Port

SC Reader

Serial

Port

Monitor

Page 28: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 28www.csnc.ch

Software::Scanning APDU Commands

Page 29: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 29www.csnc.ch

Software::APDU LiveDebugger

Live Debugger� DLL Proxy winscard.dll

� Analyzing any softwarethat communicates withthe Smart Card withwinscard.dll

� Works with PKCS#10 orCSP enabled applications

Live Debugger Features� Command Modification

� Response Modification

� Logging

Microsoft Crypto API

CSP

CSP – Cryptographic Service Provider

Cryptoki

Pkcs#10 DLL from vendor

winscard.ori

Compass Monitoring: winscard.dll

APDU Live Debugger

Java Program

Page 30: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 30www.csnc.ch

Software::APDU LiveDebugger

APDU Live Debugger: APDU Inspection/Interception� Live Debugging

� Command & Response Interception

Page 31: Compass Event08 Smartcard Apdu Analysis but v1.2

Tel.+41 55-214 41 60Fax+41 55-214 41 [email protected]

Compass Security AGGlärnischstrasse 7Postfach 1628CH-8640 Rapperswil

APDU LiveDebuggerDiscovery!

Page 32: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 32www.csnc.ch

APDU::LiveDebugger::Results

APDU Control Sequences

80 XX XX XX Not encrypted (Axalto Commands)

84 XX XX XX Encrypted

C0 XX XX XX Not encrypted

00 XX XX XX ISO Standard APDU

APDU Instructions

XX B0 XX XX Read

XX D6 XX XX Write

C0 D2 XX XX Generate keys on Smart Card

C0 12 XX XX Generate keys on PC

XX A4 XX XX Select Instance

Page 33: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 33www.csnc.ch

APDU::LiveDebugger::Results

C0 12: Generate Keys on Computer (not on Smart Card)� First: Offcard key generation

� Then: Storing keys onto the Smart Card

Page 34: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 34www.csnc.ch

APDU::LiveDebugger::Results

C0 D2: Generate Keys on Card� First: Oncard key generation

� Then: Smart Card generates keys on card

Page 35: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 35www.csnc.ch

APDU::LiveDebugger::Results

The flag „Generate Keys on Card“ is not enforced

This results in the following attack vector� The CSP asks the card for oncard, or offcard key generation because the card

itself knows the status

� The APDU interceptor responds: „I am an offcard keygen Smart Card“

� The CSP will then perform the generate key functions on the computer

� The CSP will send the CSR to the CA

� After all, the certificate and key material will be stored onto the Smart Card

� The hacker who did all the man in the middle stuff „knows“ all the keying and certificate details! Trust is lost!

Page 36: Compass Event08 Smartcard Apdu Analysis but v1.2

Tel.+41 55-214 41 60Fax+41 55-214 41 [email protected]

Compass Security AGGlärnischstrasse 7Postfach 1628CH-8640 Rapperswil

PoCSmart Card APDU

Attack

Page 37: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 37www.csnc.ch

Smart Card Man-in-the-Middle Attack

SmartCard Certification Authority

Object1 APDU Debugger Object3 Object4

Client Cert Enrollment

GenerateKey

Flag: Generate Key on Card?()

OffCard=Yes

GenerateKeys

Generate CSR

SendCSR

Create CertificateClient CertificateStore to SmartCardStore to SmartCard

CSR

Attacker Host

Trust is Lost! Send details to Attacker

Browser

Status of Flag?

GetFlag

OnCard=Yes

CSP Proxy

Page 38: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 38www.csnc.ch

Smart Card Man-in-the-Middle Attack

Conclusion� The use of Smart Cards does not make you independent from the host

computer in any case and situation!

� The flag „Generate Keys on Card“ does still allow key material being stored onto the Smart Card.

� This demonstration was solely related to Smart Cards an end-user has. If the attacker has some sort of virus/trojan running where the Smart Cards are initialized, even more fraud can occur (MasterKeySet attacks, Rogue Applet Uploads, ...)

� The PIN has been seen in plain-text within the memory segment of the Smart Card software. The PIN can be gathered without administrative privileges. By knowing the PIN, the Smart Card could be used behind the scenes without the users knowledge (signing, encryption).

Page 39: Compass Event08 Smartcard Apdu Analysis but v1.2

© Compass Security AG Page 39www.csnc.ch

Thank you!

Questions?� [email protected]

Swiss Cyber Storm II – Switzerland - 2009� April 2009 – Hack&Learn

� www.hacking-lab.com