Smart card security training

Objective and scope

The objective of the training is to provide trainees with the necessary knowledge about smart card security threats so they can better test and review the security of new smart card applications or develop more secure smart card software. The course explains and demonstrates all relevant attack techniques including logic attacks, side channel attacks and fault injection attacks.

At the end of the course, the aim is that each attendee:

  • Has a good understanding of the security requirements to take into account when developing smart card code
  • Understands the secure programming guidelines that are specific for smart cards
  • Has performed exercises in testing smart cards with side channel and fault injection attacks
  • Has performed exercises in discovering a security weakness in source code and in writing secure code for smart card technology

Theory and practice

This training includes both theoretical and practical sessions. Theory about commonly applied security attacks is presented combined with demonstrations of security attack techniques and tools.

Side channel analysis is a technique to discover secrets such as cryptographic keys and PINs from hardware and embedded software. This is achieved by listening to and understanding the information that (hardware) channels emit when processing information. This course provides an understanding of the possibilities and impact of side channel analysis and explains how you can protect against it through a hands-on approach. Besides the necessary side channel theory, attendees will perform exercises themselves in which they will, for instance, break a DES key through power analysis.

Perturbation, or fault injection, is another side channel attack class. This concerns, in contrast with side channel analysis, active attack methods. The behaviour of a device is changed by manipulation of environmental parameters. By glitching the operating voltage or clock of a device it can be possible to introduce a fault in its internal processing, resulting in an exploitable cryptographic result, or false authentication approval. In this course we will explain the risks of fault injection and protection measures that are possible.
For a long time, terms such as Side Channel Analysis (SCA), Differential Power Analysis (DPA), Timing attacks and Electro Magnetic Analysis (EMA), Differential Fault Analysis (DFA) and Perturbation analysis have had the air of mythical powers to break any crypto system and reveal every secret in a system. This course provides a practical introduction into the world of side channel and perturbation analysis. It shows the basics and allows attendees to understand and experience what it means to break a system with these types of attacks. At the same time this course explores the countermeasures that are available to developers. Using these, the side channel and fault injection attack resistance of software on smart cards and embedded systems will significantly improve. We examine source code implementations on weaknesses and provide hands-on exercises to improve these implementations. This will allow the attendee to develop a feel for the possibilities and limitations for software-based countermeasures against such attacks.

Java Card is the most popular technology for smart card application development. The use of the Java card language has become widespread due to the ease of understanding the language, and the growing demand for security applications. Although Java Card is designed for security application developers need to understand smart card security in order to be able to write defensive code that resists contemporary threats. The training will address logical and side channel security issues and introduce the participants into secure programming patterns.

For the demonstrations and exercises during this training the following tools are used:

  • Inspector, side channel test tool
  • JCworkBench, Java Card security test tool

Training Program

The training program covers intermediate and advanced level. Every day the training starts at 9:00AM and finishes around 5:00PM. The participants are expected to be experienced programmers and should have background knowledge on cryptography. The training interleaves theoretical and practical sessions to ensure that the participants will not only understand security issues, but also learn how to solve them.

Day 1

  • Introduction to smart card security
  • Logical security testing
  • Introduction to side channel attacks
  • Side Channel Analysis on 3DES and RSA

Day 2

  • Java Card logical security   
  • Java Card testing
  • Introduction to fault injection
  • Fault injection attacks on 3DES and RSA

Day 3

  • Countermeasures
  • Side channel security patterns
  • Code review and testing
  • Emerging threats

Costs and conditions

The fixed price for the security training is € 3.500 per attendee. The training is provided for a minimum of 3 attendees. Additional attendees are charged € 2.500 per attendee. The price includes course material, lunch and coffee breaks. A certificate of attendance will be provided to each attendee. The training is provided at Riscure’s office in Delft. Please contact us for discussing the possibilities for on-site training at your location.