Diplomová práce

Detection of undocumented JavaCard API using power side-channels

Bc. Petr Hanák, učo 524742
Anotace

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 …více

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 …více

Zadání práce
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
Práce zkontrolována:
1. 6. 2026 06:08, doc. RNDr. Petr Švenda, Ph.D., učo 4085
Jazyk práce
angličtina angličtina
Termín obhajoby
15. 6. 2026
Práce byla úspěšně obhájena

Vedoucí

doc. RNDr. Petr Švenda, Ph.D., učo 4085
KPSK FI MU

Oponent

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.