Các điểm chính

  • ED25519 là thuật toán chữ ký bất đối xứng cung cấp mức bảo mật mạnh mẽ và hiệu năng vượt trội.

  • Nó dựa vào độ khó của bài toán logarit rời rạc trên các đường cong elliptic và chống chịu được nhiều loại tấn công mật mã khác nhau.

  • So với các thuật toán truyền thống như RSA, ED25519 có tốc độ ký và xác minh nhanh hơn rất nhiều, phù hợp cho các ứng dụng thời gian thực và hệ thống blockchain.

  • Binance hỗ trợ đầy đủ thuật toán ED25519 để bảo mật API (API), đồng thời cung cấp các công cụ và thư viện giúp dễ dàng tạo khóa, ký yêu cầu và tích hợp việc xác thực giao dịch an toàn cũng như quản lý tài khoản.

الشريط الإعلاني لدورات أكاديمية Binance

Giới thiệu

Trong bài viết này, chúng ta sẽ giới thiệu ED25519 bằng cách cung cấp tổng quan về thuật toán và bối cảnh lịch sử của nó. Đồng thời, chúng ta cũng sẽ thảo luận những hạn chế của các thuật toán mật mã cũ hơn mà ED25519 khắc phục, giải thích vì sao nó trở nên phổ biến và được sử dụng rộng rãi.

Tiếp theo, chúng tôi sẽ cung cấp một số hướng dẫn về cách tạo khóa riêng và khóa công khai, giải thích những kiến thức cơ bản về cách ký và xác minh thông điệp, đồng thời hướng dẫn cách sử dụng các khóa này với API trên Binance.

Lý do tạo ED25519

Mặc dù các thuật toán bất đối xứng như RSA (được tạo vào năm 1977) và DSA (từ năm 1991) đã được sử dụng rộng rãi, chúng vẫn tồn tại một số hạn chế mà ED25519 hướng tới để khắc phục.

1. Bảo mật

Khả năng chống tấn công: Thuật toán ED25519 được thiết kế để chống lại nhiều nhóm tấn công mật mã, bao gồm tấn công kênh kề và tấn công theo thời gian vốn đã ảnh hưởng đến các thuật toán cũ hơn như RSA và DSA. Các thuật toán cũ dễ bị tấn công hơn vì kẻ tấn công có thể trích xuất thông tin bí mật thông qua việc quan sát các khác biệt về thời gian trong quá trình ký hoặc xác minh.

Giả định mật mã mạnh hơn: ED25519 dựa vào độ khó của bài toán logarit rời rạc trên các đường cong elliptic, được coi là an toàn hơn trước một số loại tấn công nhất định so với bài toán phân tích số thành các thừa số nguyên tố được dùng trong RSA.

2. Hiệu năng

Tốc độ ký: ED25519 được thiết kế nhanh hơn RSA-2048 trong việc tạo chữ ký. Lợi thế tốc độ lớn này khiến thuật toán rất phù hợp cho các ứng dụng cần tạo chữ ký nhanh, như giao dịch tần suất cao (HFT) và liên lạc tức thời.

Tốc độ xác minh: ED25519 cũng nhanh hơn RSA-2048 trong việc xác minh chữ ký. Tốc độ xác minh cao hơn là cần thiết cho các hệ thống cần xác minh một lượng lớn chữ ký nhanh chóng, như mạng blockchain và các nền tảng nhắn tin an toàn.

3. Chữ ký tất định

Tính nhất quán: ED25519 tạo ra cùng một chữ ký cho cùng một thông điệp mỗi lần, loại bỏ nhu cầu tạo số ngẫu nhiên an toàn trong quá trình ký. Tính nhất quán này giúp giảm rủi ro do lỗi triển khai và các điểm yếu liên quan đến việc ngẫu nhiên kém trong quá trình ký.

Đơn giản hóa việc triển khai: Tính tất định giúp đơn giản hóa quá trình triển khai, qua đó việc phát triển các hệ thống mã hóa an toàn và đáng tin cậy cũng dễ hơn.

4. Kích thước khóa nhỏ

Hiệu quả: ED25519 sử dụng kích thước khóa nhỏ hơn so với RSA, dẫn đến tính toán nhanh hơn và giảm yêu cầu lưu trữ. Hiệu quả này đặc biệt hữu ích cho các môi trường tài nguyên hạn chế, như hệ thống nhúng, thiết bị Internet of Things và các ứng dụng trên thiết bị di động.

Tiết kiệm băng thông: Kích thước khóa nhỏ hơn cũng giúp giảm mức sử dụng băng thông, là lợi thế cho các ứng dụng liên kết chặt chẽ và hệ thống có kênh truyền thông giới hạn.

Các trường hợp sử dụng

ED25519 được sử dụng rộng rãi trong liên lạc an toàn nhờ bảo mật mạnh và hiệu năng vượt trội. Khả năng tạo và xác minh chữ ký nhanh của nó khiến ED25519 trở nên lý tưởng cho các ứng dụng như nhắn tin được mã hóa, bảo mật email và truyền tệp an toàn.

Bằng cách đảm bảo tính xác thực của thông điệp và tệp, và ngăn chặn việc bị can thiệp, ED25519 giúp duy trì tính toàn vẹn và tính bí mật của thông tin nhạy cảm. Đồng thời, tính tất định của nó làm đơn giản hóa việc triển khai, từ đó giảm rủi ro lỗi và các điểm yếu liên quan đến ngẫu nhiên trong các thao tác mật mã.

Hệ thống blockchain và tiền mã hóa cũng là những trường hợp sử dụng chính của ED25519; hiệu quả của thuật toán trong việc ký và xác minh giao dịch là yếu tố quan trọng để duy trì tốc độ và tính an toàn của mạng blockchain.

Kích thước khóa nhỏ và hiệu năng nhanh của ED25519 đặc biệt hữu ích cho các môi trường tài nguyên hạn chế như thiết bị Internet of Things và hệ thống nhúng. Các thiết bị này thường cần các giao thức liên lạc an toàn có thể hoạt động hiệu quả với giới hạn về năng lực tính toán và lưu trữ. Bằng cách tận dụng ED25519, các nhà phát triển có thể đảm bảo giải pháp IoT của mình an toàn và hiệu năng cao, mở ra nhiều ứng dụng từ thiết bị nhà thông minh đến hệ thống tự động hóa công nghiệp.

Khóa ED25519 được tạo như thế nào?

Cách ưa thích để tạo khóa riêng và khóa công khai là sử dụng công cụ tạo khóa trên Binance, giúp quy trình trở nên dễ dàng vì bạn có thể hoàn tất việc tạo hoàn toàn qua một giao diện người dùng rõ ràng.

Bạn cũng có thể tạo khóa bằng openssl thông qua dòng lệnh.

Tạo khóa riêng:

Tạo khóa riêng kèm cụm mật khẩu:

Tạo khóa công khai từ khóa riêng:

Ví dụ: tạo và xác minh chữ ký ED25519

Cách ký các yêu cầu API trên Binance

  1. Thiết lập biến yêu cầu:

    1. Đối với API WebSocket, trước khi tạo chữ ký cần sắp xếp tất cả các biến theo thứ tự tăng dần, giúp đảm bảo tính nhất quán khi tạo chữ ký.

    2. Đối với API REST, bạn không cần sắp xếp các biến trước khi ký. Chữ ký được tạo dựa đúng trên các biến yêu cầu như cách chúng được cung cấp.

  2. Tạo chữ ký ED25519:

    1. Bạn có thể dùng ED25519 với khóa bí mật của API để ký các biến liên quan.

    2. Bạn có thể sử dụng khóa riêng của ED25519 bằng cách đăng ký khóa công khai trên Binance. Để xem các bước chi tiết, vui lòng tham khảo Cách tạo cặp khóa ED25519 để gửi yêu cầu API trên Binance.

  3. Nhúng chữ ký vào yêu cầu:

    1. Gắn chữ ký đã được tạo vào yêu cầu API dưới dạng biến chữ ký.

Ví dụ: Cách ký một yêu cầu bằng khóa riêng của ED25519 cho API trên Binance

Binance khuyến nghị sử dụng các bộ nối, nhờ đó việc tích hợp diễn ra mượt mà hơn và đảm nhiệm phần tạo chữ ký.

Ví dụ: Cách sử dụng các bộ nối của Binance

Tự động tạo chữ ký

Đối với các nhà phát triển muốn tự động hóa quy trình tạo chữ ký bằng nhiều ngôn ngữ lập trình khác nhau, Binance cung cấp một kho mã nguồn mở bao gồm ví dụ bằng Python, JavaScript, Java và các ngôn ngữ khác. Bạn có thể truy cập qua kho GitHub binance-signature-examples.

Với tài nguyên này, các nhà phát triển có thể nhanh chóng tích hợp cơ chế xác thực dựa trên ED25519 vào ứng dụng của mình với nỗ lực tối thiểu.

Đối với những người kiểm thử tích hợp API trên Binance trong môi trường tách biệt, bạn có thể tạo khóa ED25519 riêng bằng mạng testnet của Binance; điều này cho phép nhà phát triển trải nghiệm xác thực API mà không ảnh hưởng đến tài khoản giao dịch trực tiếp.

Câu hỏi thường gặp

ED25519 được dùng để làm gì?

ED25519 được dùng để tạo các chữ ký số nhằm xác minh tính xác thực và tính toàn vẹn của thông điệp hoặc giao dịch. Các ứng dụng phổ biến bao gồm xác thực SSH, chứng chỉ TLS, bảo mật API và ký giao dịch blockchain. Binance sử dụng nó như thuật toán ưu tiên để xác thực các yêu cầu API.

ED25519 có an toàn hơn RSA không?

Mỗi loại có các đặc tính bảo mật khác nhau; ED25519 cung cấp khả năng chống tấn công kênh kề và tấn công theo thời gian vốn đã ảnh hưởng đến các ứng dụng dùng RSA, đồng thời đạt mức an toàn tương đương với các khóa nhỏ hơn rất nhiều. Với đa số trường hợp sử dụng bảo mật API, ED25519 là lựa chọn mạnh hơn trong thực tiễn triển khai hiện nay.

ED25519 có an toàn trước điện toán lượng tử không?

Không. Tương tự như mọi thuật toán đường cong elliptic, ED25519 không chống lại đủ mạnh các cuộc tấn công do máy tính lượng tử mạnh gây ra. NIST đã công bố các tiêu chuẩn chữ ký hậu lượng tử vào năm 2024, bao gồm ML-DSA. Hiện tại, ED25519 vẫn an toàn và được sử dụng rộng rãi, nhưng các tổ chức có nhu cầu bảo mật dài hạn có thể bắt đầu lên kế hoạch chuyển sang các thuật toán hậu lượng tử.

Làm thế nào để sử dụng ED25519 với API trên Binance?

Tạo cặp khóa ED25519 bằng công cụ tạo khóa trên Binance hoặc một thư viện được hỗ trợ, rồi đăng ký khóa công khai của bạn trên tài khoản Binance. Với mỗi yêu cầu API, hãy ký chuỗi các biến bằng khóa riêng của bạn và đưa chữ ký kết quả vào yêu cầu. Các thư viện bộ nối của Binance có thể tự động hóa quy trình này trên nhiều ngôn ngữ lập trình.

Sự khác nhau giữa ED25519 và HMAC trong việc xác thực API trên Binance là gì?

HMAC sử dụng một khóa bí mật dùng chung để tạo mã xác thực thông điệp, nghĩa là cả hai bên cần biết cùng một khóa; do đó bí mật phải được lưu ở cả hai phía. Trong khi đó, thuật toán ED25519 là bất đối xứng: chỉ bạn giữ khóa riêng, còn Binance chỉ lưu khóa công khai của bạn. Điều này có nghĩa là nếu hệ thống của Binance bị xâm nhập thì cũng không lộ được khóa ký riêng của bạn. ED25519 là cách Binance khuyến nghị cho các hoạt động tích hợp API mới.

Những ý kiến kết luận

ED25519 đạt sự cân bằng tối ưu giữa an toàn và hiệu năng, khiến nó trở thành lựa chọn tuyệt vời cho nhu cầu mật mã hiện đại. Bản chất bất đối xứng của nó mang lại mức bảo mật mạnh hơn so với các thuật toán đối xứng như HMAC, có thể dễ bị một số loại tấn công hơn.

Về hiệu năng, ED25519 vượt trội cả ở việc tạo và xác minh chữ ký; nó nhanh hơn các thuật toán truyền thống như RSA, với tốc độ ký có thể nhanh hơn tới 30 lần. Hiệu quả này khiến nó phù hợp cho các ứng dụng cần ký nhanh và lặp lại nhiều lần, như liên lạc an toàn và giao dịch blockchain.

Trên Binance, ED25519 là thuật toán được ưu tiên nhờ mức độ an toàn và hiệu năng vượt trội, và nó được hỗ trợ đầy đủ trên tất cả các giao diện API của Binance, đảm bảo tích hợp liền mạch và tương thích trên nhiều nền tảng cũng như dịch vụ. Bằng cách sử dụng ED25519, Binance đảm bảo các hoạt động mật mã của mình an toàn và hiệu quả, tạo nền tảng đáng tin cậy cho các dịch vụ tài chính và giao dịch của mình.

Sau khi tìm hiểu thuật toán ED25519 và cách tạo khóa cũng như chữ ký, bạn có thể sử dụng nó để gửi yêu cầu thị trường trên Binance một cách an toàn.
Khi gửi yêu cầu thị trường, khóa riêng được dùng để ký yêu cầu, chứng minh rằng yêu cầu đó đến từ nguồn hợp pháp.

Các bài viết liên quan

Tuyên bố miễn trừ trách nhiệm: Nội dung này được cung cấp cho bạn theo nguyên tắc "như hiện có" chỉ nhằm mục đích cung cấp thông tin chung và mục đích giảng dạy, không đưa ra bất kỳ tuyên bố hay bảo đảm nào dưới bất kỳ hình thức nào. Không nên diễn giải nội dung này như lời khuyên tài chính hoặc pháp lý hoặc bất kỳ lời khuyên chuyên môn nào khác, đồng thời cũng không phải là khuyến nghị mua bất kỳ sản phẩm hoặc dịch vụ cụ thể nào. Bạn cần tham khảo ý kiến từ các cố vấn chuyên môn phù hợp. Nếu bài viết do bên thứ ba cung cấp, vui lòng lưu ý rằng các quan điểm nêu ra thuộc về bên thứ ba đó và không nhất thiết phản ánh quan điểm của học viện Binance. Giá của tài sản kỹ thuật số luôn biến động; giá trị khoản đầu tư của bạn có thể giảm hoặc tăng và bạn có thể không thu hồi được toàn bộ số tiền đã đầu tư. Bạn là người duy nhất chịu trách nhiệm cho các quyết định đầu tư của mình, và Học viện Binance không chịu trách nhiệm cho bất kỳ khoản lỗ nào bạn có thể gánh chịu. Để biết thêm thông tin, vui lòng xem Điều khoản sử dụng, Cảnh báo rủi roĐiều khoản học viện Binance.