X-Hub-Signature-256 với tiền tố sha256=, kèm header X-Hub-Timestamp mang thời điểm gửi.
Cách tạo chữ ký
Chuỗi được ký là timestamp + dấu chấm + phần thân nguyên bản:- Ký trên đúng chuỗi byte đã gửi đi. Chuyển JSON thành đối tượng rồi tuần tự hóa lại, kể cả khi chỉ đổi thứ tự khóa, sẽ cho ra chữ ký khác.
- Timestamp nằm trong chữ ký, nên kẻ bắt được gói tin không thể sửa nó. Gửi thời gian Unix hiện tại tính bằng giây.
- Timestamp lệch quá 5 phút so với giờ máy chủ, theo cả hai hướng, đều bị từ chối. Hãy đồng bộ đồng hồ máy chủ bằng NTP.
- Cơ chế không có ngoại lệ. Không có chế độ bỏ qua chữ ký, và không có miễn trừ cho kết nối chưa tạo khóa.
Ví dụ tạo chữ ký
Xác thực chữ ký chúng tôi gửi tới
Dùng lại đúng hàmsign ở trên, rồi so sánh bằng hàm so sánh thời gian hằng số để không rò rỉ thông tin qua thời gian xử lý:
Node.js (Express)