Obracanie kodów kreskowych

Wprowadzenie

Kody paskowe wyglądają jak zwykłe kody kreskowe, ale zmieniają się okresowo zwykle co minutę, a terminal/czytnik jest tak zaprogramowany, aby najnowszego. To zabezpieczenie zmniejsza ryzyko związane z robienie zrzutów ekranu z kodem kreskowym, w szczególności kradzież biletu lub nieautoryzowany bilet sprzedaż. Rotacja kodów kreskowych może też służyć jako działanie zastępcze w przypadku urządzeń, które nie mogą korzystają z technologii smart tap ze względu na brak obsługi NFC (brak sprzętu lub wyłączone oprogramowanie).

Dokumentacja API

Szczegółowe informacje techniczne dotyczące rotacji kodów kreskowych znajdziesz w dokumentacji Typ RotatingBarcode.

Przykładowy ładunek

JSON
{
  "rotatingBarcode": {
    "type": "QR_CODE",
    "valuePattern": "MyRotatingBarcode-{totp_timestamp_seconds}-{totp_value_0}",
    "alternateText": "Ticket#: 1234567890",
    "totpDetails": {
      "algorithm": "TOTP_SHA1",
      "periodMillis": "3000",
      "parameters": [
        {
          "key": "3132333435363738393031323334353637383930",
          "valueLength": "8"
        }
      ]
    }
  }
}

Mechanizmy awaryjne

Na urządzeniu użytkownika w danym momencie używany jest tylko jeden mechanizm wykorzystania karty. w zależności od konfiguracji karty i możliwości urządzenia. Używane są te typy promocji (w kolejności według priorytetu):

  1. Smart Tap: jeśli określono dane payload dla smart tap i urządzenie obsługuje NFC/HCE.
    • Użytkownik może to zmienić, klikając „Pokaż kod”, co spowoduje wyświetlenie obracającego się lub statycznego kodu kreskowego.
  2. Rotacja kodu kreskowego: jeśli określono rotację kodu kreskowego
  3. Kod kreskowy statyczny: jeśli określono ładunek danych kodu kreskowego.

Określenie wielu ładunków do wykupu może zapewnić obsługę wszystkich użytkowników, ale może mieć wpływ na bezpieczeństwo. W szczególności użycie kodu kreskowego stałego jako zapasowego dla kodu kreskowego rotacyjnego niweczy większość korzyści związanych z bezpieczeństwem wynikających ze stosowania kodów kreskowych rotacyjnych. Statyczny zamiennik kodu kreskowego będzie wyświetlany tylko w widokach internetowych lub w klientach, które nie obsługują obracających się kodów kreskowych. Od dzisiaj wszystkich klientów Portfela Google z obsługą rotacji kodów kreskowych.

Zapisywanie przepływu

Interfejs API Portfela Google oferuje kilka procesów, w tym:

  • tworzenie zajęć z karty podarunkowej w celu zaoszczędzenia czasu lub z wyprzedzeniem.
  • Wysyłanie w tokenie JWT kompletnych obiektów lub zapisywanie obiektów z wyprzedzeniem, a potem odwoływanie się do nich według identyfikatora w tokenie JWT.
  • Aktualizowanie obiektów po ich zapisaniu

Proponowane pole rotacji kodu kreskowego jest zgodne ze wszystkimi tymi przepływami. jednak w celu poprawy bezpieczeństwa sugerujemy wykonanie tych czynności:

  • Wywołaj interfejs API object:insert, aby wstawić kartę do serwera Portfela Google i skonfigurować przycisk Dodaj do Portfela Google, aby odwołują się do konkretnego obiektu za pomocą identyfikatora w tokenie JWT. Dzięki temu powstały w ten sposób token JWT nie zawiera tajnego klucza rotacji kodu kreskowego.
  • Użyj klucza obiektu tajnego dla hasła jednorazowego z zakresu pojedynczej karty
  • Klucz, o ile nie zostanie zaktualizowany, jest ważny przez cały okres ważności karty. Nie spodziewamy się, aby ten klucz był aktualizowany w żadnej częstotliwości w trakcie normalnego działania.

Ten diagram sekwencji przedstawia przepływ danych między różnymi podmiotami w przypadku typowej integracji:

Schemat sekwencji używania kodów kreskowych rotacyjnych