Stafræn ökuskírteini, þriðji hluti - PKPass útfærslan

Stafræn ökuskírteini, þriðji hluti - PKPass útfærslan

16. desember, 2025

Settu þig í spor hakkarans

Með þessum hluta bloggsins höfum við sett upp fjögur verkefni þar sem þér gefst tækifæri til að prófa að falsa skírteini sjálfur. Hversu sannfærandi getur þín fölsun orðið?

Prófaðu að falsa

Í þessum síðasta hluta ætlum við að fara yfir tæknilega útfærslu upprunalegu stafrænu ökuskírteinanna og hvernig hún opnaði dyrnar að einföldum og sannfærandi fölsunum. Einnig ætlum við að bjóða upp á nokkur verkefni sem leyfa lesendum að æfa sig í fölsun ökuskírteina til að sýna hversu auðveld hún er!

Fyrsta verkefnið snýr að einföldustu leiðinni til fölsunar skilríkjanna, skjáskotum. Verkefnin í kjölfarið snúast svo um fölsun sjálfra PKPass-skilríkjaskránna.

PKPass

PKPass er staðall fyrir stafræn veski þróaður af Apple, upprunalega fyrir Apple Wallet, en er notaður af flestum veskisöppum. Í þessum staðli eru „kort“ afhent sem skrá, sem oftast hefur endinguna .pkpass. Þessi skrá er ekkert annað en kippuskrá á ZIP-sniði sem inniheldur aðrar skrár sem skilgreina kortið.

  • pass.json: Þessi skrá inniheldur öll gögn kortsins. Í tilfelli ökuskírteinanna er það nafn, kennitala, gildistími, réttindi, o.s.frv.
  • logo.png: Merkið sem birtist efst á kortinu, t.d. skjaldarmerkið og titill á ökuskírteininu.
  • thumbnail.png: Önnur mynd sem birtist á kortinu eins og passamyndin á ökuskírteininu.
  • manifest.json: Yfirlitsskjal sem geymir lista yfir skjölin sem eru í PKPass-skjalinu og SHA-1 tætigildi þeirra.
    {
      "thumbnail.png": "a9cbe70a30c37e283bc8c6345b0cfee8b2e7b964",
      "logo.png": "860fda89649d03d5d5ae6ff45f05597a021db449",
      "pass.json": "eae5b3060d293e79f03d3a711dac4479e071765e"
    }
    
  • signature: PKCS#7 undirritun á manifest.json skránni.

Undirritun!?

Tæknilega séð er innihald PKPass-skráa undirritað rafrænt sem þýðir að ekki ætti að vera hægt að breyta innihaldi þeirra. En það vill þannig til að hver sem er getur fengið lykil til að undirrita PKPass, það eina sem þarf er Apple Developer leyfi sem kostar $99 .

Þessi undirritun er því meira til þess fallin að takmarka og stýra aðgengi að útgáfu PKPass-korta í gegnum Apple, frekar en að hafa öryggislegan tilgang. Þetta endurspeglast einmitt í því að Apple Wallet er eina rafræna veskið sem, yfir höfuð, staðfestir þessa undirritun. Öll önnur veskisöpp (eftir því sem við best vitum) hundsa hana.

Fölsun

Þegar öllu er á botninn hvolft sjáum við þá að þessi stafrænu ökuskírteini eru lítið annað en ZIP-skrá með upplýsingum í formi JSON og mynda. Einföld leið að mjög sannfærandi fölsun væri þannig, ef við byrjuðum með gilt PKPass-skjal ökuskírteinis.

  1. Opna kippuskrána.
  2. Uppfæra þær upplýsingar sem við viljum í pass.json.
  3. Breyta thumbnail.png myndinni.
  4. Uppfæra SHA-1 tætigildin í manifest.json sem samsvara breytingunum á pass.json og thumbnail.png .
  5. Setja skrárnar í nýja kippuskrá.

Þessi skref eru nóg til að útbúa skírteini sem lítur nákvæmlega eins út í stafrænu veski og raunveruleg skírteini. Það getur enginn séð muninn! Annað verkefnið okkar snýr einmitt að því að falsa skírteini á þennan máta.

Það vantar þó eitt upp á þessa fölsun. Ef við rifjum upp upprunalegu leiðbeiningar Stafræns Íslands , þá var mælt með að endurhlaða skírteinið í síma og sjá tímastimpilinn uppfærast til að „sannreyna“ skírteinið. Við þurfum því að finna leið til að uppfæra tímastimpilinn í rauntíma.

Fullkomin fölsun

Til að útbúa fölsuð skírteini sem eru óaðgreinanleg frá þeim raunverulegu þurfum við að kafa aðeins dýpra ofan í útfærslu PKPass. Í pass.json skjalinu er hægt að setja inn slóð á vefþjónustu þar sem stafræn veski geta, meðal annars, sótt uppfærslur korta. Til að fullkomna fölsunina okkar þurfum við því einfaldlega að setja upp lítinn vefþjón sem skilar falsaða skírteininu okkar með uppfærðum tímastimpli þegar kallað er á ákveðinn endapunkt.

Hér fyrir neðan sjáum við hluta af pass.json skjalinu. Gildi webServiceURL er sá vefþjónn sem veskið mun senda fyrirspurn á ef óskað er eftir uppfærslu á kortinu og authenticationToken er sá aðgangslykill sem settur er í hausinn á HTTP-fyrirspurninni.

{
  "description": "Stafrænt ökuskírteini",
  "logoText": "",
  "formatVersion": 1,
  "passTypeIdentifier": "pass.logr.license",
  "serialNumber": "12345",
  "barcode": {
    "message": "[gögn strikamerkis]",
    "format": "PKBarcodeFormatPDF417",
    "altText": "Í gildi - 19.11.2025 15:19:45",
    "messageEncoding": "iso-8859-1"
  },
  "generic": {
      # Gögn skírteinisins, þ.e. nafn, kennitala, o.s.frv.
   },
  "voided": false,
  "authenticationToken": "someapikey",
  "webServiceURL": "https://example.com/",
}

Það nægir því að setja upp vefþjón sem svarar á slóðinni /v1/passes/{passTypeIdentifier}/{serialNumber} með nýrri PKPass-skrá með uppfærðum texta á strikamerkinu, sem er gildi altText undir barcode. Tegundarauðkennið passTypeIdentifier og raðnúmerið serialNumber er notað til að auðkenna hvaða kort á að uppfæra (þau má sjá í pass.json að ofan), en þar sem við erum aðeins að setja upp vefþjón til að falsa eitt skilríki, þá þurfum við ekki á þessum upplýsingum að halda og getum hundsað þær.

Í þriðja verkefninu er hægt að spreyta sig á því að setja upp svona fullkomlega falsað ökuskírteini.

Er nóg að skanna?

Þessi dæmi sem við höfum sett upp og lýst hér að framan sýna að gömlu stafrænu ökuskírteinin voru með öllu óáreiðanleg án skanna. En, eins og með allt annað, þá skiptir líka máli hvernig hann er útfærður. Eins og minnst var á í fyrsta hluta, þá eru einu áreiðanlegu gögn skilríkisins þau sem koma frá skannanum.

Það býður því hættunni heim sé skanninn útfærður með þeim hætti að hann segi bara til um hvort skilríkið sé gilt eða ekki og ætlast sé til að, gefi skanninn grænt ljós, þá megi treysta gögnunum sem standa á skannaða skilríkinu. Þá þarf bara aðgang að einu gildu skírteini og með því er hægt að falsa eins mörg skírteini og áhugi er fyrir.

Þessa fölsun er hægt að útfæra á þann máta að þegar fyrirspurn um uppfærslu á skírteini kemur, óskum við eftir uppfærslu á gilda skírteininu. Sú uppfærsla veitir okkur gildan kóða sem við setjum inn í okkar falsaða skírteini. Skanninn mun þá sjá ferskan og gildan kóða og gefa skírteininu grænt ljós, en sá sem skannar mun svo lesa gögn falsaða skilríkisins. Fjórða verkefnið snýst einmitt um fölsun skírteina sem nota slíkan skanna.

Skannar stafrænu ökuskírteinanna

Þeir skannar sem útfærðir hafa verið fyrir stafrænu ökuskírteinin, bæði nýju og gömlu, falla þó ekki í þessa gryfju. Eftir skönnun birtist mynd af handhafa skírteinisins, ásamt nafni og kennitölu. Markmið síðasta verkefnisins er þannig að undirstrika mikilvægi þess, en endurspeglar ekki raunverulega aðferð sem hægt var að beita til fölsunar.

Það ber þó að nefna að þó að það sé raunin með stafrænu ökuskírteinin, þá er ekki sama uppi á teningnum þegar kemur að öðrum skírteinum. T.a.m. þegar ný skotvopnaskírteini eru skönnuð birtast aðeins upplýsingar um hvort skírteinið sé í gildi eða ekki. Engar aðrar upplýsingar birtast við skönnun sem tengja skírteinið sem skannað var við handhafann.

Upplýsingar sem birtast í viðmóti þegar gilt skotvopnaskírteini er skannað.
Upplýsingar sem birtast í viðmóti þegar gilt skotvopnaskírteini er skannað.
Upplýsingar sem birtast í viðmóti þegar gilt skotvopnaskírteini er skannað.

Upplýsingar sem birtast í viðmóti þegar gilt skotvopnaskírteini er skannað.

Að lokum

Í þessari þriggja hluta rýni á útfærslu stafrænna ökuskírteina höfum við farið yfir víðan völl, en það sem leggja ber áherslu á er mikilvægi öryggis á öllum stigum þróunar. Ein besta leiðin til að tryggja það er með öryggisfræðslu og öryggisþjálfun allra sem koma að hugbúnaðarþróunarferlinu, og þá sérstaklega forritara. Forritari sem hefur tileinkað sér hugarfar hakkarans getur litið ferla jafnt sem hugbúnað gagnrýnum augum og komið þannig í veg fyrir veikleika áður en þeir verða til!

Ambaga trúir því að öryggisþjálfun forritara sé ein hagkvæmasta leið fyrirtækja og stofnana til að efla öryggisstöðu sína með forvirkum aðgerðum. Við höfum, þess vegna, þróað námskeið þar sem lögð er rík áhersla á að forritarar setji sig í spor hakkarans og þjálfi þannig það viðhorf sem þarf til að koma auga á veikleika hvar sem þeir kunna að birtast. Í þessum námskeiðum gerist þátttakendum kleift að leita uppi ýmsa veikleika í raunverulegum hugbúnaði og læra að misnota þá í sérsmíðuðum kennsluvettvangi, Örvangi. Smíði Örvangs er þróunarverkefni innan Ambögu sem hlaut styrk úr Eyvöru, samstarfsvettvangi fræðslu, menntunar og rannsókna á sviði netöryggis á Íslandi (NCC-IS) í lok árs 2024. Verkefnin sem sett voru upp samhliða þessu bloggi eru einmitt keyrð með Örvangi.

Prófaðu að falsa