Master's thesis

Detection of undocumented JavaCard API using power side-channels

Bc. Petr Hanák, UČO 524742
Abstract

Java Card je technologie umožňující použití Javy na čipových kartách. Výrobci karet často na karty nahrávají nějaké API. Někdy je jeho dokumentace veřejně dostupná, někdy je API proprietární. V této práci vyvíjíme techniky pro odhalování tohoto neznámého API na kartě. Hlavním postupem je vyhledávání úniku informací časovým postranním kanálem během instalace programu na kartě. Pro přesné měření času …more

Abstract

Java Card is a technology that allows Java to run on smart cards. Card manufacturers often preload some APIs on the cards. Sometimes, their documentation is available; sometimes, the API is proprietary. In this work, we develop techniques to enumerate unknown API on a Java Card. The main approach is to search for timing side-channel leakage during program installation on the card. We use power-trace …more

Thesis description
The aim of this thesis is to develop a tool for automatic detection of undocumented JavaCard API located on a smartcard with the JavaCard platform with a help of side-channel analysis. The list of installed packages (for other than public ones [2]) with their classes and methods cannot be directly obtained from smartcard due to (intentionally) missing support for such an operation. However, the instruction-level side-channel leakage may enable to detect and reconstruct undocumented API.  

The work will extend the analysis done by Deshmukh in 2018 [1] with power side-channel analysis to obtain more detailed insight into card's behavior during AIDs, classes and methods probing.

The theoretical part of the thesis will precisely describe the JavaCard package management system, structure of cap packages and existing research covering reverse-engineering of code on the JavaCard Virtual Machine level.

The practical part will develop an automatic testing toolchain, that will cover the following functionality:
1. An experiment to detect undocumented packages with unknown AID utilizing side-channel leakage during LOAD operation [3].
2. Generate code/applet cap to instantiate specific class using its token, its method(s) and possible method signature using known fingerprints from the public JavaCard API.
3. Examine results for at least five real smartcards.

The resulting source code will be available under permissive open-source licence (MIT, Apache2) in IS and corresponding GitHub repository.   

References:
[1] Sujeet Daulat Deshmukh, Tool for detection of JavaCard libraries on smartcards https://is.muni.cz/th/k06n3/
GlobalPlatform specification: https://globalplatform.org
[2] jcAIDScan: https://github.com/petrs/jcAIDScanOracle, JavaCard platform: https://www.oracle.com/technetwork/java/embedded/javacard/overview/index.html
[3] M.Paljak, GlobalPlatformPro: https://github.com/martinpaljak/GlobalPlatformPro
The thesis has been checked:
1/6/2026 06:08, doc. RNDr. Petr Švenda, Ph.D., UČO 4085
Language used
English English
Defence date
15/6/2026
The thesis was defended successfully

Supervisor

doc. RNDr. Petr Švenda, Ph.D., UČO 4085
KPSK FI MU

Reader

RNDr. Jan Kvapil, UČO 408788
KPSK FI MU

  • Přidání souboru

    Soubor nebo složku lze nahrát pomocí tlačítka Přidat.
  • Další operace se soubory

    Podrobnosti lze zjistit označením příslušného řádku.
  • Pohled pro experty

    Pro častou práci je možné zvolit režim Více možností.
  • Vyhledávání souborů

    Vyhledávaný výraz můžete zadat přímo do adresního řádku.
  • Rychlý přístup k souborům

    Pomocí funkce Nedávné je možné se rychle vrátit k právě prohlíženým souborům. Oblíbené soubory je také možné označit Hvězdičkou.