Mã Hóa

Deeplinks được mã hóa bằng mã hóa đối xứng được tạo từ trao đổi khóa Diffie-Hellman key exchange. Trong khi các phiên deeplink sẽ được tạo ở dạng plaintext, một kênh mã hóa sẽ được tạo để ngăn chặn token phiên bị đánh cắp.

Mã Hóa & Giải Mã Quy Trình Làm Việc

Backpack deeplinks được mã hóa theo quy trình sau:

Connect

  1. [dapp]: Trong deeplink connect ban đầu, ứng dụng nên bao gồm tham số truy vấn dapp_encryption_public_key . Khuyến nghị tạo một cặp khóa x25519 mới cho mỗi phiên được khởi tạo với connect. Trong tất cả các phương thức, khóa công khai của cặp khóa này được gọi là dapp_encryption_public_key.

  2. [backpack]: Khi xử lý deeplink connect , Backpack cũng sẽ tạo một cặp khóa x25519 mới.

    • Backpack sẽ trả về khóa công khai này dưới dạng wallet_encryption_public_key trong phản hồi connect .

    • Backpack sẽ tạo một khóa bí mật bằng Diffie-Hellman với dapp_encryption_public_keykhóa riêng liên kết với wallet_encryption_public_key.

    • Backpack sẽ lưu trữ cục bộ một ánh xạ từ dapp_encryption_public_key đến các shared secrets để sử dụng cho việc giải mã trong các deeplink tiếp theo.

  3. [dapp]: Khi nhận được phản hồi connect , dapp nên tạo một shared secret bằng cách sử dụng Diffie-Hellman với wallet_encryption_public_keykhóa riêng liên kết với dapp_encryption_public_key. Shared secret này sau đó sẽ được sử dụng để giải mã trường data trong phản hồi. Nếu thực hiện đúng, khóa công khai của người dùng sẽ có sẵn để chia sẻ với dapp bên trong đối tượng data JSON.

  1. [dapp]: Đối với bất kỳ phương thức tiếp theo nào (như SignAndSendTransactionSignMessage), ứng dụng nên gửi một dapp_encryption_public_key ((khóa công khai phía ứng dụng trong shared secret) được sử dụng với Backpack cùng với một đối tượng payload đã được mã hóa.

  2. [backpack]: Khi được phê duyệt, Backpack sẽ mã hóa phản hồi đã ký dưới dạng đối tượng JSON với phần mã hóa được gửi dưới dạng tham số truy vấn data= .

  3. [dapp]: Khi nhận được phản hồi deeplink, ứng dụng nên giải mã đối tượng trong tham số truy vấn data= để xem chữ ký.

Tài Nguyên Mã Hóa

Để tìm hiểu thêm về mã hóa và giải mã, vui lòng tham khảo các thư viện sau:

JavaScript

iOS

Android

Last updated