Odvozený jedinečný klíč na transakci - Derived unique key per transaction

v kryptografie, Odvozený jedinečný klíč na transakci (DUKPT) je správa klíčů schéma, ve kterém je pro každou transakci jedinečný klíč se používá, což je odvozený z pevného klíče. Proto je-li kompromitován odvozený klíč, budou data budoucí i minulé transakce stále chráněna, protože další nebo předchozí klíče nelze snadno určit. DUKPT je uveden v ANSI X9.24 část 1.

Přehled

DUKPT umožňuje přesunout zpracování šifrování ze zařízení, která drží sdílené tajemství. Šifrování se provádí pomocí odvozený klíč, který se po transakci znovu nepoužije. DUKPT se používá k šifrování transakcí elektronického obchodu. I když jej lze použít k ochraně informací mezi dvěma společnostmi nebo bankami, obvykle se používá k šifrování informací o PINu získaných zařízeními POS (Point-Of-Sale).

DUKPT není sám o sobě šifrovacím standardem; je to spíše technika správy klíčů. Funkce schématu DUKPT jsou:

  • umožnit původním i přijímajícím stranám, aby se dohodly, pokud jde o klíč používaný pro danou transakci,
  • každá transakce bude mít odlišný klíč od všech ostatních transakcí, kromě shody okolností,
  • pokud je ohrožen současný odvozený klíč, minulé a budoucí klíče (a tedy transakční data šifrovaná pod nimi) zůstávají nekompromisní,
  • každé zařízení generuje jinou sekvenci kláves,
  • původci a příjemci šifrovaných zpráv nemusí předem provádět interaktivní protokol dohody o klíči.

Dějiny

DUKPT byl vynalezen koncem 80. let ve společnosti Visa, ale velkého přijetí se dočkal až v 90. letech, kdy se průmyslové postupy posunuly k doporučení a později vyžadování, aby každé zařízení mělo odlišný šifrovací klíč.

Před DUKPT byl současný stav známý jako Master / Session, který vyžadoval inicializaci každého zařízení šifrujícího PIN pomocí jedinečného hlavního klíče. Při zpracování transakcí pocházejících ze zařízení pomocí správy klíčů Master / Session byla nežádoucím vedlejším účinkem potřeba tabulky šifrovacích klíčů tak početných, jako je počet nasazených zařízení. U významného kupce nabyvatele by se stůl mohl skutečně zvětšit. DUKPT to vyřešil. V DUKPT je každé zařízení stále inicializováno samostatným klíčem, ale všechny inicializační klíče celé rodiny zařízení jsou odvozeny z jediného klíče, základního odvozovacího klíče (BDK). K dešifrování zašifrovaných zpráv ze zařízení v poli musí příjemce uložit pouze BDK.

Klíče

Jak je uvedeno výše, algoritmus potřebuje počáteční jediný klíč, který byl v původním popisu algoritmu nazýván super tajný klíč, ale později byl přejmenován na - oficiálně znějícím způsobem -Klíč základní odvození (nebo BDK). Originální název snad lépe vyjadřuje skutečnou povahu tohoto klíče, protože pokud je kompromitován, všechna zařízení a všechny transakce jsou podobně kompromitovány.

To je zmírněno skutečností, že existují pouze dvě strany, které znají BDK:

  • příjemce šifrovaných zpráv (obvykle nabyvatel obchodníka)
  • strana, která inicializuje šifrovací zařízení (obvykle výrobce zařízení).

BDK je obvykle uložen uvnitř a bezpečnostní modul odolný proti neoprávněné manipulaci (TRSM) nebo hardwarový bezpečnostní modul (HSM). Musí zůstat jasné, že tento klíč není klíč používaný k inicializaci šifrovacího zařízení, které se bude účastnit operací DUKPT. Níže je uveden skutečný proces generování šifrovacího klíče.

  • za prvé: Klíč odvozený z BDK, který se označuje jako IPEK (Initial PIN Encryption Key).
  • Druhý: IPEK je poté vložen do zařízení, takže jakýkoli kompromis tohoto klíče ohrožuje pouze zařízení, nikoli BDK. Tím se vytvoří ještě další sada klíčů (uvnitř zařízení), která je z ní nevratně odvozena (jmenovitě se nazývá Budoucí klíče)
  • Čtvrtý: Poté je IPEK okamžitě vyřazen. POZNÁMKA: Tento krok je v rozporu s částí „Session Keys“, kde označuje, že je generováno pouze 21 „Future Keys“. Terminál IPEK musí být zachován, aby bylo možné vygenerovat další dávku 21 budoucích klíčů.
  • Pátý: Future Keys se používají k šifrování transakcí v procesu DUKPT.

Po detekci kompromisu je samotné zařízení odvozeno uvnitř a procesu odvozeného klíče

Sdělení

Původ

Na původním (šifrovacím) konci systém funguje následovně:

  1. Je zahájena transakce, která zahrnuje data, která mají být šifrována. Typickým případem je PIN zákazníka.
  2. Klíč je získán ze sady „Future Keys“
  3. Slouží k zašifrování zprávy a vytvoření kryptogram.
  4. Identifikátor známý jako „Key Serial Number“ (KSN) je vrácen ze šifrovacího zařízení spolu s kryptogramem. KSN je vytvořen z jedinečného identifikátoru zařízení a interního počítadla transakcí.
  5. Pár (kryptogram, KSN) je předán zamýšlenému příjemci, obvykle kupujícímu obchodníka, kde je dešifrován a dále zpracován.
  6. Zařízení interně provádí následující:
    1. Zvyšuje počet transakcí (pomocí interního čítače)
    2. Zruší platnost právě použitého klíče a
    3. V případě potřeby vygeneruje další budoucí klíče

Příjem

Na přijímacím (dešifrovacím) konci systém funguje následovně:

  1. Je přijat pár (kryptogram, KSN).
  2. Je nalezena příslušná BDK (pokud má systém více než jednu).
  3. Přijímající systém nejprve regeneruje IPEK a poté projde procesem podobným procesu použitému v původním systému, aby dospěl ke stejnému šifrovacímu klíči, který byl použit (klíč relace). Klíčové sériové číslo (KSN) poskytuje informace potřebné k tomu.
  4. Kryptogram je dešifrován pomocí klíče relace.
  5. Další zpracování je hotové. Pro nabyvatele obchodníka to obvykle znamená šifrování pod jiným klíčem pro přepnutí na přepínač (provedení „překladu“), ale u některých operací uzavřené smyčky může být nutné přímé zpracování údajů, například ověření PIN.

Klávesy relace

Metoda pro příchod na relační klíče je poněkud odlišná na straně původu, jako na straně příjemce. Na původní straně se mezi transakcemi uchovávají značné informace o stavu, včetně počítadla transakcí, sériového čísla a pole až 21 „budoucích klíčů“. Na přijímací straně nejsou zachovány žádné informace o stavu; pouze BDK je perzistentní napříč operacemi zpracování. Toto uspořádání poskytuje přijímači pohodlí (může být obsluhováno velké množství zařízení, přičemž je uložen pouze jeden klíč). Poskytuje také některé další zabezpečení s ohledem na původce (zařízení pro zachycení kódu PIN se často nasazují v prostředích s averzí k zabezpečení; parametry zabezpečení v zařízeních jsou „vzdálené“ od citlivého BDK a pokud je zařízení ohroženo, ostatní zařízení nejsou implicitně ohrožena).

Registruje použití

Záložní registry

Následující oblasti úložiště související se správou klíčů jsou udržovány po dobu trvání příkazu „Načíst počáteční klíč“ po dobu životnosti zařízení pro zadávání kódu PIN:

Počáteční registr sériového čísla klíče (59 bitů)

Drží nejvíce 59 bitů sériového čísla klíče, které bylo původně vloženo do zařízení pro zadávání PIN spolu s počátečním šifrovacím klíčem PIN během příkazu „Načíst počáteční klíč“. Obsah tohoto registru zůstává neměnný po dobu životnosti zařízení pro zadávání PIN nebo do dalšího příkazu „Načíst počáteční klíč“.

Čítač šifrování (21 bitů)

Počítadlo počtu šifrování PIN, ke kterým došlo od první inicializace zařízení pro zadávání PIN. Určité hodnoty čítače jsou přeskočeny (jak je vysvětleno níže), takže je možné více než 1 milion operací šifrování PIN. Poznámka: Zřetězení (zleva doprava) registru počátečního sériového čísla klíče a počitadla šifrování tvoří 80bitový (20 hexadecimálních číslic) registr sériového čísla klíče.

Budoucí klíčové registry (21 registrů po 34 hexadecimálních číslicích)

Sada 21 registrů, očíslovaných # 1 až # 21, slouží k ukládání budoucích šifrovacích klíčů PIN. Každý registr obsahuje 2 hexadecimální číslice, kontrola podélné redundance (LRC) nebo 2 hexadecimální číslice, kontrola cyklické redundance (CRC).


Dočasné registry

Následující oblasti úložiště související se správou klíčů jsou vyžadovány dočasně a mohou být použity pro jiné účely jinými rutinami zpracování PIN:

Aktuální klíčový ukazatel (přibližně 4 hexadecimální číslice)

Obsahuje adresu tohoto registru budoucích klíčů, jehož obsah se používá v aktuální kryptografické operaci. Identifikuje obsah registru budoucích klíčů, jehož adresa je obsažena v ukazateli aktuálního klíče.

Posuvný registr (21 bitů)

21bitový registr, jehož bity jsou očíslovány zleva doprava jako # 1 až # 21. Tento registr normálně obsahuje 20 „nulových“ bitů a jeden bit „jeden“. Jedním z použití tohoto registru je výběr jednoho z budoucích klíčových registrů. Budoucí klíčový registr, který má být vybrán, je ten, který je očíslován stejně jako bit v posuvném registru a obsahuje jediný „jeden“.

Crypto Register-1 (16 hexadecimálních číslic)

Registr používaný při provádění kryptografických operací.

Crypto Register-2 (16 hexadecimálních číslic)

Druhý registr používaný při provádění kryptografických operací.

Registr klíčů (32 hexadecimálních číslic)

Registr používaný k uložení kryptografického klíče.

Praktické záležitosti (schéma KSN)

V praktických aplikacích by bylo zaznamenáno několik BDK, případně pro různé zákazníky, nebo aby obsahoval rozsah klíčového kompromisu. Při zpracování transakcí je důležité, aby přijímač věděl, která BDK byla použita k inicializaci původního zařízení. K dosažení tohoto cíle je 80bitový KSN strukturován do tří částí: jako ID sady klíčů, ID TRSM a počítadlo transakcí. Algoritmus určuje, že počítadlo transakcí je 21 bitů, ale zbývajících 59 bitů zachází neprůhledně (algoritmus určuje pouze to, že nepoužité bity budou 0-polstrované na hranici nibble a poté 'f' na 80-bitovou hranici). Z tohoto důvodu může entita spravující vytváření zařízení DUKPT (obvykle kupující kupujícího) dále dělit 59 bitů podle svých preferencí.

Průmyslovou praxí je označit rozdělení jako sérii tří číslic, udávající počet hexadecimálních číslic použitých v každé části: ID sady klíčů, ID TRSM a počítadlo transakcí. Běžnou volbou je „6-5-5“, což znamená, že prvních 6 hexadecimálních číslic KSN označuje ID sady klíčů (tj. Které BDK se má použít), dalších 5 je ID TRSM (tj. Sériové číslo zařízení číslo v rozsahu inicializovaném pomocí společného BDK) a posledních 5 je čítač transakcí.

Toto notační schéma není striktně přesné, protože čítač transakcí je 21 bitů, což není ani násobek 4 (počet bitů v hexadecimální číslici). V důsledku toho čítač transakcí ve skutečnosti spotřebuje jeden bit pole, kterým je ID TRSM (v tomto příkladu to znamená, že pole ID TRSM může pojmout 2(5*4-1) zařízení, místo 2(5*4), nebo asi půl milionu).

V tomto odvětví je také běžnou praxí používat pouze 64 bitů KSN (pravděpodobně z důvodů souvisejících se staršími systémy a šifrováním DES), což by znamenalo, že celá KSN je vyplněna doleva čtyřmi šestiúhelníky „f“ číslice. Zbývající 4 hexadecimální číslice (16 bitů) jsou nicméně k dispozici systémům, které je mohou pojmout.

Výše uvedené schéma 6-5-5 by umožnilo přibližně 16 milionů BDK, 500 000 zařízení na BDK a 1 milion transakcí na zařízení.