Chữ ký số
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Kiểu dữ liệu Chữ ký số cho phép bạn xác minh rằng không ai can thiệp vào dữ liệu của bạn. Phương thức này đảm bảo tính xác thực và tính toàn vẹn, nhưng không đảm bảo tính bảo mật của dữ liệu đã ký. Phương thức này là bất đối xứng, nghĩa là sử dụng một cặp khoá (khoá công khai và khoá riêng tư).
Kiểu gốc Chữ ký số có các thuộc tính sau:
- Tính xác thực: Không thể tạo chữ ký mà
PublicKeyVerify.Verify(signature, message)
xác thực, trừ phi bạn có khoá riêng tư.
- Bất đối xứng: Quá trình tạo chữ ký sử dụng một khoá khác với khoá xác minh chữ ký. Nhờ đó, bạn có thể phân phối khoá công khai để xác minh chữ ký cho các bên không thể tự tạo chữ ký.
Nếu không cần tính không đối xứng, hãy cân nhắc sử dụng nguyên hàm MAC đơn giản và hiệu quả hơn.
Chức năng của chữ ký số được biểu thị trong Tink dưới dạng một cặp nguyên hàm:
- PublicKeySign để ký dữ liệu
- PublicKeyVerify để xác minh chữ ký
Chọn loại khoá
Bạn nên sử dụng ECDSA_P256 cho hầu hết các trường hợp sử dụng, nhưng có nhiều tuỳ chọn. Nói chung, những điều sau đây là đúng:
- ECDSA_P256 là tuỳ chọn được sử dụng rộng rãi nhất và là tuỳ chọn mặc định hợp lý. Tuy nhiên, xin lưu ý rằng chữ ký ECDSA là có thể bị thay đổi.
- ED25519 tạo chữ ký xác định và mang lại hiệu suất tốt hơn so với ECDSA_P256.
- RSA_SSA_PKCS1_3072_SHA256_F4 tạo chữ ký xác định và mang lại hiệu suất xác minh tốt nhất (nhưng việc ký chậm hơn nhiều so với ECDSA_P256 hoặc ED25519).
Cam kết bảo mật tối thiểu
- Dữ liệu cần ký có thể có độ dài tuỳ ý
- Cấp độ bảo mật 128 bit chống lại các cuộc tấn công thông báo được chọn thích ứng cho các giao thức dựa trên đường cong elip
- Mức bảo mật 112 bit chống lại các cuộc tấn công thông báo được chọn thích ứng cho các giao thức dựa trên RSA (cho phép khoá 2048 bit)
Tính dễ uốn
Một giao thức chữ ký có thể bị làm giả nếu kẻ tấn công có thể tạo một chữ ký hợp lệ khác cho một thông báo đã được ký. Mặc dù đây không phải là vấn đề đối với hầu hết các trường hợp, nhưng trong một số trường hợp, lập trình viên ngầm giả định rằng chữ ký hợp lệ là duy nhất và điều này có thể dẫn đến kết quả không mong muốn.
Trường hợp sử dụng mẫu
Xem bài viết Tôi muốn ký dữ liệu bằng chữ ký số.
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-03-04 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-03-04 UTC."],[[["Digital signatures ensure data integrity and authenticity by verifying that data hasn't been tampered with."],["They use a pair of keys (public and private) for asymmetric signing and verification, allowing for secure distribution of the public key."],["Tink provides two primitives for digital signatures: `PublicKeySign` for signing and `PublicKeyVerify` for verifying."],["ECDSA_P256 is generally recommended, with ED25519 offering better performance and RSA_SSA_PKCS1_3072_SHA256_F4 providing the fastest verification."],["Digital signatures in Tink guarantee a minimum of 112-bit security and support data of any length."]]],["Digital signatures ensure data authenticity and integrity using asymmetric key pairs (public and private). `PublicKeySign` signs data, while `PublicKeyVerify` checks signatures. Key options include the widely used ECDSA_P256, faster ED25519, and high-verification-performance RSA_SSA_PKCS1_3072_SHA256_F4. Signatures offer 128-bit security (elliptic curves) or 112-bit security (RSA). ECDSA signatures are malleable, allowing attackers to forge valid signatures. If asymmetry is not needed consider using MAC.\n"]]