일부 안드로이드 앱은 이것이 처음 설치되는 것이 아니라는 것을 어떻게 기억합니까?


33

일부 안드로이드 앱은 이전에 동일한 기기에 설치되었는지 기억할 수 있습니다. 1 년 전에 앱을 제거했다고 가정합니다. 1 년 후 동일한 앱을 다시 설치하면 해당 앱이 동일한 전화에 이전에 설치된 것을 인식 할 수 있습니다.

이 기술은 온라인 응용 프로그램에서 사용자가 서비스를 한 번 사용하는 것이 금지 된 경우 새 계정을 다시 만들지 못하도록 영구적으로 금지하는 데 사용됩니다. 이러한 사용자가 나중에 응용 프로그램을 다시 설치하여 새 계정을 만들면 이러한 응용 프로그램은 "처음 존재"를 감지하고이 정보를 서버로 보내 사용자를 다시 금지 할 수 있습니다.

데이터를 지우고 완전히 제거한 후에도 어떻게합니까? 즉, 파일을 휴대폰 어딘가에 보관하면 제거 후에도 삭제되지 않습니다. 이 탐지를 어떻게 비활성화합니까?


이 정보를 왜 삭제 하시겠습니까? 앱 제작자에게는 권리가 있습니까? 나는 이것이 대중적인 의견이라고 생각하지는 않지만 앱을 만드는 데 시간과 어려움을 겪었는지 여부를 고려하십시오.
S. Mitchell

6
@ S.Mitchell Today 일부 앱 개발자 및 대형 광고 회사는 무고한 사용자의 불필요한 세부 정보에 액세스하려고합니다. 그들은 MAC 주소를 원할뿐만 아니라 Wi-Fi SSID를 알고 싶어합니다 .Google은 안드로이드 6에서 부여하지 않으려는 권한을 구현하여 좋은 교훈을주었습니다. 그러나 광고주는 항상 여기서 멈추지 않습니다. 돌아 다니는 방법. 이 개인 정보 보호 시스템을 보장하고 싶습니다.
Dealt

1
@ S.Mitchell Hello Mitchell. 내 질문 때문에 나를 잘못 판단했을 수 있습니다. 아니요. 소셜 또는 온라인 서비스에서 금지되지 않았으며 의심 할 경우 스택 교환에서도 금지되지 않습니다. 그러나 나를 아는 것은 배우는 것입니다. 나는 내가받은 답변으로 실질적인 작업을하고 있지 않습니다. 그러나 분명히 그들은 일이 어떻게 작동하는지 알도록 도와줍니다. 해킹 방법을 모른다면 해킹 방지 보안을 만들 수 없습니다. 같은 비유가 있습니다. 앱이 어떻게 작동하는지 배울 수 없다면 아무 의미가 없습니다.
Dealt

7
@ S.Mitchell : Do app creators have rights?사실, 휴대 전화에서는 그렇지 않습니다. 코드를 실행하고 내 데이터를 휴대 전화에 저장 하도록 할 수 있지만 권리 는 없으며 재량에 따라 두 권한을 취소 할 권리가 있습니다.
dotancohen

2
@ S.Mitchell 나는 그것이 존재한다고 생각하는 이유에 관계없이 모든 질문에 대한 답변을 권장합니다. 이 사이트를 운영하지 않는 것이 좋습니다!
Monica 사과하고 회복하십시오

답변:


33

고유 한 장치 또는 사용자를 식별하는 방법에는 여러 가지가 있습니다.

  1. 기본이 아닌 일부 디렉토리에 파일을 보관하십시오 . 앱은 종종 기기의 내부 저장소에 쓸 수 있습니다. 이 방법은 쉽고 오프라인에서 작동하며 가장 쉽게 찾을 수 없습니다 (파일을 시스템과 같은 디렉토리 에 배치하면 아무도 삭제 하지 않아도 됩니다).
  2. 고유 한 장치 추적 ANDROID_ID(새로 설치할 때마다 고유함) :이 방법은 간단하지만 최소한 처음 사용하는 경우 인터넷 액세스가 필요합니다. 그것은 너무 관입 적이 지 않으며 공장 초기화의 경우 지속되지 않습니다. 또한 사용자마다 고유합니다. 이 정보를 참조하십시오 .
  3. IMEI : 매우 방해가 없고 변경할 수 없지만 SIM 가능 장치가 필요합니다. IMEI는 각 기기마다 고유하며 변경할 수 없으며 사용자를 팔로우하지 않습니다. 즉, 기기를 판매하는 경우 새 소유자에게는 앱이 이미 전화 중임을 알리는 화면이 나타납니다.
  4. 사용자의 Google 계정을 따르십시오 .이 ANDROID_ID방법 은 접근 방식 과 거의 동일 하지만 액세스하려면 사용자의 명시적인 권한 (Android 6.0 이상)이 필요합니다. 따라서 Google 계정 에코 시스템을 활용하는 앱 (예 : 게임의 최고 점수 및 성과)은 특정 사용자를 따르고 앱 설치 여부에 관계없이 더 많은 정보를 얻을 수 있습니다.

2, 3 및 4는 네트워크 연결 및 개발자 측 서버가 필요합니다.


Xprivacy를 사용하여 2, 3 및 4 부분을 관리 할 수 ​​있습니다. 나는 그들 각각을 스푸핑합니다. 그러나 첫 번째는 발견하기 쉽지 않습니다. 어쨌든이 취약점을 탐지 할 수 있습니까?
defalt

3
취약점이 아니라 악용 된 기능 일뿐입니다. 레지스트리에 파일을 보관하는 응용 프로그램과 매우 유사합니다. 휴대 전화 내부 저장소의 모든 디렉토리를 탐색하고 의심스러운 파일을 찾는 것 외에는 할 일이 많지 않습니다.
GiantTree

1
행운을 빕니다 :이 응용 프로그램을 찾고 / 만들기. 내부 저장소에 파일이 누락되어 시스템이 충돌 할 수 없습니다. 일반적으로 앱은 동일한 파일을 사용하는 동일한 프레임 워크를 사용하는 경향이 있지만 이미 지적했듯이 해당 파일을 찾기가 불가능합니다 (항상은 아니지만 대부분). "id", "user"또는 이와 유사한 것을 포함하는 파일에는 종종 이러한 ID가 포함되며 해당 ID는 일반적으로 광고에 사용됩니다.
GiantTree

2
@ S.Mitchell 아니요 온라인 서비스, 웹 응용 프로그램 및 온라인 게임을 금지 한 적이 없습니다. 그러나 시스템이 인터페이스 뒤에서 어떻게 작동하는지 아는 것이 안드로이드 개발에서 발전하는 올바른 단계라고 생각합니다.
Dealt

8
@ user334283 "검색중인 파일 이름을 모르십시오". 이것은 거짓입니다. Linux OS 인 Android strace에는 모든 시스템 호출을 추적하는 데 사용할 수있는 유틸리티가 있습니다. 따라서 strace장치에서 파일과 관련된 모든 시스템 호출을 사용하여 앱을 시작 하고 확인해야하며 앱이 존재하는지 확인 / 확인한 모든 파일을 발견합니다. 물론 : 아마도 스마트 폰에서하기가 매우 어렵지만 확실히 가능합니다 .
Bakuriu

2

스토리지가 아니라 클라우드에 연결되어 있습니다. 데이터를 삭제하더라도 기억하는 방식입니다. 이 기능을 끄려면 기기의 설정 앱으로 이동하여 개인 계정 (Google에서 여러 계정이있는 경우 원하는 계정을 누르십시오)에서 Google 계정을 누른 다음 자동 동기화하지 않으려는 앱을 끕니다.


자동 동기화는 근본적인 문제가 아닙니다. 타사 서버는 앱이 MAC 주소, IMEI, 장치 ID, 광고 ID를 수집하고 나중에 장치를 다시 감지 할 수 있도록 서버에 저장할 수 있는지 확인합니다. 이러한 세부 정보를 스푸핑하면 개인 정보가 보호되지만 앱이 Windows에서와 같이 "레지스트리 항목"을 작성하는 경우 감지 할 수 없습니다.
Dealt

2

GiantTree의 답변이 가장 잘 설명되지만 고려해야 할 또 다른 요점이 있습니다. " 암호 패턴 " 은 분명 하지만이 식별은 특정 사용자 데이터 를 핑거 프린팅 하여 수행 할 수도 있습니다 . 이는 첫 번째 포인트 ( "파일 유지")의 변형으로 볼 수 있지만 감지하기가 더 어렵고 덜 편리합니다. 피하기 위해.

이것이 얼마나 탄력적인지는 선택한 데이터에 따라 다릅니다. 가장 분명한 방법은 연락처 세부 정보를보고 일부 형태의 지문을 사용하는 것입니다. 사진 타임 스탬프 및 기타 메타 데이터를 사용할 수도 있습니다. 분명히 시간이 지남에 따라 이러한 변경이 이루어 지므로 사용 된 모든 방법은 수정 후에도 여전히 밀접한 대답을해야합니다 (따라서 전통적인 해시 함수와 다릅니다). 또한 사용자가 추적 된 데이터를 단순히 지우지 않는다고 보장 할 수는 없지만 대부분의 경우 사람들은이 작업을 원하지 않습니다.

전화 하드웨어는 일반적으로 PC 하드웨어보다 더 균일하기 때문에 브라우저 지문을 조사하여 작동 방식을 파악할 수 있습니다. 즉, 특정 전화 세부 정보를 추가 하면 지문을 조금 좁히는 데 도움이 될 수 있습니다 .

이 접근 방식은 특히 사용자가 전화를 전환하고 세부 정보를 새 전화로 가져 오는 경우 (이 경우 전화 세부 정보가 지문에 들어 가지 않는 한) 새 전화가 이미 설치되어있는 것으로 감지 될 수 있습니다. 질문으로 그러나 앱이 사용자를 금지하려는 시나리오에서는 실제로 특정 전화 자체를 금지하는 것이 아니라 원하는 결과 일 수 있습니다.

참고 : 앱을 작성하는 경우 작동하는 방법으로 이것이 정확하거나 "좋다"고 말하지는 않지만 사람들이 자신의 여부를 알아낼 수있는 토론을 통해서만 토론하는 것이 합리적입니다. 그것에 대해 무언가를 할 수있을 정도로 우려하고있을 수 있습니다.


1

https://developer.android.com/reference/android/content/SharedPreferences.html과 같은 SharedPreferences 클래스 가 있습니다. 일부 앱은 기본 설정 데이터를 저장하는 데 사용합니다. 앱을 제거해도이 데이터는 삭제되지 않습니다. 나중에 앱을 다시 설치해도 이전에 저장된 SharedPreferences 키를 계속 사용할 수 있습니다.


6
SharedPreferences앱이 제거되면 실제로 삭제 됩니다. 개발자가 백업을 설정하는 방법이 있지만 기본적으로 설치 제거시 제거됩니다. (출처 : 개발자로서 기본 설정을 지우려면 앱을 제거합니다. stackoverflow.com/a/9815641/1438733 참조 )
Eric

1

"만기 시간"이 매우 큰 영구 쿠키 를 사용할 수도 있습니다 . 계정 기능을 통해 저장된 자격 증명이 공개되지 않았거나 공개되지 않았을 때 동일한 개발자의 여러 앱이 전통적으로 자격 증명을 공유하는 데 사용한 방법이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.