SlideShare a Scribd company logo
1 of 67
Download to read offline
Introduction
Java Cards
An augmented bytecode verifier
Java Card Bytecode Verification
Designing a new verification system
Alessio Parzian
European Institute of Innovation and Technology
University of Twente
Security & Privacy
August 5, 2015
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Contents
1 Introduction
Mobile devices and payments
The secure element
The management issue
2 Java Cards
In a nutshell
Attack vectors
3 An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
“The convergence of payments and mobile communications is not
just logical – It is inevitable”
– John Coghlan, Ex CEO Visa USA
−→ Contactless payment adoption
−→ Mobile device ubiquity
−→ Expanded mobile functionalities
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
Figure 1
A physical secure element (SE)
in an Android mobile device.
→ NXP Solution: Java Card SE + NFC
Definition
Protected area, independent
from the application processor
of the device, which is capable
of storing and processing
sensitive information of the
device holder.
Services
Authentication, encryption of
private data, data integrity and
non-repudiation are typical
services that a secure element
provides.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
Figure 1
A physical secure element (SE)
in an Android mobile device.
→ NXP Solution: Java Card SE + NFC
Definition
Protected area, independent
from the application processor
of the device, which is capable
of storing and processing
sensitive information of the
device holder.
Services
Authentication, encryption of
private data, data integrity and
non-repudiation are typical
services that a secure element
provides.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
The parties involved
Card Manufacturer
Authority that fabricates the raw hardware and software.
Card Issuer
Authority that controls the secure element content.
Application Developer
Authority that implement applets.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
The parties involved
Card Manufacturer
Authority that fabricates the raw hardware and software.
Card Issuer
Authority that controls the secure element content.
Application Developer
Authority that implement applets.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
The parties involved
Card Manufacturer
Authority that fabricates the raw hardware and software.
Card Issuer
Authority that controls the secure element content.
Application Developer
Authority that implement applets.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
The ideal SE initialization and management
Card Issuer can add libraries onto an SE as needed
Card Issuer can outsource freely the development of applets
A SE is largely customizable by end users who can install
applets as needed → Applet Market
Applets from different Card Issuers can be installed on the
same SE
A SE is as flexible as a mobile operating system, but more
secure
→ Java Card has all the features to allow that!
→ Dynamism and Multi-application.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
The current SE initialization and management
A Card Issuer asks NXP to initialize a security domain on a SE
A Card Issuer hands libraries/applets to be installed to NXP
NXP verifies the requested software and installs it onto the SE
The SE is released and will not be further personalized
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
Too many drawbacks
1 Not enough flexibility
No post issuance uploads
No multi-application
Strong relationship between a SE manufacturer and a card
issuer required
2 Card Issuer are looking for new solutions
→ Host-based card emulation
3 Potential of Java Card SE only partially used
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
Too many drawbacks
1 Not enough flexibility
No post issuance uploads
No multi-application
Strong relationship between a SE manufacturer and a card
issuer required
2 Card Issuer are looking for new solutions
→ Host-based card emulation
3 Potential of Java Card SE only partially used
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
Too many drawbacks
1 Not enough flexibility
No post issuance uploads
No multi-application
Strong relationship between a SE manufacturer and a card
issuer required
2 Card Issuer are looking for new solutions
→ Host-based card emulation
3 Potential of Java Card SE only partially used
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
Too many drawbacks
1 Not enough flexibility
No post issuance uploads
No multi-application
Strong relationship between a SE manufacturer and a card
issuer required
2 Card Issuer are looking for new solutions
→ Host-based card emulation
3 Potential of Java Card SE only partially used
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
Too many drawbacks
1 Not enough flexibility
No post issuance uploads
No multi-application
Strong relationship between a SE manufacturer and a card
issuer required
2 Card Issuer are looking for new solutions
→ Host-based card emulation
3 Potential of Java Card SE only partially used
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
Too many drawbacks
1 Not enough flexibility
No post issuance uploads
No multi-application
Strong relationship between a SE manufacturer and a card
issuer required
2 Card Issuer are looking for new solutions
→ Host-based card emulation
3 Potential of Java Card SE only partially used
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
As a SE manufacturer, NXP Semiconductors, is strongly interested
to invert this trend. But how can this be achieved?
1 Studied advantages and weaknesses of Java Card
2 Classified its current vulnerabilities and attacks vectors
3 Analyzed stakeholders business requirements
4 Designed an innovative applet verification system
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
As a SE manufacturer, NXP Semiconductors, is strongly interested
to invert this trend. But how can this be achieved?
1 Studied advantages and weaknesses of Java Card
2 Classified its current vulnerabilities and attacks vectors
3 Analyzed stakeholders business requirements
4 Designed an innovative applet verification system
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
As a SE manufacturer, NXP Semiconductors, is strongly interested
to invert this trend. But how can this be achieved?
1 Studied advantages and weaknesses of Java Card
2 Classified its current vulnerabilities and attacks vectors
3 Analyzed stakeholders business requirements
4 Designed an innovative applet verification system
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
As a SE manufacturer, NXP Semiconductors, is strongly interested
to invert this trend. But how can this be achieved?
1 Studied advantages and weaknesses of Java Card
2 Classified its current vulnerabilities and attacks vectors
3 Analyzed stakeholders business requirements
4 Designed an innovative applet verification system
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Mobile devices and payments
The secure element
The management issue
As a SE manufacturer, NXP Semiconductors, is strongly interested
to invert this trend. But how can this be achieved?
1 Studied advantages and weaknesses of Java Card
2 Classified its current vulnerabilities and attacks vectors
3 Analyzed stakeholders business requirements
4 Designed an innovative applet verification system
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
In a nutshell
Attack vectors
Architecture
Applet Applet Applet
Java Card Framework
APIs
Java Card
Virtual Machine
Native Operating System
Underlying Hardware
Smartcard (On-card)
Card
Acceptance
Device
(CAD)
Host
application
Host/PC (Off-card)
responses
com
m
ands
Java Card
Runtime
Environment
Backend
Application
Remote server
responses
commands
Figure 2
The Java Card smartcard architecture
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
In a nutshell
Attack vectors
Benefits
- Interoperability, developed applets can be run on any
Java-enabled smartcard.
- Multi-application, multiple applets can reside on the same
smartcard.
- Dynamism, applets can be added after a smartcard issuance.
- Enhanced security, built-in dedicated security mechanisms
are deployed in the architecture.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
In a nutshell
Attack vectors
Defined a new nomenclature and classified attack vectors by
vulnerability. Hereafter the most relevant:
1 Power Analysis and Manipulation
- Differential Power Analysis
- Fault Injection
2 Applet Exploitation
- Hidden commands
- Unchecked parameters
- Unsafe crypto protocols
3 Type Confusion → byte == short ??
- Obtaining the right to load code
- Injection of ill-formed code
- Run a developed attack vector
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
In a nutshell
Attack vectors
Defined a new nomenclature and classified attack vectors by
vulnerability. Hereafter the most relevant:
1 Power Analysis and Manipulation
- Differential Power Analysis
- Fault Injection
2 Applet Exploitation
- Hidden commands
- Unchecked parameters
- Unsafe crypto protocols
3 Type Confusion → byte == short ??
- Obtaining the right to load code
- Injection of ill-formed code
- Run a developed attack vector
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
In a nutshell
Attack vectors
Defined a new nomenclature and classified attack vectors by
vulnerability. Hereafter the most relevant:
1 Power Analysis and Manipulation
- Differential Power Analysis
- Fault Injection
2 Applet Exploitation
- Hidden commands
- Unchecked parameters
- Unsafe crypto protocols
3 Type Confusion → byte == short ??
- Obtaining the right to load code
- Injection of ill-formed code
- Run a developed attack vector
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The concept
Oracle
Verifier
CAP
Export files
Additional Checks
Typed verification over export files
Transaction module
Fault Injection module
. . .
Signing
System
Device’s
Secure Element
Figure 3
The Off-card verifier working principle
Research Question
How can we design a process such that an augmented
bytecode verifier can be used to provide a flexible and
highly-secure system for applet installation?
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Business requirements and their impact
Priority
Major Moderate Minor
Requirement
1. Hostile Environment 
2. Verification enforcement 
3. Flexible relationships 
4. Code confidentiality 
5. Transparency 
6. Uploads monitoring 
Table 1
Stakeholders’ business requirements priority
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story
Assumption: SEs already initialized and released
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story
Assumption: SEs already initialized and released
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story
Assumption: SEs already initialized and released
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story
Assumption: SEs already initialized and released
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story
Assumption: SEs already initialized and released
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story
Assumption: SEs already initialized and released
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story
Assumption: SEs already initialized and released
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story
Assumption: SEs already initialized and released
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story
Assumption: SEs already initialized and released
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Phases identification
Stakeholders have different requirements, different roles, different
resources and are numerically distant. Therefore, they must be
treated separately to be much more effective in designing the
system architecture. Three phases for each stakeholder can be
identified:
- Activation, which refers to the moment where a new
stakeholder registers into the service.
- Usage, which refers to the phase where content, intended to
be uploaded onto one or more secure elements, is verified.
- Distribution, which refers to the step of uploading a verified
content onto one or more secure elements as needed.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story from a card issuer perspective
Assumption: Focus on the Usage phase
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The system distributed architecture I
Card
Issuers
1..N
Verifier
1..N
Verified
CAP Database
Location 1..N
NXP
backend
Verifier Licenses
Certificates
Signed
Export Files
(JCOP,lib,app)
Location α
Entities Cardinality
NXP - Card Issuer → 1:N
NXP - Verifier→ 1:N
Card Issuer - Verifier→ 1:1
Trusted Area
Untrusted Area
1. CAP  export file
6. Signed CAP
7. Signed CAP upload
2. License verification  oncard exp file applet retrieval
4. Report final process outcome
5. Upload of the signed applet export files
3. Verification modules
Figure 4
The distributed architecture from the Card Issuer perspective
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A system story from an application developer perspective
Assumption: Focus on the Usage phase
CI → NXP Service Request
NXP → CI Augmented bytecode verifier release
CI Libraries development, verification, upload
CI → AD Applet development outsourcing
CI → NXP Service request for AD
NXP → CI → AD Augmented bytecode verifier release
AD Applet development, verification, upload
EndUser Applet download, installation
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The system distributed architecture II
Application
Developer
1..N
Verifier
1..N
Location 1..N
Card Issuer
1..N
Verified
CAP
Database
Certificates
Application
Developers
Location a..z
NXP
backend
Released
Verifier Licenses
Certificates
Signed
Export Files
(JCOP,applets)
Location α
Entities Cardinality
NXP - Card Issuer → 1:N
NXP - Verifier→ 1:N
Card Issuer - App. Developer→ 1:N
App. Developer - Verifier→ 1:1
Trusted Area
Trustworthy Area
Untrusted Area
1. CAP  export file
7. Signed CAP
8. Signed CAP forwarded 9. Signed CAP file resigned and uploaded
4. Card issuer cryptographic confirmation for uploading
2. License verification  oncard exp file applet retrieval
5. Report final process outcome
6. Upload of the signed applet export file
3. Verification modules
Figure 5
The distributed architecture from the Application Developer perspective
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The protocol concept
Components: augmented bytecode verifier, Java Card
token, NXP backend
Remote secure tunnel between the Java Card token and NXP
backend → monitoring the verifier
Local secure tunnel between the Java Card token and the
verifier → avoid MITM attacks
Use of finite automata to enforce states
Use of timers to further decrease the attack surface
Cryptographic confirmations from a Card Issuer and NXP
before signing
→ Security centralized in NXP hands
→ Distribution left in Card Issuers hands
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The protocol concept
Components: augmented bytecode verifier, Java Card
token, NXP backend
Remote secure tunnel between the Java Card token and NXP
backend → monitoring the verifier
Local secure tunnel between the Java Card token and the
verifier → avoid MITM attacks
Use of finite automata to enforce states
Use of timers to further decrease the attack surface
Cryptographic confirmations from a Card Issuer and NXP
before signing
→ Security centralized in NXP hands
→ Distribution left in Card Issuers hands
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The protocol concept
Components: augmented bytecode verifier, Java Card
token, NXP backend
Remote secure tunnel between the Java Card token and NXP
backend → monitoring the verifier
Local secure tunnel between the Java Card token and the
verifier → avoid MITM attacks
Use of finite automata to enforce states
Use of timers to further decrease the attack surface
Cryptographic confirmations from a Card Issuer and NXP
before signing
→ Security centralized in NXP hands
→ Distribution left in Card Issuers hands
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The protocol concept
Components: augmented bytecode verifier, Java Card
token, NXP backend
Remote secure tunnel between the Java Card token and NXP
backend → monitoring the verifier
Local secure tunnel between the Java Card token and the
verifier → avoid MITM attacks
Use of finite automata to enforce states
Use of timers to further decrease the attack surface
Cryptographic confirmations from a Card Issuer and NXP
before signing
→ Security centralized in NXP hands
→ Distribution left in Card Issuers hands
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The protocol concept
Components: augmented bytecode verifier, Java Card
token, NXP backend
Remote secure tunnel between the Java Card token and NXP
backend → monitoring the verifier
Local secure tunnel between the Java Card token and the
verifier → avoid MITM attacks
Use of finite automata to enforce states
Use of timers to further decrease the attack surface
Cryptographic confirmations from a Card Issuer and NXP
before signing
→ Security centralized in NXP hands
→ Distribution left in Card Issuers hands
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The protocol concept
Components: augmented bytecode verifier, Java Card
token, NXP backend
Remote secure tunnel between the Java Card token and NXP
backend → monitoring the verifier
Local secure tunnel between the Java Card token and the
verifier → avoid MITM attacks
Use of finite automata to enforce states
Use of timers to further decrease the attack surface
Cryptographic confirmations from a Card Issuer and NXP
before signing
→ Security centralized in NXP hands
→ Distribution left in Card Issuers hands
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
The protocol concept
Components: augmented bytecode verifier, Java Card
token, NXP backend
Remote secure tunnel between the Java Card token and NXP
backend → monitoring the verifier
Local secure tunnel between the Java Card token and the
verifier → avoid MITM attacks
Use of finite automata to enforce states
Use of timers to further decrease the attack surface
Cryptographic confirmations from a Card Issuer and NXP
before signing
→ Security centralized in NXP hands
→ Distribution left in Card Issuers hands
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
From inside the verifier
MAIN EXECUTION
1. CAP file
1. Exp file
10. Signed CAP file
10. Signed Exp file
Modules
1 .. k
Java Card
Token
App. Developer Location
2.Licenseverification
3.Runmodules
4.Magicnumbers
5.Cryptoconfirmation6.NXPreport
7. CAP,exp
8. Signed CAP,exp
9. Exp upload
Figure 6
The augmented bytecode verifier at the Application Developer location
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Security mechanisms to counteract white-box attacks
Binary
Encryption
Code Obfuscation and Flattening
On disk In memory Executing
Verifier
Code
Variables
Constants
Keys
Figure 7
States of the software attackable in a white-box
scenario
White-box Cryptography
Runtime
Integrity
Check
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Security mechanisms to counteract white-box attacks
Binary
Encryption
Code Obfuscation and Flattening
On disk In memory Executing
Verifier
Code
Variables
Constants
Keys
Figure 7
States of the software attackable in a white-box
scenario
White-box Cryptography
Runtime
Integrity
Check
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Security mechanisms to counteract white-box attacks
Binary
Encryption
Code Obfuscation and Flattening
On disk In memory Executing
Verifier
Code
Variables
Constants
Keys
Figure 7
States of the software attackable in a white-box
scenario
White-box Cryptography
Runtime
Integrity
Check
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Security mechanisms to counteract white-box attacks
Binary
Encryption
Code Obfuscation and Flattening
On disk In memory Executing
Verifier
Code
Variables
Constants
Keys
Figure 7
States of the software attackable in a white-box
scenario
White-box Cryptography
Runtime
Integrity
Check
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Security mechanisms to counteract white-box attacks
Binary
Encryption
Code Obfuscation and Flattening
On disk In memory Executing
Verifier
Code
Variables
Constants
Keys
Figure 7
States of the software attackable in a white-box
scenario
White-box Cryptography
Runtime
Integrity
Check
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Runtime Integrity Check
Threat
An attacker is able to modify a check with another
self-implemented module
NXP m2 Main execution h Token
Build module M from m1 and m2
Run M
Compute Magic Number → session dependent
Compute Hash h
Send h to the token for verification
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
White-box Crypto
Threat
An attacker is able to perform a MITM attack between the main
execution and the token
Lookup tables lt
Main execution
Session key sk
Token
Bidirectional tunnel
Symmetric cryptography
Secure tunnel between NXP and token
→ sk and lk securely delivered
Main Execution is an untrusted entity
→ white-box crypto using fixed key approach
Lookup tables initialized each session according with sk
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Edge cases
It is not feasible to forecast the effects of a breach in a White-box
scenario, thus security mechanisms to deal with edge cases must
be designed.
1 Key Renewability
2 License Revocation
3 Verifier Binary Diversity
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Edge cases
It is not feasible to forecast the effects of a breach in a White-box
scenario, thus security mechanisms to deal with edge cases must
be designed.
1 Key Renewability
2 License Revocation
3 Verifier Binary Diversity
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Edge cases
It is not feasible to forecast the effects of a breach in a White-box
scenario, thus security mechanisms to deal with edge cases must
be designed.
1 Key Renewability
2 License Revocation
3 Verifier Binary Diversity
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Edge cases
It is not feasible to forecast the effects of a breach in a White-box
scenario, thus security mechanisms to deal with edge cases must
be designed.
1 Key Renewability
2 License Revocation
3 Verifier Binary Diversity
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Implementation Direction
Modules in Java
High-level language
Portable binaries
Oracle verifier source
Main Execution in C
Effective obfuscation/flattening
Less reversible
More complex
Communication through JNI
Even if modules can be considered as conceptually independent piece of
software from the main execution, they are strongly interconnected and
controlled by means of our runtime integrity check mechanism proposed and
the two involved trusted party, NXP and token, which can monitor the
correctness of the operations throughout the entire process of verification.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Thank you for your
Attention.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Thank you for your
Attention.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Content Outline
1 Introduction
Mobile devices and payments
The secure element
The management issue
2 Java Cards
In a nutshell
Attack vectors
3 An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Do you have
any questions?
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
A new nomenclature
A nomenclature that covers all feasible classes of attacks on Java
Cards, namely logical attacks, physical attacks and side channel
attacks. Each class introduces, at a high level, feasible attack
types grouped by vulnerabilities along with the common
countermeasures that should be taken to counteract those attacks.
Alessio Parzian Bytecode Verification
Introduction
Java Cards
An augmented bytecode verifier
Requirement analysis
A new scenario
Technicalities
Scenario Properties
1 The verification process is successfully completed
2 CAP and export files preserve their integrity after verification
3 Stakeholders are always authenticated prior to any action to
avoid unwanted behaviours
4 Revocation can be always applied to avoid relevant failures
5 The augmented bytecode verifier is strongly resilient to
white-box scenario attacks
Alessio Parzian Bytecode Verification

More Related Content

What's hot

Layer 7 Mobile Security Workshop with CA Technologies and Forrester Research ...
Layer 7 Mobile Security Workshop with CA Technologies and Forrester Research ...Layer 7 Mobile Security Workshop with CA Technologies and Forrester Research ...
Layer 7 Mobile Security Workshop with CA Technologies and Forrester Research ...CA API Management
 
Mobile Single-Sign On: Extending SSO Out to the Client - Layer 7's CTO Scott ...
Mobile Single-Sign On: Extending SSO Out to the Client - Layer 7's CTO Scott ...Mobile Single-Sign On: Extending SSO Out to the Client - Layer 7's CTO Scott ...
Mobile Single-Sign On: Extending SSO Out to the Client - Layer 7's CTO Scott ...CA API Management
 
Beyond MDM: 5 Things You Must do to Secure Mobile Devices in the Enterprise
Beyond MDM: 5 Things You Must do to Secure Mobile Devices in the EnterpriseBeyond MDM: 5 Things You Must do to Secure Mobile Devices in the Enterprise
Beyond MDM: 5 Things You Must do to Secure Mobile Devices in the EnterpriseCA API Management
 
Two factor authentication-in_your_network_e_guide
Two factor authentication-in_your_network_e_guideTwo factor authentication-in_your_network_e_guide
Two factor authentication-in_your_network_e_guideNick Owen
 
SmartCard Forum 2011 - Evolution of authentication market
SmartCard Forum 2011 - Evolution of authentication marketSmartCard Forum 2011 - Evolution of authentication market
SmartCard Forum 2011 - Evolution of authentication marketOKsystem
 
Single sign-on Across Mobile Applications from RSAConference
Single sign-on Across Mobile Applications from RSAConferenceSingle sign-on Across Mobile Applications from RSAConference
Single sign-on Across Mobile Applications from RSAConferenceCA API Management
 
Apache Milagro Presentation at ApacheCon Europe 2016
Apache Milagro Presentation at ApacheCon Europe 2016Apache Milagro Presentation at ApacheCon Europe 2016
Apache Milagro Presentation at ApacheCon Europe 2016Brian Spector
 
2 factor authentication 3 [compatibility mode]
2 factor authentication 3 [compatibility mode]2 factor authentication 3 [compatibility mode]
2 factor authentication 3 [compatibility mode]Hai Nguyen
 
Mobile SSO: Give App Users a Break from Typing Passwords
Mobile SSO: Give App Users a Break from Typing PasswordsMobile SSO: Give App Users a Break from Typing Passwords
Mobile SSO: Give App Users a Break from Typing PasswordsCA API Management
 
Government Citizen ID using Java Card Platform
Government Citizen ID using Java Card PlatformGovernment Citizen ID using Java Card Platform
Government Citizen ID using Java Card PlatformRamesh Nagappan
 
IRJET- Graphical Secret Code in Internet Banking for Improved Security Transa...
IRJET- Graphical Secret Code in Internet Banking for Improved Security Transa...IRJET- Graphical Secret Code in Internet Banking for Improved Security Transa...
IRJET- Graphical Secret Code in Internet Banking for Improved Security Transa...IRJET Journal
 
TrustBearer - CTST 2009 - OpenID & Strong Authentication
TrustBearer - CTST 2009 - OpenID & Strong AuthenticationTrustBearer - CTST 2009 - OpenID & Strong Authentication
TrustBearer - CTST 2009 - OpenID & Strong AuthenticationTrustBearer
 
Securing Microservices in Hybrid Cloud
Securing Microservices in Hybrid CloudSecuring Microservices in Hybrid Cloud
Securing Microservices in Hybrid CloudVMware Tanzu
 
Mobile Application Security – Effective methodology, efficient testing!
Mobile Application Security – Effective methodology, efficient testing!Mobile Application Security – Effective methodology, efficient testing!
Mobile Application Security – Effective methodology, efficient testing!espheresecurity
 
BehavioSec Web Summit START slideshare
BehavioSec Web Summit START slideshareBehavioSec Web Summit START slideshare
BehavioSec Web Summit START slideshareNeil Costigan
 
CNIT 128: 9: Mobile payments
CNIT 128: 9: Mobile paymentsCNIT 128: 9: Mobile payments
CNIT 128: 9: Mobile paymentsSam Bowne
 
Experience - Idea Team
Experience - Idea TeamExperience - Idea Team
Experience - Idea Teamguestcf53f1
 

What's hot (19)

Layer 7 Mobile Security Workshop with CA Technologies and Forrester Research ...
Layer 7 Mobile Security Workshop with CA Technologies and Forrester Research ...Layer 7 Mobile Security Workshop with CA Technologies and Forrester Research ...
Layer 7 Mobile Security Workshop with CA Technologies and Forrester Research ...
 
Mobile Single-Sign On: Extending SSO Out to the Client - Layer 7's CTO Scott ...
Mobile Single-Sign On: Extending SSO Out to the Client - Layer 7's CTO Scott ...Mobile Single-Sign On: Extending SSO Out to the Client - Layer 7's CTO Scott ...
Mobile Single-Sign On: Extending SSO Out to the Client - Layer 7's CTO Scott ...
 
Beyond MDM: 5 Things You Must do to Secure Mobile Devices in the Enterprise
Beyond MDM: 5 Things You Must do to Secure Mobile Devices in the EnterpriseBeyond MDM: 5 Things You Must do to Secure Mobile Devices in the Enterprise
Beyond MDM: 5 Things You Must do to Secure Mobile Devices in the Enterprise
 
Two factor authentication-in_your_network_e_guide
Two factor authentication-in_your_network_e_guideTwo factor authentication-in_your_network_e_guide
Two factor authentication-in_your_network_e_guide
 
SmartCard Forum 2011 - Evolution of authentication market
SmartCard Forum 2011 - Evolution of authentication marketSmartCard Forum 2011 - Evolution of authentication market
SmartCard Forum 2011 - Evolution of authentication market
 
Single sign-on Across Mobile Applications from RSAConference
Single sign-on Across Mobile Applications from RSAConferenceSingle sign-on Across Mobile Applications from RSAConference
Single sign-on Across Mobile Applications from RSAConference
 
Apache Milagro Presentation at ApacheCon Europe 2016
Apache Milagro Presentation at ApacheCon Europe 2016Apache Milagro Presentation at ApacheCon Europe 2016
Apache Milagro Presentation at ApacheCon Europe 2016
 
2 factor authentication 3 [compatibility mode]
2 factor authentication 3 [compatibility mode]2 factor authentication 3 [compatibility mode]
2 factor authentication 3 [compatibility mode]
 
Mobile application en
Mobile application enMobile application en
Mobile application en
 
Mobile SSO: Give App Users a Break from Typing Passwords
Mobile SSO: Give App Users a Break from Typing PasswordsMobile SSO: Give App Users a Break from Typing Passwords
Mobile SSO: Give App Users a Break from Typing Passwords
 
Government Citizen ID using Java Card Platform
Government Citizen ID using Java Card PlatformGovernment Citizen ID using Java Card Platform
Government Citizen ID using Java Card Platform
 
ISS SA le presenta IdentityGuard de Entrust
ISS SA le presenta IdentityGuard de EntrustISS SA le presenta IdentityGuard de Entrust
ISS SA le presenta IdentityGuard de Entrust
 
IRJET- Graphical Secret Code in Internet Banking for Improved Security Transa...
IRJET- Graphical Secret Code in Internet Banking for Improved Security Transa...IRJET- Graphical Secret Code in Internet Banking for Improved Security Transa...
IRJET- Graphical Secret Code in Internet Banking for Improved Security Transa...
 
TrustBearer - CTST 2009 - OpenID & Strong Authentication
TrustBearer - CTST 2009 - OpenID & Strong AuthenticationTrustBearer - CTST 2009 - OpenID & Strong Authentication
TrustBearer - CTST 2009 - OpenID & Strong Authentication
 
Securing Microservices in Hybrid Cloud
Securing Microservices in Hybrid CloudSecuring Microservices in Hybrid Cloud
Securing Microservices in Hybrid Cloud
 
Mobile Application Security – Effective methodology, efficient testing!
Mobile Application Security – Effective methodology, efficient testing!Mobile Application Security – Effective methodology, efficient testing!
Mobile Application Security – Effective methodology, efficient testing!
 
BehavioSec Web Summit START slideshare
BehavioSec Web Summit START slideshareBehavioSec Web Summit START slideshare
BehavioSec Web Summit START slideshare
 
CNIT 128: 9: Mobile payments
CNIT 128: 9: Mobile paymentsCNIT 128: 9: Mobile payments
CNIT 128: 9: Mobile payments
 
Experience - Idea Team
Experience - Idea TeamExperience - Idea Team
Experience - Idea Team
 

Similar to verification_slides

Apidays Paris 2023 - Kafka in Event-Driven Architectures, Hassane Moustapha, ...
Apidays Paris 2023 - Kafka in Event-Driven Architectures, Hassane Moustapha, ...Apidays Paris 2023 - Kafka in Event-Driven Architectures, Hassane Moustapha, ...
Apidays Paris 2023 - Kafka in Event-Driven Architectures, Hassane Moustapha, ...apidays
 
Financial software Development With Softjourn
Financial software Development With SoftjournFinancial software Development With Softjourn
Financial software Development With SoftjournSoftjourn, Inc.
 
Security as a New Metric for Your Business, Product and Development Lifecycle...
Security as a New Metric for Your Business, Product and Development Lifecycle...Security as a New Metric for Your Business, Product and Development Lifecycle...
Security as a New Metric for Your Business, Product and Development Lifecycle...IT Arena
 
Security as a new metric for Business, Product and Development Lifecycle
Security as a new metric for Business, Product and Development LifecycleSecurity as a new metric for Business, Product and Development Lifecycle
Security as a new metric for Business, Product and Development LifecycleNazar Tymoshyk, CEH, Ph.D.
 
Java Card Security
Java Card SecurityJava Card Security
Java Card SecurityRiscure
 
SmartDevCon - Katowice - 2013
SmartDevCon - Katowice - 2013SmartDevCon - Katowice - 2013
SmartDevCon - Katowice - 2013Petr Dvorak
 
JAVA CARD BY SAIKIRAN PANJALA
JAVA CARD BY SAIKIRAN PANJALAJAVA CARD BY SAIKIRAN PANJALA
JAVA CARD BY SAIKIRAN PANJALASaikiran Panjala
 
“Deploying Edge AI Solutions at Scale for the Internet of Things,” a Presenta...
“Deploying Edge AI Solutions at Scale for the Internet of Things,” a Presenta...“Deploying Edge AI Solutions at Scale for the Internet of Things,” a Presenta...
“Deploying Edge AI Solutions at Scale for the Internet of Things,” a Presenta...Edge AI and Vision Alliance
 
SOTP_Introduction
SOTP_IntroductionSOTP_Introduction
SOTP_IntroductionJohnson Wu
 
Prasant_nayak_NthDimenzion _4Yr_Exp
Prasant_nayak_NthDimenzion _4Yr_ExpPrasant_nayak_NthDimenzion _4Yr_Exp
Prasant_nayak_NthDimenzion _4Yr_ExpPrasant Kumar Nayak
 
NetWatcher Customer Overview
NetWatcher Customer OverviewNetWatcher Customer Overview
NetWatcher Customer OverviewScott Suhy
 
Smart card to the cloud for convenient, secured nfc payment
Smart card to the cloud for convenient, secured nfc paymentSmart card to the cloud for convenient, secured nfc payment
Smart card to the cloud for convenient, secured nfc paymentKona Software Lab Limited.
 
iOS In-App-Purchase verifying receipt locally in Swift
iOS In-App-Purchase verifying receipt locally in SwiftiOS In-App-Purchase verifying receipt locally in Swift
iOS In-App-Purchase verifying receipt locally in SwiftKaz Yoshikawa
 
Ticket To Ride from Elevate UK
Ticket To Ride from Elevate UKTicket To Ride from Elevate UK
Ticket To Ride from Elevate UKKeir Bowden
 
Smart Card to the Cloud for Convenient, Secured NFC Payment
Smart Card to the Cloud for Convenient, Secured NFC PaymentSmart Card to the Cloud for Convenient, Secured NFC Payment
Smart Card to the Cloud for Convenient, Secured NFC PaymentSazzadur Rahaman
 
Naresh_Kumar_Devata_JavaDeveloper
Naresh_Kumar_Devata_JavaDeveloperNaresh_Kumar_Devata_JavaDeveloper
Naresh_Kumar_Devata_JavaDeveloperNARESH DEVATA
 
Security automation in virtual and cloud environments v2
Security automation in virtual and cloud environments v2Security automation in virtual and cloud environments v2
Security automation in virtual and cloud environments v2rpark31
 

Similar to verification_slides (20)

Javacard
Javacard Javacard
Javacard
 
Apidays Paris 2023 - Kafka in Event-Driven Architectures, Hassane Moustapha, ...
Apidays Paris 2023 - Kafka in Event-Driven Architectures, Hassane Moustapha, ...Apidays Paris 2023 - Kafka in Event-Driven Architectures, Hassane Moustapha, ...
Apidays Paris 2023 - Kafka in Event-Driven Architectures, Hassane Moustapha, ...
 
Financial software Development With Softjourn
Financial software Development With SoftjournFinancial software Development With Softjourn
Financial software Development With Softjourn
 
Security as a New Metric for Your Business, Product and Development Lifecycle...
Security as a New Metric for Your Business, Product and Development Lifecycle...Security as a New Metric for Your Business, Product and Development Lifecycle...
Security as a New Metric for Your Business, Product and Development Lifecycle...
 
Security as a new metric for Business, Product and Development Lifecycle
Security as a new metric for Business, Product and Development LifecycleSecurity as a new metric for Business, Product and Development Lifecycle
Security as a new metric for Business, Product and Development Lifecycle
 
Java Card Security
Java Card SecurityJava Card Security
Java Card Security
 
SmartDevCon - Katowice - 2013
SmartDevCon - Katowice - 2013SmartDevCon - Katowice - 2013
SmartDevCon - Katowice - 2013
 
JAVA CARD BY SAIKIRAN PANJALA
JAVA CARD BY SAIKIRAN PANJALAJAVA CARD BY SAIKIRAN PANJALA
JAVA CARD BY SAIKIRAN PANJALA
 
java-ring
 java-ring java-ring
java-ring
 
“Deploying Edge AI Solutions at Scale for the Internet of Things,” a Presenta...
“Deploying Edge AI Solutions at Scale for the Internet of Things,” a Presenta...“Deploying Edge AI Solutions at Scale for the Internet of Things,” a Presenta...
“Deploying Edge AI Solutions at Scale for the Internet of Things,” a Presenta...
 
New Ring
New RingNew Ring
New Ring
 
SOTP_Introduction
SOTP_IntroductionSOTP_Introduction
SOTP_Introduction
 
Prasant_nayak_NthDimenzion _4Yr_Exp
Prasant_nayak_NthDimenzion _4Yr_ExpPrasant_nayak_NthDimenzion _4Yr_Exp
Prasant_nayak_NthDimenzion _4Yr_Exp
 
NetWatcher Customer Overview
NetWatcher Customer OverviewNetWatcher Customer Overview
NetWatcher Customer Overview
 
Smart card to the cloud for convenient, secured nfc payment
Smart card to the cloud for convenient, secured nfc paymentSmart card to the cloud for convenient, secured nfc payment
Smart card to the cloud for convenient, secured nfc payment
 
iOS In-App-Purchase verifying receipt locally in Swift
iOS In-App-Purchase verifying receipt locally in SwiftiOS In-App-Purchase verifying receipt locally in Swift
iOS In-App-Purchase verifying receipt locally in Swift
 
Ticket To Ride from Elevate UK
Ticket To Ride from Elevate UKTicket To Ride from Elevate UK
Ticket To Ride from Elevate UK
 
Smart Card to the Cloud for Convenient, Secured NFC Payment
Smart Card to the Cloud for Convenient, Secured NFC PaymentSmart Card to the Cloud for Convenient, Secured NFC Payment
Smart Card to the Cloud for Convenient, Secured NFC Payment
 
Naresh_Kumar_Devata_JavaDeveloper
Naresh_Kumar_Devata_JavaDeveloperNaresh_Kumar_Devata_JavaDeveloper
Naresh_Kumar_Devata_JavaDeveloper
 
Security automation in virtual and cloud environments v2
Security automation in virtual and cloud environments v2Security automation in virtual and cloud environments v2
Security automation in virtual and cloud environments v2
 

verification_slides

  • 1. Introduction Java Cards An augmented bytecode verifier Java Card Bytecode Verification Designing a new verification system Alessio Parzian European Institute of Innovation and Technology University of Twente Security & Privacy August 5, 2015 Alessio Parzian Bytecode Verification
  • 2. Introduction Java Cards An augmented bytecode verifier Contents 1 Introduction Mobile devices and payments The secure element The management issue 2 Java Cards In a nutshell Attack vectors 3 An augmented bytecode verifier Requirement analysis A new scenario Technicalities Alessio Parzian Bytecode Verification
  • 3. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue “The convergence of payments and mobile communications is not just logical – It is inevitable” – John Coghlan, Ex CEO Visa USA −→ Contactless payment adoption −→ Mobile device ubiquity −→ Expanded mobile functionalities Alessio Parzian Bytecode Verification
  • 4. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue Figure 1 A physical secure element (SE) in an Android mobile device. → NXP Solution: Java Card SE + NFC Definition Protected area, independent from the application processor of the device, which is capable of storing and processing sensitive information of the device holder. Services Authentication, encryption of private data, data integrity and non-repudiation are typical services that a secure element provides. Alessio Parzian Bytecode Verification
  • 5. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue Figure 1 A physical secure element (SE) in an Android mobile device. → NXP Solution: Java Card SE + NFC Definition Protected area, independent from the application processor of the device, which is capable of storing and processing sensitive information of the device holder. Services Authentication, encryption of private data, data integrity and non-repudiation are typical services that a secure element provides. Alessio Parzian Bytecode Verification
  • 6. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue The parties involved Card Manufacturer Authority that fabricates the raw hardware and software. Card Issuer Authority that controls the secure element content. Application Developer Authority that implement applets. Alessio Parzian Bytecode Verification
  • 7. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue The parties involved Card Manufacturer Authority that fabricates the raw hardware and software. Card Issuer Authority that controls the secure element content. Application Developer Authority that implement applets. Alessio Parzian Bytecode Verification
  • 8. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue The parties involved Card Manufacturer Authority that fabricates the raw hardware and software. Card Issuer Authority that controls the secure element content. Application Developer Authority that implement applets. Alessio Parzian Bytecode Verification
  • 9. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue The ideal SE initialization and management Card Issuer can add libraries onto an SE as needed Card Issuer can outsource freely the development of applets A SE is largely customizable by end users who can install applets as needed → Applet Market Applets from different Card Issuers can be installed on the same SE A SE is as flexible as a mobile operating system, but more secure → Java Card has all the features to allow that! → Dynamism and Multi-application. Alessio Parzian Bytecode Verification
  • 10. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue The current SE initialization and management A Card Issuer asks NXP to initialize a security domain on a SE A Card Issuer hands libraries/applets to be installed to NXP NXP verifies the requested software and installs it onto the SE The SE is released and will not be further personalized Alessio Parzian Bytecode Verification
  • 11. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue Too many drawbacks 1 Not enough flexibility No post issuance uploads No multi-application Strong relationship between a SE manufacturer and a card issuer required 2 Card Issuer are looking for new solutions → Host-based card emulation 3 Potential of Java Card SE only partially used Alessio Parzian Bytecode Verification
  • 12. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue Too many drawbacks 1 Not enough flexibility No post issuance uploads No multi-application Strong relationship between a SE manufacturer and a card issuer required 2 Card Issuer are looking for new solutions → Host-based card emulation 3 Potential of Java Card SE only partially used Alessio Parzian Bytecode Verification
  • 13. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue Too many drawbacks 1 Not enough flexibility No post issuance uploads No multi-application Strong relationship between a SE manufacturer and a card issuer required 2 Card Issuer are looking for new solutions → Host-based card emulation 3 Potential of Java Card SE only partially used Alessio Parzian Bytecode Verification
  • 14. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue Too many drawbacks 1 Not enough flexibility No post issuance uploads No multi-application Strong relationship between a SE manufacturer and a card issuer required 2 Card Issuer are looking for new solutions → Host-based card emulation 3 Potential of Java Card SE only partially used Alessio Parzian Bytecode Verification
  • 15. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue Too many drawbacks 1 Not enough flexibility No post issuance uploads No multi-application Strong relationship between a SE manufacturer and a card issuer required 2 Card Issuer are looking for new solutions → Host-based card emulation 3 Potential of Java Card SE only partially used Alessio Parzian Bytecode Verification
  • 16. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue Too many drawbacks 1 Not enough flexibility No post issuance uploads No multi-application Strong relationship between a SE manufacturer and a card issuer required 2 Card Issuer are looking for new solutions → Host-based card emulation 3 Potential of Java Card SE only partially used Alessio Parzian Bytecode Verification
  • 17. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue As a SE manufacturer, NXP Semiconductors, is strongly interested to invert this trend. But how can this be achieved? 1 Studied advantages and weaknesses of Java Card 2 Classified its current vulnerabilities and attacks vectors 3 Analyzed stakeholders business requirements 4 Designed an innovative applet verification system Alessio Parzian Bytecode Verification
  • 18. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue As a SE manufacturer, NXP Semiconductors, is strongly interested to invert this trend. But how can this be achieved? 1 Studied advantages and weaknesses of Java Card 2 Classified its current vulnerabilities and attacks vectors 3 Analyzed stakeholders business requirements 4 Designed an innovative applet verification system Alessio Parzian Bytecode Verification
  • 19. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue As a SE manufacturer, NXP Semiconductors, is strongly interested to invert this trend. But how can this be achieved? 1 Studied advantages and weaknesses of Java Card 2 Classified its current vulnerabilities and attacks vectors 3 Analyzed stakeholders business requirements 4 Designed an innovative applet verification system Alessio Parzian Bytecode Verification
  • 20. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue As a SE manufacturer, NXP Semiconductors, is strongly interested to invert this trend. But how can this be achieved? 1 Studied advantages and weaknesses of Java Card 2 Classified its current vulnerabilities and attacks vectors 3 Analyzed stakeholders business requirements 4 Designed an innovative applet verification system Alessio Parzian Bytecode Verification
  • 21. Introduction Java Cards An augmented bytecode verifier Mobile devices and payments The secure element The management issue As a SE manufacturer, NXP Semiconductors, is strongly interested to invert this trend. But how can this be achieved? 1 Studied advantages and weaknesses of Java Card 2 Classified its current vulnerabilities and attacks vectors 3 Analyzed stakeholders business requirements 4 Designed an innovative applet verification system Alessio Parzian Bytecode Verification
  • 22. Introduction Java Cards An augmented bytecode verifier In a nutshell Attack vectors Architecture Applet Applet Applet Java Card Framework APIs Java Card Virtual Machine Native Operating System Underlying Hardware Smartcard (On-card) Card Acceptance Device (CAD) Host application Host/PC (Off-card) responses com m ands Java Card Runtime Environment Backend Application Remote server responses commands Figure 2 The Java Card smartcard architecture Alessio Parzian Bytecode Verification
  • 23. Introduction Java Cards An augmented bytecode verifier In a nutshell Attack vectors Benefits - Interoperability, developed applets can be run on any Java-enabled smartcard. - Multi-application, multiple applets can reside on the same smartcard. - Dynamism, applets can be added after a smartcard issuance. - Enhanced security, built-in dedicated security mechanisms are deployed in the architecture. Alessio Parzian Bytecode Verification
  • 24. Introduction Java Cards An augmented bytecode verifier In a nutshell Attack vectors Defined a new nomenclature and classified attack vectors by vulnerability. Hereafter the most relevant: 1 Power Analysis and Manipulation - Differential Power Analysis - Fault Injection 2 Applet Exploitation - Hidden commands - Unchecked parameters - Unsafe crypto protocols 3 Type Confusion → byte == short ?? - Obtaining the right to load code - Injection of ill-formed code - Run a developed attack vector Alessio Parzian Bytecode Verification
  • 25. Introduction Java Cards An augmented bytecode verifier In a nutshell Attack vectors Defined a new nomenclature and classified attack vectors by vulnerability. Hereafter the most relevant: 1 Power Analysis and Manipulation - Differential Power Analysis - Fault Injection 2 Applet Exploitation - Hidden commands - Unchecked parameters - Unsafe crypto protocols 3 Type Confusion → byte == short ?? - Obtaining the right to load code - Injection of ill-formed code - Run a developed attack vector Alessio Parzian Bytecode Verification
  • 26. Introduction Java Cards An augmented bytecode verifier In a nutshell Attack vectors Defined a new nomenclature and classified attack vectors by vulnerability. Hereafter the most relevant: 1 Power Analysis and Manipulation - Differential Power Analysis - Fault Injection 2 Applet Exploitation - Hidden commands - Unchecked parameters - Unsafe crypto protocols 3 Type Confusion → byte == short ?? - Obtaining the right to load code - Injection of ill-formed code - Run a developed attack vector Alessio Parzian Bytecode Verification
  • 27. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The concept Oracle Verifier CAP Export files Additional Checks Typed verification over export files Transaction module Fault Injection module . . . Signing System Device’s Secure Element Figure 3 The Off-card verifier working principle Research Question How can we design a process such that an augmented bytecode verifier can be used to provide a flexible and highly-secure system for applet installation? Alessio Parzian Bytecode Verification
  • 28. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Business requirements and their impact Priority Major Moderate Minor Requirement 1. Hostile Environment 2. Verification enforcement 3. Flexible relationships 4. Code confidentiality 5. Transparency 6. Uploads monitoring Table 1 Stakeholders’ business requirements priority Alessio Parzian Bytecode Verification
  • 29. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story Assumption: SEs already initialized and released CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 30. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story Assumption: SEs already initialized and released CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 31. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story Assumption: SEs already initialized and released CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 32. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story Assumption: SEs already initialized and released CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 33. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story Assumption: SEs already initialized and released CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 34. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story Assumption: SEs already initialized and released CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 35. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story Assumption: SEs already initialized and released CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 36. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story Assumption: SEs already initialized and released CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 37. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story Assumption: SEs already initialized and released CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 38. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Phases identification Stakeholders have different requirements, different roles, different resources and are numerically distant. Therefore, they must be treated separately to be much more effective in designing the system architecture. Three phases for each stakeholder can be identified: - Activation, which refers to the moment where a new stakeholder registers into the service. - Usage, which refers to the phase where content, intended to be uploaded onto one or more secure elements, is verified. - Distribution, which refers to the step of uploading a verified content onto one or more secure elements as needed. Alessio Parzian Bytecode Verification
  • 39. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story from a card issuer perspective Assumption: Focus on the Usage phase CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 40. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The system distributed architecture I Card Issuers 1..N Verifier 1..N Verified CAP Database Location 1..N NXP backend Verifier Licenses Certificates Signed Export Files (JCOP,lib,app) Location α Entities Cardinality NXP - Card Issuer → 1:N NXP - Verifier→ 1:N Card Issuer - Verifier→ 1:1 Trusted Area Untrusted Area 1. CAP export file 6. Signed CAP 7. Signed CAP upload 2. License verification oncard exp file applet retrieval 4. Report final process outcome 5. Upload of the signed applet export files 3. Verification modules Figure 4 The distributed architecture from the Card Issuer perspective Alessio Parzian Bytecode Verification
  • 41. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A system story from an application developer perspective Assumption: Focus on the Usage phase CI → NXP Service Request NXP → CI Augmented bytecode verifier release CI Libraries development, verification, upload CI → AD Applet development outsourcing CI → NXP Service request for AD NXP → CI → AD Augmented bytecode verifier release AD Applet development, verification, upload EndUser Applet download, installation Alessio Parzian Bytecode Verification
  • 42. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The system distributed architecture II Application Developer 1..N Verifier 1..N Location 1..N Card Issuer 1..N Verified CAP Database Certificates Application Developers Location a..z NXP backend Released Verifier Licenses Certificates Signed Export Files (JCOP,applets) Location α Entities Cardinality NXP - Card Issuer → 1:N NXP - Verifier→ 1:N Card Issuer - App. Developer→ 1:N App. Developer - Verifier→ 1:1 Trusted Area Trustworthy Area Untrusted Area 1. CAP export file 7. Signed CAP 8. Signed CAP forwarded 9. Signed CAP file resigned and uploaded 4. Card issuer cryptographic confirmation for uploading 2. License verification oncard exp file applet retrieval 5. Report final process outcome 6. Upload of the signed applet export file 3. Verification modules Figure 5 The distributed architecture from the Application Developer perspective Alessio Parzian Bytecode Verification
  • 43. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The protocol concept Components: augmented bytecode verifier, Java Card token, NXP backend Remote secure tunnel between the Java Card token and NXP backend → monitoring the verifier Local secure tunnel between the Java Card token and the verifier → avoid MITM attacks Use of finite automata to enforce states Use of timers to further decrease the attack surface Cryptographic confirmations from a Card Issuer and NXP before signing → Security centralized in NXP hands → Distribution left in Card Issuers hands Alessio Parzian Bytecode Verification
  • 44. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The protocol concept Components: augmented bytecode verifier, Java Card token, NXP backend Remote secure tunnel between the Java Card token and NXP backend → monitoring the verifier Local secure tunnel between the Java Card token and the verifier → avoid MITM attacks Use of finite automata to enforce states Use of timers to further decrease the attack surface Cryptographic confirmations from a Card Issuer and NXP before signing → Security centralized in NXP hands → Distribution left in Card Issuers hands Alessio Parzian Bytecode Verification
  • 45. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The protocol concept Components: augmented bytecode verifier, Java Card token, NXP backend Remote secure tunnel between the Java Card token and NXP backend → monitoring the verifier Local secure tunnel between the Java Card token and the verifier → avoid MITM attacks Use of finite automata to enforce states Use of timers to further decrease the attack surface Cryptographic confirmations from a Card Issuer and NXP before signing → Security centralized in NXP hands → Distribution left in Card Issuers hands Alessio Parzian Bytecode Verification
  • 46. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The protocol concept Components: augmented bytecode verifier, Java Card token, NXP backend Remote secure tunnel between the Java Card token and NXP backend → monitoring the verifier Local secure tunnel between the Java Card token and the verifier → avoid MITM attacks Use of finite automata to enforce states Use of timers to further decrease the attack surface Cryptographic confirmations from a Card Issuer and NXP before signing → Security centralized in NXP hands → Distribution left in Card Issuers hands Alessio Parzian Bytecode Verification
  • 47. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The protocol concept Components: augmented bytecode verifier, Java Card token, NXP backend Remote secure tunnel between the Java Card token and NXP backend → monitoring the verifier Local secure tunnel between the Java Card token and the verifier → avoid MITM attacks Use of finite automata to enforce states Use of timers to further decrease the attack surface Cryptographic confirmations from a Card Issuer and NXP before signing → Security centralized in NXP hands → Distribution left in Card Issuers hands Alessio Parzian Bytecode Verification
  • 48. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The protocol concept Components: augmented bytecode verifier, Java Card token, NXP backend Remote secure tunnel between the Java Card token and NXP backend → monitoring the verifier Local secure tunnel between the Java Card token and the verifier → avoid MITM attacks Use of finite automata to enforce states Use of timers to further decrease the attack surface Cryptographic confirmations from a Card Issuer and NXP before signing → Security centralized in NXP hands → Distribution left in Card Issuers hands Alessio Parzian Bytecode Verification
  • 49. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities The protocol concept Components: augmented bytecode verifier, Java Card token, NXP backend Remote secure tunnel between the Java Card token and NXP backend → monitoring the verifier Local secure tunnel between the Java Card token and the verifier → avoid MITM attacks Use of finite automata to enforce states Use of timers to further decrease the attack surface Cryptographic confirmations from a Card Issuer and NXP before signing → Security centralized in NXP hands → Distribution left in Card Issuers hands Alessio Parzian Bytecode Verification
  • 50. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities From inside the verifier MAIN EXECUTION 1. CAP file 1. Exp file 10. Signed CAP file 10. Signed Exp file Modules 1 .. k Java Card Token App. Developer Location 2.Licenseverification 3.Runmodules 4.Magicnumbers 5.Cryptoconfirmation6.NXPreport 7. CAP,exp 8. Signed CAP,exp 9. Exp upload Figure 6 The augmented bytecode verifier at the Application Developer location Alessio Parzian Bytecode Verification
  • 51. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Security mechanisms to counteract white-box attacks Binary Encryption Code Obfuscation and Flattening On disk In memory Executing Verifier Code Variables Constants Keys Figure 7 States of the software attackable in a white-box scenario White-box Cryptography Runtime Integrity Check Alessio Parzian Bytecode Verification
  • 52. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Security mechanisms to counteract white-box attacks Binary Encryption Code Obfuscation and Flattening On disk In memory Executing Verifier Code Variables Constants Keys Figure 7 States of the software attackable in a white-box scenario White-box Cryptography Runtime Integrity Check Alessio Parzian Bytecode Verification
  • 53. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Security mechanisms to counteract white-box attacks Binary Encryption Code Obfuscation and Flattening On disk In memory Executing Verifier Code Variables Constants Keys Figure 7 States of the software attackable in a white-box scenario White-box Cryptography Runtime Integrity Check Alessio Parzian Bytecode Verification
  • 54. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Security mechanisms to counteract white-box attacks Binary Encryption Code Obfuscation and Flattening On disk In memory Executing Verifier Code Variables Constants Keys Figure 7 States of the software attackable in a white-box scenario White-box Cryptography Runtime Integrity Check Alessio Parzian Bytecode Verification
  • 55. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Security mechanisms to counteract white-box attacks Binary Encryption Code Obfuscation and Flattening On disk In memory Executing Verifier Code Variables Constants Keys Figure 7 States of the software attackable in a white-box scenario White-box Cryptography Runtime Integrity Check Alessio Parzian Bytecode Verification
  • 56. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Runtime Integrity Check Threat An attacker is able to modify a check with another self-implemented module NXP m2 Main execution h Token Build module M from m1 and m2 Run M Compute Magic Number → session dependent Compute Hash h Send h to the token for verification Alessio Parzian Bytecode Verification
  • 57. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities White-box Crypto Threat An attacker is able to perform a MITM attack between the main execution and the token Lookup tables lt Main execution Session key sk Token Bidirectional tunnel Symmetric cryptography Secure tunnel between NXP and token → sk and lk securely delivered Main Execution is an untrusted entity → white-box crypto using fixed key approach Lookup tables initialized each session according with sk Alessio Parzian Bytecode Verification
  • 58. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Edge cases It is not feasible to forecast the effects of a breach in a White-box scenario, thus security mechanisms to deal with edge cases must be designed. 1 Key Renewability 2 License Revocation 3 Verifier Binary Diversity Alessio Parzian Bytecode Verification
  • 59. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Edge cases It is not feasible to forecast the effects of a breach in a White-box scenario, thus security mechanisms to deal with edge cases must be designed. 1 Key Renewability 2 License Revocation 3 Verifier Binary Diversity Alessio Parzian Bytecode Verification
  • 60. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Edge cases It is not feasible to forecast the effects of a breach in a White-box scenario, thus security mechanisms to deal with edge cases must be designed. 1 Key Renewability 2 License Revocation 3 Verifier Binary Diversity Alessio Parzian Bytecode Verification
  • 61. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Edge cases It is not feasible to forecast the effects of a breach in a White-box scenario, thus security mechanisms to deal with edge cases must be designed. 1 Key Renewability 2 License Revocation 3 Verifier Binary Diversity Alessio Parzian Bytecode Verification
  • 62. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Implementation Direction Modules in Java High-level language Portable binaries Oracle verifier source Main Execution in C Effective obfuscation/flattening Less reversible More complex Communication through JNI Even if modules can be considered as conceptually independent piece of software from the main execution, they are strongly interconnected and controlled by means of our runtime integrity check mechanism proposed and the two involved trusted party, NXP and token, which can monitor the correctness of the operations throughout the entire process of verification. Alessio Parzian Bytecode Verification
  • 63. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Thank you for your Attention. Alessio Parzian Bytecode Verification
  • 64. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Thank you for your Attention. Alessio Parzian Bytecode Verification
  • 65. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Content Outline 1 Introduction Mobile devices and payments The secure element The management issue 2 Java Cards In a nutshell Attack vectors 3 An augmented bytecode verifier Requirement analysis A new scenario Technicalities Do you have any questions? Alessio Parzian Bytecode Verification
  • 66. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities A new nomenclature A nomenclature that covers all feasible classes of attacks on Java Cards, namely logical attacks, physical attacks and side channel attacks. Each class introduces, at a high level, feasible attack types grouped by vulnerabilities along with the common countermeasures that should be taken to counteract those attacks. Alessio Parzian Bytecode Verification
  • 67. Introduction Java Cards An augmented bytecode verifier Requirement analysis A new scenario Technicalities Scenario Properties 1 The verification process is successfully completed 2 CAP and export files preserve their integrity after verification 3 Stakeholders are always authenticated prior to any action to avoid unwanted behaviours 4 Revocation can be always applied to avoid relevant failures 5 The augmented bytecode verifier is strongly resilient to white-box scenario attacks Alessio Parzian Bytecode Verification