State Coherency via Physical Carrier : Designing and Implementing Time Tracking System with User-Carried State
Dubrovin, Ivan (2024)
Dubrovin, Ivan
2024
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2024-04-22
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202403192955
https://urn.fi/URN:NBN:fi:tuni-202403192955
Tiivistelmä
This thesis focuses on designing and assessing the viability of a distributed system that uses user-carried passive device to store their state on. The system to evaluate the approach in question is a set of disjointed attendance or time tracking terminals to be utilized in an industrial environment, with NFC card or fobs being used as both an ID and a state carrier device simultaneously.
Currently, many attendance tracking systems tend to rely either on hardwiring each endpoint to a server or a constant uninterrupted LAN connection. Hardwiring presents a neigh impossible challenge in cases where there are multiple work sites across the globe and relying on a constant connection to some remote server through the local area network usually tends to render the entire system unusable in case of many potential network-related failures. Additionally, allowing user to clock in at one work site and clock out at another is also made problematic for similar reasons.
The system proposed in this thesis takes a different perspective on the matter. Instead of relying on constant remote services, information sharding for each separate terminal is proposed. The terminal thus makes a periodic inquiry to the remote server, storing necessary data like information about users, their privileges etc. in a local database, which is promptly accessed when a user marks their attendance. The terminals being disjointed and having no direct reliance on a shared remote service however presents the problem of validating user’s current state reliably. This thesis suggests using NFC enabled device, like a common ID card or fob, to store such state, in order to make it possible for each terminal to authorize or deny a state transition based purely on this stored state, overwriting it with the new one upon successfully making an attendance mark and requiring user to carry no additional devices apart from said ID card. Lastly, each terminal is expected to mark the attendance events into its own respective local database and attempt to periodically upload them to potentially scarcely available shared gathering server. This server then collects the logs and processes them in a way that yields causally coherent series of events, from which employee’s time at work etc. can be calculated.
Having implemented and tested a prototype of such system, the proposition of this thesis seems to be a viable one. The causality of eventually reported attendance events can be established easily and in case of prolong terminal outages the error is made distinguishable and apparent. The terminals also seem to function fast enough to allow a high throughput of bursts of users in rush hours, like at the start or the end of the working shift. The redundant locally stored access information is also always available for manual checking in potential conflicting cases. However, the system only works when the carried state is assumed to be reliable, meaning that if a malicious actor was to alter it between registering the attendance the system would have no ways of detecting it. Additionally, duplication of the card would scramble the results and make possible for the causality of the reported events to be manipulated to gain the system. These security issues require further investigation before generally accepting the proposed approach. Tämä opinnäytetyö keskittyy hajautetun järjestelmän suunnitteluun ja arviointiin, mikä käyttää käyttäjän kuljettamia passiivisia laitteita käyttäjien tilansa tallentamiseen. Kyseisen lähestymistavan arvioinnin kohteena on järjestelmä, joka sisältää useamman erillisen ajanseurantapäätteen, minkä tarkoitus on käyttää teollisuusympäristössä. Tällöin NFC-korttia käytetään samanaikaisesti sekä tunnistamisen tarkoituksessa, että tilan säilyttäjänä.
Tällä hetkellä monet läsnäoloseurantajärjestelmät luottavat yleensä joko kunkin päätepisteen johdotukseen suoraan palvelimeen tai jatkuvaan keskeytymättömään verkkoyhteyteen. Johdotus tulee haasteeksi tapauksissa, joissa työpaikkoja on eri puolilla maata. Jatkuvaan yhteyden etäpalvelimeen verkon kautta luottaminen usein tekee koko järjestelmästä käyttökelvottoman monien mahdollisten verkko-ongelmien kohdatessa. Lisäksi ongelmia tuottaa tilanteet, jossa käyttäjän sallitaan leimata sisään toisella tehtaalla ja ulos toisella.
Tässä opinnäytetyössä ehdotettu järjestelmä ottaa toisenlaisen näkökulman asiaan. Sen sijaan, että se turvautuisi jatkuviin etäpalveluihin, ehdotetaankin tietojen jakamista jokaiselle päätelaitteelle erikseen. Päätelaite tekee siis määräajoin kyselyn etäpalvelimelle ja tallentaa näin saadut tiedot, paikalliseen tietokantaan, johon päästään välittömästi, kun käyttäjä pyrkii merkitsemaan läsnäolonsa. Koska päätelaitteet ovat keskenään riippumattomia ja niillä ei ole luotettavaa yhteyttä jaettuun etäpalveluun, tuleekin käyttäjän nykyisen tilan validointi hankalaksi. Tässä ehdotetaan NFC kortin käyttöä tällaisen tilan tallentamiseen. Jokainen päätelaite voi sallia tai estää tilasiirtymän puhtaasti tämän tallennetun tilan perusteella, korvaamalla sen uudella onnistuneen läsnäolomerkin luomisen jälkeen. Lopuksi jokaisen päätelaitteen odotetaan merkitsevän osallistumistapahtumat omaan paikalliseen tietokantaansa ja yrittävän ajoittain ladata ne yhteiselle keräyspalvelimelle. Tämä palvelin sitten kerää näin saadut tapahtumat ja tuottaa kausaalisesti yhtenäisen tapahtumasarjan, josta voidaan laskea työntekijän työaika jne.
Prototyypin toteuttamisen ja testaamisen jälkeen tämän työn ehdotus vaikuttaa toimivalta. Tapahtumasarjoista voidaan laskea ajat helposti ja päätteiden virheet saadaan tunnistettua nopeasti. Päätelaitteet näyttävät myös toimivan riittävän nopeasti, mikä mahdollistaa suuren käyttäjämäärän palvelua myös ruuhka-aikoina. Ylimääräiset paikallisesti tallennetut pääsytiedot ovat myös aina käytettävissä manuaalista tarkistusta varten mahdollisissa ristiriitatapauksissa. Järjestelmä toimii kuitenkin vain, kun kannettava tila on luotettava, mikä tarkoittaa sitä, että jos pahantahtoinen toimija muuttaisi sitä läsnäolon rekisteröinnin välillä, järjestelmällä ei olisi keinoja havaita sitä. Lisäksi kortin monistaminen sekoittaisi tuloksia ja mahdollistaisi raportoitujen tapahtumien jäljettävyyttä. Nämä turvallisuuskysymykset vaativat lisätutkimuksia, ennen kuin ehdotettu lähestymistapa voidaan hyväksyä yleiseen käyttöön.
Currently, many attendance tracking systems tend to rely either on hardwiring each endpoint to a server or a constant uninterrupted LAN connection. Hardwiring presents a neigh impossible challenge in cases where there are multiple work sites across the globe and relying on a constant connection to some remote server through the local area network usually tends to render the entire system unusable in case of many potential network-related failures. Additionally, allowing user to clock in at one work site and clock out at another is also made problematic for similar reasons.
The system proposed in this thesis takes a different perspective on the matter. Instead of relying on constant remote services, information sharding for each separate terminal is proposed. The terminal thus makes a periodic inquiry to the remote server, storing necessary data like information about users, their privileges etc. in a local database, which is promptly accessed when a user marks their attendance. The terminals being disjointed and having no direct reliance on a shared remote service however presents the problem of validating user’s current state reliably. This thesis suggests using NFC enabled device, like a common ID card or fob, to store such state, in order to make it possible for each terminal to authorize or deny a state transition based purely on this stored state, overwriting it with the new one upon successfully making an attendance mark and requiring user to carry no additional devices apart from said ID card. Lastly, each terminal is expected to mark the attendance events into its own respective local database and attempt to periodically upload them to potentially scarcely available shared gathering server. This server then collects the logs and processes them in a way that yields causally coherent series of events, from which employee’s time at work etc. can be calculated.
Having implemented and tested a prototype of such system, the proposition of this thesis seems to be a viable one. The causality of eventually reported attendance events can be established easily and in case of prolong terminal outages the error is made distinguishable and apparent. The terminals also seem to function fast enough to allow a high throughput of bursts of users in rush hours, like at the start or the end of the working shift. The redundant locally stored access information is also always available for manual checking in potential conflicting cases. However, the system only works when the carried state is assumed to be reliable, meaning that if a malicious actor was to alter it between registering the attendance the system would have no ways of detecting it. Additionally, duplication of the card would scramble the results and make possible for the causality of the reported events to be manipulated to gain the system. These security issues require further investigation before generally accepting the proposed approach.
Tällä hetkellä monet läsnäoloseurantajärjestelmät luottavat yleensä joko kunkin päätepisteen johdotukseen suoraan palvelimeen tai jatkuvaan keskeytymättömään verkkoyhteyteen. Johdotus tulee haasteeksi tapauksissa, joissa työpaikkoja on eri puolilla maata. Jatkuvaan yhteyden etäpalvelimeen verkon kautta luottaminen usein tekee koko järjestelmästä käyttökelvottoman monien mahdollisten verkko-ongelmien kohdatessa. Lisäksi ongelmia tuottaa tilanteet, jossa käyttäjän sallitaan leimata sisään toisella tehtaalla ja ulos toisella.
Tässä opinnäytetyössä ehdotettu järjestelmä ottaa toisenlaisen näkökulman asiaan. Sen sijaan, että se turvautuisi jatkuviin etäpalveluihin, ehdotetaankin tietojen jakamista jokaiselle päätelaitteelle erikseen. Päätelaite tekee siis määräajoin kyselyn etäpalvelimelle ja tallentaa näin saadut tiedot, paikalliseen tietokantaan, johon päästään välittömästi, kun käyttäjä pyrkii merkitsemaan läsnäolonsa. Koska päätelaitteet ovat keskenään riippumattomia ja niillä ei ole luotettavaa yhteyttä jaettuun etäpalveluun, tuleekin käyttäjän nykyisen tilan validointi hankalaksi. Tässä ehdotetaan NFC kortin käyttöä tällaisen tilan tallentamiseen. Jokainen päätelaite voi sallia tai estää tilasiirtymän puhtaasti tämän tallennetun tilan perusteella, korvaamalla sen uudella onnistuneen läsnäolomerkin luomisen jälkeen. Lopuksi jokaisen päätelaitteen odotetaan merkitsevän osallistumistapahtumat omaan paikalliseen tietokantaansa ja yrittävän ajoittain ladata ne yhteiselle keräyspalvelimelle. Tämä palvelin sitten kerää näin saadut tapahtumat ja tuottaa kausaalisesti yhtenäisen tapahtumasarjan, josta voidaan laskea työntekijän työaika jne.
Prototyypin toteuttamisen ja testaamisen jälkeen tämän työn ehdotus vaikuttaa toimivalta. Tapahtumasarjoista voidaan laskea ajat helposti ja päätteiden virheet saadaan tunnistettua nopeasti. Päätelaitteet näyttävät myös toimivan riittävän nopeasti, mikä mahdollistaa suuren käyttäjämäärän palvelua myös ruuhka-aikoina. Ylimääräiset paikallisesti tallennetut pääsytiedot ovat myös aina käytettävissä manuaalista tarkistusta varten mahdollisissa ristiriitatapauksissa. Järjestelmä toimii kuitenkin vain, kun kannettava tila on luotettava, mikä tarkoittaa sitä, että jos pahantahtoinen toimija muuttaisi sitä läsnäolon rekisteröinnin välillä, järjestelmällä ei olisi keinoja havaita sitä. Lisäksi kortin monistaminen sekoittaisi tuloksia ja mahdollistaisi raportoitujen tapahtumien jäljettävyyttä. Nämä turvallisuuskysymykset vaativat lisätutkimuksia, ennen kuin ehdotettu lähestymistapa voidaan hyväksyä yleiseen käyttöön.