Android

[android] 디바이스들의 유니크한 값 추출

개미맨 2018. 3. 8. 23:00


유니크한 값은 아래와 같은 경우의 사용할 수 있다.


1. 서버의 게임점수를 저장하는 안드로이드 사용자 식별.

2. 앱 설치 추적.

3. 복사 방지를 위한 DRM 생성.

4. 기기가 처음 연결을 시도 할 때만 인증을 받고 두 번째 부터는 허용하는 경우. 

   내가 현재 RCU프로젝트를 진행하면서 필요한 경우이다ㅋㅋㅋ

   BLE 서버 <-> 리모컨 통신을 하는데 처음 연결을 시도하는 경우에만 인증을 받고 인증받은 기기인지 식별하기위해

   유니크한 값이 필요로 했다.


현재까지 유니크한 값을 얻기 위해서는 몇 가지 해결책이 존재하지만 완벽하지 않다. 


그래서 아래 블로그에서는 5가지 솔루션을 제공하고 설명한다.


1. Unuque Telephony Number ( IMEI, MEID, ESN, IMSI )

장점

핸드폰의 경우 쉽게 유니크한 값을 얻을 수 있다.

단점

android.permission.READ_PHONE_STATE 권한이 필요하기 때문에 유저에게 명시해야한다.

태블릿에서는 사용하지 못한다.


2. Mac Address

Wifi가 연결되어야 값을 얻어 올 수 있기 때문에 추천하지 않는다.


3. Serial Number

모든 안드로이드 디바이스가 시리얼넘버를 가지고 있지 않기 때문에 추천하지 않는다.


4. Secure Android ID

유명한 핸드폰 제조사 제품에서 매번 동일한 Android_ID 를 가지는 알려진 버그가 있다.

그럼에도 불구하고 물리적으로 디바이스의 완벽히 유니크한 값을 사용하기 원한다면 이방법을 추천한다.


5. Use UUID ( google I/O에서 소개 )

추천하는 해결책은 UUID 해결책을 사용하여 유니크한 값을 얻는 것이다. 하지만 특정 디바이스의

물리적으로 완벽한 유니크값을 사용하길 원한다면 4. Secure Android ID 솔루션을 사용해라.

100% 보장하지는 않지만 다른 솔루션 보다는 좋다.


틀린 부분이 있다면 알려주세요^^


감사합니다.


https://medium.com/@ssaurel/how-to-retrieve-an-unique-id-to-identify-android-devices-6f99fd5369eb