Tài liệu mô tả các vấn đề liên quan đến việc triển khai hình thức kết nối API giữa Đối tác B2B2C (trong tài liệu này gọi là Đối tác) và Gotadi.
Tài liệu liên quan
Thông tin kết nối giữa giữ Gotadi và Đối tác.
Kịch bản kiểm kiểm thử.
Source code mẫu.
Thuật ngữ và viết tắt
URLUniform Resourceđược dùng để tham chiếu tới tài nguyên trên Internet.
SSLSecure Sockets Layerlà các giao thức mật mã được thiết kế để cung cấp truyền thông an toàn qua Internet.
HTTPSHypertext Transfer Protocol Securelà một giao thức kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet.
3DESTriple DES (3DES hay TDES)là một thuật toán khóa đối xứng, áp dụng thuật toán mã hóa DES ba lần cho mỗi khối dữ liệu.
RSARivest–Shamir–Adlemanlà một thuật toán mật mã hóa khóa công khai. Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa.
SHA-256Secure Hash Algorithmlà giải thuật dùng để chuyển một đoạn dữ liệu nhất định thành một đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao. SHA-256 (trả lại kết quả dài 256 bit)
Chữ ký điện tửThông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video…) nhằm mục đích xác định người chủ của dữ liệu đó
Yêu cầu bảo mật
1. Kênh truyền SSL/HTTPS
SSL/HTTPS được áp dụng để truyền nhận dữ liệu giữa hệ thống của đối tác và Gotadi. Mục đích sử dụng SSL/HTTPS là giúp dữ liệu trao đổi giữa đối tác và Gotadi được mã hóa, khó bị đánh cắp và giả mạo.
2. Header bảo mật và thống kê lưu lượng truyền
Tất cả các request từ phía đối tác gọi sang hệ thống của Gotadi phải chứa các Headers bên dưới để phục vụ các nghiệp vụ về bảo mật và thống kê số liệu của Gotadi:
Lưu ý
Giá trị <api_key> và <access_code> do Gotadi cung cấp cho Đối tác.
3. Mã hóa dữ liệu truyền và xác thực chữ ký điện tử
Request/response giữa Gotadi và Đối tác ở một số API quan trọng được yêu cầu mã hóa bằng thuật toán mã hóa bất đối xứng 3DES và kèm theo chữ ký điện tử để xác thực. Thuật toán mã hóa, giải mã sẽ được mô tả cụ thể trong tài liệu này.
Lưu ý
Các API có yêu cầu mã hóa dữ liệu và kèm theo chữ ký điện tử sẽ được ghi chú ở phần Yêu cầu bảo mật.
3.1 Mã hóa dữ liệu gửi đi
Input Original data, RSA PublicKey của bên nhận, RSA Private Key của bên gửi
Output Encrypted Key, Encrypted Data
Bước 1: Khởi tạo khóa ngẫu nhiên (Random key)
Hàm 3DES Key Generate được dùng để tạo random key dựa theo tiêu chí DESedeKeySpec (Độ dài key: 24 byte). Mỗi request/response sẽ được cấp một random key riêng biệt.