Generer autentiseringsstrenger (REST API)

Sist oppdatert: 31. mars 2025

Noen REST-endepunkter tillater utførelse av sensitive operasjoner som å plassere ordrer eller be om uttak av digitale eiendeler. Disse private endepunktene kan derfor kun kalles via krypterte forespørsler, og en autentiseringsstreng (authent) må inkluderes i hver slik forespørsel. authent beregnes fra følgende inndata:

PostData

postData er en "&"-sammenkobling i formen <argument>=<value> og er spesifikk for hvert REST-endepunkt.

Eksempel

For å operere endepunktets orderbook velger du argumentet symbol med verdien
fi_xbtusd_180615. postData er da gitt av symbol=fi_xbtusd_180615.

Oppdatering av autentiseringsflyt for v3-endepunkter: Fra og med 20. februar 2024, for å tilpasse oss beste praksis og sikre en høyere sikkerhetsstandard, vil vi oppdatere autentiseringsflyten for våre /derivatives/* (v3) endepunkter. (detaljer nedenfor)

Endringer i PostData-generering:


- Før utgivelse: Brukere måtte hashe spørringsstrengparametere før URL-koding for Authent-generering, f.eks. `greeting=hello world`.


- Etter utgivelse: Autentiseringsprosessen vil nå kreve hashing av den fullstendige, URL-kodede URI-komponenten slik den vises i forespørselen, f.eks. `greeting=hello%20world`. Denne metoden forbedrer sikkerheten og er i tråd med beste praksis.
Denne oppdateringen er spesielt relevant for v3 batchorder-endepunktet, som aksepterer en JSON-kropp i sine spørringsparametere.


Bakoverkompatibilitet og fremtidige planer:


Foreløpig er denne endringen bakoverkompatibel. Plattformen vil akseptere begge PostData-genereringsmetodene beskrevet ovenfor. Vi har imidlertid som mål å fase ut den gamle metoden (hashing av dekodede spørringsstrengparametere) i fremtiden for å opprettholde de høyeste sikkerhetsstandardene. Vi vil gi god beskjed i forkant av denne endringen og oppfordrer sterkt alle brukere til å gå over til den nye metoden så snart som mulig for å sikre sømløs tjenestekontinuitet.

Nonce

nonce er en kontinuerlig økende heltallsparameter. En god nonce er systemtiden din i
millisekunder (i strengformat). Systemet vårt tolererer nonces som er ute av rekkefølge i en kort periode. Nonce er ikke påkrevd.

Eksempel 1415957147987

Mange autentiseringsproblemer er relatert til feil nonce. Et nytt par API-nøkler vil automatisk tilbakestille nonce og løse disse problemene.

Endepunktsti

endpointPath Dette er URL-utvidelsen til endepunktet.

Eksempel /api/v3/orderbook

API-hemmelighet

api_secret hentes som beskrevet i forrige avsnitt.

Eksempel

rttp4AzwRfYEdQ7R7X8Z/04Y4TZPa97pqCypi3xXxAqftygftnI6H9yGV+O
cUOOJeFtZkr8mVwbAndU3Kz4Q+eG

Basert på disse inndataene må authent beregnes som følger:

  1. 1

    Kjør sammen

    postData

    +

    nonce

    +

    endpointPath

  2. 2

    Hashe resultatet fra trinn 1 med SHA-256-algoritmen

  3. 3

    Base64-dekod din api_secret

  4. 4

    Bruk resultatet fra trinn 3 til å hashe resultatet fra trinn 2 med HMAC-SHA-512-algoritmen

  5. 5

    Base64-enkod resultatet fra trinn 4

Eksempel

Følgende viser en implementasjon av authent i Java. For fullstendige fungerende eksempler på forskjellige programmeringsspråk, se avsnittet Ytterligere ressurser. public static String getAuthent(String postData, String nonce, String endpointPath, String secretKeyBase64)
{
Mac mac512;
MessageDigest sha256;
try {
SecretKey secretKey = new SecretKeySpec 
(Base64.decode(secretKeyBase64.getBytes()), HMAC_SHA_512);
mac512 = Mac.getInstance(HMAC_SHA_512);
mac512.init(secretKey);
sha256 = MessageDigest.getInstance("SHA-256");
} catch (IOException e) {
...
} catch (InvalidKeyException e) {
...
} catch (NoSuchAlgorithmException e) {
...
} sha256.update(postData.getBytes());
sha256.update(nonce.getBytes());
sha256.update(endpointPath.getBytes());
mac512.update(sha256.digest());
return Base64.encodeBytes(mac512.doFinal()).trim();
}

Trenger du mer hjelp?