Sobald es ein gültiges Kandidatenpaar gibt (beide Peers können sich verbinden und Daten untereinander austauschen), ist es an der Zeit, die Verbindung sicher zu machen. DTLS ist ein kryptografisches Protokoll, das die Daten verschlüsselt, um eine Inspektion oder Modifikation des Inhalts der ausgetauschten Daten zu verhindern.
DTLS erfordert die OpenSSL-Bibliotheken (ab OpenSSL 1.1+)
Die Konfiguration des DTLS befindet sich in der Eigenschaft RTCOptions.DTLSOptions der TsgcRTCPeerConnection. Um DTLS zu aktivieren, setzen Sie die Eigenschaft RTCOptions.DTLS auf True. Nachfolgend finden Sie die Haupteigenschaften:
RootCertFile: Pfad zum Vertrauensspeicher, mit dem die Gegenstelle überprüft wird, normalerweise eine Datei mit der Zertifizierungsstelle. Dies ist dieselbe Bedeutung, die die Eigenschaft bei den TLS- und QUIC-Transporten hat. Es ist nicht das Zertifikat dieses Endpunkts, und eine Konfiguration, die RootCertFile und KeyFile setzt, CertFile aber leer lässt, löst beim Start der Verbindung einen Fehler aus.
CertFile: Pfad zur Zertifikatsdatei dieses Endpunkts. Die Datei kann das Zertifikat zusammen mit seinen Zwischenzertifikaten enthalten, eine Kettendatei funktioniert also.
KeyFile: Pfad zur Zertifikatsschlüsseldatei.
VerifyCertificate: wenn die Zertifikatskette der Gegenstelle überprüft werden muss, aktivieren Sie diese Eigenschaft. WebRTC authentifiziert die Gegenstelle über den im SDP übertragenen Fingerabdruck und nicht über eine Zertifikatskette, das Deaktiviertlassen dieser Eigenschaft ist daher die normale WebRTC-Konfiguration, und sie ist von der jetzt auf den DTLS-Transporten durchgesetzten Kettenprüfung nicht betroffen.
VerifyDepth: ist eine Integer-Eigenschaft, die die maximale Anzahl von Links darstellt, die bei der Verifizierung zulässig sind, also die maximale Kettentiefe, die beim Überprüfen des Zertifikats der Gegenstelle erlaubt ist.
OpenSSL_Options: Konfiguration der OpenSSL-Bibliotheken.
APIVersion: ermöglicht die Definition, welche OpenSSL-API verwendet wird. Nur OpenSSL API 1.1+ unterstützt DTLS.
oslAPI_1_1: verwendet API-1.1-OpenSSL, erfordert unsere benutzerdefinierte Indy-Bibliothek und ermöglicht die Verwendung von OpenSSL-1.1.1-Bibliotheken (mit TLS-1.3-Unterstützung).
oslAPI_3_0: verwendet API 3.0 OpenSSL, erfordert unsere benutzerdefinierte Indy-Bibliothek und ermöglicht die Verwendung von OpenSSL-3.0.0-Bibliotheken (mit TLS-1.3-Unterstützung).
LibPath: hier können Sie konfigurieren, wo sich die openSSL-Bibliotheken befinden
oslpNone: dies ist der Standard, die OpenSSL-Bibliotheken sollten sich im selben Ordner befinden, in dem sich die Binärdatei befindet, oder in einem bekannten Pfad.
oslpDefaultFolder: legt automatisch den OpenSSL-Pfad fest, in dem sich die Bibliotheken für alle IDE-Personalities befinden sollten.
oslpCustomFolder: wenn dies die ausgewählte Option ist, definieren Sie den vollständigen Pfad in der Eigenschaft LibPathCustom.
LibPathCustom: wenn LibPath = oslpCustomFolder, definieren Sie hier den vollständigen Pfad, in dem sich die OpenSSL-Bibliotheken befinden.
UnixSymLinks: aktiviert oder deaktiviert das Laden von SymLinks unter Unix-Systemen (standardmäßig aktiviert, außer unter OSX64):
oslsSymLinksDefault: standardmäßig aktiviert, außer unter OSX64 (nach MacOS Monterey schlägt der Versuch fehl, die Bibliothek ohne Version zu laden.).
oslsSymLinksLoadFirst: SymLinks laden und vor dem Versuch, die Versionsbibliotheken zu laden, ausführen.
oslsSymLinksLoad: Lädt SymLinks, nachdem versucht wurde, die Versionsbibliotheken zu laden.
oslsSymLinksDontLoad: lädt die SymLinks nicht.