Backend TLS nativo do Android

O TLS nativo do Android (iohAndroidTLS) é o transporte TLS nativo do Android para o sgcWebSockets. Ele aciona o próprio javax.net.ssl.SSLEngine da plataforma via JNI, então o seu APK não envia nenhum arquivo .so do OpenSSL. Habilite-o definindo TLSOptions.IOHandler como iohAndroidTLS.

← Todos os backends TLS

TLS nativo do Android (iohAndroidTLS)

TLS nativo do Android usando o SSLEngine da plataforma via JNI. Nenhum .so do OpenSSL no seu APK.

O TLS nativo do Android entrega a criptografia ao próprio Android. O sgcWebSockets chama o javax.net.ssl.SSLEngine da plataforma via JNI, então o sistema operacional realiza o handshake, a criptografia de registro e o trabalho com certificados. O benefício imediato é que o seu APK não carrega nenhum arquivo .so do OpenSSL. O pacote é menor, e você nunca atualiza nem combina de versão uma biblioteca de criptografia de terceiros, porque a pilha TLS é mantida e atualizada pelo sistema operacional.

O backend valida o servidor contra o repositório de confiança do sistema Android e realiza a verificação de nome de host, então conexões com autoridades certificadoras conhecidas funcionam sem configuração extra. Ele negocia TLS 1.3 e oferece suporte a ALPN no Android 10 (API 29) e posterior, o que permite anunciar protocolos de aplicação como http/1.1 durante o handshake.

Escolha este backend para aplicativos Android que precisam evitar enviar ou atualizar o OpenSSL, ou que preferem delegar inteiramente à política de TLS da plataforma. Como todo backend do sgcWebSockets, ele fica por trás da mesma API TLSOptions, então o restante do seu código de rede é idêntico aos caminhos do OpenSSL, do SChannel e da Apple, e apenas a linha do IOHandler muda por plataforma.

Habilitar o TLS nativo do Android

Defina TLSOptions.IOHandler como iohAndroidTLS na sua build do Android. Nenhum .so do OpenSSL é necessário.

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;

Sem OpenSSL no APK

A pilha TLS já vive no dispositivo, então o seu pacote permanece enxuto e o sistema operacional cuida das atualizações.

Nenhum .so para empacotar

O APK é enviado sem libssl ou libcrypto, então o pacote é menor e não há criptografia nativa para manter.

Repositório de confiança do sistema

A validação roda contra o repositório de confiança do sistema Android com verificação de nome de host, sem configuração extra para CAs públicas.

TLS 1.3

A plataforma negocia TLS 1.3, e o ALPN está disponível no Android 10 (API 29) e posterior para seleção de protocolo.

Mantido pelo sistema operacional

O Android é dono da implementação TLS, então as correções de segurança chegam pelas atualizações do sistema, e não pelo seu ciclo de lançamento.

Observação sobre edições

O TLS nativo do Android (iohAndroidTLS) requer a edição Enterprise do sgcWebSockets. Consulte a matriz de recursos para o detalhamento completo.

TLS nativo do Android, zero OpenSSL

Baixe a versão de avaliação gratuita e envie aplicativos Android sem nenhum .so do OpenSSL para implantar.