Reaching Ubiquity through I nvisibility Eric Vtillard Chief - - PowerPoint PPT Presentation

reaching ubiquity through i nvisibility
SMART_READER_LITE
LIVE PREVIEW

Reaching Ubiquity through I nvisibility Eric Vtillard Chief - - PowerPoint PPT Presentation

Reaching Ubiquity through I nvisibility Eric Vtillard Chief Architect Trusted Logic w w w . t r u s t e d - l o g i c . f r Cassis04 Marseille March 2004 Ubiquity Ubiquity, n. The state of being everywhere at once. I


slide-1
SLIDE 1

Reaching Ubiquity through I nvisibility

Eric Vétillard

Chief Architect Trusted Logic w w w . t r u s t e d - l o g i c . f r Cassis’04 – Marseille – March 2004

slide-2
SLIDE 2

Ubiquity

  • Ubiquity, n.

The state of being everywhere at once.

slide-3
SLIDE 3

I nvisibility

  • Invisibility, n.

The quality of not being perceivable by the eye.

slide-4
SLIDE 4

Levels of I nvisibility

  • First degree

Visible Invisible

  • Second degree

Visible Invisible

  • Many other things are invisible here

TL Logos, Windows, … The eye sees them, but not the brain

slide-5
SLIDE 5

Ubiquity

  • What is everywhere is invisible

Ubiquitous computing Pervasive computing

  • a.k.a. “Commodity”
slide-6
SLIDE 6

Ubiquity of Smart Cards

  • For the end user

Using a smart card

  • For the IT architect

Accessing a smart card

  • For the developer

Programming a smart card

slide-7
SLIDE 7

Smart Cards ?

  • Pros

Tamper-resistant hardware Closely associated to a person

  • Cons

Not better than a server in a connected world Does not greatly simplify the infrastructure

The debate we won’t have

slide-8
SLIDE 8

Hypotheses

  • Smart cards are useful

They can securely hold personal information They are an interesting element in a security

infrastructure

  • Security is a concern

Fair hypothesis since 9/11

slide-9
SLIDE 9

For the end-user

slide-10
SLIDE 10

Anecdotes

  • 1997, JavaOne keynote by Scott McNealy

Positive:

Smart cards are mentioned

Negative:

Scott mentions “swiping” a smart card

  • 2003, Java Card Forum meeting, Brighton, England

Positive:

There is a smart card terminal

Negative:

My French banking card does not work

slide-11
SLIDE 11

Breakthroughs

  • Contactless transit cards

No need to get the card out of the wallet Use is very natural

  • SIM cards

We never think about them … … except when reading « SIM is not ready »

  • Both are invisible
slide-12
SLIDE 12

Not so good

  • Use of banking cards in France

At the end of the counter Efficient and secure (PIN is protected) Inconsistent with current security rules

The clerk should check the hologram No physical security is possible

  • Debate about “Smart Tags” in the U.S.

Only bad use cases for the end-user Strong privacy concerns Invisibility is not always good for the end-user

slide-13
SLIDE 13

On the Right Track

  • Appropriate technologies exist today

Portable/simple card readers Contactless cards

  • The technology is well accepted

Use standard patterns Simple is beautiful

  • It is simply a question of time

Technology needs to be deployed It also needs to be well integrated

slide-14
SLIDE 14

For the I T architect

slide-15
SLIDE 15

The infamous APDU

  • A bad, old-style, serial protocol …

Very slow half-duplex protocol Only 256 bytes at a time Not even deadlock proof

  • … is the first thing you hear about

Most tutorials and APIs are a nightmare

  • APDU’s are far too visible
slide-16
SLIDE 16

APDU’s are not that bad

  • This is a very slow protocol

Cards are not fast

  • This is a low-level protocol

So is TCP

  • The card must be the slave

But SIM Toolkit was built on top of it

slide-17
SLIDE 17

High-level protocols exist

  • The application model has evolved

First with Java Card itself Java Card 2.2 includes RMI Experiments have been made with Jini

  • But no application uses them …
slide-18
SLIDE 18

Specs are the problem

  • Most of today’s applications are old-fashioned

Exchanging standard APDU’s Based on a card file system (GSM/3G, EMV)

  • New architectures don’t get to the specs

So card (and APDU’s) remain highly visible Nobody wants to deal with them

slide-19
SLIDE 19

Traditional applications ?

  • Backward compatibility issue

Terminals are strongly linked to cards Terminals are late compared to cards

STIP remains confidential MIDP is just starting its deployment

French EMV cards need to support B0’

  • The migration will be extremely slow

JCRMI is a difficult protocol for terminals The change is too costly

slide-20
SLIDE 20

New designs for new applications

  • There are good news on cards …

DoD makes extensive use of sharing They even have defined plug-in applets

  • … and on terminals

JSR177 gives a way to access cards They have selected JCRMI as one of the protocols They also make extensive use of PKCS# 15 / WIM

  • The card becomes invisible
slide-21
SLIDE 21

The security issue

  • Smart cards are used for security

To protect some assets To provide guarantees (authentication, …)

  • Security is difficult to assess

Smart card security is not simple System security is much harder

slide-22
SLIDE 22

Building a secure system + + +

Nothing really exists in that field about smart cards

slide-23
SLIDE 23

More invisibility

  • Security is a key factor

Some data needs to be protected Operations need to be performed on this data

  • Splitting applications automatically sounds good

Even extremely good on mobile phones

  • Application management is the next issue

How to increase the trust ?

slide-24
SLIDE 24

For the developer

slide-25
SLIDE 25

The Java Card promise

  • Millions of Java programmers

Smart card application architecture is specific Secure programming remains difficult

  • Thousands of new applications

Developers don’t make applications Issuers make applications

slide-26
SLIDE 26

We did it !

  • Thousands of SIM Toolkit applications

Most likely at least one on your mobile You don’t even know you have a Java Card

  • The number of developers did not follow

Card manufacturers still dominate the market Even they do not always master card programming

slide-27
SLIDE 27

How to get there ?

  • Education

Teaching more about security Smart cards are ideal test cases

  • Rationalization

Definition of a process

  • Certification

Making sure applications are right

  • Automation

Generating the applications right

slide-28
SLIDE 28

Education

  • Computer security is not much taught

There are specific programs Other programs are not very good

  • The basics are missing

Security is not a reflex Students are not aware of security issues … … or they have bad principles

slide-29
SLIDE 29

Security 101

  • The basic principles

From assets and attacks to risks and countermeasures Identity, authentication, authorization and other tools

  • Application to computers

Protecting data and code A plentiful of use cases

  • Practical case: A smart card application

Ideal kind of application: simple and secure Easily leads to an extension to a system

slide-30
SLIDE 30

Defining a process

  • This sounds quite simple

Defining some good principles Making sure that they are applied

  • Reality check …
slide-31
SLIDE 31

A Development Cycle

Application Developer Card Issuer Specification Development Process Acceptance Process

Applet Applet Applet

  • k
  • k
slide-32
SLIDE 32

Enhancing the Process

Smart Card Java Card App. Defined by the issuer Applied by the providers Interop and Security Guides Developer Handbook

  • f

Rules

slide-33
SLIDE 33

Enhancing the Process

Smart Card Java Card App. Automated Bytecode Inspection Applied by the Issuer Checks the application of guides Interop and Security Guides Developer Handbook

  • f

Rules

slide-34
SLIDE 34

Writing the Guides

Gather information

Define the target environment Perform a risk analysis

Split the responsibility

Some duties for the card provider Some duties for the developer

Consolidate the guides

Define detailed rules for developers

slide-35
SLIDE 35

Example: Sharing in SI M Toolkit

Contradiction! No sharing is possible

Basic Requirement

This can be addressed by defining more precise

development guidelines

This can be addressed by defining more precise

development guidelines

The SIM Toolkit API uses sharing

Practical Constraint

The Issue

slide-36
SLIDE 36

Example: Sharing in SI M Toolkit

Two guidelines:

  • Applications can only share objects with the GSM application
  • Applications can only use objects shared by the GSM application

Two guidelines:

  • Applications can only share objects with the GSM application
  • Applications can only use objects shared by the GSM application

Security policy is merged with the context constraints The Basic Guidelines

slide-37
SLIDE 37

Example: Sharing in SI M Toolkit

Share objects with the GSM application:

  • Only applets can implement ToolkitInterface
  • Only applets can be returned as shared objects
  • Before sharing, check the AID of the GSM application

Share objects with the GSM application:

  • Only applets can implement ToolkitInterface
  • Only applets can be returned as shared objects
  • Before sharing, check the AID of the GSM application

Use objects shared by the GSM application:

  • Applet should not use getAppletShareableInterfaceObject
  • Only the SIMView shareable interface can be used

Use objects shared by the GSM application:

  • Applet should not use getAppletShareableInterfaceObject
  • Only the SIMView shareable interface can be used

Rules are directly applicable by developers Development / Validation Rules

slide-38
SLIDE 38

Putting it I nto Practice

Defines requirements

I ssuer

Writes application

Developer

Validates application

Tester

Checks application

Provisioning

Specs CAP File

  • k

I ssues

CAP File CAP File

  • k
slide-39
SLIDE 39

Getting to automation

Automate the validation phase

Performed by experts Definitely simplifies their work

Provide tools to developers

Help them make better applications Need to be more explicit

Generate code automatically

Let developers focus on security principles Automate the implementation

slide-40
SLIDE 40

Demo

  • Application certification
  • Use by developers
slide-41
SLIDE 41

Code generation

  • Simple at the level of an application

User authentication Secure channel management Life cycle management Sensitive data protection

  • More complex at the level of a system

Splitting responsibilities Dealing with card life cycle

slide-42
SLIDE 42

Secure Java Beans ?

  • The developer focuses on its main tasks

Writing application-specific code Defining security requirements

  • The platform does everything else

Generating the required security code Providing the security-related libraries

  • Security becomes invisible
slide-43
SLIDE 43

Still visible …

slide-44
SLIDE 44

Liste à la Prévert

  • Smart cards = Security
  • Developers have no security culture
  • Issuers have no developer culture
  • Researchers just solve the basic problems
  • End-to-end solutions are uncommon
slide-45
SLIDE 45

A few leads

  • Lots of good things to come …
  • About virtual machines

Can you use our proof information ?

  • About proof or validation …

Readability of results (and failures)

  • About modeling

Can the developer just do a few clicks ?