Công cụ dành cho nhà phát triển · Bộ giải mã JWT
Gỡ lỗi 401: Những điều cần kiểm tra trong JWT đã được giải mã trước khi đổ lỗi cho API
· Tại sao nó quan trọng
jwt gỡ lỗi xác thực
Hầu hết các trường hợp từ chối mã thông báo đều bắt nguồn từ một số vấn đề về xác nhận quyền sở hữu mà bạn có thể phát hiện bằng cách đọc tải trọng. Bài đăng này cung cấp một danh sách kiểm tra, từ thời hạn sử dụng, đối tượng đến lỗi sao chép-dán, để kiểm tra chúng.
Nó đã hoạt động ngày hôm qua — 401 xuất hiện mà không cần thay đổi mã
401 xuất hiện mà không thay đổi mã khách hàng có thể bắt nguồn từ tuổi của mã thông báo, chính sách của nhà phát hành, xoay vòng khóa, lựa chọn đối tượng hoặc bản sao bị hỏng. Bắt đầu bằng bằng chứng thay vì cho rằng API không hoạt động. Giữ nguyên chi tiết phản hồi và số nhận dạng tương quan trước khi thao tác thông tin xác thực.
Chỉ giải mã một bản sao đã hết hạn, tổng hợp hoặc được kiểm soát thích hợp. ToolAcre có thể tiết lộ manh mối về cấu trúc và xác nhận quyền sở hữu, nhưng nó không thể xác định mọi sự từ chối của máy chủ vì nó không có khóa, chính sách nhà phát hành hoặc nhật ký API. Danh sách kiểm tra thu hẹp các câu hỏi; nó không thay thế phán quyết của máy chủ tài nguyên.
Trước tiên hãy sao chép lỗi — tiền tố 'Bearer', dòng mới ở cuối và mã thông báo bị cắt bớt
Kiểm tra giá trị được sao chép trước. ToolAcre cắt bớt khoảng trắng xung quanh và xóa một tiền tố `Bearer ` không phân biệt chữ hoa chữ thường, tiền tố này xử lý việc dán tiêu đề Ủy quyền chung. Sau đó, nó yêu cầu chính xác ba phân đoạn được phân tách bằng dấu chấm. Việc đếm sai sẽ dẫn đến việc cắt bớt, sai dạng mã thông báo hoặc dấu câu bổ sung trước khi bắt đầu phân tích xác nhận quyền sở hữu.
Tiêu đề trống hoặc tải trọng bị lỗi cụ thể. Base64url không hợp lệ, UTF-8 không hợp lệ và JSON không hợp lệ có các lỗi riêng biệt. Những khác biệt đó giúp xác định liệu việc vận chuyển có làm hỏng mã thông báo hay không. Chữ ký có thể không đúng định dạng nếu không chặn việc kiểm tra, nhưng cảnh báo đó có thể vẫn là lỗi xác minh yêu cầu xác nhận phía máy chủ.
exp và nbf: kiểm tra các giá trị dựa trên giây mà không biến màn hình thành phán quyết hợp lệ
Tiếp theo, hãy kiểm tra các giá trị số `exp` và `nbf`. ToolAcre nhân số giây với 1,000, hiển thị UTC và gắn nhãn thời gian hết hạn sớm hơn hoặc tương lai không trước đó so với đồng hồ của trình duyệt. Giá trị mười ba chữ số có thể tiết lộ mili giây được ghi ở vị trí dự kiến là giây.
Không quảng cáo các nhãn này để thực thi. Mã thông báo giả mạo có thể yêu cầu hết hạn trong tương lai và máy chủ có thể sử dụng chính sách đồng hồ hoặc thời gian chờ khác. Màn hình xác định giá trị số học so sánh với nhật ký đáng tin cậy; Việc xác minh mật mã phải thành công trước khi các yêu cầu có thể ảnh hưởng đến việc chấp nhận.
aud và iss — đây có phải là mã thông báo dành cho API này, từ nhà phát hành mà API này tin tưởng không?
`aud` phải xác định người nhận dự định theo chính sách của API, trong khi `iss` phải khớp với mối quan hệ nhà phát hành đáng tin cậy. ToolAcre liệt kê cả hai dưới dạng giá trị được giải mã và giải thích ý nghĩa đã đăng ký của chúng. Nó không so sánh chúng với cấu hình API hoặc liên kết chuỗi nhà phát hành với bộ khóa.
Nhà phát hành hợp lý URL và tên đối tượng có thể bịa đặt. Chỉ so sánh các giá trị được giải mã chính xác với kỳ vọng đã định cấu hình của máy chủ sau khi duy trì ranh giới xác minh chữ ký. Nếu một số dịch vụ chia sẻ cơ sở hạ tầng nhận dạng thì việc kiểm tra đối tượng đặc biệt quan trọng để ngăn chặn mã thông báo hợp lệ cho một dịch vụ được sử dụng ở một dịch vụ khác.
Loại mã thông báo có thể được đề xuất bởi tiêu đề và xác nhận quyền sở hữu, nhưng việc giải mã không thể xác thực phân loại đó
Mã thông báo ID và mã thông báo truy cập đều có thể trông giống như JWT gồm ba phần. Tiêu đề `typ`, đối tượng, phạm vi và các xác nhận quyền sở hữu theo hồ sơ cụ thể có thể gợi ý bạn nắm giữ thông tin nào. ToolAcre cảnh báo về một chuỗi không mong muốn `typ` nhưng không triển khai phân loại mã thông báo OpenID Connect hoặc OAuth.
Sử dụng tài liệu của nhà phát hành và luồng khách hàng để thiết lập loại mã thông báo dự kiến. Việc gửi mã thông báo ID tới API có thể không thành công ngay cả khi chữ ký của nó hợp lệ đối với nhà cung cấp danh tính. Giải mã hỗ trợ chẩn đoán; nó không thể xác thực nhãn loại hoặc cấp quyền API.
đứa trẻ sau khi xoay khóa - mã thông báo hợp lệ tham chiếu khóa mà máy chủ không còn có
Sau khi xoay khóa, tiêu đề `kid` có thể đề cập đến một khóa không có trong nhóm tin cậy hiện tại của máy chủ. Đọc mã định danh, sau đó kiểm tra bộ đệm và nhật ký bộ khóa trên trình xác minh. Không tìm nạp URL do tiêu đề cung cấp hoặc chấp nhận tài liệu khóa được nhúng như một giải pháp nhanh chóng.
Mã thông báo được ký chính xác vẫn có thể không thành công nếu người xác minh không thể xác định được khóa được phép, trong khi kẻ tấn công có thể ghi bất kỳ `kid` nào vào tiêu đề chưa được xác minh. Giá trị này là gợi ý tra cứu bị ràng buộc bởi cấu hình của nhà phát hành đáng tin cậy, không phải bằng chứng cho thấy một khóa cụ thể đáng tin cậy.
Ví dụ đã hoạt động — chạy mã thông báo bị từ chối thông qua danh sách kiểm tra trong bộ giải mã ToolAcre JWT
Đối với phân loại đã hoạt động, hãy lấy mã thông báo bị từ chối được kiểm soát, xác nhận ba phân đoạn, kiểm tra lỗi, sau đó ghi lại `exp`, `nbf`, `aud`, `iss`, `typ` và `kid` mà không chỉnh sửa. So sánh từng trường với mục tiêu API của yêu cầu và cấu hình đáng tin cậy của người xác minh. Luôn mở nhật ký máy chủ để biết danh mục lỗi thực tế.
Nếu tất cả các giá trị hiển thị trông như mong đợi, đừng kết luận rằng API sai. Lỗi chữ ký, tài liệu khóa sai, trạng thái bị thu hồi hoặc chính sách chưa được hiển thị vẫn có thể giải thích cho 401. `signatureVerified` của ToolAcre vẫn sai bất kể JSON xuất hiện gọn gàng đến mức nào.
Điều này không bao gồm những gì và điều rút ra - bộ giải mã không thể cho bạn biết chữ ký có hợp lệ hay không; danh sách kiểm tra tìm thấy các vấn đề về xác nhận quyền sở hữu và lỗi chữ ký cần có nhật ký máy chủ
Bộ giải mã không thể cho bạn biết chữ ký có hợp lệ hay không. Danh sách kiểm tra xác nhận quyền sở hữu của nó tìm thấy các vấn đề về sao chép và tải trọng có thể nhìn thấy mà không cần khóa; lỗi chữ ký và các quyết định chính sách có thẩm quyền cần bằng chứng máy chủ. Hãy coi việc giải mã như một quan sát chẩn đoán trong số nhiều quan sát khác.
Đường dẫn đáng tin cậy nhanh nhất được sắp xếp theo thứ tự: duy trì bối cảnh phản hồi, kiểm tra hình dạng mã thông báo, so sánh đơn vị thời gian, sau đó so sánh nhà phát hành, đối tượng, loại và mã định danh khóa với cấu hình đáng tin cậy. Ngừng tin tưởng cho đến khi người xác minh thực sự xác nhận mật mã và chính sách.