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

Tink API'leri giriş olarak rastgele ikili blob'ları alır. Bu, protokol arabellekleri gibi yapılandırılmış verileri şifrelemek isterseniz önce verileri kodlamanız gerektiği anlamına gelir.

Protokol arabelleği şifreleme

Şifrelemek için:

  1. Proto arabelleği bir bayt dizisine serileştirin.
  2. Serileştirilmiş baytları şifreleyin, ardından elde edilen şifrelenmiş metni depolayın veya gönderin. Aşağıdakileri kullanın:

Şifresini çözmek için:

  1. Şifrelenmiş metnin şifresini çözün.
  2. 1. Adım başarılı olduysa proto arabelleği seri durumdan çıkarın.

Proto tamponları izinsiz değişikliklere karşı koruma

Çoğu durumda, tek başına kimlik doğrulama yerine bir proto tamf'ın şifrelenmesi tercih edilir.

Proto arabelleğin izinsiz değişikliğe karşı korunması için:

  1. Proto arabelleği bir bayt dizisine serileştirin.
  2. Serileştirilmiş baytları imzalayın veya kimlik doğrulamasını yapın. Aşağıdakileri kullanın:
  3. Serileştirilmiş baytları imza (veya MAC) ile birlikte depolayın.

Doğrulamak için:

  1. Serileştirilmiş protokol arabelleği ve imzasını (veya MAC) alın.
  2. İmzayı (veya MAC) doğrulayın.
  3. Proto arabelleği seri durumdan çıkarın.

Geçerli bir imza veya MAC'in, verilerin doğru biçimlendirildiğini garanti etmediğini unutmayın. Verileri ayrıştıran bir uygulama, her zaman verilerin bozuk olabileceğini düşünmelidir.

Birden fazla veri öğesini koruma

Birden fazla veri öğesini korumak için serileştirme yöntemi kullanın. Tüm veri öğelerini bir protobuf'a ekleyin ve yukarıda açıklandığı gibi şifreleyin (veya kimliğini doğrulayın).

Ayrıca, aşağıdaki şekilde serileştirebilirsiniz:

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).