Závěrečná práce: Bc. Lukáš Zaoral: Automatic Performance Profiler for Security Analysis of Cryptographic Smart Cards
Diplomová práce
Automatic Performance Profiler for Security Analysis of Cryptographic Smart Cards
Anotace
Tato práce slouží jako stručný přehled současných přístupů k detekci zdrojového kódu, který je náchylný vůči časové analýze, a má za cíl zhodnotit jejich použitelnost pro platformu JavaCard. Dále je podrobně rozebrán nástroj JCProfiler určený k profilování výkonu na této platformě. Následně je představen nástroj JCProfilerNext. Jedná se o přepis původního nástroje s dodatečnou funkcionalitou a s množstvím …více
Abstract
This thesis serves as a brief survey of contemporary approaches for the detection of source code vulnerable to timing attacks and aims to assess their applicability to the JavaCard platform. JCProfiler, an existing performance profiling tool for this platform, is then examined in detail. Afterwards, JCProfilerNext is presented, a rewrite of the original release with additional features and many fixes …více
Zadání práce
The theoretical part of the thesis will survey available approaches and existing tools for performance analysis and detection of non-constant time behavior and assess their applicability to smaller embedded devices and smartcards. In the practical part, a tool for automatic insertions of helper code into the source code of an inspected applet will be created, based on suitable Java parser (e.g., Spoon). Transformed source code will be then uploaded and executed on a real card with partial measurements (utilizing inserted helper snippets) to provide detailed performance measurement of applet's code.
The tool will be then used as part of the setup for verification of constant-time execution for cryptographic code processing sensitive values which might otherwise leak sensitive data to an attack via timing side-channel. The practical demonstration will be performed on JCMathLib library and one other open-source project, followed by improvement of its resiliency against side-channel attacks. The tool will be also used to perform system-wide survey of properties of open-source JavaCard applets and provide insight into JavaCard open-source ecosystem (required memory allocations, used imports and constants, performance...)
The collected performance metadata will be presented in suitable form, e.g., via static html page (similarly to gcov) with links to measured data-to-time dependency graphs.
Literature:
Pawlak et. al.: Spoon - Source Code Analysis and Transformation for Java, http://spoon.gforge.inria.fr/
Jancar, J.: The state of tooling for verifying constant-timeness of cryptographic implementations https://neuromancer.sk/article/26
Svenda et. al.: JavaCard Algorithm Test, http://jcalgtest.org/
JCMathLib, https://github.com/OpenCryptoProject/JCMathLib
gcov - coverage testing tool, https://www.man7.org/linux/man-pages/man1/gcov.1.html
Curated list of JavaCard applications, https://github.com/EnigmaBridge/javacard-curated-list
14. 12. 2022 14:16, doc. RNDr. Petr Švenda, Ph.D., učo 4085
Práce na příbuzné téma
Seznam prací, které mají shodná klíčová slova.
-
The detailed performance analysis of JavaCard cryptographic smartcards
Mgr. Rudolf Kvašňovský -
Collaborative RSA keypair generation and use
Mgr. Lukáš Zaoral -
Nástroj pro automatizaci obsluhy dat na kryptografické čipové kartě
Mgr. Tobiáš Smolka -
Performance optimization of JavaCard cryptographic implementations
Bc. Andrii Pylypenko -
Optimized implementations of JavaCard cryptographic algorithms
Mgr. Matej Evin -
Policy-Based Validation of Bitcoin Transactions on Cryptographic Smartcards
Mgr. Jan Sekanina -
Databáze odběrových křivek kryptografických operací
Mgr. Martin Podhora -
Analýza mechanismu RMI u čipových karet s platformou JavaCard
Mgr. Martin Kvočka, učo 173286




