2011-02-03 3 views
3

파일에 응용 프로그램 별 보안을 제공 할 수 있습니까? 난 파일이 원하는 응용 프로그램에 의해서만 액세스 될 수 있고 다른 응용 프로그램에서는 액세스 할 수 없기를 바랍니다.안드로이드 파일 보안

답변

3

내부 파일 시스템에 저장된 파일은 기본적으로 보호되므로 SD 카드에 파일이 저장되어 있다고 가정합니다.

다른 응용 프로그램에서 데이터를 보호 할 수있는 유일한 방법은 일종의 암호화를 사용하는 것입니다.

Android는 각 애플리케이션에 고유 한 사용자 ID를 부여한 다음 표준 Linux 파일 시스템 액세스 권한으로 내부 파일 시스템에 저장된 데이터를 보호합니다. Android의 전체 보안 모델의 핵심이므로이 기능을 사용하기 위해 수행해야 할 작업은 없습니다.

그러나 외부 저장 장치의 경우 sd 카드와 마찬가지로 FAT 파일 시스템을 사용하여 Windows와 호환되는 카드를 만듭니다. 좋은 생각이지만 FAT 파일 시스템에는 액세스 권한 기능이 없으므로 SD 카드에 저장된 모든 내용을 모든 응용 프로그램에서 사용할 수 있습니다. (SD 카드에 액세스해야하는 앱은 허가를 요청해야합니다.)

(이것은 Android의 거대한 무결성 문제입니다. 민감한 정보는 SD 카드에 저장되어서는 안되며 모든 찍은 사진은 거기에 저장됩니다 .SD 카드 및 인터넷에 액세스 할 수있는 앱을 사용하면 모르는 사이에 모든 사진을 서버에 쉽게 업로드 할 수 있습니다.)

0

AndroidManifest.xml 파일에서 선언하여 권한을 가지고 게임을 할 수 있습니다. Android 개발자 권한 가이드에 명시된 바와 같이 예를 들어

, 다음과 같이이 작업에 대한 권한을 선언 할 수있는 활동 중 하나를 시작할 수있는 사용자를 제어하려는 응용 프로그램 :

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.me.app.myapp" > 
    <permission android:name="com.me.app.myapp.permission.DEADLY_ACTIVITY" 
     android:label="@string/permlab_deadlyActivity" 
     android:description="@string/permdesc_deadlyActivity" 
     android:permissionGroup="android.permission-group.COST_MONEY" 
     android:protectionLevel="dangerous" /> 
    ... 
</manifest> 

당신이 webpage 확인하실 수 있습니다 당신이 명확하지 않은 경우 우리가 할 수있는 여기에 대해 토론하십시오, 나는 정확한 대답을주기 전에 끝나야합니다.

편집 : post도 확인하십시오.

0

예. 간단한 해결책은 앱을 설치할 때 /dev/urandom을 사용하여 임의의 암호화 키를 생성하고 키를 로컬 저장소 (SD 카드가 아닌)에 저장 한 다음이 키를 사용하여 SD 카드에 저장 한 파일을 암호화하는 것입니다. 이렇게하면 다른 앱이 파일을 읽을 수 없습니다.

물론이 접근법의 한 가지 결과는 사용자가 SD 카드를 제거하고 PC에 넣은 다음 해당 파일을 PC에 복사 할 수 없다는 것입니다.