Passa al contenuto principale

3. Formato dei pacchetti

Il formato del pacchetto di contabilità RADIUS si basa su quello del pacchetto di autenticazione RADIUS [2], con le seguenti differenze:

  • Il campo Code assume valori diversi.
  • Il campo Identifier ha lo stesso significato.
  • Il Request Authenticator è calcolato in modo diverso.
  • Sono utilizzati solo i seguenti attributi: User-Name, NAS-IP-Address, NAS-Identifier, NAS-Port, NAS-Port-Type, Service-Type, Framed-Protocol, Framed-Address, Framed-IP-Netmask, Framed-Routing, Filter-Id, Framed-MTU, Framed-Compression, Login-IP-Host, Login-Service, Login-Port, Reply-Message, Acct-Status-Type, Acct-Delay-Time, Acct-Input-Octets, Acct-Output-Octets, Acct-Session-Id, Acct-Authentic, Acct-Session-Time, Acct-Input-Packets, Acct-Output-Packets, Acct-Terminate-Cause, Acct-Multi-Session-Id, Acct-Link-Count, Acct-Interim-Interval, Acct-Tunnel-Connection ed Event-Timestamp. Tutti gli altri attributi devono essere ignorati.

Il formato del pacchetto del protocollo di contabilità RADIUS è il seguente:

0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Request Authenticator |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Attributes ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Code

Un ottetto, identifica il tipo di pacchetto RADIUS. Per il codice di contabilità RADIUS sono definiti i seguenti valori:

4 Accounting-Request (Richiesta di contabilità) 5 Accounting-Response (Risposta di contabilità)

3.1. Identificatore​

Il campo Identifier viene utilizzato per abbinare la richiesta di contabilità alla risposta di contabilità. Tra un dato client e un server di contabilità RADIUS, lo stesso identificatore non deve essere riutilizzato contemporaneamente (ovvero mentre la richiesta è pendente), e l'identificatore deve essere preservato tra la richiesta e la rispettiva risposta. Ogni richiesta di contabilità ritrasmessa deve riutilizzare l'identificatore originale.

3.2. Lunghezza​

Il campo Length indica il numero di ottetti del pacchetto RADIUS (compresi i campi Code, Identifier, Length, Authenticator e Attributes). Gli ottetti oltre Length devono essere ignorati, e se Length è inferiore alla lunghezza minima dell'intestazione del pacchetto RADIUS (20 ottetti), il pacchetto deve essere scartato silenziosamente.

3.3. Request Authenticator​

Nel pacchetto di richiesta di contabilità, il campo Authenticator è un numero casuale di 16 ottetti, detto Request Authenticator. Questo valore deve essere imprevedibile e deve identificare univocamente la query su un dato NAS per evitare attacchi di replay. Il Request Authenticator non deve essere utilizzato per mascherare alcun dato né deve essere riutilizzato.

Il Request Authenticator non deve mai essere utilizzato come maschera per alcuna chiave crittografica; qualsiasi uso del Request Authenticator per mascherare i dati non è sicuro. Il client e il proxy, nel generare il Request Authenticator, devono utilizzare un algoritmo esplicito la cui uscita è imprevedibile per un attaccante (ovvero non deve essere composta da una sequenza di ottetti prevedibile per l'attaccante).

Il Request Authenticator deve essere generato secondo la procedura descritta nell'RFC 1750 [4].

3.4. Attributi​

Questa sezione descrive gli attributi utilizzati dal protocollo di contabilità RADIUS. Il formato del campo attributo è descritto nella Sezione 5 di [2].

I tipi di attributo da 1 a 59 sono identici a quelli definiti in RADIUS [2]. I tipi di attributo introdotti da questo memo iniziano da 40.

I valori da 40 a 49 sono definiti in questo memo. I valori da 50 a 59 sono riservati per gli attributi di tunnel, definiti in [5].

In questo memo, i seguenti attributi hanno un significato specifico:

Acct-Status-Type (40) Acct-Delay-Time (41) Acct-Input-Octets (42) Acct-Output-Octets (43) Acct-Session-Id (44) Acct-Authentic (45) Acct-Session-Time (46) Acct-Input-Packets (47) Acct-Output-Packets (48) Acct-Terminate-Cause (49) Acct-Multi-Session-Id (50) Acct-Link-Count (51) Acct-Interim-Interval (85) Acct-Tunnel-Connection (68) Event-Timestamp (55)