Yêu cầu bảo mật

API Key

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:

  • apikey: <api_key>

  • x-ibe-req-name: <access_code>

Lưu ý

Giá trị <api_key> và <access_code> do Gotadi cung cấp cho Đối tác.


Chữ ký điện tử (Signature)

Một số API quan trọng được yêu cầu đính kèm chữ ký điện tử vào request và response để xác thực.

Khởi tạo chữ ký chữ ký điện tử

Bên gửi áp dụng thuật toán RSA-SHA256 kết hợp với Private key của chính mình để ký chữ ký điện tử trên signature data.

Lưu ý

Schema để thành lập signature data sẽ được mô tả cụ thể ở từng API.

Java example code

public static String signRSA(String signatureData, String xmlPrivateKey) throws Exception {
    PrivateKey privateKey = getPrivateKeyFromXML(xmlPrivateKey);
    Signature instance = Signature.getInstance("SHA256withRSA");
    instance.initSign(privateKey);
    instance.update(signatureData.getBytes("UTF-8"));
    byte[] signature = instance.sign();
    return Base64.encodeBase64String(signature);
}
Xác thực chữ ký điện tử

Bên nhận sử dụng Thuật toán RSA-SHA256 và Public key của bên gửi để xác thực signature được bên gửi tạo ra.

Java example code

public static boolean verifyRSA(String signedData, String signature, String xmlPublicKey) throws Exception {
    PublicKey publicKey = getPublicKeyFromXML(xmlPublicKey);
    Signature instance = Signature.getInstance("SHA256withRSA");
    instance.initVerify(publicKey);
    instance.update(signedData.getBytes("UTF-8"));
    return instance.verify(Base64.decodeBase64(signature));
}

Last updated