من می خواهم از داده های ساخت یافته محافظت کنم

API های Tink حباب های باینری دلخواه را به عنوان ورودی می گیرند. این بدان معناست که اگر می‌خواهید داده‌های ساختاریافته را رمزگذاری کنید، مانند بافرهای پروتکل ، ابتدا باید داده‌ها را رمزگذاری کنید.

یک پروتوباف را رمزگذاری کنید

برای رمزگذاری:

  1. Protobuf را به یک آرایه بایت سریال کنید.
  2. بایت های سریال شده را رمزگذاری کنید، سپس متن رمزی حاصل را ذخیره یا ارسال کنید. استفاده کنید:

برای رمزگشایی:

  1. رمزگشایی متن رمز شده
  2. اگر مرحله 1 موفقیت آمیز بود، protobuf را deserialize کنید.

پروتوباف را از دستکاری محافظت کنید

در بیشتر موارد، رمزگذاری یک پروتوباف به احراز هویت به تنهایی ارجحیت دارد.

برای محافظت از پروتوباف از دستکاری:

  1. Protobuf را به یک آرایه بایت سریال کنید.
  2. بایت های سریال شده را امضا یا تأیید اعتبار کنید. استفاده کنید:
  3. بایت های سریال شده را همراه با امضا (یا MAC) ذخیره کنید.

به منظور بررسی:

  1. پروتوباف سریالی و امضای آن (یا MAC) را دریافت کنید.
  2. امضا (یا MAC) را تأیید کنید.
  3. پروتوباف را غیراصولی کنید.

توجه داشته باشید که امضای معتبر یا MAC تضمین نمی کند که داده ها به درستی قالب بندی شده اند. پیاده سازی که داده ها را تجزیه می کند باید همیشه انتظار داشته باشد که داده ها ممکن است خراب باشند.

محافظت از چندین آیتم داده

برای محافظت از چندین آیتم داده، از روش سریال سازی استفاده کنید. همه موارد داده را به پروتوباف اضافه کنید و همانطور که در بالا توضیح داده شد آن را رمزگذاری کنید (یا احراز هویت کنید).

همچنین می توانید به صورت زیر سریال کنید:

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

در نهایت، آرایه بایت به دست آمده را رمزگذاری کنید (یا احراز هویت کنید).