Backend TLS de Android nativo

El TLS nativo de Android (iohAndroidTLS) es el transporte TLS nativo de Android de sgcWebSockets. Maneja el propio javax.net.ssl.SSLEngine de la plataforma a través de JNI, así que tu APK no envía ningún archivo .so de OpenSSL. Actívalo asignando iohAndroidTLS a TLSOptions.IOHandler.

← Todos los backends TLS

TLS nativo de Android (iohAndroidTLS)

TLS nativo de Android usando el SSLEngine de la plataforma a través de JNI. Sin .so de OpenSSL en tu APK.

El TLS nativo de Android entrega el cifrado al propio Android. sgcWebSockets llama al javax.net.ssl.SSLEngine de la plataforma a través de JNI, así que el sistema operativo realiza el handshake, el cifrado de los registros y el trabajo con certificados. El beneficio inmediato es que tu APK no lleva ningún archivo .so de OpenSSL. El paquete es más pequeño, y nunca parcheas ni ajustas la versión de una librería de criptografía de terceros, porque la pila TLS la mantiene y actualiza el SO.

El backend valida el servidor contra el almacén de confianza del sistema Android y realiza la verificación del nombre de host, así que las conexiones a autoridades de certificación conocidas funcionan sin configuración adicional. Negocia TLS 1.3, y admite ALPN en Android 10 (API 29) y posteriores, lo que te permite anunciar protocolos de aplicación como http/1.1 durante el handshake.

Elige este backend para apps de Android que deban evitar enviar o parchear OpenSSL, o que prefieran delegar por completo en la política TLS de la plataforma. Como todos los backends de sgcWebSockets, se sitúa tras la misma API TLSOptions, así que el resto de tu código de red es idéntico a las rutas de OpenSSL, SChannel y Apple, y solo la línea de IOHandler cambia por plataforma.

Activar el TLS nativo de Android

Asigna iohAndroidTLS a TLSOptions.IOHandler en tu compilación de Android. No se necesita ningún .so de OpenSSL.

uses
  sgcWebSocket, sgcWebSocket_Types;
// ...
WSClient.TLS := True;
WSClient.TLSOptions.IOHandler := iohAndroidTLS;
WSClient.TLSOptions.VerifyCertificate := True;
WSClient.TLSOptions.ALPNProtocols.Add('http/1.1');  // Android 10 (API 29)+
WSClient.Host := 'your.server.com';
WSClient.Port := 443;
WSClient.Active := True;
WSClient->TLS = true;
WSClient->TLSOptions->IOHandler = iohAndroidTLS;
WSClient->TLSOptions->VerifyCertificate = true;
WSClient->TLSOptions->ALPNProtocols->Add("http/1.1");  // Android 10 (API 29)+
WSClient->Host = "your.server.com";
WSClient->Port = 443;
WSClient->Active = true;

Sin OpenSSL en el APK

La pila TLS ya reside en el dispositivo, así que tu paquete se mantiene ligero y el SO se encarga de las actualizaciones.

Sin .so que empaquetar

El APK se envía sin libssl ni libcrypto, así que el paquete es más pequeño y no hay criptografía nativa que mantener.

Almacén de confianza del sistema

La validación se ejecuta contra el almacén de confianza del sistema Android con verificación del nombre de host, sin configuración adicional para CAs públicas.

TLS 1.3

La plataforma negocia TLS 1.3, y ALPN está disponible en Android 10 (API 29) y posteriores para la selección de protocolo.

Mantenido por el SO

Android es dueño de la implementación de TLS, así que las correcciones de seguridad llegan a través de las actualizaciones del sistema en lugar de tu ciclo de publicación.

Nota sobre ediciones

El TLS nativo de Android (iohAndroidTLS) requiere la edición Enterprise de sgcWebSockets. Consulta la matriz de funciones para el desglose completo.

TLS nativo de Android, cero OpenSSL

Descarga la prueba gratuita y envía apps de Android sin ningún .so de OpenSSL que desplegar.