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
[dapp]: Trong deeplink
connect
ban đầu, ứng dụng nên bao gồm tham số truy vấndapp_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ớiconnect
. 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
.[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ồiconnect
.Backpack sẽ tạo một khóa bí mật bằng Diffie-Hellman với
dapp_encryption_public_key
và khóa riêng liên kết vớiwallet_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.
[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ớiwallet_encryption_public_key
và khóa riêng liên kết vớidapp_encryption_public_key
. Shared secret này sau đó sẽ được sử dụng để giải mã trườngdata
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ượngdata
JSON.
Deeplink Tiếp Theo
[dapp]: Đối với bất kỳ phương thức tiếp theo nào (như SignAndSendTransaction và SignMessage), ứ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ượngpayload
đã được mã hóa.[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=
.[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