Memutar Kode Batang

Pengantar

Kode batang yang berputar terlihat seperti kode batang biasa tetapi berubah secara berkala, biasanya setiap menit, dan terminal/pembaca diprogram agar hanya menerima yang terbaru. Langkah keamanan ini mengurangi risiko yang terkait dengan tangkapan layar kode batang, khususnya pencurian tiket atau tiket tidak sah penjualan kembali. Memutar kode batang juga dapat bertindak sebagai penggantian perangkat yang tidak dapat memanfaatkan Smart Tap, karena tidak mendukung NFC (kurangnya perangkat keras, atau software dinonaktifkan).

Referensi API

Untuk detail teknis tentang Memutar Kode Batang, lihat Jenis RotatingBarcode.

Contoh payload

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"
        }
      ]
    }
  }
}

Mekanisme Penggantian

Pada perangkat pengguna, hanya satu mekanisme penukaran yang digunakan pada waktu tertentu, tergantung cara {i>pass <i}dikonfigurasi dan kemampuan perangkat. Dalam urutan prioritas, jenis penukaran berikut digunakan:

  1. Smart Tap: Jika payload smart-tap ditentukan dan jika perangkat mendukung NFC/HCE
    • Perhatikan, ini dapat diganti oleh pengguna dengan mengklik "{i>Show code<i}", yang akan memaksa tampilan kode batang/kode batang statis yang berputar.
  2. Kode batang berputar: Jika payload kode batang berputar ditentukan
  3. Kode batang statis: Jika payload kode batang ditentukan

Menentukan beberapa payload penukaran dapat memastikan semua pengguna didukung, tetapi mungkin memiliki implikasi keamanan. Secara khusus, menggunakan{i> code<i} statis sebagai untuk kode batang yang berputar meniadakan sebagian besar manfaat keamanan dari penggunaan kode batang berputar. Penggantian kode batang statis hanya akan ditampilkan dalam tampilan web atau pada klien yang tidak mendukung pengubahan kode batang. Mulai hari ini, kami memperkirakan semua klien Google Wallet untuk mendukung rotasi kode batang.

Simpan Alur

Google Wallet API menawarkan beberapa alur, termasuk:

  • Membuat kelas transportasi umum pada waktu yang tepat atau lebih awal
  • Mengirim objek lengkap di JWT Anda, atau menyimpan objek sebelum waktu, kemudian mereferensikannya berdasarkan ID di JWT Anda
  • Memperbarui objek setelah disimpan

Isian {i>rotatingBarcode<i} yang diusulkan kompatibel dengan semua alur ini, Namun, untuk meningkatkan keamanan, sebaiknya lakukan hal berikut:

  • Memanggil object:insert API untuk menyisipkan kartu ke Server Google Wallet dan konfigurasikan tombol Tambahkan ke Google Wallet untuk merujuk ke objek tertentu berdasarkan ID di JWT Anda. Hal ini memastikan bahwa JWT yang dihasilkan tidak menyertakan kunci rahasia dari kode batang yang berputar.
  • Gunakan kunci rahasia OTP yang dicakupkan ke satu penerusan
  • Kunci tersebut, kecuali jika diperbarui, diharapkan valid selama masa aktif {i>pass <i}itu. Kami tidak mengharapkan kunci ini diperbarui pada frekuensi apa pun selama jalannya operasi secara normal.

Diagram urutan berikut mengilustrasikan alur antara berbagai aktor untuk integrasi standar:

Diagram urutan untuk menggunakan Kode Batang Berputar