A case study of smart card device driver: The design and development of smart card device drivers on Windows and macOS

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Department

Major/Subject

Mcode

Language

en

Pages

63

Series

Abstract

A smart card is a portable device carrying virtual certificates and keys for authenticating the device's owner. Smart cards require a middleware to be utilizable by personal computers. A type of such middleware is device driver, which provides a software interface defined by an operating system. This thesis conducts a case study on a project that developed smart card drivers for Windows and macOS. The analyzed project required the drivers to enable three common smart card use cases with multiple card types in the specified operating systems. The thesis aims to describe the smart card driver implementations and the development process for both drivers. The thesis also compares these aspects between the operating systems. Finally, the challenges encountered in the project are explored and suggestions for handling the challenges are described. The thesis suggests that the development of the driver is more complex on Windows than macOS, while also the functionality of the Windows driver exceeds that of the macOS driver. Further, the findings propose that the development project could have utilized the cryptographic interfaces providing the drivers' functionalities to other applications. This hindered the acquisition of insight about the driver's behavior as well as exploiting the interfaces for automated testing. In addition, the possibility of developing a shared library, which both of the drivers could have employed, for smart card communication seemed to have been overlooked.

Älykortti on virtuaalisia varmenteita ja avaimia sisältävä siirrettävä laite, jonka avulla kortin omistaja voi tunnnistautua. Älykortit tarvitsevat kuitenkin väliohjelmiston ollakseen henkilökohtaisten työasemien hyödynnettävissä. Eräs tällainen väliohjelmisto on älykorttien laiteajuri, joka tarjoaa käyttöjärjestelmän määrittelemän ohjelmistorajapinnan muiden käyttöjärjestelmän sovelluksien saataville. Tässä diplomityössä tehdään tapaustutkimus projektista, jossa kehitettiin älykorttien laiteajurit Windowsille ja macOS:lle. Tapaustutkimuksessa käsitelty projekti vaati laiteajurien mahdollistavan kolme yleistä käyttötapausta usealla eri korttityypillä mainituissa käyttöjärjestelmissä. Diplomityön tavoitteena on kuvailla kehitettyjä laiteajureita ja niiden kehitysprosessia. Samalla näitä seikkoja vertaillaan käyttöjärjestelmien välillä. Työn tarkoituksena on myös eritellä projektin kohtaamia haasteita ja esittää suosituksia haasteiden kitkemiseksi. Diplomityön tulokset viittaavat, että älykortin laiteajurin kehittäminen on monimutkaisempaa Windowsilla kuin macOS:lla, mutta Windows-ajurin toiminnallisuudet ovat kuitenkin laajemmat kuin verrokinsa. Lisäksi, tulosten perusteella vaikutti, että projektissa oltaisiin voitu hyödyntää niitä rajapintoja, jotka tarjoavat laiteajurien toiminnallisuudet muille sovelluksille. Tämä haittasi ymmärryksen kerryttämistä erityisesti Windows-ajurilla sekä kyseisten rajapintojen käyttämistä automatisoituun testaamiseen. Myös laiteajurien suunnittelussa sivuutettiin mahdollisuus kehittää laiteajureille yhteinen ohjelmakirjasto älykorttikommunikaatioon.

Description

Supervisor

Vuorimaa, Petri

Thesis advisor

Huopio, Olli

Other note

Citation