안드로이드 앱 이용자 접근 권한
필수적 접근 권한? 선택적 접근 권한?
안드로이드에서는 권한(Permission) 이외에 필수적 접근 권한, 선택적 접근 권한이라는 용어는 없습니다.
기술적인 용어나 안드로이드에서 정식으로 쓰는 용어는 아닙니다.
방송통신위원회에서 개인정보 보호 규정을 위해 만든 용어들입니다.
올해 3월에 스마트폰 앱 접근권한 개인정보보호 안내서를 통해 필수적, 선택적 접근 권한과 이와 관련된 준수해야 할 사항들을 알려왔습니다.
비교적 최근이기에 관련 내용도 별로 없고, iOS 포함한 다른 스마트폰 OS에서도 이용하는 용어이기 때문에 정의가 모호합니다. 뿐만 아니라 안드로이드에서 이용하는 '권한'과 개인정보보호 안내서의 '접근 권한'의 정의 범위가 서로 달라서 애매한 부분들이 있습니다.
필수적, 선택적 접근 권한과 이를 어떻게 처리하고 대처해야 하는지에 대해 알아보겠습니다.
먼저 안드로이드에서 쓰이는 권한(Permission)에 대해 알아보겠습니다.
모든 안드로이드 앱은 접근이 제한된 샌드박스에서 실행됩니다.
샌드박스는 애플리케이션이 설치되는 시점에 고유의 UID(User Indentifer), GID(Group Identifer)를 부여받아 각각의 권한으로 실행되는 영역을 뜻합니다.
자체 샌드박스 밖에 있는 리소스나 정보를 앱이 사용해야 하는 경우에는 앱이 적절한 권한을 요청해야 합니다.
안드로이드 권한의 종류는 약 140개입니다.
종류가 다양하지만 권한을 많이 이용한다고 좋은 게 아니기 때문에, 꼭 필요한지를 파악하여 적절하게 이용하는 게 중요합니다.
권한을 요청하려면 아래와 같이 AndroidManifest에 <uses-permission> 요소를 추가해야 합니다.
권한 선언 후, 시스템은 권한들의 보호 레벨에 따라 다르게 동작합니다.
접근 권한 관점에서 보면 위험한 권한과 그 외의 권한으로 나눌 수 있습니다.
위험한 권한이란, 앱이 이용자의 개인 정보를 포함하거나 이용자의 저장된 데이터나 다른 앱의 작업에 영향을 미칠 수 있는 데이터나 리소스를 필요로 하는 권한입니다.
예를 들어, READ_CALENDAR 권한은 이용자의 개인적인 일정 정보들에 접근할 수 있기 때문에 위험한 권한입니다.
안드로이드에서 정의하는 위험한 권한에는 아래와 같은 권한들이 있습니다.
시스템이 알아서 권한을 부여하는 다른 권한들과 달리, 위험한 권한은 기기 실행 중이나 설치 시 권한을 부여하도록 사용자에게 요청합니다.
기기가 Android 5.1(API 레벨 22) 이하를 실행하거나 앱의 target SDK가 22 이하인 경우, 앱 설치 시 권한을 부여하도록 이용자에게 요청합니다. 따라서 설치 시에 한번 부여하면 다시 수정할 수 없습니다.
기기에서 Android 6.0(API 레벨 23) 이상을 실행하거나 앱의 target SDK가 23 이상인 경우, 앱이 실행되는 도중에 필요한 권한을 요청합니다. 이용자는 각 권한을 부여하거나 거부할 수 있으며, 설치 후에 앱 설정을 통해 다시 수정할 수 있습니다.
그런데 자세히 보면 앱 설정을 통해 수정할 수 있는 것이 개별 권한이 아닌 권한 그룹입니다.
따라서 READ_CALENDAR 권한을 요청하기 위해 CALENDAR 권한 그룹을 활성화시키면, 자동으로 WRITE_CALENDAR 권한도 요청이 됩니다.
좀 더 자세한 내용은 아래 링크를 참고해 주시기 바랍니다.
‘스마트폰 앱 접근권한’이란 스마트폰 앱 서비스 제공자가 앱을 통해
이용자의 스마트폰 내에 저장되어 있는 정보 및 설치된 기능에 접근하여
해당 정보를 읽고 수정하거나 해당 기능을 실행할 수 있는 권한을 말합니다.
아래와 같은 정보와 기능들에 접근할 수 있는 권한을 앱 접근 권한이라 합니다.
이용자 저장 정보 : 연락처, 일정, 영상, 통신내용, 바이오정보 등
자동 저장 정보 : 위치정보, 통신기록, 인증정보, 신체활동기록 등
단말장치 식별 고유 정보 : 전기통신사업법 제60조의 2 제1항에 따른 고유 식별번호 (IMEI) 및 MAC 주소 등
입력 출력 기능 : 영상 촬영 기능, 음성인식 기능, 바이오정보 및 건강정보 감지센서 기능 등
좀 더 자세한 내용은 스마트폰 앱 접근권한 안내서 문서를 참고하시기 바랍니다.
스마트폰 앱 접근권한 안내서에서는 접근 권한과 위험한 권한을 동일시 본다는 직접적인 내용은 없습니다.
하지만 안드로이드에서 제공하는 140여 개의 권한 중 위에서 정의한 개인 정보와 기능에 접근할 수 있다는 점에서 위험한 권한과 유사해 보입니다.
결론부터 말하면 앱 접근 권한을 위험한 권한으로 볼 수 있습니다. (개인적인 의견입니다.)
스마트폰 앱 접근권한 안내서 내용을 보면 앱 서비스 제공자는 앱 접근 권한에 대해 고지를 해야 할 뿐만 아니라, 이에 대한 동의를 받아야 합니다.
동의/철회 기능에 대한 예시로 아래와 같이 나와있는데, 안드로이드에서의 앱 권한 활성화/비활성화 기능은 위험한 권한만 할 수 있습니다.
즉, 위험한 권한이 아닌 다른 권한은 활성화/비활성화를 시킬 수 있는 방법이 없기에 앱 접근 권한은 위험한 접근으로 볼 수 있습니다.
서비스를 제공하기 위해 반드시 필요한 접근 권한인지 판단하여 필수적, 선택적 접근 권한으로 나눌 수 있습니다.
필수적 접근 권한은 이용자가 권한 접근에 동의하지 않으면 해당 서비스의 이용이 제한될 수 있습니다.
선택적 접근 권한은 이용자가 선택에 따라 접근 권한을 동의하지 않을 수 있으며, 이용자가 동의하지 않더라도 앱을 이용할 수 있습니다.
음악 앱인 멜론을 예로 들면 필수적 접근 권한으로 전화, 저장 공간이 있고 선택적 접근 권한으로 연락처, 마이크, SMS가 있습니다.
필수적 접근 권한과 선택적 접근 권한을 구분하여 다음의 내용을 이용자에게 고지해야 합니다.
필수적 접근 권한
접근 권한이 필요한 정보 및 기능의 항목
해당 정보 및 기능에 접근이 필요한 이유
선택적 접근 권한
접근 권한이 필요한 정보 및 기능의 항목
해당 정보 및 기능에 접근이 필요한 이유
접근 권한 허용에 동의하지 않을 수 있다는 사실
고지 방법은 아래와 같이 OS 버전이나 설치 경로, 접근 권한의 종류에 따라 나뉠 수 있습니다.
OS 6.0 미만 버전에서는 접근 권한을 설명하고 동의/철회할 수 있는 기능이 제공되지 않기 때문에, 앱 마켓을 통해 고지해야 합니다. 마켓이 아닌 선탑재 앱의 경우엔 앱 최초 실행 화면이나 OS 최초 구동 화면에서 고지해야 합니다.
하지만 예외적으로 스마트폰 제조-공급 과정에서 설치된 앱이 스마트폰의 본질적인 기능(촬영, 영상 및 음악 재생, 인터넷 브라우저, 전화, 메시지, 연락처)을 수행한다면 접근 권한이라면 고지하지 않아도 괜찮습니다.
OS 6.0 이상 버전에서는 실행 중에 접근 권한을 설명하고 동의/철회할 수 있기 때문에 앱 실행 화면에서 고지합니다.
만약 선택적 접근 권한만 있다면 굳이 최초 실행 화면이 아닌 해당 정보와 기능에 최초에 접근할 때 고지해도 상관없습니다.
서비스하는 앱이 지원하는 OS 버전에 따라 나뉘지만,
스마트폰 앱 접근권한 개인정보보호 안내서 내용에 따르면
마켓, 앱 실행 시 둘 군데 모두 고지하기를 권장합니다.
정보통신망법 이용촉진 및 정보보호 등에 관한 법률
제22조의 2(접근권한에 대한 동의)에 따라
위의 내용대로 접근 권한들을 고지하면 됩니다.
2017년 3월 34일부터 시행된 이 법을 위반한다면 과징금, 벌칙, 과태료 등 여러 방법으로 시정 조치 명령을 받게 됩니다.
그런데 아직은 유예 기간인지 아니면 다른 이유가 있어서 인지는 모르지만, 많은 앱들이 접근 권한에 대해 제대로 고지하고 있지 않은 상황인데도 시정 조치 명령을 받거나 다른 연락을 받았다는 아직 소식은 못 들었습니다.
규정에 대한 자세한 내용은 스마트폰 앱 접근권한 개인정보보호 안내서를 참고하시기 바랍니다.
접근 권한 고지 방법에 대한 예제를 찾으려고 여러 앱들을 받아봤는데 필수적, 선택적 접근 권한에 대해 잘 못 이해하거나 고지 방법도 이상한 앱들이 많았습니다.
안내서 자체에 표현도 애매한 문제도 있고 국내에서만 시행되는 법이기에 자료도 거의 없습니다.
게다가 구글에서 권장하는 권한 관련 Material 디자인과도 다른 부분이 있습니다.
앱에서 이용하는 위험한 권한을 잘 구분해서 접근 권한에 대해 고지하시기 바랍니다.