Una volta individuata una coppia di candidati valida (entrambi i peer possono connettersi e scambiare dati), è il momento di rendere sicura la connessione. DTLS è un protocollo crittografico che cifra i dati per evitare l'ispezione o la modifica del contenuto dei dati scambiati.
DTLS richiede le librerie openSSL (da openSSL 1.1+)
La configurazione di DTLS è disponibile nella proprietà RTCOptions.DTLSOptions del TsgcRTCPeerConnection. Per abilitare DTLS, impostare la proprietà RTCOptions.DTLS a True. Di seguito sono riportate le proprietà principali:
RootCertFile: percorso dell'archivio attendibile usato per verificare l'altro estremo, normalmente un file che contiene l'autorità di certificazione. È lo stesso significato che la proprietà ha nei trasporti TLS e QUIC. Non è il certificato di questo endpoint, e una configurazione che imposta RootCertFile e KeyFile lasciando CertFile vuoto genera un errore all'avvio della connessione.
CertFile: percorso del file del certificato di questo endpoint. Il file può contenere il certificato insieme ai suoi intermedi, quindi un file di catena funziona.
KeyFile: percorso del file della chiave del certificato.
VerifyCertificate: se la catena di certificati dell'altro estremo deve essere verificata, abilitare questa proprietà. WebRTC autentica l'altro estremo tramite l'impronta trasportata nell'SDP e non tramite una catena di certificati, quindi lasciare questa proprietà disabilitata è la configurazione WebRTC normale, e non è influenzata dalla verifica della catena ora applicata sui trasporti DTLS.
VerifyDepth: è una proprietà Integer che rappresenta il numero massimo di link consentiti quando viene eseguita la verifica, ovvero la profondità massima della catena ammessa quando viene verificato il certificato dell'altro estremo.
OpenSSL_Options: configurazione delle librerie openSSL.
APIVersion: consente di definire quale API OpenSSL verrà utilizzata. Solo l'API openSSL 1.1+ supporta DTLS.
oslAPI_1_1: utilizza OpenSSL API 1.1, richiede la nostra libreria Indy personalizzata e consente l'utilizzo delle librerie OpenSSL 1.1.1 (con supporto TLS 1.3).
oslAPI_3_0: utilizza l'API 3.0 OpenSSL, richiede la nostra libreria Indy personalizzata e consente l'uso delle librerie OpenSSL 3.0.0 (con supporto TLS 1.3).
LibPath: qui è possibile configurare la posizione delle librerie openSSL
oslpNone: questa è l'impostazione predefinita; le librerie openSSL devono trovarsi nella stessa cartella del binario o in un percorso noto.
oslpDefaultFolder: imposta automaticamente il percorso openSSL dove le librerie devono essere situate per tutte le personalità IDE.
oslpCustomFolder: se questa è l'opzione selezionata, definire il percorso completo nella proprietà LibPathCustom.
LibPathCustom: quando LibPath = oslpCustomFolder, definire qui il percorso completo dove si trovano le librerie openSSL.
UnixSymLinks: abilita o disabilita il caricamento dei SymLink sui sistemi Unix (per impostazione predefinita è abilitato, tranne che su OSX64):
oslsSymLinksDefault: per impostazione predefinita sono abilitati, eccetto su OSX64 (dopo MacOS Monterey si verifica un errore nel tentativo di caricare la libreria senza versione.).
oslsSymLinksLoadFirst: Carica i SymLink e li elabora prima di tentare il caricamento delle librerie di versione.
oslsSymLinksLoad: Carica i SymLink dopo aver tentato di caricare le librerie di versione.
oslsSymLinksDontLoad: non caricare i SymLink.