Xác minh chữ ký JWT

Xác minh chữ ký JSON Web Token bằng secret HMAC, khóa công khai PEM, chứng chỉ X.509, JWK hoặc JWKS, đồng thời kiểm tra exp, nbf, issuer và audience cục bộ.

Thuật toán: HS256

Dùng số byte ngẫu nhiên ít nhất bằng kích thước hash (32 byte cho HS256). Mật khẩu ngắn có thể bị dò vét cạn ngoại tuyến.

Việc xác minh chạy cục bộ bằng thư viện jose. Token chỉ được coi là "đã xác minh" khi bạn cung cấp khóa – không có khóa thì không công cụ nào chứng minh được JWT là thật.

Xác minh JWT là gì?

Công cụ này xác minh một JSON Web Token đã được ký bằng khóa bạn cung cấp và chưa bị sửa đổi, đồng thời các claim thời gian của nó còn hợp lệ ở thời điểm hiện tại. Nó chấp nhận secret dùng chung cho HS256/384/512, hoặc khóa công khai PEM, chứng chỉ X.509, JWK hay JWKS cho token RS, PS, ES và EdDSA, kèm tùy chọn kiểm tra issuer, audience và dung sai đồng hồ.

Cách sử dụng Xác minh JWT

  1. Dán token; thuật toán trong header của nó sẽ được hiển thị.
  2. Nhập secret (HS*) hoặc khóa công khai, chứng chỉ, JWK hay JWKS.
  3. Nếu cần, đặt dung sai đồng hồ, bên phát hành mong đợi và đối tượng nhận mong đợi, hoặc tích "Chỉ kiểm tra chữ ký".
  4. Nhấn Xác minh và đọc kết quả; nếu thành công, payload và các claim thời gian sẽ được hiển thị.

Ví dụ

Đầu vào
The jwt.io sample token (HS256) with secret your-256-bit-secret
Đầu ra
✓ Signature verified with HS256 and the time claims are valid.

Với secret wrong-secret, kết quả là: xác minh chữ ký thất bại.

Khi nào nên dùng Xác minh JWT

Dùng công cụ để xác nhận token được phát hành bởi đúng máy chủ mong đợi, gỡ lỗi "invalid signature" hoặc kiểm thử việc xoay vòng khóa. Không có khóa đúng thì không công cụ nào xác minh được JWT. Tránh dán secret production vào bất kỳ trang web nào; hãy ưu tiên khóa công khai, vốn có thể chia sẻ an toàn.

Xác minh JWT hoạt động như thế nào

Việc xác minh chạy cục bộ bằng thư viện jose và Web Crypto. Chỉ thuật toán ghi trong header của token được cho phép, và alg "none" luôn bị từ chối. Token HMAC được xác minh bằng các byte UTF-8 (hoặc đã giải mã Base64) của secret; token bất đối xứng được xác minh bằng SPKI, X.509, JWK đã nhập hoặc một JWKS cục bộ (khớp theo kid). Sau chữ ký, exp và nbf được so với đồng hồ thiết bị (cộng dung sai), và iss/aud được so sánh nếu bạn đã nhập. Mỗi lỗi đều được báo kèm lý do cụ thể.

Các Trường Hợp Sử Dụng Phổ Biến

  • Kiểm tra token được ký bằng khóa hiện tại hay khóa cũ sau khi xoay vòng.
  • Gỡ lỗi vì sao gateway từ chối token (hết hạn, sai audience hay chữ ký sai).
  • Xác minh ID token OpenID Connect bằng JWKS của nhà cung cấp.
  • Xác nhận token không bị can thiệp.

Lưu Ý Bảo Mật

Việc xác minh diễn ra trong trình duyệt của bạn; khóa và token không bị tải lên. Khóa công khai có thể chia sẻ an toàn, secret thì không.

Câu Hỏi Thường Gặp

Có xác minh được token mà không cần khóa không?

Không. Chữ ký chỉ kiểm tra được bằng secret (HMAC) hoặc khóa công khai của bên phát hành. Giải mã không có khóa chẳng chứng minh được gì.

Lấy khóa công khai ở đâu?

Các nhà cung cấp OpenID Connect công bố JWKS tại jwks_uri được liệt kê trong /.well-known/openid-configuration. Hãy dán JSON đó vào đây.

Vì sao chữ ký đúng mà vẫn thất bại?

Token có thể đã hết hạn, chưa có hiệu lực (nbf), hoặc có issuer hay audience khác với giá trị bạn nhập. Thông báo sẽ cho biết bước kiểm tra nào thất bại.

Bước tiếp theo nên làm

Khám phá thêm danh mục