構造化データを保護したい

Tink API は、任意のバイナリ blob を入力として受け取ります。つまり 構造化データ(schema.org)のマークアップ、実装例など、 プロトコル バッファを使う場合は、事前に 最初にデータをエンコードします。

protobuf を暗号化する

暗号化するには:

  1. protobuf をバイト配列にシリアル化します。
  2. シリアル化されたバイトを暗号化し、生成された暗号テキストを保存または送信する。 使用: <ph type="x-smartling-placeholder">

復号化するには:

  1. 暗号テキストを復号します。
  2. ステップ 1 が成功したら、protobuf をシリアル化解除します。

protobuf を改ざんから保護する

ほとんどの場合、認証のみを行うよりも、protobuf を暗号化することをおすすめします。

protobuf を改ざんから保護するには:

  1. protobuf をバイト配列にシリアル化します。
  2. シリアル化されたバイトに署名または認証します。使用: <ph type="x-smartling-placeholder">
  3. シリアル化されたバイトを署名(MAC)と一緒に保存します。

手順は次のとおりです。

  1. シリアル化された protobuf とその署名(MAC)を取得します。
  2. 署名(MAC)を検証します。
  3. protobuf を逆シリアル化します。

有効な署名または MAC は、データが正しく機能することを保証するものではありません。 です。データを解析する実装では、常に データが破損する可能性があります。

複数のデータアイテムを保護する

複数のデータ項目を保護するには、シリアル化方法を使用します。すべてのデータを追加する その protobuf に変換し、前述のように暗号化(または認証)します。

次のようにシリアル化することもできます。

serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN

最後に、結果のバイト配列を暗号化(認証)します。