DTLS over UDP on Server and Client Components

· Funkcje

Od wersji sgcWebSockets 2022.8.0 DTLS over UDP jest obsługiwane przez komponenty UDP serwera i klienta. Oznacza to, że teraz możesz wysyłać zaszyfrowane wiadomości przez UDP (podobnie jak WebSocket lub HTTP pracujące nad TLS).

Z Wikipedii: Datagram Transport Layer Security (DTLS) to protokół komunikacyjny zapewniający bezpieczeństwo aplikacjom opartym na datagramach, umożliwiając im komunikację w sposób zaprojektowany[1][2] tak, by zapobiegać podsłuchiwaniu, manipulacji lub fałszowaniu wiadomości. Protokół DTLS opiera się na strumieniowym protokole Transport Layer Security (TLS) i ma zapewniać podobne gwarancje bezpieczeństwa.


Configuration 

Konfiguracja jest bardzo podobna do innych komponentów. Jest nowa właściwość DTLSOptions, w której można skonfigurować opcje DTLS, takie jak certyfikat, klucz prywatny, weryfikacja certyfikatu itp. Aby włączyć DTLS, ustaw właściwość DTLS na True przed uruchomieniem serwera lub przed wysłaniem wiadomości od klienta do serwera.

Certyfikat musi być w formacie PEM, więc jeśli ma inny format, najpierw przekonwertuj go do PEM.

DTLS wymaga openSSL 1.1+, więc domyślna wersja Indy dołączona do Rad Studio nie obsługuje go. Tylko edycja sgcWebSockets Enterprise obsługuje DTLS (bo ta wersja zawiera niestandardowe Indy z obsługą openSSL 1.1 i 3.0).

Server 

  // ... server
  server := TsgcUDPServer.Create(nil);
  server.Port := StrToInt(txtDefaultPort.Text);
  server.Bindings.Clear;
  With server.Bindings.Add do
  begin
    IP := '127.0.0.1';
    Port := 5430;
  end;
  // ... dtls
  server.DTLS := True;
  server.DTLSOptions.CertFile := 'certificate.pem';
  server.DTLSOptions.KeyFile := 'privatekey.pem';
  // ... active
  server.Active := True; 

Client 

    // ... client
    client.Host := '127.0.0.1';
    client.Port := 5430;
    client.DTLS := True;
    client.DTLSOptions.CertFile := 'certificate.pem';
    client.DTLSOptions.KeyFile := 'privatekey.pem';
    client.WriteData('Hello from sgcWebSockets!!!'); 

Demo

Poniżej znajdziesz link do demo DTLS over UDP pokazującego, jak działa na Windows z biblioteką sgcWebSockets.