Saknes piekļuves slēpšana programmā Magisk kļūs daudz grūtāk izdarāma, pateicoties nesenajām SafeNet izmaiņām, kas nodrošina aparatūras apstiprinājumu.
Martā daži lietotāji ar Magisk instalēja pamanīja ka viņu ierīcēm neatbilst SafetyNet apliecinājums. Šīs ziņas satrauca XDA kopienu, jo tas nozīmē, ka daudzas svarīgas banku/finanšu lietotnes un populāras spēles, piemēram, Pokémon Go un Fate/Grand Order, atteicās darboties ierīcēs ar sakņotām ierīcēm. Kādu laiku šķita, ka stingrākie ierobežojumi pakalpojumā SafetyNet tika atcelti, lai tikai dažu pēdējo nedēļu laikā atkal ieviesti dažiem lietotājiem. Tomēr Google maija sākumā klusi apstiprināja, ka viņi testē ar aparatūru nodrošināto atestāciju SafetyNet atbildes, tāpēc Magisk nevarēja paslēpt sāknēšanas ielādētāja atbloķēšanas statusu atpakaļ marts. Ja šīs izmaiņas tiks plaši izplatītas, tas nozīmēs, ka lietotājiem būs jāizvēlas piekļuve root/pielāgotajiem ROM/kodoliem/u.c. vai viņu vēlamajām banku lietotnēm un spēlēm. Viena no lielākajām Android pievilcībām pieredzējušiem lietotājiem drīz varētu pazust.
Lai apkopotu šo notikumu sēriju, mums vispirms vajadzētu runāt par pašu SafetyNet. SafetyNet ir Google Play pakalpojumu API kopa. SafetyNet Attestation API ir viena no šīm API, un to var izsaukt trešo pušu lietojumprogrammas, lai pārbaudītu, vai ierīces programmatūras vide nav jebkādā veidā bojāta. API pārbauda dažādas lietas, piemēram, superlietotāja bināro failu pazīmes, sāknēšanas ielādētāja atbloķēšanas statusu un daudz ko citu. Kad sakņojat ierīci ar Magisk, tā “[izveido] izolētu “drošu vidi” [SafetyNet] noteikšanas procesam, un tā tiek veikta caur Google API, lai izveidotu legit SafetyNet rezultāts, kas neatspoguļo ierīces reālo statusu,” norāda XDA vecākais atzītais izstrādātājs topjohnwu. Tas ļauj lietotājam sakņot savu tālruni, vienlaikus nodrošinot, ka API vienmēr atgriež "false" jebkurā bootloader atbloķēšanas pārbaudē. Šī SafetyNet sāknēšanas ielādēja atbloķēšanas noteikšanas apiešanas metode Magisk ir izdevusies pēdējos pāris gados. gadiem, bet tas ir tikai tāpēc, ka Google ir aizturējis sāknēšanas attēla integritātes pārbaudi, izmantojot aparatūru apliecinājums. Martā šķita, ka Google beidzot sāka izmantot aparatūras atestāciju pakalpojumā SafetyNet, lai pārbaudītu sāknēšanas attēls, taču mēs nekad nesaņēmām oficiālu paziņojumu no Google, kas apstiprinātu izmaiņas, un to saņēma tikai daži lietotāji ietekmēta. Kā pamanījis XDA vecākais loceklis Displaksstomēr Google 2020. gada 5. maijā apstiprināja, ka SafetyNet Attestation API atbildēs no dažām ierīcēm tagad ir iekļautas aparatūras nodrošinātas pārbaudes.
Google grupā “SafetyNet API klienti” Google aprakstīja jaunu Atestācijas API funkciju: assessmentType. JSON tīmekļa paraksta (JWS) atbildē no dažām ierīcēm būs lauks ar nosaukumu "evaluationType", kas "sniegs izstrādātājiem ieskatu signālu/mērījumu veidos, kas ir veicinājuši katru atsevišķu SafetyNet Attestation API atbildi." Viens no atbalstītajiem marķieriem šajā laukā ir "HARDWARE_BACKED", kas norāda, ka API "[izmantoja] attālās ierīces pieejamos aparatūras nodrošinātos drošības līdzekļus (piem. aparatūras nodrošināta atslēgas apliecinājums), lai ietekmētu [tā] novērtējumu. drošības funkcijas." Tas nozīmē, ka dažās ierīcēs Google Play pakalpojumi tagad izmanto ar aparatūru nodrošinātu apliecinājumu, lai noteiktu, ka ierīces programmatūra nav bijusi sagrozīts. Google nav oficiāli dokumentējis šīs izmaiņas ārpus Google grupas paziņojuma, tāpēc daži izstrādātāji, kas izmanto SafetyNet, var nezināt par šīm izmaiņām (un tāpēc JWS atbildēs vēl nepārbauda lauku "HARDWARE_BACKED".) Tomēr tām lietotnēm, kuras pārbauda šo lauku, tagad nav iespējams no viņiem slēpt root piekļuvi, ja jūsu ierīce ir daļa no Google pārbaudes. skrienot.
Saskaņā ar topjohnwu teikto, ar aparatūru nodrošināts apliecinājums nozīmē, ka Google Play pakalpojumi tagad “[nosūta] nemodificētu atslēgu krātuves sertifikātu SafetyNet serveriem, [pārbauda] tā leģitimitāti un [pārbauda] sertifikāta paplašinājuma datus, lai uzzinātu, vai jūsu ierīce [ir] apstiprinājusi, ka sāknēšana ir iespējota (sāknēšanas ielādētāja statuss). Tā kā privātās atslēgas, no kurām tiek iegūti atslēgu krātuves sertifikāti tiek nodrošināti ar tālruņa izolētu drošo vidi, to izgūšana būtu saistīta ar tālruņa uzticamās izpildes vides (TEE) vai speciālās aparatūras drošības pārtraukšanu. modulis (HSM). Ja kāds kaut kādā veidā varētu nopludināt privāto atslēgu, atslēgas tiktu ātri atsauktas kad Google to uzzināja. Google piedāvā simtiem tūkstošu dolāru lielu atlīdzību par jebkādām kritiskām drošības ievainojamībām, kas ietekmē Pixel tālruņu TEE, kas tikai parāda, ka ir ļoti maz ticams, ka tas ir potenciāls veids, kā apiet bootloader atbloķēšanas noteikšanu vienalga.
Vēl viens potenciāls veids, kā Magisk varētu turpināt mānīt sāknēšanas ielādētāja atbloķēšanas statusu, ir SafetyNet klienta puses koda modificēšana, lai vienmēr izmantotu BASIC novērtējumu. Kā topjohnwu piezīmesTomēr, lai to izdarītu, Google Play pakalpojumos būtu jāievada pielāgots kods, izmantojot piesaistes sistēmu, piemēram, Xposed Framework. Tas ir ne tikai grūti izdarāms, jo Google Play pakalpojumi ir ļoti neskaidri, bet arī nav iespējams noslēpt, jo "dažā atmiņas vietas analīze atklās ļoti manipulācijas ar kodu viegli." Turklāt tas darbotos tikai tad, ja Google serveri turpinās pieņemt BASIC novērtējumus un ja HARDWARE_BACKED novērtējumi netiek ieviesti ierīcēs, kas atbalsta viņiem. (SafetyNet atbildes “[nāk] no Google serveriem un ir parakstītas ar Google privāto atslēgu”, norāda topjohnwu, tāpēc faktiskās atbildes nevar krāpties.)
Kopš operētājsistēmas Android 7 Nougat Google ir pieprasījis, lai visām ierīcēm būtu izolēta droša vide, Tas nozīmē, ka šīs izmaiņas tajā, kā SafetyNet pārbauda sāknēšanas ielādes atbloķēšanu, ietekmēs lielāko daļu ierīču, kas ir izslēgtas tur. Tā kā vecākas ierīces bez izolētas drošas vides acīmredzami nevar veikt ar aparatūru nodrošināto atestāciju, Magisk joprojām varēs slēpt root piekļuvi šajās ierīcēs. Bet, ja šīs izmaiņas tiks plaši izplatītas, visiem pārējiem būs jāizdara grūta izvēle starp root piekļuvi un banku lietotnēm.
Diemžēl, iespējams, ir daudz lietotņu, kas izmanto SafetyNet pārbaudes, kad tām faktiski tas nav nepieciešams. Viens piemērs, ko minēja topjohnwu, ir oficiālā McDonald's lietotne, kas šķietami atsakās darboties ierīcē ar atbloķētu sāknēšanas ielādētāju. Vietnē Twitter topjohnwu nosauc lietotnes, kas pārmērīgi izmanto API, radot naidīgu vidi enerģiskiem lietotājiem. XDA atzītais izstrādātājs Kvinijs899 pievienojas anekdotei par to, kā viņa komanda apsvēra iespēju izmantot SafetyNet, lai pārbaudītu ierīces drošības statusu. Viņi galu galā nolēma to neveikt, jo viņa komandas lietotne šifrē visus sensitīvos datus, ar kuriem tā darbojas. Viņš apgalvo, ka SafetyNet nevajadzētu izmantot pareizas drošības un datu apstrādes prakses vietā, it īpaši, ja apsverat superlietotāju izmantošanas iespēja.
Lai iegūtu papildinformāciju par to, kā jaunās SafetyNet izmaiņas ietekmē Magisk, skatiet topjohnwu's lieliski uzdotie jautājumi vietnē Twitter. Ja vēlaties tikai pārbaudīt, vai jūsu ierīce ir daļa no Google jaunā SafetyNet testa, varat sekot šo rokasgrāmatu XDA vecākais dalībnieks Displax vai lejupielādējiet jaunāko Magisk Manager laidienu.
Šis raksts tika atjaunināts 2020. gada 30. jūnijā plkst. 10:46 pēc austrumu laika, lai labotu, ka Google izmaksā atlīdzību tikai par Pixel tālruņos konstatētajām TEE ievainojamībām. Turklāt tika pievienota informācija par jaunāko Magisk Manager laidienu, kurā iebūvētajā SafetyNet pārbaudītājā tagad tiek parādīts lauks assessmentType.