ฉันต้องการปกป้องข้อมูลที่มีโครงสร้าง

Tink API จะนำ BLOB ไบนารีที่กำหนดเองเป็นอินพุต ซึ่งหมายความว่าหากคุณต้องการ เข้ารหัสข้อมูลที่มีโครงสร้าง เช่น บัฟเฟอร์โปรโตคอล คุณต้อง เข้ารหัสข้อมูลก่อน

เข้ารหัส Protobuf

วิธีเข้ารหัส

  1. ทำให้ Protobuf เป็นอนุกรมให้เป็นอาร์เรย์ไบต์
  2. เข้ารหัสไบต์แบบอนุกรม แล้วจัดเก็บหรือส่งข้อความเข้ารหัสที่ได้ ใช้:

วิธีถอดรหัส

  1. ถอดรหัสข้อความเข้ารหัส
  2. หากขั้นตอนที่ 1 สำเร็จ ให้ดีซีเรียลไลซ์ Protobuf

ปกป้อง Protobuf จากการงัดแงะ

ในกรณีส่วนใหญ่ การเข้ารหัส produf เหมาะสำหรับการตรวจสอบสิทธิ์เพียงอย่างเดียว

วิธีปกป้อง Protobuf จากการงัดแงะ

  1. ทำให้ Protobuf เป็นอนุกรมให้เป็นอาร์เรย์ไบต์
  2. ลงชื่อหรือตรวจสอบสิทธิ์ไบต์แบบอนุกรม ใช้:
  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

สุดท้าย เข้ารหัส (หรือตรวจสอบสิทธิ์) ไบต์อาร์เรย์ผลลัพธ์