NFC-toiminnallisuuden toteuttaminen älykorttiin
Palovuori, Tuija (2025)
Palovuori, Tuija
2025
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
Hyväksymispäivämäärä
2025-02-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-2024121711298
https://urn.fi/URN:NBN:fi:tuni-2024121711298
Tiivistelmä
Suomalaisissa potilastietojärjestelmissä tunnistautuminen suoritetaan älykorteilla. Korttien lukemiseen tarvitaan kortinlukijaohjelma. Atostek Oy kehittää tällaista kortinlukijaohjelmaa sekä potilastietojärjestelmien testaamiseen tarkoitettuja testikortteja. Testikortteihin oli tarve toteuttaa NFC-tuki.
NFC-tukea varten oli toteutettava Password Authenticated Connection Establishment -protokolla (PACE). PACE-protokolla on avaintenvaihtoprotokolla, jolla salataan kortin ja terminaalin välinen viestintä. Protokolla ja muu korttikommunikointi suoritetaan käyttämällä APDU-tietoyksikköjä. PACE-protokollan oleeelisena osana on elliptisten tasokäyrien kryptografia.
Testikortit käyttävät Java Card -suoritusympäristöä. PACE-protokollan muodostus ja ylläpito pyrittiin lisäämään testikortteja varten kehitettyyn Java Card -ohjelmaan. Tämä ohjelma pyrittiin muokkaamaan vastaamaan PACE-protokollan viesteihin protokollan mukaisesti oikeassa järjestyksessä.
NFC-tuen toteutusta ei saatu työlle varatussa ajassa valmiiksi, mutta sitä saatiin kehitettyä pitkälle. Testikortille asennettu ohjelma osaa muodostaa PACE-protokollan satunnaisuuden generointivaiheeseen asti. Ensisijaisena syynä toteutuksen kesken jäämiseen oli erilaisten odottamattomien ongelmien ilmeneminen, kuten esimerkiksi käytetyn korttimallin muistin riittämättömyys. Kehitystyö jatkuu työn jälkeen. Finnish electronic patient record systems use smart cards for identification. These smart cards must be read with card reader software. Atostek Oy is developing such card reader software as well as test cards for testing patient record systems. For these test cards, NFC support needed to be implemented.
For NFC support, an implementation of Password Authenticated Connection Establishment (PACE) protocol was required. PACE protocol is a key exchange protocol which is used to encrypt communication between the card and the terminal. The protocol as well as other card communication is achieved through the usage of data units known as APDUs. A substantial part of PACE protocol is elliptic curve cryptography.
The test cards operate with a Java Card runtime environment. The establishment and maintenance of PACE protocol was sought to be added to the Java Card applet developed for the test cards. This applet was sought to be modified to respond to the messages of PACE protocol accordingly.
The implementation of NFC support was not finished in the time allotted for the development, but considerable progress was made. The applet installed on the test card is able to establish PACE protocol up to the randomness generation phase. The predominant reason for the unfinished state of the implementation was the emergence of various unexpected problems, such as the insufficient memory of the used model of card. Development will continue after the thesis.
NFC-tukea varten oli toteutettava Password Authenticated Connection Establishment -protokolla (PACE). PACE-protokolla on avaintenvaihtoprotokolla, jolla salataan kortin ja terminaalin välinen viestintä. Protokolla ja muu korttikommunikointi suoritetaan käyttämällä APDU-tietoyksikköjä. PACE-protokollan oleeelisena osana on elliptisten tasokäyrien kryptografia.
Testikortit käyttävät Java Card -suoritusympäristöä. PACE-protokollan muodostus ja ylläpito pyrittiin lisäämään testikortteja varten kehitettyyn Java Card -ohjelmaan. Tämä ohjelma pyrittiin muokkaamaan vastaamaan PACE-protokollan viesteihin protokollan mukaisesti oikeassa järjestyksessä.
NFC-tuen toteutusta ei saatu työlle varatussa ajassa valmiiksi, mutta sitä saatiin kehitettyä pitkälle. Testikortille asennettu ohjelma osaa muodostaa PACE-protokollan satunnaisuuden generointivaiheeseen asti. Ensisijaisena syynä toteutuksen kesken jäämiseen oli erilaisten odottamattomien ongelmien ilmeneminen, kuten esimerkiksi käytetyn korttimallin muistin riittämättömyys. Kehitystyö jatkuu työn jälkeen.
For NFC support, an implementation of Password Authenticated Connection Establishment (PACE) protocol was required. PACE protocol is a key exchange protocol which is used to encrypt communication between the card and the terminal. The protocol as well as other card communication is achieved through the usage of data units known as APDUs. A substantial part of PACE protocol is elliptic curve cryptography.
The test cards operate with a Java Card runtime environment. The establishment and maintenance of PACE protocol was sought to be added to the Java Card applet developed for the test cards. This applet was sought to be modified to respond to the messages of PACE protocol accordingly.
The implementation of NFC support was not finished in the time allotted for the development, but considerable progress was made. The applet installed on the test card is able to establish PACE protocol up to the randomness generation phase. The predominant reason for the unfinished state of the implementation was the emergence of various unexpected problems, such as the insufficient memory of the used model of card. Development will continue after the thesis.