Android માં બે સંવાદો વારંવાર એકબીજા સાથે ભળી જાય છે: VPN સંમતિની વિનંતી અને એપ તમારા ડેટા માટે કરતી પરવાનગીની વિનંતીઓ. પ્રથમ નેટવર્ક સ્થાન સોંપે છે, એ જગ્યા જ્યાં પેકેટ વાંચી અને ફરી લખી શકાય છે. બીજું સંગ્રહિત સામગ્રી સોંપે છે, જેને Android એપ-એપ પ્રમાણે સાચવે છે. બંનેને એક જ વસ્તુ ગણવાથી કાં તો ટનલ શું જોઈ શકે તે વધારીને કહેવાય છે, કાં તો નિશ્ચયી એપ આગળ શું માંગશે તેનો ખૂબ ઓછો અંદાજ લેવાય છે.

સંમતિ સંવાદ ખરેખર શું સોંપે છે

જે એપ VpnService અમલમાં મૂકે છે અને BIND_VPN_SERVICE જાહેર કરે છે તે સિસ્ટમને વિનંતી કરે છે કે તે ઉપકરણનું VPN બને. મંજૂરી પછી ફ્રેમવર્ક tun ઇન્ટરફેસ બનાવે છે અને એપને તેના માટે ફાઇલ ડિસ્ક્રિપ્ટર આપે છે. એપ પછી જે કંઈ કરે છે તે આ ડિસ્ક્રિપ્ટરમાંથી પસાર થાય છે: તે IP પેકેટ બહાર વાંચે છે, તેમનું શું કરવું તે નક્કી કરે છે અને પેકેટ ફરી અંદર લખે છે.

એ ઇન્ટરફેસનો વ્યાપ સ્પષ્ટ છે. રૂટ નક્કી કરે છે કે કયા ગંતવ્ય સ્થાનો પકડાય છે, અને addAllowedApplication કે addDisallowedApplication નક્કી કરે છે કે કઈ એપ તેને ડેટા પૂરો પાડે છે. બે એપની યાદી ધરાવતું પ્રતિ-એપ VPN ઉપકરણનો બાકીનો ભાગ જોતું નથી.

આ પેકેટ-સ્તરની મંજૂરી છે, ડેટા-સ્તરની નહીં. સેવા એ બાઇટ જુએ છે જે એપ નેટવર્ક સ્ટેકને આપે છે, જે કોઈ ગંતવ્ય સ્થાનને સંબોધિત હોય છે. તેને મોકલતી એપના ખાનગી સંગ્રહ, તેની ડેટાબેઝ ફાઇલો કે તેની ડિક્રિપ્ટ થયેલ મેમરી પર કોઈ પકડ મળતી નથી. એપ તેના પોતાના સેન્ડબોક્સમાં જે ફાઇલો સાચવે છે તે પહેલાં જેટલી મુશ્કેલ વાંચી શકાય તેમ જ રહે છે.

પેકેટ-દ્રશ્ય ક્યાં અટકે છે

TLS હજી પણ ટનલની અંદર તેનું કામ કરે છે, કારણ કે હેન્ડશેક એપ અને સર્વર વચ્ચે થાય છે, એપ અને VPN વચ્ચે નહીં. VPN એવું સાઇફરટેક્સ્ટ આગળ મોકલે છે જેને તે સત્ર કી વિના ડિક્રિપ્ટ કરી શકતું નથી. તેથી જ ફક્ત ટનલ HTTPS પૃષ્ઠ કે સુરક્ષિત મેલ સત્રની સામગ્રી ખુલ્લી કરતી નથી.

સાઇફરટેક્સ્ટની આસપાસનું મેટાડેટા બીજી વાર્તા છે, અને અહીં જ મોટાભાગના આત્મવિશ્વાસુ દાવા તૂટી પડે છે. ગંતવ્ય IP, પોર્ટ, પેકેટનું કદ અને સમય — બધું દેખાય છે, સાથે TLS ClientHello માંનું સર્વરનું નામ, જે સામાન્ય રીતે TLS 1.3 હેઠળ પણ ખુલ્લું મોકલાય છે. Encrypted Client Hello તેને બદલે છે, પણ તે સાર્વત્રિક નથી. સાદું DNS પણ નામો એટલી જ સહેલાઈથી લીક કરે છે જ્યારે પ્રશ્નો એન્ક્રિપ્શન વિના બહાર જાય છે.

જૂના કે ખોટી રીતે ગોઠવાયેલા પ્રોટોકોલ વધુ સોંપે છે. સાદું HTTP, TLS વિનાનું IMAP અને અમુક ગેમ તથા IoT પ્રોટોકોલ તેમનો પેલોડ tun ડિસ્ક્રિપ્ટર ધરાવતી કોઈપણ વસ્તુ સામે ખુલ્લો મૂકે છે.

એ પરવાનગીઓ જે કદી સાથે આવતી નથી

VPN મંજૂર કરવાથી સંપર્કો, SMS, ફોટા કે મીડિયા સ્ટોર મંજૂર થતા નથી. એ અલગ રનટાઇમ મંજૂરીઓ છે, દરેકનો પોતાનો સંવાદ અને એપની સેટિંગ્સ પૃષ્ઠ પર પોતાનો રદ કરવાનો માર્ગ છે. તમારો કૉલ લોગ ઇચ્છતા VPN ક્લાયન્ટે અન્ય કોઈપણ એપની જેમ તે માંગવો પડે છે, અને તમે ટનલ રાખીને ના પાડી શકો છો.

સર્ટિફિકેટ ઇન્સ્ટોલેશન એ ધ્યાન રાખવા જેવી બાબત છે, કારણ કે તે VPN સેટઅપનો ભાગ લાગે છે પણ નથી. ક્રેડેન્શિયલ સ્ટોરમાં વપરાશકર્તા CA ઇન્સ્ટોલ કરવાથી બદલાય છે કે Android કયા સર્ટિફિકેટ સ્વીકારશે, અને Android 7.0 થી API 24 કે તે પછીના લક્ષ્ય ધરાવતી એપ વપરાશકર્તાએ ઉમેરેલા CAને અવગણે છે, સિવાય કે તેની નેટવર્ક સિક્યુરિટી કોન્ફિગ વપરાશકર્તા ટ્રસ્ટ એન્કર સાથે તેને સ્વીકારે. CA પર આગ્રહ રાખતો ક્લાયન્ટ કદાચ કાયદેસર એન્ટરપ્રાઇઝ ઇન્ટરસેપ્શન કરી રહ્યો હોય, અથવા કદાચ એવી વસ્તુ માંગી રહ્યો હોય જેનો VPN સંવાદે કદી ઉલ્લેખ નહોતો કર્યો.

એક્સેસિબિલિટી ઍક્સેસ હજી વધુ બહાર બેસે છે. એક્સેસિબિલિટી ચાલુ હોય તેવી સેવા અન્ય એપના સ્ક્રીનની સામગ્રી વાંચી શકે છે, જે કોઈ પેકેટ-સ્તરનું સ્થાન આપતું નથી.

સ્થાનિક ફિલ્ટર કે દૂરનું ગેટવે

એ જ API એવા બે ઉત્પાદનોને આવરે છે જે અલગ વિશ્વાસ સ્તરને લાયક છે. ઉપકરણ પરનું ફાયરવોલ કે જાહેરાત બ્લોકર tun ડિસ્ક્રિપ્ટર લે છે અને ટ્રાફિકનો જવાબ સ્થાનિક રીતે આપે છે, તેને કદી પોતે ચલાવતા સર્વર પર મોકલતું નથી. સાચી ટનલ એ પેકેટને બીજે ક્યાંકના ગેટવે પર મોકલે છે, અને એ ઓપરેટર બીજા છેડેથી એ જ મેટાડેટા જુએ છે અને સાથે સાથે શું પાછું આવે તે પણ નક્કી કરે છે.

બંનેને અલગ પાડવાનો વ્યવહારુ રસ્તો એ છે કે VPN ચાલુ અને બંધ રાખીને તમારું જાહેર સરનામું તપાસો, અને જુઓ કે સૂચના કોઈ દૂરના એન્ડપોઇન્ટનું નામ લે છે કે નહીં. જો સરનામું કદી બદલાય નહીં, તો ટ્રાફિક સંભવતઃ ઉપકરણ પર જ ફરી રહ્યો છે.

બંને કિસ્સામાં તે હજી પેકેટ સ્થાન જ છે. ફરક એ છે કે બહાર નીકળવાના મુખ પર બીજું કોણ ઊભું છે.

તમે શું મંજૂર કર્યું તેનું ઓડિટ કરો

Settings ખોલો, પછી Network and internet, પછી VPN, અને સ્ટેટસ બારની આઇકન નહીં પણ એન્ટ્રી વાંચો. Always-on VPN અને Block connections without VPN એ ઉપકરણની સેટિંગ્સ છે જે ઇન્ટરફેસને જીવંત રાખે છે અને લીક કાપે છે; તે કંઈ પણ પહોળું કરતી નથી. એ જ સ્ક્રીન પરથી તમે પ્રોફાઇલ ભૂલી શકો છો અને મંજૂરી રદ કરી શકો છો.

પછી બાકીની પરવાનગીઓ ચાલો. App info દર્શાવે છે કે ક્લાયન્ટ પાસે કઈ રનટાઇમ મંજૂરીઓ છે, અને Security સેટિંગ્સ દર્શાવે છે કે તે જ સમયે વપરાશકર્તા સર્ટિફિકેટ ઇન્સ્ટોલ થયું હતું કે નહીં. બંનેમાંથી કોઈપણ એકને સ્વતંત્ર રીતે દૂર કરી શકાય છે.

જવાબ આપવા લાયક પ્રશ્ન સાંકડો છે: કયા પેકેટ આ સેવામાં પ્રવેશે છે, તેઓ ક્યાં જાય છે, અને અમલીકરણ શું રાખે છે. સંવાદમાં બાકીનું બધું ઘોંઘાટ છે. VpnService સંદર્ભ એ ઇન્ટરફેસ શું ખુલ્લું કરે છે તેની અધિકૃત યાદી છે.

સંબંધિત લેખો