Hardware Security

[ main | schedule | cases | smartcard practicalities | project work | side-channel lab ]

Group project: JavaCard smartcard development

Groups spring 2018

Group Case Members Reader & card 1st version report 2nd version report
(some groups)
CalcApplet Final report
1 Rental Car Mark Leenen,
Ivan Kozlov,
Tzouliano Chotza,
René Wouters,
Jeroen Ubbink
H2,R10 & 9,10
2 Loyality Card Luuk de Bruin,
Solo Schekermans
H8,R5 & 1,2
3 Petrol Rationing Dion van Dam,
Oussama Danba,
Tim van Dijk,
Dennis Lemmers
H15,R4 & 3,4
4 E-Purse Deni Greconici,
Niels Roelofs,
Erwin Janssen,
Rik Dolfing
H13,R9 & 13,14
5 Petrol Rationing Lars Deelen,
Breus Blaauwendraad,
Conno Boel,
Bart Veldhuizen
H5,R8 & 15,16
6 E-Purse Bram Van Dooremaal,
Niki Saleki,
Shubham Deshpande,
Prasad Thakare
H13,R9 & 5,6
7 E-Purse Martin Rosso,
Nikos Mavroulis,
Mariami Gonashvili,
Matthias Vogelaar
H5,R7 & 17,18
8 Petrol Rationing Bauke Brenninkmeijer,
Wesley van Hoorn,
Ties Robroek,
Mathijs Sonnemans,
Aniek Den Teuling
H10,R1 & 11,12
9 Petrol Rationing Cees Mandjes,
Leon Botros,
Alexandru-Andrei Suciu
7,2 & 21,22
10 E-Purse Justin Szanto,
Chris Mulder,
Markus Gerlofsma,
Martijn Bonajo,
Sjors van Elzen
H9,R2 & 7,8

Preliminary steps

Form a group of 4 people from one university, pick one of the cases as your group project. Inform us of your group by email and obtain a smartcard and reader for your group.

Once you have the hardware, make sure you can get the reader working, and that you can get an applet installed on the smartcard. As a first step you can try out the Chipknip terminal, on your own bank card, to see if the card reader works. Then install the Calculator applet on the smartcard and try this out with the Calculator terminal (see the smartcard practicalities subpage). Necessary links for software (the JCOP Eclipse plugin and a VM image with Eclipse with that plugin installed) will be emailed. Email Niels Samwel to confirm that you have this working!

First phase: Design phase

We have written up a document about the JavaCard project [PDF] with hints and tips, esp. about documenting your design. It is based on the experiences of previous years when we taught the same course. Read it carefully and check it regularly during the project, and use it as a checklist for the project reports before handing them in.

First step in the project: think about

and write this up in a few pages (8 pages max, but you should manage in less). N.B. an important challenge is in writing this up as clearly and concisely as you possibly can.

Email the report to Erik Poll and Niels Samwel by Feb 27. Include your group number both in the filename and the document itself, and all your names and which university you are from.


Second phase: Building phase

Go ahead and build it.

Keep track of any design decisions you make along the way, and record where you deviate from the original high level design. This may happen because of technical restrictions, because you run out of time, or because you thought of better ways to do things.

Implementing the crypto can be time-consuming, and the nastiest to debug, so it may be wise to make a first implementation without (m)any of the cryptographic checks in place.