jason javacards as secure objects network by richard brinkman

19
Jaso n vacards as secure objects netwo by Richard Brinkman

Post on 19-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jason Javacards as secure objects network by Richard Brinkman

Jason

Javacards as secure objects network

by Richard Brinkman

Page 2: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Compare to other chip cards• Memory cards• Smart cards

Characteristics:• Tamper proof• 5 MHz processor• 16 kB memory• Multi-application• Object Oriented

Page 3: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Card Hardware

Javacard Virtual machineLibraries

Applet Applet Applet Loader

Page 4: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

.java files javac compiler

.class files

converter.cap filescriptgen

.scr file apdutool smart card

Page 5: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Internet

Page 6: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Requirements:• Simple to use• Separation of concerns• Lightweight• Authenticity• Confidentiality• Role-based access control

Page 7: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Implementationpublic class PurseImpl implements Purse { private short balance;

public PurseImpl() { balance = 0; }

public short getBalance() { return balance; }

public void decreaseBalance(short amount) balance -= amount; } public void increaseBalance(short amount) balance += amount; }}

public class PurseImpl implements Purse { private short balance;

public PurseImpl() { balance = 0; }

public short getBalance() { return balance; }

public void decreaseBalance(short amount) balance -= amount; } public void increaseBalance(short amount) balance += amount; }}

Page 8: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Java Interface Filepublic interface Purse {

public short getBalance();

public void decreaseBalance( short amount);

public void increaseBalance( short amount); }

public interface Purse {

public short getBalance();

public void decreaseBalance( short amount);

public void increaseBalance( short amount); }

Page 9: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Jason Definition Filepublic interface Purse { roles MERCHANT, BANK, OWNER;

accessible to OWNER, BANK public short getBalance();

accessible to MERCHANT public void decreaseBalance( authentic short amount);

accessible to BANK public void increaseBalance( confidential authentic short amount); }

public interface Purse { roles MERCHANT, BANK, OWNER;

accessible to OWNER, BANK public short getBalance();

accessible to MERCHANT public void decreaseBalance( authentic short amount);

accessible to BANK public void increaseBalance( confidential authentic short amount); }

Page 10: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Client applicationpublic class Client { public static void main(String[] args) { KeyStore keyStore = ... Ans ans = new Ans(keyStore); Purse purse = (Purse) ans.getApplet(“example.purse.Purse”, Purse.ROLE_BANK); System.out.println(“Balance: ” + purse.getBalance()); purse.increaseBalance((short) 25); System.out.println(“Balance after increase: ” + purse.getBalance()); purse.decreaseBalance((short) 10); //Illegal!!! }}

public class Client { public static void main(String[] args) { KeyStore keyStore = ... Ans ans = new Ans(keyStore); Purse purse = (Purse) ans.getApplet(“example.purse.Purse”, Purse.ROLE_BANK); System.out.println(“Balance: ” + purse.getBalance()); purse.increaseBalance((short) 25); System.out.println(“Balance after increase: ” + purse.getBalance()); purse.decreaseBalance((short) 10); //Illegal!!! }}

Page 11: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Applet’simplementation

SkeletonKey Store

Application

StubKey Store

Internet

Page 12: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

Log inSelect APDU

Select responseClient random + role

Card random + {Client random}Kcard

-1{Card random}Krole-1

{Session key}Krole

Page 13: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects networkMethod Invocation

SWReturn valueFreshness counterSignature

HeaderParametersFreshness counterSignature

Page 14: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

ACP1 ACP2PP1 CP2 AP1CP1 AP2

PP1 CP1 CP2 ACP1 ACP2 AP1 AP2

PP1

Page 15: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

ACP1 ACP2PP1 CP2 AP1CP1 AP2

PP1 CP1 CP2 ACP1 ACP2 AP1 AP2

CP1 CP2 ACP1 ACP2 Padding

ConfidentialPP1

Page 16: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

ACP1 ACP2PP1 CP2 AP1CP1 AP2

PP1 CP1 CP2 ACP1 ACP2 AP1 AP2

ConfidentialPP1 AP1 AP2

Page 17: Jason Javacards as secure objects network by Richard Brinkman

Javacards as secureobjects network

ACP1 ACP2PP1 CP2 AP1CP1 AP2

PP1 CP1 CP2 ACP1 ACP2 AP1 AP2

ConfidentialPP1 AP1 AP2

Header CounterParameters

Header Counter

Sign

ACP1 ACP2 AP1 AP2

Page 18: Jason Javacards as secure objects network by Richard Brinkman

Conclusion

Simple to use

Concentrate on functionality

Security has only to be verified once

Page 19: Jason Javacards as secure objects network by Richard Brinkman

Questions?