Digital signature, certificates và trust
Signer dùng private key tạo signature; verifier dùng public key kiểm authenticity + integrity. RSA-PSS được ưu tiên cho RSA signature mới; ECDSA và EdDSA là lựa chọn khác.
Signature scope
- Ký canonical bytes, không ký object có serialization mơ hồ.
- Bind algorithm/version/key ID/audience/timestamp/context để chống cross-protocol replay.
- Signature không mã hóa nội dung và không tự chứng minh authorization.
- Certificate liên kết public key với identity qua CA; validation gồm hostname, validity, constraints, EKU và revocation policy.
Signature signer = Signature.getInstance("RSASSA-PSS"); signer.setParameter(new PSSParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, 32, 1)); signer.initSign(privateKey); signer.update(message); byte[] signature = signer.sign();