본문 바로가기
X

앱 개발 방법 - 애플리케이션 기본 항목, Android 앱의 보안 기능

by green post it 2021. 12. 30.
반응형

애플리케이션 기본 항목

Android 앱은 Kotlin, Java, C++ 언어를 사용하여 작성할 수 있습니다. Android SDK 도구는 모든 데이터 및 리소스 파일과 함께 코드를 컴파일하여 하나의 APK를 만듭니다. Android 패키지는 접미사 .apk 인 아카이브 파일입니다.

한 개의 APK 파일에는 Android 앱의 모든 콘텐츠가 들어 있으며, Android로 구동하는 기기가 앱을 설치할 때 바로 이 파일을 사용합니다.

Android 앱의 보안 기능

각 Android 앱은 자체적인 보안 샌드박스에 속하며, 이는 다음과 같은 Android 보안 기능으로 보호됩니다.

  • Android 운영체제는 멀티유저 Linux 시스템으로 여기서 각 앱은 각기 다른 사용자와 같습니다.
  • 기본적으로 시스템이 각 앱에 고유한 Linux ID를 할당합니다. 이 ID는 시스템만 사용할 수 있으며 앱에서는 인식하지 못합니다. 시스템은 앱 안의 모든 파일에 대해 권한을 설정하여 해당 앱에 할당된 사용자 ID만 이에 액세스할 수 있도록 합니다.
  • 각 프로세스에는 자체적인 가상 머신(VM)이 있고, 그렇기 때문에 한 앱의 코드가 다른 앱과는 격리된 상태로 실행됩니다.
  • 기본적으로 모든 앱이 앱 자체의 Linux 프로세스에서 실행됩니다. Android 시스템은 앱의 구성 요소중 어느 하나라도 실행해야 하는 경우 프로세스를 시작하고, 더 이상 필요 없거나 시스템이 다른 앱을 위해 메모리를 복구해야 하는 경우 해당 프로세스를 종료합니다.

Android 시스템은 이런 방식으로 최소 권한의 원리를 구현합니다. 다시 말해, 각 앱은 기본적으로 자신의 작업을 수행하기 위해 필요한 구성 요소에만 액세스 권한을 가지고 그 이상은 허용되자 않습니다.

 

이렇게 하면 대단히 안전한 환경이 구성되어 앱이 시스템에서 권한을 부여받지 못한 부분에는 액세스할 수 없게 됩니다.

그러나 앱이 다른 앱과 데이터를 공유하고 시스템 서비스에 액세스하는 방법은 여러가지가 있습니다.

 

  • 두 개의 앱이 같은 Linux 사용자 ID를 공유하도록 설정할 수도 있습니다. 이 경우 두 앱은 서로 파일에 액세스할 수 있게 됩니다. 시스템 리소스를 절약하기 위해 사용자 ID가 동일한 앱들이 같은 Linux 프로세스에서 실행되고 같은 VM을 공유하도록 설정할 수도 있습니다. 또한 이러한 앱은 같은 인증서로 서명해야 합니다.
  • 앱은 사용자의 연락처, SMS 메시지, 마운트 가능한 저장소(SD 카드), 카메라, 블루투스를 비롯한 여러가지 기기 데이터에 액세스할 권한을 요청할 수 있습니다.사용자는 이러한 권한을 명시적으로 부여해야 합니다.

 

구글 안드로이드 앱을 만드는 언어는 Kotlin, Java, C++로 작성하고 안드로이드 운영체제는 멀티유저 리녹스 스시템이며 앱은 각각 고유한 ID를 시스템이 할당한다. 안드로이드는 앱은 자체적인 보안 샌드박스에 속한다.
반응형