1. Introduction (Introduzione)
1. Introduction (Introduzione)
Questo documento descrive il Secure Real-time Transport Protocol (Protocollo di trasporto sicuro in tempo reale, SRTP), un profilo del Real-time Transport Protocol (Protocollo di trasporto in tempo reale, RTP), che può fornire confidenzialità, autenticazione dei messaggi e protezione dal replay al traffico RTP e al traffico di controllo per RTP, RTCP (the Real-time Transport Control Protocol, Protocollo di controllo del trasporto in tempo reale) [RFC3350].
SRTP fornisce un framework per la crittografia e l'autenticazione dei messaggi dei flussi RTP e RTCP (Section 3). SRTP definisce un insieme di trasformazioni crittografiche predefinite (Sections 4 e 5) e consente l'introduzione di nuove trasformazioni in futuro (Section 6). Con un'appropriata gestione delle chiavi (Sections 7 e 8), SRTP è sicuro (Sections 9) per applicazioni RTP unicast e multicast (Section 11).
SRTP può raggiungere un throughput elevato e una bassa espansione dei pacchetti. SRTP si dimostra una protezione adatta per ambienti eterogenei (mix di reti cablate e wireless). Per ottenere tali caratteristiche, vengono descritte trasformazioni predefinite, basate su un cifrario a flusso additivo per la crittografia, una funzione basata su hash con chiave per l'autenticazione dei messaggi e un indice "implicito" per la sequenziazione/sincronizzazione basato sul numero di sequenza RTP per SRTP e un numero di indice per Secure RTCP (SRTCP).
1.1. Notational Conventions (Convenzioni notazionali)
Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" e "OPTIONAL" in questo documento devono essere interpretate come descritto in [RFC2119]. La terminologia è conforme a [RFC2828] con la seguente eccezione. Per semplicità, utilizziamo il termine "random" in tutto il documento per indicare valori generati casualmente o pseudo-casualmente. Grandi quantità di bit casuali possono essere difficili da ottenere e, per la sicurezza di SRTP, la pseudo-casualità è sufficiente [RFC1750].
Per convenzione, la rappresentazione adottata è l'ordine dei byte di rete, ovvero il bit (ottetto) più a sinistra è il più significativo. Con XOR intendiamo l'addizione bit a bit modulo 2 di stringhe binarie, e || denota la concatenazione. In altre parole, se C = A || B, allora i bit più significativi di C sono i bit di A e i bit meno significativi di C sono uguali ai bit di B. I numeri esadecimali sono preceduti da 0x.
La parola "encryption" include anche l'uso dell'algoritmo NULL (che in pratica lascia i dati in chiaro).
Con un leggero abuso di notazione, utilizziamo i termini "message authentication" e "authentication tag" come pratica comune, anche se in alcune circostanze, ad esempio nella comunicazione di gruppo, il servizio fornito è in realtà solo la protezione dell'integrità e non l'autenticazione dell'origine dei dati.