Passkeys là một phương pháp xác thực an toàn và thân thiện với người dùng, cũng có thể được sử dụng để tạo và lưu trữ ví crypto một cách an toàn, nhờ việc sử dụng mật mã đường cong elip.
Trong bài viết này, chúng ta sẽ tìm hiểu cách hoạt động của passkeys, khám phá các rủi ro khi sử dụng passkeys cho ví crypto và đi sâu vào việc trừu tượng hóa tài khoản cho phép sử dụng passkeys khi kết hợp với hợp đồng thông minh.
Passkeys là một cách đơn giản và an toàn để người dùng đăng nhập vào ứng dụng mà không yêu cầu họ lưu trữ mật khẩu nhạy cảm hoặc nhớ bất kỳ chi tiết đăng nhập nào. Thay vào đó, người dùng tạo và truy cập tài khoản bằng các phương pháp quen thuộc như sinh trắc học như Face ID hoặc Touch ID.
Điều này cho phép người dùng dễ dàng đăng nhập và tương tác với các ứng dụng theo cách được ủy quyền mà không bao giờ lưu trữ thông tin nhận dạng nhạy cảm; mang đến trải nghiệm mượt mà và bảo mật bổ sung chống lại việc vi phạm dữ liệu và các vector tấn công thông thường như lừa đảo.
Trên hầu hết các thiết bị, như iPhone, passkeys được lưu trữ bên trong phần cứng chuyên dụng được gọi là Secure Enclave; môi trường cô lập và dành riêng để bảo vệ dữ liệu nhạy cảm ngay cả khi bộ xử lý chính bị xâm phạm.
Passkey sử dụng mật mã khóa công khaiđể tạo một cặp khóa công khai-sinh mật trên thiết bị của người dùng, gồm hai khóa:
Nhưví blockchainTrong đó, khóa riêng tư của một passkey có thể được sử dụng để ký các tin nhắn và giao dịch có thể được gửi để thực hiện các thay đổi trạng thái trên blockchain.
Để ký giao dịch với khóa riêng tư của passkey, giao dịch được gửi đến phần cứng an toàn, nơi nó được ký và chữ ký kết quả được xuất ra. Trong suốt quá trình này, chủ sở hữu hoặc nhà phát triển ứng dụng không bao giờ truy cập vào khóa riêng tư; họ chỉ nhận được các chữ ký được tạo ra.
Điều này cung cấp tính bảo mật nâng cao cho người dùng, vì khóa riêng tư thường không được tải vào bộ nhớ ứng dụng, giảm thiểu nguy cơ tiếp xúc với các cuộc tấn công tiềm ẩn. Ví dụ, trên iPhone, người dùng thậm chí không thể truy cập giá trị của passkey trong cài đặt của họ, vì khóa được tạo ra và lưu trữ trong phần cứng chuyên dụng không thể truy cập được từ giao diện.
Passkeys và ví tiền điện tử chia sẻ cùng công nghệ cơ bản của mật mã đường cong elliptic để tạo ra các cặp khóa công khai - khóa riêng. Nhà phát triển ứng dụng Blockchain có thể sử dụng passkeys để tạo ví an toàn trong ứng dụng cho người dùng với trải nghiệm người dùng mạnh mẽ.
Tuy nhiên, có một sự khác biệt quan trọng mà gây ra sự phức tạp khi sử dụng passkeys cho tài khoản blockchain; passkeys sử dụng một đường cong elip khác so với tài khoản blockchain.
Trong khi Apple, Android và WebAuthn đều sử dụng đường cong secp256r1 (còn được gọi là P-256) cho các passkeys, tài khoản blockchain sử dụng đường cong elip secp256k1.
Điều này có nghĩa là các giao dịch được ký bằng khóa riêng của một passkey không được hiểu (và do đó bị từ chối) bởi các blockchain như Ethereum hoặc Abstract. Sự mong đợi mặc định của các blockchain là giao dịch được ký bởi một cặp khóa được tạo trên đường cong secp256k1.
Vì ví thông thường (EOA) được tạo trên đường cong k1, do đó cần có ví hợp đồng thông minh, vì chúng có thể bao gồm logic tùy chỉnh xác minh các giao dịch được ký bằng khóa riêng được tạo bởi passkey trước khi ủy quyền thực hiện giao dịch.
Bitcoin là đồng tiền đầu tiên áp dụng đường cong secp256k1 cho các hoạt động mật mã, đây là tiêu chuẩn mà Ethereum và các chuỗi dựa trên EVM khác sử dụng biến thể k1 của đường cong cho tài khoản.
Phiên bản k1 của đường cong cũng thiếu một số tính năng như các hệ số bổ sung làm cho secp256r1 phức tạp hơn một chút, có nghĩa là secp256k1 hiệu quả tính toán hơn cho việc tạo khóa, tạo chữ ký và xác minh.
Mặc dù không tìm thấy lỗ hổng trực tiếp, nhưng cũng có các lý thuyết âm mưu rằng Bitcoin đã chọn sử dụng đường cong k1 thay vì đường cong r1 phổ biến hơn để tránh bất kỳ tiềm năng nào cho một lối vào mà có thể đã được giới thiệu một cách bí mật bởi các cơ quan chính phủ như NSA, do sự tham gia của họ trong việc phát triển các tiêu chuẩn mật mã được NIST chứng nhận.
Ví hợp đồng thông minh (như những ví được hỗ trợ bởi Gate.io)Abstraction tài khoản tự nhiên của Abstract) có thể chứa logic tùy ý để EVM thực thi; bao gồm cả xác minh chữ ký cho các tin nhắn mà nó nhận được được ký bởi một khóa riêng tư được tạo trên đường cong r1.
Thư viện mã nguồn mở như Trình xác minh P256 mã nguồn mở của Daimođã được xây dựng để xác minh chữ ký trên đường cong secp256r1 bên trong các hợp đồng thông minh được viết bằng Solidity.
Trên Ethereum, điều này có nghĩa là bạn có thể sử dụng các hợp đồng thông minh được xây dựng với Tiêu chuẩn trừu tượng tài khoản ERC-4337để xác minh chữ ký r1 của Hoạt động Người dùng bên trong validateUserOp
chức năng của ví hợp đồng thông minh.
On Abstract, trừu tượng tài khoản bản địacho phép ví hợp đồng thông minh gửi giao dịch với trường chữ ký được đặt thành tin nhắn được ký bởi khóa bí mật của passkey. Nếu tài khoản đã gửi giao dịch là một hợp đồng thông minh bao gồm logic để xác minh chữ ký r1 (trong validateTransaction
function), giao dịch được chấp nhận.
Ví hợp đồng thông minh sử dụng mã (dưới dạng một hợp đồng thông minh) để quản lý và kiểm soát chức năng của chúng, có nghĩa là chúng có thể có bất kỳ tính năng tùy chỉnh nào; bao gồm các mô-đun phục hồi, nhiều người ký duyệt, giới hạn chi tiêu, khóa phiên, và nhiều hơn nữa.
Ví hợp đồng thông minh cung cấp sự linh hoạt hơn so với các ví EOA (Tài khoản Sở Hữu Bên Ngoại) truyền thống và do có thể bao gồm mã EVM tùy ý, nên có khả năng xác minh chữ ký (tức là ủy quyền giao dịch) từ cặp khóa được tạo trên đường cong elip r1.
Khi xác minh chữ ký trên đường cong r1 không phải là nguyên thuỷ đối với các chuỗi khối như Ethereum hoặc Abstract, việc thực hiện xác minh này tốn nhiều tài nguyên tính toán; dẫn đến tăng chi phí gas đáng kể để xác minh chữ ký r1 so với chữ ký k1 (khoảng 100 lần đắt đỏ hơn).
RIP-7212 (Rollup Improvement Proposal) đề xuất việc thêm một hợp đồng thông minh đã được biên soạn sẵn vào Ethereum L2s để tăng hiệu suất xác minh chữ ký tiết kiệm gas hơn trên đường cong r1. Mặc dù điều này chưa được bao gồm trên Ethereum, các giải pháp mở rộng tương thích với EVM như Abstract đã triển khai và cung cấp giảm 100 lần gas cho việc xác minh chữ ký r1.
Mặt trái của ví mật khẩu là việc chúng được liên kết với một tên miền duy nhất. Ví dụ, nếu bạn tạo một ví trên some-domain.com, passkey của bạn (và do đó ví của bạn) chỉ có thể kết nối với tên miền cụ thể đó.
Đây là một lựa chọn thiết kế cố ý để tránh các cuộc tấn công lừa đảo, tuy nhiên, tạo ra một lỗ hổng lớn đối với người dùng coi trọng việc tự lưu trữ, vì ví của bạn được liên kết trực tiếp với một ứng dụng; có nghĩa là:
Vì những lý do này, ví passkey thích hợp nhất cho số tiền nhỏ hoặc để giới thiệu người dùng mới vào trải nghiệm tiền điện tử đầu tiên cho đến khi họ trở nên thông thạo hơn về ví tự lưu trữ.
Điều này phụ thuộc vào cách bạn chọn sao lưu passkey của mình. Có một số tùy chọn để sao lưu passkey của bạn vào Đám mây (như Keychain của Apple) để có thể truy cập trên các thiết bị khác ngay cả khi bạn mất đi thiết bị gốc của mình.
Khóa riêng tư không thể đọc trên thiết bị tại bất kỳ điểm nào vì nó nằm trong Secure Enclave. Tuy nhiên, nếu họ có quyền truy cập vào dữ liệu sinh trắc học của bạn, họ có thể thực hiện các hoạt động như thể họ có quyền kiểm soát mã thông báo/m ví của bạn.
Không. Dấu vân tay của bạn không được gửi đến bất cứ đâu; chúng ở lại trên thiết bị của bạn. Dữ liệu sinh trắc học của bạn chỉ đơn giản được sử dụng để 'mở khóa' passkey.
Passkeys là một phương pháp xác thực an toàn và thân thiện với người dùng, cũng có thể được sử dụng để tạo và lưu trữ ví crypto một cách an toàn, nhờ việc sử dụng mật mã đường cong elip.
Trong bài viết này, chúng ta sẽ tìm hiểu cách hoạt động của passkeys, khám phá các rủi ro khi sử dụng passkeys cho ví crypto và đi sâu vào việc trừu tượng hóa tài khoản cho phép sử dụng passkeys khi kết hợp với hợp đồng thông minh.
Passkeys là một cách đơn giản và an toàn để người dùng đăng nhập vào ứng dụng mà không yêu cầu họ lưu trữ mật khẩu nhạy cảm hoặc nhớ bất kỳ chi tiết đăng nhập nào. Thay vào đó, người dùng tạo và truy cập tài khoản bằng các phương pháp quen thuộc như sinh trắc học như Face ID hoặc Touch ID.
Điều này cho phép người dùng dễ dàng đăng nhập và tương tác với các ứng dụng theo cách được ủy quyền mà không bao giờ lưu trữ thông tin nhận dạng nhạy cảm; mang đến trải nghiệm mượt mà và bảo mật bổ sung chống lại việc vi phạm dữ liệu và các vector tấn công thông thường như lừa đảo.
Trên hầu hết các thiết bị, như iPhone, passkeys được lưu trữ bên trong phần cứng chuyên dụng được gọi là Secure Enclave; môi trường cô lập và dành riêng để bảo vệ dữ liệu nhạy cảm ngay cả khi bộ xử lý chính bị xâm phạm.
Passkey sử dụng mật mã khóa công khaiđể tạo một cặp khóa công khai-sinh mật trên thiết bị của người dùng, gồm hai khóa:
Nhưví blockchainTrong đó, khóa riêng tư của một passkey có thể được sử dụng để ký các tin nhắn và giao dịch có thể được gửi để thực hiện các thay đổi trạng thái trên blockchain.
Để ký giao dịch với khóa riêng tư của passkey, giao dịch được gửi đến phần cứng an toàn, nơi nó được ký và chữ ký kết quả được xuất ra. Trong suốt quá trình này, chủ sở hữu hoặc nhà phát triển ứng dụng không bao giờ truy cập vào khóa riêng tư; họ chỉ nhận được các chữ ký được tạo ra.
Điều này cung cấp tính bảo mật nâng cao cho người dùng, vì khóa riêng tư thường không được tải vào bộ nhớ ứng dụng, giảm thiểu nguy cơ tiếp xúc với các cuộc tấn công tiềm ẩn. Ví dụ, trên iPhone, người dùng thậm chí không thể truy cập giá trị của passkey trong cài đặt của họ, vì khóa được tạo ra và lưu trữ trong phần cứng chuyên dụng không thể truy cập được từ giao diện.
Passkeys và ví tiền điện tử chia sẻ cùng công nghệ cơ bản của mật mã đường cong elliptic để tạo ra các cặp khóa công khai - khóa riêng. Nhà phát triển ứng dụng Blockchain có thể sử dụng passkeys để tạo ví an toàn trong ứng dụng cho người dùng với trải nghiệm người dùng mạnh mẽ.
Tuy nhiên, có một sự khác biệt quan trọng mà gây ra sự phức tạp khi sử dụng passkeys cho tài khoản blockchain; passkeys sử dụng một đường cong elip khác so với tài khoản blockchain.
Trong khi Apple, Android và WebAuthn đều sử dụng đường cong secp256r1 (còn được gọi là P-256) cho các passkeys, tài khoản blockchain sử dụng đường cong elip secp256k1.
Điều này có nghĩa là các giao dịch được ký bằng khóa riêng của một passkey không được hiểu (và do đó bị từ chối) bởi các blockchain như Ethereum hoặc Abstract. Sự mong đợi mặc định của các blockchain là giao dịch được ký bởi một cặp khóa được tạo trên đường cong secp256k1.
Vì ví thông thường (EOA) được tạo trên đường cong k1, do đó cần có ví hợp đồng thông minh, vì chúng có thể bao gồm logic tùy chỉnh xác minh các giao dịch được ký bằng khóa riêng được tạo bởi passkey trước khi ủy quyền thực hiện giao dịch.
Bitcoin là đồng tiền đầu tiên áp dụng đường cong secp256k1 cho các hoạt động mật mã, đây là tiêu chuẩn mà Ethereum và các chuỗi dựa trên EVM khác sử dụng biến thể k1 của đường cong cho tài khoản.
Phiên bản k1 của đường cong cũng thiếu một số tính năng như các hệ số bổ sung làm cho secp256r1 phức tạp hơn một chút, có nghĩa là secp256k1 hiệu quả tính toán hơn cho việc tạo khóa, tạo chữ ký và xác minh.
Mặc dù không tìm thấy lỗ hổng trực tiếp, nhưng cũng có các lý thuyết âm mưu rằng Bitcoin đã chọn sử dụng đường cong k1 thay vì đường cong r1 phổ biến hơn để tránh bất kỳ tiềm năng nào cho một lối vào mà có thể đã được giới thiệu một cách bí mật bởi các cơ quan chính phủ như NSA, do sự tham gia của họ trong việc phát triển các tiêu chuẩn mật mã được NIST chứng nhận.
Ví hợp đồng thông minh (như những ví được hỗ trợ bởi Gate.io)Abstraction tài khoản tự nhiên của Abstract) có thể chứa logic tùy ý để EVM thực thi; bao gồm cả xác minh chữ ký cho các tin nhắn mà nó nhận được được ký bởi một khóa riêng tư được tạo trên đường cong r1.
Thư viện mã nguồn mở như Trình xác minh P256 mã nguồn mở của Daimođã được xây dựng để xác minh chữ ký trên đường cong secp256r1 bên trong các hợp đồng thông minh được viết bằng Solidity.
Trên Ethereum, điều này có nghĩa là bạn có thể sử dụng các hợp đồng thông minh được xây dựng với Tiêu chuẩn trừu tượng tài khoản ERC-4337để xác minh chữ ký r1 của Hoạt động Người dùng bên trong validateUserOp
chức năng của ví hợp đồng thông minh.
On Abstract, trừu tượng tài khoản bản địacho phép ví hợp đồng thông minh gửi giao dịch với trường chữ ký được đặt thành tin nhắn được ký bởi khóa bí mật của passkey. Nếu tài khoản đã gửi giao dịch là một hợp đồng thông minh bao gồm logic để xác minh chữ ký r1 (trong validateTransaction
function), giao dịch được chấp nhận.
Ví hợp đồng thông minh sử dụng mã (dưới dạng một hợp đồng thông minh) để quản lý và kiểm soát chức năng của chúng, có nghĩa là chúng có thể có bất kỳ tính năng tùy chỉnh nào; bao gồm các mô-đun phục hồi, nhiều người ký duyệt, giới hạn chi tiêu, khóa phiên, và nhiều hơn nữa.
Ví hợp đồng thông minh cung cấp sự linh hoạt hơn so với các ví EOA (Tài khoản Sở Hữu Bên Ngoại) truyền thống và do có thể bao gồm mã EVM tùy ý, nên có khả năng xác minh chữ ký (tức là ủy quyền giao dịch) từ cặp khóa được tạo trên đường cong elip r1.
Khi xác minh chữ ký trên đường cong r1 không phải là nguyên thuỷ đối với các chuỗi khối như Ethereum hoặc Abstract, việc thực hiện xác minh này tốn nhiều tài nguyên tính toán; dẫn đến tăng chi phí gas đáng kể để xác minh chữ ký r1 so với chữ ký k1 (khoảng 100 lần đắt đỏ hơn).
RIP-7212 (Rollup Improvement Proposal) đề xuất việc thêm một hợp đồng thông minh đã được biên soạn sẵn vào Ethereum L2s để tăng hiệu suất xác minh chữ ký tiết kiệm gas hơn trên đường cong r1. Mặc dù điều này chưa được bao gồm trên Ethereum, các giải pháp mở rộng tương thích với EVM như Abstract đã triển khai và cung cấp giảm 100 lần gas cho việc xác minh chữ ký r1.
Mặt trái của ví mật khẩu là việc chúng được liên kết với một tên miền duy nhất. Ví dụ, nếu bạn tạo một ví trên some-domain.com, passkey của bạn (và do đó ví của bạn) chỉ có thể kết nối với tên miền cụ thể đó.
Đây là một lựa chọn thiết kế cố ý để tránh các cuộc tấn công lừa đảo, tuy nhiên, tạo ra một lỗ hổng lớn đối với người dùng coi trọng việc tự lưu trữ, vì ví của bạn được liên kết trực tiếp với một ứng dụng; có nghĩa là:
Vì những lý do này, ví passkey thích hợp nhất cho số tiền nhỏ hoặc để giới thiệu người dùng mới vào trải nghiệm tiền điện tử đầu tiên cho đến khi họ trở nên thông thạo hơn về ví tự lưu trữ.
Điều này phụ thuộc vào cách bạn chọn sao lưu passkey của mình. Có một số tùy chọn để sao lưu passkey của bạn vào Đám mây (như Keychain của Apple) để có thể truy cập trên các thiết bị khác ngay cả khi bạn mất đi thiết bị gốc của mình.
Khóa riêng tư không thể đọc trên thiết bị tại bất kỳ điểm nào vì nó nằm trong Secure Enclave. Tuy nhiên, nếu họ có quyền truy cập vào dữ liệu sinh trắc học của bạn, họ có thể thực hiện các hoạt động như thể họ có quyền kiểm soát mã thông báo/m ví của bạn.
Không. Dấu vân tay của bạn không được gửi đến bất cứ đâu; chúng ở lại trên thiết bị của bạn. Dữ liệu sinh trắc học của bạn chỉ đơn giản được sử dụng để 'mở khóa' passkey.