Yapılandırılmış verileri korumak istiyorum

Tink API'leri, rastgele ikili blob'ları giriş olarak alır. Bu nedenle, harika bir reklamı yapılandırılmış verileri şifrelemek için protokol arabelleklerinde ise önce verileri kodlayın.

Protobuf'u şifreleme

Şifrelemek için:

  1. Protobuf'u bayt dizisi olarak serileştirin.
  2. Serileştirilmiş baytları şifreleyin, ardından ortaya çıkan şifrelenmiş metni depolayın veya gönderin. Şunu kullan:

Şifresini çözmek için:

  1. Şifreli metnin şifresini çözün.
  2. 1. Adım başarılı olduysa protobuf'u seri durumdan çıkarın.

Protobufı izinsiz olarak değiştirilmesine karşı koruyun

Çoğu durumda, tek başına kimlik doğrulaması yerine protobuf'un şifrelenmesi tercih edilir.

Protobuf izinsiz değişiklik yapmaya karşı korumak için:

  1. Protobuf'u bayt dizisi olarak serileştirin.
  2. Serileştirilmiş baytları imzalayın veya kimlik doğrulamasını yapın. Şunu kullan:
  3. Serileştirilmiş baytları imzayla (veya MAC) birlikte depolayın.

Doğrulamak için:

  1. Serileştirilmiş protobuf'u ve imzasını (veya MAC'sini) alın.
  2. İmzayı (veya MAC) doğrulayın.
  3. Protobufun serisini çıkartın.

Geçerli bir imza veya MAC, verilerin doğru bir şekilde sağlanacağını garanti etmez. biçimlendirmeniz gerekir. Verileri ayrıştıran bir uygulama, verileri bozuk olabilir.

Birden fazla veri öğesini koruma

Birden fazla veri öğesini korumak için serileştirme yöntemi kullanın. Tüm verileri toplama öğeleri protobuf'a aktarmalı ve yukarıda açıklandığı şekilde şifrelemelidir (veya kimliklerini doğrulamalıdır).

Aşağıdaki şekilde serileştirme de yapabilirsiniz:

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

Son olarak, elde edilen bayt dizisini şifreleyin (veya kimliğini doğrulayın).