
Libreria per SRTP (Secure Realtime Transport Protocol)
Questo pacchetto fornisce un'implementazione del Secure Real-time Transport Protocol (SRTP), della Universal Security Transform (UST) e di un kernel crittografico di supporto. L'API SRTP è documentata in include/srtp.h, e la libreria si trova in libsrtp2.a (dopo la compilazione).
Questo documento descrive libSRTP, la libreria Secure RTP open source di Cisco Systems, Inc. RTP è il Real-time Transport Protocol, uno standard IETF per il trasporto di dati in tempo reale come telefonia, audio e video, definito dalla RFC 3550. Secure RTP (SRTP) è un profilo RTP che fornisce riservatezza ai dati RTP e autenticazione all'intestazione e al payload RTP. SRTP è uno standard IETF, definito nella RFC 3711, ed è stato sviluppato nel gruppo di lavoro IETF Audio/Video Transport (AVT). Questa libreria supporta tutte le funzionalità obbligatorie di SRTP, ma non tutte quelle opzionali. Vedere la sezione Funzionalità supportate per informazioni più dettagliate.
Questo documento viene inoltre utilizzato per generare i file di documentazione nella cartella /doc/ dove può essere creata una referenza più dettagliata all'API libSRTP e alle funzioni correlate (richiede l'installazione di doxygen). Il materiale di riferimento viene creato automaticamente dai commenti incorporati in alcuni file header C. La documentazione è organizzata in moduli per migliorarne la chiarezza. Questi moduli non corrispondono direttamente ai file. Un kernel crittografico sottostante fornisce gran parte della funzionalità di base di libSRTP ma è in gran parte non documentato perché svolge il suo lavoro dietro le quinte.
[email protected] lista di discussione generale per notizie / annunci / discussioni. Questa è una lista aperta, vedere https://lists.packetizer.com/mailman/listinfo/libsrtp per iscriversi.
[email protected] per segnalare problemi di sicurezza al team di manutenzione di libsrtp. Questa è una lista chiusa, ma chiunque può inviarvi messaggi.
libSRTP è distribuito sotto la seguente licenza, inclusa nella distribuzione del codice sorgente. È riprodotta nel manuale nel caso in cui abbiate ottenuto la libreria da un'altra fonte.
Copyright (c) 2001-2017 Cisco Systems, Inc. Tutti i diritti riservati.
La ridistribuzione e l'uso in forma sorgente e binaria, con o senza modifiche, sono consentiti purché siano soddisfatte le seguenti condizioni:
- Le ridistribuzioni del codice sorgente devono conservare il suddetto avviso di copyright questo elenco di condizioni e la seguente dichiarazione di non responsabilità.
- Le ridistribuzioni in forma binaria devono riprodurre il suddetto avviso di copyright questo elenco di condizioni e la seguente dichiarazione di non responsabilità in la documentazione e/o altri materiali forniti con la distribuzione.
- Né il nome di Cisco Systems, Inc. né i nomi dei suoi contributori possono essere utilizzati per approvare o promuovere prodotti derivati da questo software senza una preventiva autorizzazione scritta specifica.
QUESTO SOFTWARE È FORNITO DAI DETENTORI DEL COPYRIGHT E DAI CONTRIBUTORI "COSÌ COM'È" E QUALSIASI GARANZIA ESPRESSA O IMPLICITA, INCLUSI, MA NON LIMITATI A, LE GARANZIE IMPLICITE DI COMMERCIABILITÀ E IDONEITÀ PER UNO SCOPO PARTICOLARE, SONO DECLINATE. IN NESSUN CASO I DETENTORI DEL COPYRIGHT O I CONTRIBUTORI SARANNO RESPONSABILI PER DANNI DIRETTI, INDIRETTI, INCIDENTALI, SPECIALI, ESEMPLARI O CONSEQUENZIALI (INCLUSI, MA NON LIMITATI A, L'APPROVVIGIONAMENTO DI BENI O SERVIZI SOSTITUTIVI; LA PERDITA DI UTILIZZO, DATI O PROFITTI; O L'INTERRUZIONE DELL'ATTIVITÀ) COMUNQUE CAUSATI E SU QUALSIASI TEORIA DI RESPONSABILITÀ, SIA CONTRATTUALE, RESPONSABILITÀ OGGETTIVA O ILLECITO (INCLUSI NEGLIGENZA O ALTRO) DERIVANTI IN QUALSIASI MODO DALL'USO DI QUESTO SOFTWARE, ANCHE SE AVVISATI DELLA POSSIBILITÀ DI TALI DANNI.
libSRTP fornisce funzioni per proteggere RTP e RTCP. I pacchetti RTP
possono essere crittografati e autenticati (usando la funzione srtp_protect()),
trasformandoli in pacchetti SRTP. Analogamente, i pacchetti SRTP
possono essere decrittografati e la loro autenticazione verificata (usando la
funzione srtp_unprotect()), trasformandoli in pacchetti RTP. Funzioni simili
applicano la sicurezza ai pacchetti RTCP.
Il typedef srtp_stream_t punta a una struttura che contiene tutto lo
stato associato a un flusso SRTP, incluse le chiavi e i parametri per le
funzioni di cifratura e autenticazione dei messaggi e i dati anti-replay. Una
particolare srtp_stream_t contiene le informazioni necessarie per proteggere un
particolare flusso RTP e RTCP. Questo tipo di dato è intenzionalmente opaco
per separare meglio l'API libSRTP dalla sua implementazione.
All'interno di una sessione SRTP, possono esserci più flussi, ciascuno
originato da un particolare mittente. Ogni sorgente utilizza un contesto di flusso
distinto per proteggere il flusso RTP e RTCP che sta originando. Il typedef srtp_t
punta a una struttura che contiene tutto lo stato associato a una sessione SRTP.
Possono esserci più contesti di flusso associati a un singolo srtp_t. Un contesto di flusso
non può esistere indipendentemente da un srtp_t, anche se ovviamente può essere creato
un srtp_t che contiene un solo contesto di flusso. Un dispositivo che partecipa
a una sessione SRTP deve avere un contesto di flusso per ogni sorgente nella sessione,
così da poter elaborare i dati che riceve da ciascun mittente.