Interfejsy API Tink przyjmują jako dane wejściowe dowolne binarne bloby. Oznacza to, że jeśli chcesz szyfrować uporządkowane dane, bufory protokołów, musisz zakodować dane w pierwszej kolejności.
Szyfruj bufor protokołu
Aby zaszyfrować:
- Zserializuj protobuf do tablicy bajtów.
- Zaszyfruj zserializowane bajty, a następnie zapisz lub wyślij wynikowy tekst szyfrowany. Użyj:
Aby odszyfrować:
- Odszyfruj tekst szyfrowany.
- Jeśli krok 1 zakończył się powodzeniem, przeprowadź deserializację protokołu.
Ochrona protokołu przed modyfikacją
W większości przypadków lepsze jest szyfrowanie protokołu zamiast samego uwierzytelniania.
Aby chronić protobuf przed ingerencją:
- Zserializuj protobuf do tablicy bajtów.
- Podpisz lub uwierzytelnij serializowane bajty. Użyj:
- Przechowuj serializowane bajty razem z podpisem (lub MAC).
Weryfikacja:
- Pobierz zserializowany protokół i jego podpis (lub MAC).
- Sprawdź podpis (lub MAC).
- Deserializuj protobuf.
Pamiętaj, że prawidłowy podpis lub adres MAC nie gwarantuje poprawności danych. . Implementacja analizująca dane powinna zawsze oczekiwać, że mogą ulec uszkodzeniu.
Ochrona wielu elementów danych
Aby chronić wiele elementów danych, użyj metody serializacji. Dodaj wszystkie dane do protokołu i zaszyfrować (lub uwierzytelnić) go w sposób opisany powyżej.
Możesz też serializować treści w ten sposób:
serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN
Na koniec zaszyfruj (lub uwierzytelnij) wynikową tablicę bajtów.