Tiếng Việt

Công cụ dành cho nhà phát triển · Bộ giải mã JWT

RFC 7519 và gia đình JOSE: JWT, JWS, JWE, JWK và JWA Đã giải thích

· Lý lịch

jwt mật mã tiêu chuẩn

Bản đồ kết nối JWT khiếu nại với phong bì JOSE đã được ký và mã hóa
Hình minh họa vector ToolAcre gốc

JWT là một thành viên trong nhóm thông số kỹ thuật từ nhóm làm việc IETF JOSE. Bài đăng này giải thích nội dung mà mỗi RFC định nghĩa, cách chúng khớp với nhau và tại sao JWT thường là JWS.

Năm từ viết tắt, một mã thông báo — tại sao tài liệu đề cập đến JWS và JWE khi bạn chỉ hỏi về JWT

Tài liệu về mã thông báo di chuyển giữa JWT, JWS, JWE, JWK và JWA vì chúng mô tả các lớp khác nhau của cùng một hệ sinh thái. Sự nhầm lẫn bắt đầu khi “JWT” được sử dụng làm tốc ký cho mọi mã thông báo có chữ ký gồm ba phần nhỏ gọn. Việc tách các xác nhận quyền sở hữu khỏi phong bì và biểu diễn khóa giúp việc triển khai dễ dàng hơn trong việc lập luận.

Bộ giải mã của ToolAcre được cố tình thu hẹp hơn họ. Nó xử lý đầu vào có hình JWS ba phần có hai phân đoạn được giải mã đầu tiên là đối tượng JSON. Nó phát hiện đầu vào nhỏ gọn được mã hóa gồm năm phần và dừng lại, vì việc đọc bản mã mà không có khóa người nhận sẽ không giải mã được điều tương tự.

Tài liệu JOSE xác định các định dạng liên quan; kho lưu trữ này không thiết lập dòng thời gian của nhóm làm việc của họ

Các thông số kỹ thuật liên quan đến từ công việc IETF JOSE nhưng các nguồn kho lưu trữ không thiết lập tiến trình tổ chức chi tiết theo yêu cầu của đề cương. Do đó, bài viết này tránh phát minh ra ngày tháng hoặc lịch sử quy trình và tập trung vào các mối quan hệ định dạng có thể quan sát được trong công cụ và kế hoạch.

Câu hỏi thực tế là lớp nào sở hữu mỗi quyết định. Tên xác nhận quyền sở hữu mô tả các câu lệnh ứng dụng, chữ ký bảo vệ tài liệu được mã hóa, mã hóa bảo vệ nội dung, JSON đối tượng chính thể hiện thông tin chính và các hoạt động tên định danh thuật toán. Không có từ viết tắt nào thay thế những từ viết tắt khác.

JWS (RFC 7515) — ký nội dung tùy ý và tuần tự hóa nhỏ gọn mà JWT sử dụng

JWS mô tả nội dung đã được ký hoặc được MAC bảo vệ. Dạng nhỏ gọn của nó có ba phân đoạn: tiêu đề được bảo vệ, tải trọng và chữ ký. Đầu vào ký tên sử dụng hai phân đoạn được mã hóa đầu tiên được nối bằng dấu chấm. JWT thường di chuyển trong phong bì này, có dạng ToolAcre tách ra và kiểm tra.

Tiêu đề và tải trọng có thể giải mã thành JSON, trong khi chữ ký là byte chứ không phải đối tượng thứ ba. ToolAcre báo cáo sự hiện diện và kích thước chữ ký nhưng luôn đánh dấu là nó chưa được xác minh. Do đó, nó có thể minh họa cấu trúc JWS mà không yêu cầu bất kỳ kết quả mật mã nào.

JWE (RFC 7516) — mã hóa nội dung, với tuần tự hóa gồm năm phần

JWE mô tả nội dung được mã hóa. Dạng thu gọn của nó có năm phân đoạn biểu thị tiêu đề được bảo vệ, vật liệu khóa được mã hóa, giá trị khởi tạo, văn bản mã hóa và thẻ xác thực. Do đó, bốn dấu chấm là manh mối cấu trúc chắc chắn cho thấy bộ giải mã JWT gồm ba phần đã nhận được một đường bao khác.

ToolAcre phát ra lỗi JWE cụ thể và giải thích rằng không thể đọc được nội dung nếu không có khóa giải mã. Nó không coi văn bản mã hóa là không đúng định dạng JSON hoặc cố gắng hiển thị các byte ngẫu nhiên. Mã hóa và ký tên cũng có thể được thực hiện nhưng quá trình xử lý lồng nhau nằm ngoài tuyến đường này.

JWK và JWA (RFC 7517 và 7518) — biểu thị các khóa là JSON và đặt tên cho các thuật toán

JWK cung cấp biểu diễn JSON cho thông tin khóa mật mã, trong khi JWA đặt tên cho số nhận dạng thuật toán và tham số liên quan được sử dụng trên JOSE. Sự tồn tại của chúng không có nghĩa là mã thông báo có thể chọn khóa hoặc thuật toán đáng tin cậy của riêng nó. Người xác minh phải hạn chế cả nhà phát hành và chính sách ứng dụng.

Ghi chú thuật toán ToolAcre chỉ giải thích một tập hợp hữu hạn các nhãn có trong nguồn và gọi bất kỳ thứ gì khác không được công nhận. Chúng là những mô tả, không phải là sự thực hiện. Bộ giải mã không nhập JWK cũng như không thực hiện thuật toán từ JWA để giữ cho ranh giới kiểm tra rõ ràng.

JWT (RFC 7519) — định dạng xác nhận quyền sở hữu dựa trên JWS hoặc JWE

JWT xác định đối tượng xác nhận quyền sở hữu và tên đã đăng ký như nhà phát hành, chủ đề, đối tượng và Ngày số. Những xác nhận quyền sở hữu đó có thể được thực hiện dưới dạng cấu trúc JOSE đã được ký hoặc mã hóa. Do đó, lớp tải trọng trả lời “những câu lệnh nào được biểu thị”, trong khi lớp vỏ trả lời cách các byte đó được bảo vệ hoặc ẩn giấu.

ToolAcre mong đợi tải trọng được giải mã là đối tượng JSON và liệt kê các xác nhận quyền sở hữu của nó. Một mảng, số hoặc null bị từ chối đối với công cụ này. Ngay cả một đối tượng có hình dạng rõ ràng vẫn không được tin cậy cho đến khi phong bì liên quan được xử lý bởi người xác minh hoặc người nhận đã định cấu hình.

Điều này không bao gồm những gì — các cấu hình sau này như RFC 8725 các phương pháp hay nhất và RFC 9068 mã thông báo truy cập, có các bài đăng riêng

Các tài liệu hồ sơ và phương pháp thực hành tốt nhất sau này có thể thu hẹp cách sử dụng các cơ chế chung này. Chúng xứng đáng được xử lý riêng vì định dạng cơ sở không cung cấp chính sách cho nhà phát hành, đối tượng hoặc loại mã thông báo dành riêng cho ứng dụng. Bài viết này không khẳng định rằng bộ giải mã thực hiện bất kỳ cấu hình nào như vậy.

Khi xem xét một hệ thống, hãy viết ra hồ sơ chính xác, phong bì dự kiến, các thuật toán được chấp nhận, nguồn chính và quy tắc xác nhận quyền sở hữu. Danh sách đó ngăn chặn việc quen thuộc với từ viết tắt biến thành giả định về tính tương thích hoặc bảo mật.

Rút ra: JWT là các xác nhận quyền sở hữu, JWS là phong bì — bộ giải mã ToolAcre JWT đọc biểu mẫu thu gọn JWS và hiển thị tiêu đề JWT và các xác nhận quyền sở hữu bên trong

JWT đặt tên cho lớp xác nhận quyền sở hữu; JWS và JWE cung cấp phong bì bảo vệ; JWK đại diện cho dữ liệu chính; JWA đặt tên cho các lựa chọn thuật toán. ToolAcre đọc hình dạng có chữ ký gồm ba phần chung và hiển thị tiêu đề cũng như xác nhận quyền sở hữu trong khi từ chối xác minh hoặc giải mã.

Sử dụng bản đồ đó để đặt câu hỏi tiếp theo. JSON có thể đọc được xác định lớp xác nhận quyền sở hữu. Ba hoặc năm phân đoạn xác định các họ có thể bao bọc. Độ tin cậy vẫn phụ thuộc vào chính sách và mật mã được cấu hình độc lập chứ không phụ thuộc vào bộ giải mã nhận ra từ viết tắt.