Conscrypt

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Conscrypt 모듈은 OTA 업데이트에 의존하지 않고 보안 개선을 가속화하고 장치 보안을 개선합니다. Java 코드 및 기본 라이브러리를 사용하여 Android TLS 구현은 물론 키 생성기, 암호 및 메시지 다이제스트와 같은 Android 암호화 기능의 상당 부분을 제공합니다. Conscrypt는 Android 플랫폼에 포함될 때 몇 가지 전문화가 있지만 오픈 소스 라이브러리 로 사용할 수 있습니다.

Conscrypt 모듈은 BoringSSL , OpenSSL의 Google 포크이며 Conscrypt 코드(Java 및 기본 코드 모두)와 함께 암호화 및 TLS(특히 Google Chrome)를 위해 많은 Google 제품에서 사용되는 기본 라이브러리를 사용합니다. BoringSSL에는 공식 릴리스(모든 사용자가 헤드에서 빌드)가 없으며 API 또는 ABI 안정성에 대해 보장하지 않습니다.

Android 10의 변경 사항

Android 9에는 Conscrypt용 Android 전용 공개 API가 포함되어 있지 않지만 대신 Cipher 및 MessageDigest를 포함한 JCA(Java Cryptography Architecture) 및 SSLSocket 및 SSLEngine을 포함한 JSSE(Java Secure Socket Extension)에 대한 표준 클래스를 구현하는 보안 공급자를 사용합니다. 사용자는 이러한 클래스와 상호 작용하며 일부 비공개 Conscrypt API는 libcore 또는 프레임워크 코드에서 사용됩니다.

Android 10은 android.net.ssl 에 소수의 공개 API 메서드를 추가하여 javax.net.ssl ​​아래의 클래스에서 노출되지 않는 Conscrypt 기능에 액세스합니다. Android 10에는 Android 런타임(Conscrypt 모듈에는 포함되지 않음)의 일부로 인기도가 낮은 암호화 도구를 제공하기 위한 Bouncy Castle 의 슬림형 사본도 포함되어 있습니다.

형식 및 종속성

Conscrypt 모듈(`com.android.conscrypt`)은 Conscrypt Java 코드와 Android NDK 라이브러리(예: liblog )에 동적으로 연결되는 Conscrypt 기본 라이브러리가 포함된 APEX 파일로 배포됩니다. 네이티브 라이브러리에는 NIST의 CMVP(암호화 모듈 검증 프로그램 )를 통해 검증된( 인증서 #3753 ) BoringSSL 사본도 포함되어 있습니다.

Conscrypt 모듈은 다음 API를 노출합니다.

  • 공개 APIjava.*javax.* 아래의 패키지에 있는 클래스 및 인터페이스의 확장과 android.net.ssl.* 아래의 클래스입니다. 외부 앱 코드는 Conscrypt를 직접 호출하지 않습니다. 플랫폼 API 표준은 이러한 API가 이전 버전 및 이후 버전과 호환되도록 합니다.
  • 핵심 플랫폼 API 는 비공개 기능에 액세스하기 위해 프레임워크에서 사용하는 숨겨진 API입니다. 이들은 상대적으로 제한적입니다. 가장 큰 사용자는 네트워크 보안 구성 기능 을 구현하기 위해 Conscrypt 신뢰 관리자(인증서를 확인하는 구성 요소)를 확장하는 NetworkSecurityConfig 입니다.
  • 코어 내 API 는 JCA 및 JSEE 기계에 의해 반사적으로 호출되는 인수가 없는 생성자로 제한됩니다.