Android 장치의 보안
Adobe AIR 2.5 이상
모든 컴퓨팅 장치에서와 마찬가지로 Android에서도 AIR는 기본 보안 모델을 따릅니다. 동시에 AIR는 자체의 보안 규칙을 유지하므로 이를 통해 개발자가 안전한 인터넷 연결 응용 프로그램을 더욱 쉽게 작성할 수 있습니다.
Android에서 AIR 응용 프로그램은 Android 패키지 형식을 사용하므로 설치는 Android 보안 모델에 따릅니다. AIR 응용 프로그램 설치 프로그램은 사용되지 않습니다.
Android 보안 모델의 주요 세 가지 측면은 다음과 같습니다.
권한
응용 프로그램 서명
응용 프로그램 사용자 ID
Android 권한
Android의 여러 기능은 운영 체제 권한 메커니즘에 의해 보호됩니다. 보호되는 기능을 사용하려면 AIR 응용 프로그램 설명자에서 응용 프로그램이 필요한 권한을 요구함을 선언해야 합니다. 사용자가 응용 프로그램을 설치하려고 하면 Android 운영 체제는 설치가 진행되기 전에 요청된 모든 권한을 사용자에게 표시합니다.
대부분의 AIR 응용 프로그램은 Android 권한을 응용 프로그램 설명자에 지정해야 합니다. 기본적으로 아무런 권한도 포함되지 않습니다. 다음은 AIR 런타임에서 노출되는 보호된 Android 기능에 필요한 권한입니다.
- ACCESS_COARSE_LOCATION
- 응용 프로그램에서 Geolocation 클래스를 통해 WIFI 및 셀룰러 네트워크 위치 데이터에 액세스할 수 있도록 허용합니다.
- ACCESS_FINE_LOCATION
- 응용 프로그램에서 Geolocation 클래스를 통해 GPS 데이터에 액세스할 수 있도록 허용합니다.
- ACCESS_NETWORK_STATE 및 ACCESS_WIFI_STATE
- 응용 프로그램에서 NetworkInfo 클래스를 통해 네트워크 정보에 액세스할 수 있도록 허용합니다.
- CAMERA
- 응용 프로그램에서 카메라에 액세스할 수 있도록 허용합니다.
- INTERNET
- 응용 프로그램에서 네트워크 요청을 수행할 수 있도록 허용하고 원격 디버깅도 허용합니다.
- READ_PHONE_STATE
- 수신 호출이 발생하면 AIR 런타임에 오디오를 음소거할 수 있도록 허용합니다.
- RECORD_AUDIO
- 응용 프로그램에서 마이크에 액세스할 수 있도록 허용합니다.
- WAKE_LOCK 및 DISABLE_KEYGUARD
- 응용 프로그램에서 장치가 SystemIdleMode 클래스 설정을 사용하여 대기 모드로 들어가지 못하게 하도록 허용합니다.
- WRITE_EXTERNAL_STORAGE
- 응용 프로그램에서 장치의 외부 메모리 카드에 쓸 수 있도록 허용합니다.
응용 프로그램 서명
Android 플랫폼용으로 만들어진 모든 응용 프로그램 패키지는 반드시 서명되어야 합니다. Android에서 AIR 응용 프로그램은 기본 Android APK 형식으로 패키지되어 있기 때문에 AIR 규칙이 아니라 Android 규칙에 따라 서명됩니다. Android와 AIR는 서로 비슷한 방식으로 코드 서명을 사용하지만 다음과 같은 중요한 차이점이 있습니다.
Android에서 서명을 통해 개인 키가 개발자의 소유임을 확인할 수 있지만 해당 개발자의 ID를 확인할 수는 없습니다.
Android 마켓에 제공된 응용 프로그램의 경우 인증서는 최소한 25년 동안 유효해야 합니다.
Android에서 패키지 서명을 다른 인증서로 마이그레이션하는 것은 지원되지 않습니다. 업데이트가 다른 인증서에 의해 서명된 경우 사용자는 원래의 응용 프로그램을 제거해야 업데이트된 응용 프로그램을 설치할 수 있습니다.
동일한 인증서로 서명된 두 개의 응용 프로그램은 서로의 캐시 및 데이터 파일에 액세스할 수 있도록 허용하는 공유 ID를 지정할 수 있습니다. 이러한 공유는 AIR에서 지원되지 않습니다.
응용 프로그램 사용자 ID
Android는 Linux 커널을 사용합니다. 설치된 모든 응용 프로그램에는 파일 액세스와 같은 작업에 대한 권한을 결정하는 Linux 형식의 사용자 ID가 할당됩니다. 응용 프로그램, 응용 프로그램 저장소 및 임시 디렉토리의 파일은 파일 시스템 권한에 따라 액세스로부터 보호됩니다. SD 카드와 같은 외부 저장소에 작성된 파일은 해당 SD 카드가 컴퓨터에 대용량 저장 장치로 마운트된 경우 다른 응용 프로그램 또는 사용자가 읽고 수정하고 삭제할 수 있습니다.
인터넷 요청을 통해 수신된 쿠키는 AIR 응용 프로그램 간에 공유되지 않습니다.
Android의 암호화된 데이터
Android의 AIR 응용 프로그램에서는 내장 SQL 데이터베이스에서 사용 가능한 암호화 옵션을 통해 암호화된 데이터를 저장할 수 있습니다. EncryptedLocalStore 클래스는 휴대 장치에서는 지원되지 않습니다.