Cách ly lưu trữ
Tiện ích mở rộng:
Các ví dựa trên tiện ích mở rộng của trình duyệt như MetaMask sử dụng bộ nhớ cục bộ bị cô lập mà chỉ có tiện ích mở rộng mới có thể truy cập mà không có cách nào để trang web truy cập. Tiện ích mở rộng có thể đẩy dữ liệu đến trang web hoặc trang web có thể yêu cầu dữ liệu bằng cách thực hiện các yêu cầu chuyển tin nhắn. Khóa riêng được lưu trữ trong bộ lưu trữ cục bộ trong hộp cát và các yêu cầu được thực hiện từ trang web đến tiện ích mở rộng để ký tin nhắn. Phần mở rộng trả về tin nhắn đã ký vào trang web.
Dựa trên web:
Ví tiền điện tử dựa trên trình duyệt như Authereum , Portis , Torus và Fortmatic, sử dụng bộ nhớ cục bộ hộp cát cũng như thông qua iframe. Không giống như cookie, bộ nhớ cục bộ bị hạn chế nghiêm ngặt bởi tên miền, nghĩa là nếu một trang web đặt giá trị trong bộ nhớ cục bộ thì chỉ trang web đó mới có thể đọc giá trị; vì vậy alice.com không thể đọc bộ nhớ cục bộ của bob.com. Đối với các giá trị nhạy cảm của bộ lưu trữ cục bộ, chúng được đặt trong một tên miền phụ được kiểm soát, ví dụ x.wallet.com, vì không có trang web nào khác có thể đọc bộ nhớ cục bộ. Tên miền phụ này không chứa UI chỉ dành cho giao tiếp có khung. Nhà cung cấp web3 của những ví đó tải một iframe ẩn trên trang web, được sử dụng để liên lạc với tên miền phụ có chứa bộ lưu trữ trong hộp cát; vì vậy, ví dụ Alice trên dapp.com bằng Authereum, sdk Authereum kết nối với x.authereum.org bằng iframe và gửi postMessageyêu cầu iframe từ trang web để ký tin nhắn. Điều này hạn chế trang web đọc dữ liệu nhạy cảm như khóa riêng và chỉ cho phép trang web gửi yêu cầu ký giống như cách hoạt động của tiện ích mở rộng ví.
Không phải tất cả các ví dựa trên web đều có lưu trữ cục bộ được đóng hộp cát, vì vậy bạn nên tránh sử dụng những ví đó vì bất kỳ trang web nào cũng có thể đọc dữ liệu nhạy cảm được lưu trữ nhưng các ví được đề cập ở đây đều an toàn về vấn đề đó.
Bảo vệ chống lại các cuộc tấn công lừa đảo
Các cuộc tấn công lừa đảo xảy ra khi người dùng bị lừa nghĩ rằng họ đang sử dụng một trang web đã biết nhưng thay vào đó đang sử dụng một trang web độc hại giống với trang web hợp pháp. Authereum, Portis và Torus là các giải pháp đăng nhập dựa trên tên người dùng và mật khẩu để họ mở cửa sổ xác thực đăng nhập trong cửa sổ bật lên hoặc chuyển hướng mới. Điều này cho phép người dùng xác minh tên miền của trang web cho hợp pháp. Google auth cũng thực hiện mô hình này. Bên cạnh việc mở một cửa sổ mới khi đăng nhập để người dùng xác minh, một số nhà cung cấp ví dựa trên web cũng mở một cửa sổ mới khi ký tin nhắn và giao dịch để xác minh yêu cầu.
Việc kích hoạt nhấp chuột xảy ra khi một trang web được tải thông qua iframe trên trang web và trang web phủ lên một giao diện người dùng khác trên đầu trang web có khung với các sự kiện con trỏ được đặt thành không và sau đó lừa người dùng nhập thông tin hoặc nhấp vào nút trên giao diện người dùng được phủ nhưng họ thực sự đang nhấp vào một nút trên trang web có khung. Điều này rất nguy hiểm vì hành động trên trang web có khung có thể giống như gửi tiền vào ví của kẻ tấn công.
Để ngăn chặn trang web ví được tải trong iframe, tất cả các trang web ví phải làm là đặt tiêu đề HTTP X-Frame-Options: DENY
, đó là những gì Authereum và Portis đang làm để chúng an toàn trước các cuộc tấn công này.
Kịch bản nội dung đáng tin cậy
Thật dễ dàng để xác minh mã nguồn mở rộng trình duyệt bằng cách sử dụng các trình cắm nguồn của trình xem nguồn, nhưng để tránh tiện ích mở rộng tự động cập nhật bằng mã độc, người dùng có thể cài đặt tiện ích mở rộng theo cách thủ công để khóa mã thành phiên bản bằng cách lấy mã nguồn từ github nếu đó là mã nguồn mở hoặc từ việc tải xuống các tập lệnh nguồn.
Vì với ví dựa trên web, chủ sở hữu trang web ví kiểm soát tập lệnh nội dung nên bạn phải tin rằng tập lệnh nội dung quản lý dữ liệu khóa nhạy cảm sẽ không độc hại vì chủ sở hữu trang web ví hoặc kẻ tấn công có quyền truy cập vào trang web ví có thể tại bất kỳ điểm nào cập nhật mã nguồn trang web với mã xấu.
Để tin tưởng các tập lệnh nội dung, trang web ví có thể được lưu trữ trên IPFS vì địa chỉ web là hàm băm có nghĩa là bạn có thể tin rằng nó sẽ không thay đổi. Authereum là một ví đã cung cấp điều này bằng cách truy cập authereum.eth hoặc bằng cách giải quyết thuộc contenthash
tính của tên ENS của họ.
Tiện
Ví dựa trên web có thể mang theo được vì bạn có thể sử dụng cùng một ví trên mọi hệ điều hành, trình duyệt, máy tính để bàn hoặc thiết bị di động, trong khi với tiện ích mở rộng trình duyệt, bạn bị mắc kẹt với môi trường bạn đang sử dụng tiện ích mở rộng. Phần mở rộng rất bất tiện nhưng cung cấp nhiều đảm bảo cách ly lưu trữ hơn. Tuy nhiên, với các tài khoản dựa trên hợp đồng, nhiều tính năng bảo mật có thể được cung cấp ở phía ví.
Tài khoản dựa trên hợp đồng
MetaMask, Portis, Torus và Fortmatic đều là tài khoản thuộc sở hữu bên ngoài (EOA), có nghĩa là tiền được lưu trữ và chuyển đổi bằng một khóa duy nhất. Nếu kẻ tấn công giành được quyền truy cập vào khóa ký, thì họ cũng có quyền truy cập vào các khoản tiền được lưu trữ tại khóa đó.
Các tài khoản dựa trên hợp đồng (CBA), như Authereum, cung cấp nhiều bảo đảm bảo mật hơn vì mỗi hợp đồng tài khoản có thể có nhiều khóa để quản lý và mỗi khóa cũng có thể có quyền hạn chế đối với những hành động mà nó có thể làm.
Ưu điểm của tài khoản dựa trên hợp đồng:
- Tiền không được lưu trữ trên một khóa
- Bạn có thể chuyển qua các khóa quản lý
- Khôi phục tài khoản, trong trường hợp khóa quản lý của bạn bị đánh cắp hoặc bị mất
- Chuyển và rút hạn
- Kiểm soát truy cập cho các khóa, nghĩa là bạn có thể hạn chế phương thức nào mà khóa có thể gọi