แอพ android บางตัวจำได้อย่างไรว่านี่ไม่ใช่ครั้งแรกที่พวกเขากำลังติดตั้ง


33

แอพ android บางตัวสามารถจำได้ว่าติดตั้งไว้ในอุปกรณ์เดียวกันก่อนหน้านี้หรือไม่ สมมติว่าคุณถอนการติดตั้งแอปเมื่อหนึ่งปีที่แล้ว หลังจากหนึ่งปีหากคุณติดตั้งแอพเดียวกันนั้นอีกครั้งแอพนั้นจะสามารถรับรู้ได้ว่าเคยติดตั้งแอพนั้นมาก่อนบนโทรศัพท์เครื่องเดียวกัน

แอปพลิเคชันออนไลน์ใช้เทคนิคนี้เพื่อห้ามไม่ให้ผู้ใช้สร้างบัญชีใหม่อีกครั้งอย่างถาวรหากพวกเขาถูกแบนจากการใช้บริการหนึ่งครั้ง เมื่อผู้ใช้ดังกล่าวสร้างบัญชีใหม่โดยติดตั้งแอปพลิเคชันใหม่ในภายหลังแอปเหล่านี้สามารถตรวจพบ "การปรากฏตัวครั้งแรก" และส่งข้อมูลนี้ไปยังเซิร์ฟเวอร์เพื่อให้ผู้ใช้สามารถถูกแบนได้อีกครั้ง

พวกเขาจะทำอย่างไรแม้หลังจากล้างข้อมูลและถอนการติดตั้งอย่างสมบูรณ์? หมายความว่าพวกเขาเก็บไฟล์ไว้ในที่ซึ่งไม่ถูกลบหลังจากถอนการติดตั้ง ฉันจะปิดการตรวจจับนี้ได้อย่างไร


ทำไมคุณต้องการลบข้อมูลนี้ ผู้สร้างแอปมีสิทธิ์หรือไม่ ฉันไม่คาดหวังว่าสิ่งนี้จะเป็นความคิดเห็นยอดนิยม แต่ให้พิจารณาว่าคุณใช้เวลาและปัญหาในการสร้างแอปหรือไม่
S. Mitchell

6
@ S.Mitchell วันนี้นักพัฒนาแอปและ บริษัท โฆษณาขนาดใหญ่พยายามเข้าถึงรายละเอียดที่ไม่จำเป็นจากผู้ใช้ที่ไร้เดียงสา ไม่เพียง แต่พวกเขาต้องการที่อยู่ MAC แต่พวกเขายังต้องการทราบ SSID ไร้สายของคุณด้วย Google ให้บทเรียนที่ดีแก่พวกเขาโดยการใช้การอนุญาตที่คุณไม่ต้องการให้พวกเขาใน Android 6. แต่ผู้โฆษณาไม่หยุดที่นี่พวกเขามักจะพบ วิธีที่จะได้รับรอบ ฉันต้องการให้ระบบความเป็นส่วนตัวนี้
defalt

1
@ S.Mitchell สวัสดีมิทเชล คุณอาจจะตัดสินฉันผิดเพราะคำถามของฉัน ไม่ฉันไม่ถูกแบนจากบริการโซเชียลหรือออนไลน์และไม่ได้แลกเปลี่ยนสแต็คถ้าคุณสงสัยว่า แต่สำหรับฉันแล้วการรู้คือการเรียนรู้ ฉันไม่ได้ทำงานจริงใด ๆ กับคำตอบที่ฉันได้รับที่นี่ แต่แน่นอนพวกเขาช่วยให้รู้ว่าสิ่งที่ทำงาน หนึ่งไม่สามารถสร้างการรักษาความปลอดภัยป้องกันการแฮ็กถ้าไม่มีใครรู้วิธีการแฮ็ค การเปรียบเทียบเดียวกันอยู่ที่นี่ หากฉันไม่สามารถเรียนรู้วิธีการทำงานของแอพไม่มีประเด็นฉันจะสร้างมันขึ้นมาได้
ขจัด

7
@ S.Mitchell: Do app creators have rights?จริง ๆ แล้วในโทรศัพท์ของฉันพวกเขาทำไม่ได้ ฉันอาจปล่อยให้พวกเขาเรียกใช้รหัสและเก็บข้อมูลไว้ในโทรศัพท์ของฉัน แต่พวกเขาไม่มีสิทธิ์และฉันขอสงวนสิทธิ์ในการเพิกถอนสิทธิ์ทั้งสองอย่างตามดุลยพินิจของฉัน
dotancohen

2
@ S.Mitchell ฉันอยากจะสนับสนุนคำตอบสำหรับทุกคำถามโดยไม่คำนึงถึงสาเหตุที่คุณคิดว่ามีอยู่จริง สิ่งที่ดีที่คุณไม่ได้ใช้เว็บไซต์นี้!
ขอโทษและคืนสถานะโมนิก้า

คำตอบ:


33

มีหลายวิธีในการระบุอุปกรณ์ที่ไม่ซ้ำหรือผู้ใช้:

  1. เก็บไฟล์ไว้ในบางไดเรกทอรี (ไม่ใช่ค่าเริ่มต้น) : คุณได้พูดไปแล้ว แอปสามารถเขียนลงในที่จัดเก็บข้อมูลภายในของอุปกรณ์ได้ วิธีนี้ใช้งานง่ายทำงานแบบออฟไลน์และไม่ใช่วิธีที่ง่ายที่สุด (วางไฟล์ไว้ในไดเรกทอรีที่คล้ายกับระบบและไม่มีใครจะลบทิ้ง)
  2. ติดตามอุปกรณ์ที่ไม่ซ้ำกันANDROID_ID(ไม่ซ้ำกันต่อการติดตั้งใหม่) : วิธีนี้ง่าย แต่ต้องใช้อินเทอร์เน็ตอย่างน้อยในการใช้ครั้งแรก มันไม่รบกวนมากและไม่คงอยู่ในกรณีที่รีเซ็ตเป็นค่าจากโรงงาน มันยังไม่ซ้ำกันต่อผู้ใช้ ดูข้อมูลนี้
  3. IMEI : รบกวนมากไม่สามารถเปลี่ยนได้ แต่ต้องใช้อุปกรณ์ที่รองรับ SIM IMEI นั้นไม่เหมือนกันสำหรับแต่ละอุปกรณ์ไม่สามารถเปลี่ยนแปลงได้และไม่ติดตามผู้ใช้ซึ่งหมายความว่าหากคุณขายอุปกรณ์ของคุณเจ้าของใหม่จะได้รับการต้อนรับด้วยหน้าจอบอกเขาว่ามีแอปอยู่ในโทรศัพท์แล้ว
  4. ติดตามบัญชี Google ของผู้ใช้ : วิธีนี้คล้ายกับANDROID_IDแนวทาง แต่ต้องการการอนุญาตอย่างชัดเจน (Android 6.0+) จากผู้ใช้เพื่อเข้าถึง แอปที่ใช้ประโยชน์จากระบบนิเวศของบัญชี Google (เช่นคะแนนสูงสุดและความสำเร็จในเกม) สามารถติดตามผู้ใช้เฉพาะและรับข้อมูลเพิ่มเติมได้มากกว่าการติดตั้งแอพหรือไม่

2, 3 และ 4 ต้องการการเชื่อมต่อเครือข่ายและเซิร์ฟเวอร์ที่อยู่ด้านข้างของผู้พัฒนา


ฉันสามารถจัดการ 2,3 และ 4 ส่วนโดยใช้ Xprivacy ฉันจะหลอกพวกเขาแต่ละคน แต่คนแรกนั่นไม่ใช่จุดที่ง่าย ฉันสามารถตรวจพบช่องโหว่นี้ได้หรือไม่
defalt

3
มันไม่ใช่ช่องโหว่เพียงคุณลักษณะที่ถูกทารุณกรรม เหมือนแอปพลิเคชันที่เก็บไฟล์ในรีจิสตรี มีไม่มากคุณสามารถทำนอกเหนือจากการผ่านไดเรกทอรีทั้งหมดในที่เก็บข้อมูลภายในของโทรศัพท์ของคุณและค้นหาไฟล์ที่น่าสงสัย
GiantTree

1
ขอให้โชคดีในการหา / สร้างแอพนี้ ระบบไม่สามารถหยุดทำงานเนื่องจากไฟล์บางไฟล์หายไปในที่เก็บข้อมูลภายใน โดยทั่วไปแอปมักจะใช้เฟรมเวิร์กเดียวกันกับที่ใช้ไฟล์เดียวกัน แต่ตามที่คุณได้ชี้ให้เห็นแล้วไฟล์เหล่านั้นเป็นไปไม่ได้ที่จะหาได้ (ไม่เสมอไป แต่ใช้เวลาส่วนใหญ่) ไฟล์ที่มีสิ่งต่าง ๆ เช่น "id", "user" หรือคล้ายกันมักจะมีรหัสดังกล่าวและ ID เหล่านั้นมักจะใช้สำหรับการโฆษณา
GiantTree

2
@ S.Mitchell ไม่ฉันไม่เคยถูกแบนจากบริการออนไลน์เว็บแอพพลิเคชันและเกมออนไลน์ แต่ฉันเชื่อว่าการรู้ว่าระบบทำงานอย่างไรหลังอินเตอร์เฟสเป็นขั้นตอนที่ถูกต้องในการพัฒนาหุ่นยนต์
ขจัด

8
@ user334283 "ไม่เคยรู้ชื่อไฟล์ที่คุณกำลังค้นหา" นี่เป็นเท็จ Android เป็น linux OS มีstraceยูทิลิตีที่สามารถใช้ติดตามการโทรของระบบทั้งหมด ดังนั้นคุณต้องเริ่มต้นแอพของคุณโดยใช้straceและตรวจสอบการโทรของระบบทั้งหมดที่เกี่ยวข้องกับไฟล์บนอุปกรณ์และคุณจะเห็นไฟล์ทั้งหมดที่อ่าน / ตรวจสอบว่าอยู่ไกลโดยแอพ แน่นอนว่า: อาจจะค่อนข้างยากที่จะทำในมาร์ทโฟน แต่แน่นอนที่เป็นไปได้
Bakuriu

2

ไม่ได้เชื่อมต่อกับที่เก็บข้อมูล แต่เชื่อมต่อกับระบบคลาวด์ นั่นคือวิธีที่จะจดจำแม้ว่าคุณจะลบข้อมูลของคุณ ในการปิดการใช้งานนี้ให้ไปที่แอพการตั้งค่าอุปกรณ์แตะบัญชี google ภายใต้ส่วนตัว (แตะบัญชีที่คุณต้องการหากคุณมีหลายบัญชี) จากนั้นปิดแอพที่คุณไม่ต้องการซิงค์อัตโนมัติ


ซิงค์อัตโนมัติไม่ใช่ปัญหาราก เซิร์ฟเวอร์บุคคลที่สามตรวจสอบให้แน่ใจว่าแอปของพวกเขาสามารถรวบรวมที่อยู่ MAC, IMEI, ID อุปกรณ์, รหัสโฆษณาและเก็บไว้ที่เซิร์ฟเวอร์เพื่อตรวจจับอุปกรณ์อีกครั้งในอนาคต การปลอมแปลงรายละเอียดเหล่านี้จะรักษาความเป็นส่วนตัวของคุณ แต่หากแอปกำลังเขียน "รายการรีจิสทรี" เช่นเดียวกับปัญหาใน windows จะไม่สามารถตรวจพบได้
defalt

2

คำตอบของ GiantTree ครอบคลุมได้ดีที่สุด แต่ก็มีอีกประเด็นที่ต้องคำนึงถึง มันชัดเจนว่าจะเป็น " รูปแบบมืด " แต่การระบุนี้สามารถทำได้ผ่านการพิมพ์ลายนิ้วมือข้อมูลผู้ใช้บางอย่าง - ซึ่งสามารถดูได้ว่าเป็นตัวแปรในจุดแรกของเขา ("เก็บไฟล์") แต่จะยากต่อการตรวจจับและสะดวกกว่า หลีกเลี่ยง.

ความยืดหยุ่นนี้จะขึ้นอยู่กับข้อมูลที่เลือก วิธีที่ชัดเจนที่สุดคือการดูรายละเอียดการติดต่อและใช้ลายนิ้วมือในรูปแบบนี้ ทางเลือกอื่นอาจใช้การประทับเวลาภาพถ่ายและข้อมูลเมตาอื่น ๆ เห็นได้ชัดว่าการเปลี่ยนแปลงเหล่านี้เมื่อเวลาผ่านไปดังนั้นวิธีใดก็ตามที่ใช้จะต้องให้คำตอบอย่างใกล้ชิดหลังจากการปรับเปลี่ยน (ดังนั้นจึงแตกต่างจากฟังก์ชั่นแฮชแบบดั้งเดิม) นอกจากนี้ยังไม่มีการรับประกันว่าผู้ใช้จะไม่เพียงแค่ล้างข้อมูลที่ถูกติดตาม แต่ในหลาย ๆ กรณีผู้คนไม่ต้องการทำเช่นนี้

คุณอาจต้องการดูลายนิ้วมือของเบราว์เซอร์เพื่อให้เข้าใจว่ามันทำงานอย่างไรแม้ว่ามันจะแตกต่างกันบ้างเนื่องจากฮาร์ดแวร์โทรศัพท์มักจะมีความสม่ำเสมอมากกว่าฮาร์ดแวร์ของพีซี ที่กล่าวว่าการเพิ่มรายละเอียดโทรศัพท์บางอย่างอาจช่วยให้ลายนิ้วมือแคบลงเล็กน้อย

โดยเฉพาะอย่างยิ่งหากผู้ใช้เปลี่ยนโทรศัพท์และนำรายละเอียดของพวกเขาไปยังโทรศัพท์ใหม่ - ในกรณีนี้ (ยกเว้นว่ารายละเอียดของโทรศัพท์จะถูกลงในลายนิ้วมือ) โทรศัพท์ใหม่อาจถูกตรวจพบว่ามีการติดตั้งแล้ว ตามคำถามที่ถาม อย่างไรก็ตามดูเหมือนว่าค่อนข้างเป็นไปได้ว่าในสถานการณ์ที่แอพพยายามห้ามผู้ใช้สิ่งนี้อาจเป็นผลลัพธ์ที่ต้องการ (แทนที่จะห้ามโทรศัพท์เฉพาะ)

โปรดทราบ:ฉันไม่ได้บอกว่านี่เป็นวิธีที่ถูกต้องหรือ "ดี" เป็นวิธีการใช้งานถ้าคุณกำลังเขียนแอพ แต่มันก็สมเหตุสมผลที่จะพูดคุยเพราะมันเป็นเพียงการอภิปรายผ่านผู้คนจะคิดออกว่าพวกเขากำลัง กังวลพอที่จะทำอะไรเกี่ยวกับเรื่องนี้


1

มีคลาส SharedPreferences - https://developer.android.com/reference/android/content/SharedPreferences.htmlซึ่งแอพบางตัวใช้เพื่อเก็บข้อมูลการตั้งค่า ข้อมูลนี้จะไม่ถูกลบเมื่อถอนการติดตั้งแอพ หากติดตั้งแอปพลิเคชั่นใหม่อีกครั้งคีย์ SharedPreferences ที่บันทึกไว้ก่อนหน้านี้ยังคงมีให้ใช้งาน


6
SharedPreferencesจะถูกลบจริงเมื่อถอนการติดตั้งแอป มีวิธีสำหรับนักพัฒนาในการตั้งค่าการสำรองข้อมูล แต่โดยค่าเริ่มต้นพวกเขาจะถูกลบออกเมื่อถอนการติดตั้ง (ที่มา: ในฐานะนักพัฒนาฉันถอนการติดตั้งแอปของฉันเพื่อล้างการตั้งค่าดูเพิ่มเติมได้ที่: stackoverflow.com/a/9815641/1438733 )
Eric

1

มีความเป็นไปได้อีกประการหนึ่งคือการใช้คุกกี้ถาวรที่มี "เวลาหมดอายุ" ที่มีขนาดใหญ่มาก ฉันเดาว่าเป็นวิธีการที่หลายแอพจากนักพัฒนาเดียวกันใช้ในการแบ่งปันข้อมูลรับรองแบบดั้งเดิมเมื่อข้อมูลประจำตัวที่เก็บไว้ผ่านคุณสมบัติบัญชีไม่ได้เปิด / เป็นที่รู้จักต่อสาธารณชน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.