โฮมเพจ » ทำอย่างไร » SafetyNet อธิบายว่าทำไมแอนดรอยด์ที่ต้องจ่ายเงินและแอปอื่น ๆ ไม่สามารถทำงานบนอุปกรณ์ที่มีการรูทเครื่อง

    SafetyNet อธิบายว่าทำไมแอนดรอยด์ที่ต้องจ่ายเงินและแอปอื่น ๆ ไม่สามารถทำงานบนอุปกรณ์ที่มีการรูทเครื่อง

    การรูทอุปกรณ์ Android ของคุณจะช่วยให้คุณสามารถเข้าถึงแอพที่หลากหลายและเข้าถึงระบบ Android ได้ลึกขึ้น แต่แอปบางอย่างเช่น Android Pay ของ Google จะไม่สามารถใช้งานได้บนอุปกรณ์ที่รูทเครื่อง.

    Google ใช้สิ่งที่เรียกว่า SafetyNet เพื่อตรวจสอบว่าอุปกรณ์ของคุณรูทหรือไม่และบล็อกการเข้าถึงคุณลักษณะเหล่านั้น Google ไม่ใช่แอปเดียวเท่านั้นแอปของบุคคลที่สามที่มีมากมายไม่สามารถใช้งานได้บนอุปกรณ์ Android ที่มีการรูทแม้ว่าพวกเขาอาจตรวจสอบว่ามีรูตในลักษณะอื่นหรือไม่.

    SafetyNet: Google รู้ได้อย่างไรว่าคุณรูทโทรศัพท์ Android ของคุณ

    อุปกรณ์ Android เสนอ“ SafetyNet API” ซึ่งเป็นส่วนหนึ่งของเลเยอร์ Google Play Services ที่ติดตั้งบนอุปกรณ์ Android ที่ได้รับการอนุมัติจาก Google API นี้“ ให้การเข้าถึงบริการของ Google ที่ช่วยให้คุณประเมินสุขภาพและความปลอดภัยของอุปกรณ์ Android” ตามข้อมูลของ Google หากคุณเป็นนักพัฒนาซอฟต์แวร์ Android คุณสามารถโทรหา API นี้ในแอปของคุณเพื่อตรวจสอบว่าอุปกรณ์ที่คุณใช้ทำงานถูกแก้ไขหรือไม่.

    SafetyNet API นี้ได้รับการออกแบบมาเพื่อตรวจสอบว่าอุปกรณ์ได้รับการดัดแปลงไม่ว่าจะถูกรูทโดยผู้ใช้กำลังเรียกใช้ ROM ที่กำหนดเองหรือติดมัลแวร์ระดับต่ำเช่น.

    อุปกรณ์ที่มาพร้อมกับ Play Store ของ Google และแอพอื่น ๆ ที่ติดตั้งจะต้องผ่าน Android“ Compatibility Test Suite” ของ Android การรูทอุปกรณ์หรือการติดตั้ง ROM แบบกำหนดเองจะป้องกันไม่ให้อุปกรณ์“ ใช้งานร่วมกันได้กับ CTS” นี่คือวิธีที่ SafetyNet API สามารถบอกได้ว่าคุณได้รับการรูทแล้วหรือไม่เพียงตรวจสอบความเข้ากันได้ของ CTS ในทำนองเดียวกันหากคุณได้รับอุปกรณ์ Android ที่ไม่เคยมาพร้อมกับแอพของ Google เช่นหนึ่งในแท็บเล็ตราคา $ 20 ที่จัดส่งโดยตรงจากโรงงานในประเทศจีน - มันจะไม่ถูกพิจารณาว่าเป็น "CTS ที่เข้ากันได้" เลยแม้แต่น้อย.

    ในการรับข้อมูลนี้ Google Play Services จะดาวน์โหลดโปรแกรมชื่อ“ snet” และเรียกใช้ในพื้นหลังบนอุปกรณ์ของคุณ โปรแกรมรวบรวมข้อมูลจากอุปกรณ์ของคุณและส่งไปยัง Google อย่างสม่ำเสมอ Google ใช้ข้อมูลนี้เพื่อจุดประสงค์ที่หลากหลายตั้งแต่การถ่ายภาพระบบนิเวศ Android ที่กว้างขึ้นไปจนถึงการพิจารณาว่าซอฟต์แวร์อุปกรณ์ของคุณได้รับการดัดแปลงหรือไม่ Google ไม่ได้อธิบายอย่างชัดเจนว่า snet ต้องการอะไร แต่ก็มีแนวโน้มว่า snet จะตรวจสอบว่าพาร์ติชันระบบของคุณได้รับการแก้ไขจากสถานะโรงงานหรือไม่.

    คุณสามารถตรวจสอบสถานะ SafetyNet ของอุปกรณ์ของคุณได้โดยดาวน์โหลดแอพเช่น SafetyNet Helper Sample หรือ SafetyNet Playground แอปจะถามบริการ SafetyNet ของ Google เกี่ยวกับสถานะอุปกรณ์ของคุณและบอกการตอบสนองที่ได้รับจากเซิร์ฟเวอร์ของ Google.

    สำหรับรายละเอียดทางเทคนิคเพิ่มเติมอ่านโพสต์บล็อกนี้เขียนโดย John Kozyrakis นักยุทธศาสตร์ด้านเทคนิคที่ Cigital บริษัท รักษาความปลอดภัยซอฟต์แวร์ เขาขุดเข้าสู่ SafetyNet และอธิบายเพิ่มเติมเกี่ยวกับวิธีการทำงาน.

    มันขึ้นอยู่กับแอพ

    SafetyNet เป็นทางเลือกสำหรับนักพัฒนาแอปและผู้พัฒนาแอพสามารถเลือกที่จะใช้หรือไม่ SafetyNet ป้องกันไม่ให้แอปทำงานได้หากผู้พัฒนาแอปไม่ต้องการให้ทำงานบนอุปกรณ์ที่รูท.

    แอพส่วนใหญ่จะไม่ตรวจสอบ SafetyNet API เลย แม้แต่แอพที่ตรวจสอบ SafetyNet API เช่นเดียวกับแอปทดสอบด้านบน - จะไม่หยุดทำงานหากพวกเขาได้รับการตอบสนองที่ไม่ดี ผู้พัฒนาแอพต้องตรวจสอบ SafetyNet API และทำให้แอปปฏิเสธการทำงานหากรู้ว่าซอฟต์แวร์ของอุปกรณ์ของคุณได้รับการแก้ไข แอป Android Pay ของ Google เป็นตัวอย่างที่ดีของการดำเนินการนี้.

    Android Pay จะไม่ทำงานบนอุปกรณ์ที่มีการรูทเครื่อง

    โซลูชันการชำระเงินมือถือ Android Pay ของ Google ไม่สามารถใช้งานได้กับอุปกรณ์ Android ที่รูทเครื่องแล้ว ลองเปิดใช้แล้วคุณจะเห็นข้อความแจ้งว่า "Android Pay ไม่สามารถใช้งานได้ Google ไม่สามารถยืนยันได้ว่าอุปกรณ์ของคุณหรือซอฟต์แวร์ที่ทำงานบนอุปกรณ์นั้นรองรับระบบปฏิบัติการ Android”

    มันไม่ได้เกี่ยวกับการรูทแน่นอนการรัน ROM แบบกำหนดเองจะทำให้คุณไม่มีความต้องการในเรื่องนี้ SafetyNet API จะอ้างว่าไม่ใช่“ ใช้งานร่วมกับ Android ได้” หากคุณใช้ ROM ที่กำหนดเองซึ่งอุปกรณ์ไม่ได้มาพร้อมกับ.

    จำไว้ว่านี่ไม่เพียงตรวจจับการรูท หากอุปกรณ์ของคุณติดมัลแวร์ระดับระบบที่มีความสามารถในการสอดแนมใน Android Pay และแอพอื่น ๆ SafetyNet API จะป้องกันไม่ให้ Android Pay ทำงานได้ซึ่งเป็นสิ่งที่ดี.

    การรูทอุปกรณ์ของคุณจะแตกรุ่นความปลอดภัยปกติของ Android โดยปกติแล้ว Android Pay จะปกป้องข้อมูลการชำระเงินของคุณโดยใช้คุณสมบัติแซนด์บ็อกซ์ของ Android แต่แอปสามารถแยกออกจากกล่องแซนด์บ็อกซ์บนอุปกรณ์ที่รูทได้ Google ไม่มีวิธีที่จะรู้ว่า Android Pay จะมีความปลอดภัยบนอุปกรณ์ใดอุปกรณ์หนึ่งโดยเฉพาะถ้ารูทเครื่องนั้นรูทหรือรัน ROM ที่กำหนดเองซึ่งไม่รู้จักดังนั้นพวกเขาจึงปิดกั้น วิศวกร Android Pay อธิบายปัญหาในฟอรัม XDA Developers หากคุณอยากรู้เพิ่มเติม.

    แอปอื่น ๆ สามารถตรวจจับรูตได้

    SafetyNet เป็นเพียงวิธีเดียวที่แอปสามารถตรวจสอบว่ามันทำงานบนอุปกรณ์ที่รูทหรือไม่ ตัวอย่างเช่นอุปกรณ์ Samsung มีระบบรักษาความปลอดภัยชื่อ KNOX หากคุณรูทอุปกรณ์ของคุณการรักษาความปลอดภัยของ KNOX จะถูกทาบทาม Samsung Pay แอพชำระเงินมือถือของ Samsung จะปฏิเสธไม่ให้ทำงานบนอุปกรณ์ที่รูต Samsung ใช้ KNOX ในเรื่องนี้ แต่ก็สามารถใช้ SafetyNet ได้เช่นกัน.

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

    มันยากที่จะหารายการแอพที่ทันสมัยที่ไม่ทำงานเมื่ออุปกรณ์ถูกรูท อย่างไรก็ตาม RootCloak มีหลายรายการ รายการเหล่านี้อาจล้าสมัย แต่เป็นรายการที่ดีที่สุดที่เราสามารถหาได้ หลายคนเป็นแอพธนาคารและแอพกระเป๋าเงินมือถืออื่น ๆ ซึ่งบล็อกการเข้าถึงบนโทรศัพท์ที่มีรูทเพื่อป้องกันข้อมูลธนาคารของคุณจากการถูกจับโดยแอพอื่น ๆ แอพสำหรับบริการสตรีมวิดีโออาจปฏิเสธที่จะทำงานบนอุปกรณ์ที่รูทเป็นเครื่อง DRM โดยพยายามป้องกันไม่ให้คุณบันทึกสตรีมวิดีโอที่มีการป้องกัน.

    แอพบางตัวอาจถูกหลอกได้

    Google กำลังเล่นเกม cat-and-mouse ที่มี SafetyNet อัปเดตอย่างต่อเนื่องเพื่อพยายามนำหน้าผู้คนรอบข้าง ตัวอย่างเช่นนักพัฒนา Android Chainfire ได้สร้างวิธีการใหม่ในการรูทอุปกรณ์ Android โดยไม่ต้องแก้ไขพาร์ติชั่นระบบหรือที่รู้จักกันในชื่อ“ systemless root” SafetyNet เริ่มแรกไม่พบอุปกรณ์ดังกล่าวที่ถูกดัดแปลงและ Android Pay ใช้งานได้ แต่ SafetyNet ได้รับการปรับปรุงในที่สุดเพื่อตรวจหาวิธีการรูทใหม่ ซึ่งหมายความว่า Android Pay จะไม่ทำงานพร้อมกับรูทแบบไม่มีระบบอีกต่อไป.

    ขึ้นอยู่กับวิธีที่แอปตรวจสอบการเข้าถึงรูทคุณอาจหลอกได้ ตัวอย่างเช่นมีวิธีการรายงานที่จะรูทอุปกรณ์ Samsung บางรุ่นโดยไม่สะดุดความปลอดภัย KNOX ซึ่งจะช่วยให้คุณสามารถใช้ Samsung Pay ต่อไป.

    ในกรณีของแอพที่ตรวจสอบแอปรูทบนระบบของคุณมีโมดูล Xposed Framework ชื่อ RootCloak ที่รายงานว่าช่วยให้คุณหลอกพวกเขาให้ทำงานได้ สิ่งนี้ใช้ได้กับแอพเช่น DirecTV GenieGo, Best Buy CinemaNow และ Movies โดย Flixster ซึ่งปกติแล้วจะไม่ทำงานบนอุปกรณ์ที่รูท อย่างไรก็ตามหากแอปเหล่านี้ได้รับการอัปเดตเพื่อใช้งาน SafetyNet ของ Google แอปเหล่านี้จะไม่หลอกง่ายในวิธีนี้.


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

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

    เครดิตรูปภาพ: Danny Choo บน Flickr