はじめに
ローテーション バーコードは通常のバーコードと同じように見えますが、定期的に変更されます。 頻度は 1 分間隔で行われ、ターミナル/リーダーは 最新のものが表示されます。このセキュリティ対策により、システムで発生するリスクは バーコードのスクリーンショット、特にチケットの盗難または無許可のチケット 考えていますバーコードをローテーションすると、 NFC に対応していないため、スマートタップを活用する(ハードウェアの不足や、 無効になっている場合)。
API リファレンス
ローテーション バーコードの技術的な詳細については、
RotatingBarcode
型。
ペイロードの例
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" } ] } } } |
フォールバックの仕組み
ユーザーのデバイスでは、一度に 1 つのクーポン利用メカニズムのみが使用されます。 。 以下の利用方法が優先度順に使用されます。
-
スマートタップ: スマートタップ ペイロードが指定され、デバイスがサポートしている場合
NFC/HCE
<ph type="x-smartling-placeholder">
- </ph>
- この設定は、ユーザーが [コードを表示] をクリックしてオーバーライドすることもできます。 ローテーション バーコード/静的バーコードの表示が強制されます。
- ローテーション バーコード: ローテーション バーコードのペイロードが指定されている場合
- 静的バーコード: バーコードのペイロードが指定されている場合
クーポン利用ペイロードを複数指定すると、すべてのユーザーが対象になりますが、 セキュリティ上の影響を及ぼす可能性があります。特に、静的なバーコードを ローテーション バーコードを使用する際、代替手段として使用すると、 ローテーション バーコード。静的なバーコード フォールバックはウェブビューにのみ表示されます ローテーション バーコードをサポートしていないクライアントでも使用できます。現時点で、 すべての Google ウォレット クライアントでローテーション バーコードをサポートします。
保存フロー
Google Wallet API には、次のような複数のフローがあります。
- 保存時または事前に交通機関クラスを作成する
- JWT で完全なオブジェクトを送信するか、事前にオブジェクトを保存する JWT で ID で参照します。
- 保存後のオブジェクトの更新
提案された rotatingBarcode フィールドは、これらすべてのフローと互換性があります。 ただし、セキュリティを強化するために、次のことをおすすめします。
-
object:insert
API を呼び出して、パスを [Google ウォレットに追加] ボタンを JWT 内の ID で特定のオブジェクトを参照します。これにより 生成される JWT にローテーション バーコードの秘密鍵は含まれません。 - 単一のパスをスコープとする OTP 秘密鍵を使用する
- 鍵は、更新しない限り、有効期間中有効である 表示されます。契約期間中は、このキーが頻繁に更新されることはないと想定しています。 維持します。
次のシーケンス図は、さまざまなアクター間のフローを示しています。 一般的な統合の場合:
![ローテーション バーコードを使用するためのシーケンス図](https://developers-dot-devsite-v2-prod.appspot.com/static/wallet/images/rotating-barcodes-sequence-diagram.png?authuser=19&hl=ja)