네이티브 Android TLS 백엔드

네이티브 Android TLS(iohAndroidTLS)는 sgcWebSockets의 Android 네이티브 TLS 전송입니다. JNI를 통해 플랫폼 자체의 javax.net.ssl.SSLEngine을 구동하므로, APK에 OpenSSL .so 파일이 출하되지 않습니다. TLSOptions.IOHandler를 iohAndroidTLS로 설정해 활성화하세요.

← 모든 TLS 백엔드

네이티브 Android TLS (iohAndroidTLS)

JNI를 통해 플랫폼의 SSLEngine을 사용하는 Android 네이티브 TLS. APK에 OpenSSL .so가 없습니다.

네이티브 Android TLS는 암호화를 Android 자체에 넘깁니다. sgcWebSockets는 JNI를 통해 플랫폼의 javax.net.ssl.SSLEngine을 호출하므로, 운영 체제가 핸드셰이크, 레코드 암호화, 인증서 작업을 수행합니다. 즉각적인 이점은 APK에 OpenSSL .so 파일이 들어가지 않는다는 것입니다. 패키지가 더 작아지고, TLS 스택을 OS가 유지·관리·업데이트하므로 서드파티 암호 라이브러리를 패치하거나 버전을 맞출 일이 결코 없습니다.

이 백엔드는 Android 시스템 신뢰 저장소에 대해 서버를 검증하고 호스트명 검증을 수행하므로, 잘 알려진 인증 기관으로의 연결은 추가 구성 없이 동작합니다. TLS 1.3을 협상하고, Android 10(API 29) 이상에서 ALPN을 지원해 핸드셰이크 중에 http/1.1 같은 애플리케이션 프로토콜을 광고할 수 있습니다.

OpenSSL을 출하하거나 패치하지 않아야 하는 Android 앱, 또는 플랫폼의 TLS 정책에 전적으로 맡기는 것을 선호하는 경우 이 백엔드를 선택하세요. 모든 sgcWebSockets 백엔드와 마찬가지로 동일한 TLSOptions API 뒤에 자리하므로, 네트워킹 코드의 나머지 부분은 OpenSSL, SChannel, Apple 경로와 동일하고 플랫폼별로 IOHandler 줄만 변경됩니다.

네이티브 Android TLS 활성화

Android 빌드에서 TLSOptions.IOHandler를 iohAndroidTLS로 설정하세요. OpenSSL .so가 필요하지 않습니다.

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;

APK에 OpenSSL 없음

TLS 스택이 이미 기기에 들어 있으므로, 패키지는 가벼운 상태를 유지하고 업데이트는 OS가 담당합니다.

번들할 .so 없음

APK는 libssl이나 libcrypto 없이 출하되므로 패키지가 더 작고, 유지·관리할 네이티브 암호가 없습니다.

시스템 신뢰 저장소

검증은 호스트명 검증과 함께 Android 시스템 신뢰 저장소에 대해 실행되며, 공개 CA에 추가 설정이 필요하지 않습니다.

TLS 1.3

플랫폼이 TLS 1.3을 협상하고, 프로토콜 선택을 위한 ALPN은 Android 10(API 29) 이상에서 사용할 수 있습니다.

OS 유지·관리

Android가 TLS 구현을 소유하므로, 보안 수정은 사용자의 릴리스 주기가 아니라 시스템 업데이트를 통해 도착합니다.

에디션 참고

네이티브 Android TLS(iohAndroidTLS)는 sgcWebSockets의 Enterprise 에디션이 필요합니다. 전체 내역은 기능 매트릭스를 참고하세요.

네이티브 Android TLS, OpenSSL 제로

무료 체험판을 다운로드해 배포할 OpenSSL .so 없이 Android 앱을 출하하세요.