Oso desberdinak diren bi gauzari deitzen zaie Androiden testu arrunta blokeatzea. Bat aplikazio baten barruko politika da, bere sare-pilari HTTP arrunta ukatzea agintzen diona. Bestea gailu-mailako antolamendua da, telefonoan dena batera babesten saiatzen dena, normalean trafikoa VPN batetik bideratuz. Arazo desberdinak konpontzen dituzte, eta bigarrenak ezin du lehenengoa konpondu: tunel batek telefonoaren eta irteeraren arteko zatia babesten du, eta HTTP hitz egiten duen aplikazio batek HTTP hitz egiten jarraitzen du irteera horren beste aldean dagoen guztiarekin.

Arazo bi izen bakar batean

Lehen arazoa karga da: aplikazioak kredentzialak edo tokenak muturretik muturrera zifratuta ez dagoen eskaera batean idazten ditu, beraz hura ikus dezakeen jauzi bakoitzak irakur dezake. Bigarrena bidea da: aplikazioa erabat zuzena izan daiteke, eta hala ere nahi duzu tokiko Wi-Fi eragileak ez jakitea ezer non konektatzen den. VPN batek bigarrena lantzen du eta bigarrena soilik.

Bereizketak zehazten du noren esku dagoen konponketa. Karga aplikazioa banatzen duenarena da, kodea horrek soilik erabakitzen baitu zein URL deitzen den eta ziurtagiria balidatzen den. Bidea gailuarena edo sarearena da, paketeak nora doazen baita kontua, ez zer daramaten.

Bide bat: kontrolatzen duzun aplikazioa

Aplikazioa banatzen baduzu, konponketa garraio-erabakia da eta hura inposatzen duen politika bat. Bideratu mutur bakoitza HTTPSera, mantendu ostalari-izenaren eta ziurtagiriaren balidazioa piztuta, eta ezabatu HTTP arrunteko babes-bidea konfigurazio-bandera bat urrun uztearen ordez. Birbideratzeak ez du hemen laguntzen: 301 bat jasotzen duen HTTP eskaera batek jadanik bidali ditu bere goiburuak eta gorputza agerian, beraz kredentzialek ez dute inoiz bidaiatu behar birbideratzeak babestuko dituelako ustetan.

Android 7.0 eta geroago, Network Security Configuration tresnak adierazten du politika. Beheko fitxategia bertsio erabilgarri txikiena da: testu arrunta ukatzen du leku guztietan, domeinu jakin bateko salbuespenak beste modu batera esan ezean.

<network-security-config>
    <base-config cleartextTrafficPermitted="false" />
</network-security-config>

Erreferentziatu baliabide hori manifestutik eta gero irakurri lehendik dauden salbuespenak banatu aurretik. Arazketa-domeinu zahar batek edo ordainketa-hornitzaile baten SDK sarrerak isilik berriro baimendu dezake babestu nahi zenuen ostalariarentzat testu arrunta.

Bertsioaren bi xehetasun jakitea merezi du. API 28 edo berriagora zuzendutako aplikazioek jadanik ukatzen dute testu arrunta lehenespenez, beraz HTTP arrunta hitz egiten duen aplikazio batek API maila zaharragoa du helburu edo nonbait salbuespen bat du. Eta sare-segurtasun konfigurazio bat dagoenean, manifestuaren atributu zaharragoak android:usesCleartextTraffic ez du jada kontua erabakitzen, eta horregatik batzuetan bandera hori aldatzeak ezer egiten ez duela ematen du.

Bide bi: kontrolatzen ez duzun aplikazioa

Instalatutako hirugarren baten aplikazio baterako ezin duzu haren segurtasun konfigurazioa berridatzi erabiltzaile-ezarpen batekin. Aukera errealistak produktuaren beraren konexio seguruko kontrolak, jadanik TLS erabiltzen duen alternatiba mantendu bat, edo gailuak zer exekuta dezakeen mugatzen duen gailu kudeatuaren politika bat dira. Konpromiso desberdinak dira, eta hirugarrenak soilik eskalatzen du gailu-parke batera.

Sare-arauak diruditena baino ordezko ahulagoak dira. 443 portua soilik baimentzeak ez du TLS autentifikatua inposatzen, protokolo asko portu horretara eraman baitaitezke, eta 80 portua blokeatzeak ez ditu beste portuetako testu arrunta estaltzen. Nabigatzaile baten HTTPS-soilik modua nabigatzaile horretara mugatzen da, ez telefono berean dagoen posta edo txat aplikazio bereizi batera.

Trafikoa zifratuta dirudiela lortzeko intertzeptazio-ziurtagiri bat instalatzea konfiantza-aldaketa da, ez konponketa. Aplikazioaren zerbitzari-autentifikazioa zurearekin ordezkatzen du, eta hasieratik ziurtagiriak balidatzen ez zituen aplikazio bat ez da horrekin konpontzen; fluxua nor izan dezakeen irakurri besterik ez duzu mugitu.

Non laguntzen duen VPN batek eta non ez

Tunela tresna zuzena da tokiko sareak konexioaz ezer ez jakitea eskatzen denean, edo aplikazioak beste modu batera iristen ez den zerbitzu pribatu batera iristea. Tresna okerra da HTTP bezero bat HTTPS hitz egitea lortzeko, eskaerak tunela sartu zen bezalaxe uzten baitu.

Androidek murrizketa praktiko bat gehitzen du: plataformak VPN zerbitzu bakarra exekutatzen du aldi berean. Leku hori hartzen duen tokiko iragazketa-aplikazio bat benetan behar duzun urruneko tunelarekin lehiatzen da, eta bien artean aldatzea gailu-mailako eragiketa da, ez aplikazio-mailakoa. Leku bakar hori arrazoi ona da karga-politika aplikazioan jartzeko eta tunela biderako gordetzeko.

Biak gainjartzen diren kasu bakarra zuk ere kudeatzen duzun zerbitzari pribatu bat da. Han tunelak bidea pribatu egin dezake protokoloa oraindik testu arrunta izan arren, eta horrek esposizioa gutxitzen du baina ez du aldatzen karga zer den. Hartu hori arriskuaren murrizketa gisa, ez datuen zifratze gisa.

Zer probatu blokeatutzat eman aurretik

Hasi jendea harritzen duen lehenespenarekin: API 28 edo berriagora zuzendutako aplikazio batek jadanik testu arrunta ukatu beharko luke, beraz egiaztatu helburuko maila lehenespen bat bikoizten duen konfigurazioa gehitu aurretik. Gero probatu huts egiteko kasua nahita: HTTP ostalari arrunt baterako eskaerak huts egin behar du, ez babes-bide baten bidez isilik arrakastatsu izan.

adb shell dumpsys package com.example.app | grep -E 'targetSdk|versionName'
adb logcat | grep -i cleartext

Arrakastaren kasurako, egiaztatu HTTPS deialdiak ziurtagiri-kate erreala balidatzen duela eta konfiantzazkoak ez diren ziurtagiria duen proxy bat onartu ordez baztertu egiten dela. Edozein ziurtagirirekin arrakasta duen esku-emateak ez du ezer frogatu garraio-segurtasunari buruz.

Hirugarren baten aplikazio baterako, idatzi benetan inposa dezakezun muga, gailu kudeatuaren politika, sare-araua edo ezer ez den, eta esan ezazu onarpen-irizpideetan. Android segurtasun konfigurazioaren gidak plataformaren lehenespenak eta zein osagai diren politika errespetatzen duten zerrendatzen ditu, eta hori da zure konfigurazioak benetan ezer egiten duen erabakitzen duen zatia.

Erlazionatutako artikuluak