카카오톡이 왜 SMS 발송 권한을 필요로할까요?

스마트폰의 보안이 화제가 되고 있습니다. 테스티드도 그에 맞추어 앱의 보안을 살펴보고 있습니다.

스마트폰 보안에서 쉽게, 그리고 먼저 살펴볼 것은 앱이 필요로하는 권한이 아닐까 싶습니다. 라인과 카톡 모두 한국에서 인기있는 메신저 앱입니다. 두 앱이 각각 Android의 어떤 권한을 필요로하는지 살펴보았습니다. 앱 패키지 파일 안의 Manifest.xml 파일에 있는 정보를 기준으로 보았습니다.

Android에서 앱 패키지 안에 있는 Manifest.xml 파일을 보면, uses-permission과 uses-feature라는 선언을 볼 수 있습니다. uses-permission은 앱의 올바른 동작을 위해 꼭 선언을 해주어야하는 사항이고, uses-feature는 디바이스의 어떤 기능을 사용하는지 알려주기 위한 것뿐 앱의 동작에는 관여하지 않습니다.

Android와 Google API와 관련된 것들만 추려보았습니다. 권한만 보면 라인이29개, 카카오톡이 32개로, 카카오톡이 더 많은 권한을 필요로합니다. 상세한 내용은 아래와 같습니다.

라인 카카오톡 권한 비교_20151125

몇가지 차이가 눈에 띕니다. 특히 카카오톡만 android.permission.SEND_SMS와 android.permission.READ_OWNER_DATA를 요구하는 것이 눈에 띕니다.
android.permission.SEND_SMS 는 앱이 SMS를 발송할 수 있도록 하는 권한입니다.

android.permission.READ_OWNER_DATA는 API Level 9 (Gingerbread)부터 사라진 권한인데, 아직 남아있습니다. 이 권한에 대한 설명은 명확하지 않지만, 인터넷의 누군가는 다음과 같이 말하고 있습니다. __Read access to owner data saved on the device. Lacking documentation, I again can guess here only; it seems to be bound to the “Me” contact in your address book.__

카카오톡에만 SEND_SMS가 있는 것은SMS 인증 때문이 아닐까 생각해보았습니다만, 카카오톡 설치 후 처음 실행할 때 인증하는 것은 카카오톡 서버에서 SMS를 발송하는 것으로 보입니다. 카카오톡이 설치된 스마트폰에 유심을 넣지 않아도 인증 SMS가 발송되는 것을 보아서는요. 카카오톡 어디에서 SMS 발송이 필요한지 의문입니다.

테스티드는 모바일 앱이 다양한 디바이스에서 잘 동작하는지 확인하는, 간소화된 디바이스 호환성 테스트를 제공하고 있습니다. 이 테스트는 http://testyd.co/에서 이용해보실 수 있습니다.

앱의 권한을 비교하는 기능을 만들어보려고 노력하고 있습니다. 혹시 이와 관련하여 필요하신게 있으면 연락주세요. 함께 만들어보아요. 연락은 여기로… [email protected]