안드로이드는 각각의 앱과 시스템 내 영역들이 자신의 고유한 프로세스 상에서 실행되는 멀티 프로세스 시스템이다.
앱과 시스템간 보안은 사용자나 그룹아이디 같은 표준 리눅스 설비를 통해 프로세스 레벨에서 강제로 결정된다.
세세한 부분에 대해서는 퍼미션 메커니즘을 제공한다.
- security architecture
안드로이드 앱 보안에 핵심은 자신의 앱이 다른 앱에 나쁜 영향을 미치면 안된다. 를 기반으로 한다.
- Application Signing
모든 안드로이드 앱은 개발자가 보유한 인증서로 서명되어야 한다. 이 인증서로 앱 작성자를 식별한다.
사인이 보안에 미치는 가장 중요한 사항은 퍼미션에 누가 접근이 가능하며 누가 사용자 아이디를 공유할 수 있는지를 결정할 수 있다.
- User IDs and File Access
apk 는 각가 리눅스 유저 아이디가 부여된다 이는 앱이 설치될 때 할당되며 디바이스에 앱이 존재하는 동안에 계속 유지 된다.
getSharedPreferences(String, int), openFileOutput(String,int), openOrCreateDatabase(String,int,SQLiteDatabase.CursorFactory) 등에 함수로 파일 생성시 이를 다른 패키지에서 사용할 수 있게 하기 위해 MODE_WORLD_READABLE 와 MODE_WORLD_WRITEABLE 플래그를 설정해 퍼미션을 설정할 수 있다.
퍼미션에 대한 오류는 SecurityException 으로 나타난다. 하지만 모든 경우에 보장 받지 못하니 주의 하라, 하지만 거의 모든 퍼미션 오류는 시스템 로그에 기록될 것이다.
퍼미션 설정은 Manifest.permission 에서 볼 수 있다.
모든 앱은 자기 자신의 퍼미션을 정의하고 강제할 수 있다.
- 다음의 시점에서 특정 퍼미션이 강제로 적용될 수도 있다.
> 시스템 내부로 호출, 앱이 특정 함수를 수행하는 걸 방지 하기 위해서
> 액티비티를 시작하는 시점, 앱이 다른 앱의 액티비치를 런치하는것을 방지하기 위해
> 브로드캐스트를 주고 받는 시점, 누가 브로드 캐스트 정보를 수신/제어 할 수 있는지 누가 브로드 캐스트를 보낼 수 있는지 제어하기 위해
> 컨텐츠 프로바이더에 접근해서 오퍼레이션 하는 시점
> 서비스를 바인딩하거나 시작하는 시점
- Declaring and Enforcing Permissions
앱과 시스템간 보안은 사용자나 그룹아이디 같은 표준 리눅스 설비를 통해 프로세스 레벨에서 강제로 결정된다.
세세한 부분에 대해서는 퍼미션 메커니즘을 제공한다.
- security architecture
안드로이드 앱 보안에 핵심은 자신의 앱이 다른 앱에 나쁜 영향을 미치면 안된다. 를 기반으로 한다.
- Application Signing
모든 안드로이드 앱은 개발자가 보유한 인증서로 서명되어야 한다. 이 인증서로 앱 작성자를 식별한다.
사인이 보안에 미치는 가장 중요한 사항은 퍼미션에 누가 접근이 가능하며 누가 사용자 아이디를 공유할 수 있는지를 결정할 수 있다.
- User IDs and File Access
apk 는 각가 리눅스 유저 아이디가 부여된다 이는 앱이 설치될 때 할당되며 디바이스에 앱이 존재하는 동안에 계속 유지 된다.
getSharedPreferences(String, int), openFileOutput(String,int), openOrCreateDatabase(String,int,SQLiteDatabase.CursorFactory) 등에 함수로 파일 생성시 이를 다른 패키지에서 사용할 수 있게 하기 위해 MODE_WORLD_READABLE 와 MODE_WORLD_WRITEABLE 플래그를 설정해 퍼미션을 설정할 수 있다.
퍼미션에 대한 오류는 SecurityException 으로 나타난다. 하지만 모든 경우에 보장 받지 못하니 주의 하라, 하지만 거의 모든 퍼미션 오류는 시스템 로그에 기록될 것이다.
퍼미션 설정은 Manifest.permission 에서 볼 수 있다.
모든 앱은 자기 자신의 퍼미션을 정의하고 강제할 수 있다.
- 다음의 시점에서 특정 퍼미션이 강제로 적용될 수도 있다.
> 시스템 내부로 호출, 앱이 특정 함수를 수행하는 걸 방지 하기 위해서
> 액티비티를 시작하는 시점, 앱이 다른 앱의 액티비치를 런치하는것을 방지하기 위해
> 브로드캐스트를 주고 받는 시점, 누가 브로드 캐스트 정보를 수신/제어 할 수 있는지 누가 브로드 캐스트를 보낼 수 있는지 제어하기 위해
> 컨텐츠 프로바이더에 접근해서 오퍼레이션 하는 시점
> 서비스를 바인딩하거나 시작하는 시점
- Declaring and Enforcing Permissions
'Android' 카테고리의 다른 글
Uploading files to HTTP server using POST. Android SDK. (0) | 2013.10.08 |
---|---|
javascript to java interface on android (0) | 2013.10.08 |
checking installed app (0) | 2013.10.08 |
content providers (0) | 2013.10.08 |
databases (0) | 2013.10.08 |