Ví tiện ích mở rộng trình duyệt là một chương trình nhỏ sống bên trong trình duyệt web của bạn — Chrome, Firefox, Brave hoặc Edge — và giữ các khóa cho crypto của bạn. Bạn cài đặt nó giống như cài một trình chặn quảng cáo: từ cửa hàng tiện ích của trình duyệt, chỉ với một cú nhấp. Khi đã có ở đó, một biểu tượng ví nằm cạnh thanh địa chỉ, sẵn sàng mỗi khi bạn ghé thăm một trang web cần xử lý crypto.
Hướng dẫn này giải thích loại ví đó thực sự hoạt động ra sao, mô hình bảo mật của nó trông như thế nào, và những rủi ro thực sự nằm ở đâu. Nếu bạn hoàn toàn mới với ví, hãy bắt đầu với ví crypto là gì rồi đến phần so sánh rộng hơn giữa ví phần mềm và ví phần cứng — bài này tập trung cụ thể vào loại dựa trên trình duyệt.
"Tiện ích mở rộng" thực sự là gì
Một tiện ích mở rộng của trình duyệt là phần mềm bổ sung tính năng cho trình duyệt của bạn. Trình duyệt là chương trình chủ; tiện ích mở rộng là một vị khách mà chủ cho phép chạy bên trong nó. Các tiện ích mở rộng có thể đọc và thay đổi những trang web bạn ghé thăm, hiển thị cửa sổ bật lên của riêng chúng, và lưu dữ liệu trên máy tính của bạn. Chính sức mạnh đó làm cho ví tiện ích mở rộng tiện lợi — và cũng chính là điều bạn cần hiểu trước khi giao tiền cho nó.
Một ví tiện ích mở rộng dùng sức mạnh đó cho ba việc. Nó lưu các khóa của bạn trong bộ nhớ cục bộ của trình duyệt, thường được bảo vệ bằng một mật khẩu. Nó hiển thị cho bạn một cửa sổ bật lên khi bạn cần phê duyệt điều gì đó. Và nó trò chuyện với các trang web thông qua một kỹ thuật gọi là tiêm.
Tiêm hoạt động ra sao
Tiêm nghĩa là ví đặt một mẩu mã nhỏ vào mỗi trang web bạn mở. Hãy hình dung ví để lại một chiếc điện thoại trên bàn của mỗi trang web bạn ghé thăm. Khi một trang web muốn làm điều gì đó với crypto — kết nối với ví của bạn, hiển thị số dư của bạn, hoặc yêu cầu bạn gửi một giao dịch — nó nhấc chiếc điện thoại đó lên và đưa ra một yêu cầu.
Ví của bạn nhận yêu cầu và không hành động trong im lặng. Nó mở một cửa sổ bật lên và hỏi bạn. "Trang này muốn kết nối." "Trang này muốn bạn ký một giao dịch gửi 0,2 ETH." Không có gì dịch chuyển cho đến khi bạn nhấp phê duyệt. Trang web có thể hỏi; chỉ bạn mới có thể đồng ý. Bước phê duyệt đó là thói quen quan trọng nhất khi dùng bất kỳ ví trình duyệt nào: đọc cửa sổ bật lên trước khi nhấp.
Chính thiết kế này cho phép một ứng dụng phi tập trung — một dApp, tức một trang web chạy trên một blockchain — hoạt động trực tiếp từ một tab trình duyệt bình thường mà không cần phần mềm bổ sung. Nó thực sự hữu ích. Nhưng vì ví có thể được tiếp cận từ mỗi trang, mỗi trang cũng là một phần của bức tranh khi ta nói về bảo mật.
Bề mặt tấn công
"Bề mặt tấn công" là một thuật ngữ giản dị chỉ mọi nơi mà một thứ có thể bị tấn công. Cửa trước, cửa sau và một ô cửa sổ mở đều là phần của bề mặt tấn công của một ngôi nhà. Một ví trình duyệt có vài chỗ như vậy.
Trang web độc hại hoặc bị xâm phạm. Vì ví tiêm vào mỗi trang web, một trang web thù địch có thể gửi yêu cầu cho nó. Ví vẫn hỏi bạn trước, nên một trang độc hại không thể tự mình dịch chuyển tiền — nhưng nó có thể dựng nên một yêu cầu gây bối rối và hy vọng bạn phê duyệt mà không đọc.
dApp lừa đảo. Một trang lừa đảo là một bản giả được dựng để trông giống một trang thật. Một bản sao chép của một sàn giao dịch nổi tiếng hay một sàn NFT có thể yêu cầu bạn "xác minh ví của bạn" và trình ra một giao dịch thực ra rút cạn nó. Cửa sổ bật lên trung thực về điều nó sẽ làm; chính trang web đã nói dối về lý do.
Quyền hạn quá rộng. Khi bạn cài bất kỳ tiện ích mở rộng nào, trình duyệt liệt kê nó có thể truy cập những gì. Nhiều ví yêu cầu quyền đọc và thay đổi dữ liệu trên mọi trang web — chúng cần điều đó để tiêm khắp nơi. Cái giá là một ví có tầm với rộng là một món mồi lớn hơn nếu nó từng bị quay lại chống lại bạn.
Rủi ro chuỗi cung ứng. Đây là rủi ro tinh vi. Một cuộc tấn công chuỗi cung ứng nhắm không phải vào bạn, mà vào một thứ bạn phụ thuộc. Phần mềm hiện đại được lắp ghép từ hàng trăm khối xây dựng mã nguồn mở nhỏ hơn gọi là các phụ thuộc. Nếu kẻ tấn công luồn mã xấu vào một trong những khối đó — một phụ thuộc bị đầu độc — hoặc chiếm đoạt bản cập nhật đẩy một phiên bản mới của tiện ích mở rộng vào trình duyệt của bạn, mã độc đến qua một kênh mà bạn đã tin tưởng. Bạn đã cài một tiện ích mở rộng an toàn; một bản cập nhật về sau, hoặc một thành phần chôn bên trong nó, thì không.
Để có một cái nhìn sâu hơn và trung lập với nhà cung cấp về cách các tiện ích mở rộng trình duyệt được xây dựng và bảo vệ, tài liệu tiện ích mở rộng web của MDN của Mozilla là tài liệu tham chiếu có thẩm quyền, và dự án OWASP công bố hướng dẫn chung về các mối đe dọa web nêu trên.
SSP giảm rủi ro ra sao
Không điều nào trong số này có nghĩa là ví trình duyệt không an toàn để dùng. Nó có nghĩa là một ví được xây dựng tốt phải lập kế hoạch cho bề mặt tấn công thay vì giả vờ nó không tồn tại. SSP làm điều này theo hai cách cụ thể.
Hộp cát thời gian chạy LavaMoat. Một hộp cát (sandbox) là một không gian khép kín nơi một thứ có thể chạy mà không thể với tới phần còn lại của hệ thống — giống như một hộp cát thật giữ cát ở một chỗ. LavaMoat áp dụng ý tưởng đó cho hàng trăm phụ thuộc kia. Mỗi phụ thuộc chạy trong khoang niêm phong của riêng nó với quyền truy cập chỉ vào những gì nó thực sự cần. Vậy nên nếu một phụ thuộc bị đầu độc quả thật luồn được vào trong qua một cuộc tấn công chuỗi cung ứng, nó bị đóng khung: nó không thể lặng lẽ với qua ví để đọc các khóa của bạn, bởi các bức tường của khoang không cho phép. Cuộc tấn công bị kiềm chế thay vì trở thành thảm họa. Chúng tôi trình bày chi tiết điều này trong bài viết phòng tin tức về LavaMoat đến với SSP.
Thiết kế 2-trên-2. Đây là lớp bảo vệ cấu trúc lớn hơn. Hầu hết ví trình duyệt giữ toàn bộ khóa — phê duyệt một cửa sổ bật lên xấu và tiền biến mất. SSP chia việc ký giữa hai thiết bị: tiện ích mở rộng trình duyệt giữ một khóa, và ứng dụng SSP Key trên điện thoại của bạn giữ khóa thứ hai. Một giao dịch chỉ hợp lệ khi cả hai cùng ký. Tiện ích mở rộng một mình không thể dịch chuyển dù chỉ một đồng coin.
Điều đó thay đổi hoàn toàn phép tính. Ngay cả khi một trang độc hại lừa được tiện ích mở rộng, ngay cả khi một bản cập nhật bị xâm phạm với tới nó, kẻ tấn công chỉ kiểm soát một trong hai khóa cần thiết. Điện thoại của bạn — một thiết bị riêng biệt, với một màn hình riêng biệt hiển thị cho bạn chi tiết giao dịch — vẫn phải phê duyệt. Một cuộc tấn công vốn sẽ rút cạn một ví trình duyệt thông thường khựng lại trước một bức tường mà nó không thể vượt qua.
Vậy, ví trình duyệt có an toàn không?
Một ví trình duyệt đủ an toàn cho việc dùng hằng ngày khi hai điều là đúng: ví được xây dựng để kiềm chế những thất bại mô tả ở trên, và bạn coi cửa sổ phê duyệt như một quyết định thực sự thay vì một phản xạ. Chỉ cài tiện ích mở rộng từ các cửa hàng chính thức, giữ ví riêng trong một trình duyệt bạn tin tưởng, và chậm lại mỗi khi một trang yêu cầu bạn ký điều gì đó.
Điểm yếu lớn nhất của một ví trình duyệt — rằng nó sống trong một trình duyệt nhộn nhịp, nối mạng internet — là có thật. Câu trả lời của SSP không phải là phớt lờ nó, mà là giả định rằng trình duyệt có thể bị xâm phạm và làm cho điều đó có thể sống sót: LavaMoat kiềm chế một phụ thuộc xấu, và thiết kế 2-trên-2 nghĩa là tiện ích mở rộng một mình không bao giờ đủ để bạn mất tiền. Tiếp theo trong loạt bài này, ví crypto di động xem xét nửa kia của cặp đôi đó — chiếc điện thoại phải đồng ký.