Przejdź do głównej zawartości

EXT0011: EdDSA Authentication

Ta treść nie jest jeszcze dostępna w Twoim języku.

  • Extension dependencies: none
  • Document status: Discussion

Two-way authentication using EdDSA (Ed25519). Public key length: 32 bytes, signature: 64 bytes.

Both public keys known to both parties. Private keys never transferred. Device public key serves as unique identifier.

  1. Server sends 001A with its public key and random DCHALLENGE
  2. Device verifies server key, responds with its public key and SCHALLENGE
  3. Server sends 001B with signature of SCHALLENGE
  4. Device responds with signature of DCHALLENGE

Unauthenticated clients have minimum rights (0000, 001A, 001B, Keep Alive).

Request:

<TID> 3900 0042 001A <SPUBKEY> <DCHALLENGE>

Response:

<TID> 3900 0042 001A <DPUBKEY> <SCHALLENGE>
FieldLengthDescription
SPUBKEY32 bytesServer public key
DPUBKEY32 bytesDevice public key
SCHALLENGE32 bytesRandom bytes for server to sign
DCHALLENGE32 bytesRandom bytes for device to sign

Errors: 000A Server key mismatch, 000B Too many requests

Request:

<TID> 3900 0042 001B <SSIGN>

Response:

<TID> 3900 0042 001B <DSIGN>
FieldLengthDescription
SSIGN64 bytesServer signature of SCHALLENGE
DSIGN64 bytesDevice signature of DCHALLENGE

Errors: 000A Invalid signature, 000B Not initialized/timeout, 000C Device busy

Change server public key and regenerate device key pair. Requires prior authentication.

Request/Response:

<TID> 3900 0022 001C <SPUBKEY>/<DPUBKEY>

Errors: 000A Key generation error