Програмер Магиск-а је открио да је Гоогле можда почео да користи проверу хардвера како би утврдио да ли је уређај откључан покретач покретања.
КСДА признати програмер топјохнву„Магиск“ пројекат је у суштини постао синоним за „роот“ у Андроид заједници. Један од главних разлога зашто је толико популаран је тај што може сакрити чињеницу да је корисник модификовао свој уређај. Међутим, Гоогле можда разбија могућност Магиска да сакрије статус откључавања покретача од апликација.
Да бисте рутовали свој телефон, обично морате да откључате програм за покретање, који вам омогућава да флешујете модификоване слике за покретање. Ово је потребно јер Магиск модификује слику за покретање како би лажирао статус покретача и/или провере статуса верификованог покретања. Гоогле-ов СафетиНет атестацијски АПИ, који је део Гоогле Плаи услуга, користи се да каже апликацији да ли ради на неовлашћеном уређају; ако СафетиНет АПИ открије да је покретачки програм откључан, онда ће вратити статус грешке за проверу „Основни интегритет“. Уређаји који не прођу ову проверу могу се тада искључити из апликација које користе СафетиНет АПИ за утврђивање интегритета уређаја; такве апликације обично укључују банкарске апликације, апликације за плаћање (као што је Гоогле Паи) и многе онлајн игре (попут Покемон Го). Међутим, пошто је СафетиНет АПИ до сада користио само провере софтвера да би утврдио да ли је уређај манипулисан, Магиск може једноставно да превари боотлоадер и/или Верифиед Боот статус јер је инсталиран на нижем нивоу и са већим привилегијама од Гоогле Плаи услуга и другог корисничког простора апликације. Као што топјохнву објашњава, МагискХиде „[ствара] изоловано 'безбедно окружење' за процес откривања и оно пролази кроз Гоогле-ов АПИ да би креирало
веродостојан СафетиНет резултат који не одражава прави статус уређаја."Недавно су, међутим, корисници приметили да њихови уређаји откључани покретачем не успевају у СафетиНет-овом основном интегритету иако су користили Магиск да закрпе слику за покретање. Према топјохнву-у, то је зато што је Гоогле можда имплементирао потврду кључа на нивоу хардвера како би потврдио да слика за покретање није мењана. Конкретно, ово значи да Гоогле Плаи услуге „[шаље] неизмењени сертификат за складиште кључева на СафетиНет сервере, верификује његову легитимност и проверава подаци о проширењу сертификата да бисте знали да ли је ваш уређај [имао] верификовано омогућено покретање (статус покретача).“ То значи да можда више није. могуће сакрити чињеницу да је боотлоадер откључан, што ће довести до тога да апликације као што су Гоогле Паи и Покемон Го неће радити нормално.
Као што је топјохнву приметио, ова промена начина на који СафетиНет проверава статус откључавања покретачког програма долази кроз ажурирање СафетиНет АПИ-ја који се налази у Гоогле Плаи услугама на страни сервера. Међутим, не пролази сваки корисник ове ажуриране СафетиНет провере, тако да нова атестација кључа на нивоу хардвера можда још увек није широко примењена.
Видели смо како топјохнву увек изнова превазилази техничке препреке. Гоогле често уводи нове провере у СафетиНет-у које топјохнву затим открива и заобилази у Магиск-у. Свака нова верзија Андроид-а доноси промене у структури партиције или покретачкој слици, захтевајући од топјохнву-а да проучи промене, а затим примени нови метод закрпања. Међутим, чак и топјохнву се овог пута може мучити да пронађе обилазницу.
То је зато што би заобилазно решење овог пута укључивало хаковање фирмвера уређаја Трустед Екецутион Енвиронмент (ТЕЕ) како би се повратио приватни кључ. Међутим, ово је невероватно тешко урадити јер захтева проналажење рањивости у фирмверу који је дизајниран да буде невероватно безбедан. У ствари, многе компаније нуде плаћања у стотинама хиљада долара ако се пронађе таква рањивост. Гоогле, на пример, плаћа 250.000 долара за рањивости у удаљеном извршавању кода у Пикел-овом поузданом окружењу за извршавање, и до 1.000.000 долара за рањивости у Титан М сигурносни чип. Чак и ако би приватни кључ на неки начин процурио, мало је вероватно да би био од велике користи јер Гоогле може даљински да опозове кључ тако да се не може користити за проверу интегритета уређаја.
Једном када атестирање кључа на нивоу хардвера буде широко примењено за СафетиНет, већина уређаја са откључаним боотлоадерима који користе Андроид 8.0 Орео или новији неће проћи СафетиНет-ову основну проверу интегритета. То је зато што сви уређаји који су покренути са Андроид 8.0 Орео или новијим морају да имају хардверско складиште кључева имплементирано у ТЕЕ. Одређени уређаји данас чак имају наменске хардверске безбедносне модуле (ХСМ) који додатно отежавају експлоатацију померањем ТЕЕ-а од главног процесора; Титан М у Пикел-у 4 и Самсунгов нови безбедносни чип у Галаки С20 су примери за то.
Топјохнву такође објашњава да су друга потенцијална решења или немогућа или веома изазовна. Коришћење Кспосед Фрамеворк-а за модификовање АПИ-ја СафетиНет атестатион у Гоогле Плаи услугама вероватно неће функционисати јер ће „исправне СафетиНет провере потврдити резултате на удаљеном серверу, а не на [тхе] уређај којим се може манипулисати помоћу оквира за убризгавање кода." Штавише, Гоогле Плаи услуге су веома замућене, што креирање таквог Кспосед модула чини невероватним изазовом у првом место. Неће бити изводљиво ни лажирање резултата СафетиНет теста јер СафетиНет одговори „долазе са Гоогле сервера и потписани су Гоогле-овим приватним кључем“.
Гоогле већ неколико година има могућност да ојача СафетиНет провере користећи хардверски подржану потврду кључа. Чињеница да су се уздржали да то учине 3 године омогућила је корисницима да уживају у роот и Магиск модулима без жртвовања могућности коришћења банкарских апликација. Међутим, чини се да се Магиск-ова способност да ефикасно сакрије статус откључавања покретача ускоро завршава. То је промена коју смо очекивали годинама, али смо тужни што видимо да коначно ступа на снагу. Надамо се да ће Гоогле ажурирати СафетиНет атестацијски АПИ како би вратио да ли је провера статуса користила хардверски атестирање јер би то омогућило програмерима апликација да одлуче да ли желе да блокирају све кориснике који су откључали боотлоадер.
Хвала Даниелу Мицаиу (@ДаниелМицаи) за његов допринос у вези са овим питањем!