Android અથવા iOS પર એપ સાચવેલ VPN પ્રોફાઇલ કેમ ચાલુ કરી શકતી નથી
તમારું પોતાનું ટનલ બનાવવું અને સાચવેલ પ્રોફાઇલ ચાલુ કરવું બે અલગ કામ છે. Android, iOS અને ડેસ્કટોપ એપને ખરેખર શું પરવાનગી આપે છે તેની સરખામણી કરો.
બે ખૂબ જ અલગ કામો પ્રોગ્રામેટિક VPN ના નામ હેઠળ ગણાય છે, અને તેમાંથી ફક્ત એક જ બંને મોબાઇલ પ્લેટફોર્મ પર સામાન્ય એપ માટે ઉપલબ્ધ છે. પ્રથમ એ છે જે પ્રોફાઇલ વપરાશકર્તાએ પહેલેથી સાચવી છે તેને ચાલુ કરવી; બીજું એ છે તમારી પોતાની પ્રક્રિયાની અંદર ટનલ બનાવવું. Android બીજું VpnService દ્વારા આપે છે અને iOS બીજું Network Extension અધિકાર દ્વારા આપે છે, જ્યારે પ્રથમ સિસ્ટમ, ઉપકરણના માલિક અથવા MDM સર્વર પાસે રહે છે. તમને ખરેખર કઈ જોઈએ છે તે શોધવાથી સામાન્ય રીતે પ્રોજેક્ટ નાનો થાય છે.
એક જ નામ ધરાવતાં બે કામો
સાચવેલ પ્રોફાઇલ સક્રિય કરવાનો અર્થ છે હાલના ટનલને ઉપર આવવાનું કહેવું: હોસ્ટ, ઓળખપત્ર, પ્રોટોકોલ, બધું પહેલેથી જ એવી જગ્યાએ ગોઠવેલું જે વપરાશકર્તા જોઈ શકે. ટનલ બનાવવાનો અર્થ છે તમારો કોડ ઇન્ટરફેસ, પેકેટ લૂપ અને પ્રોટોકોલનો માલિક છે. ઉત્પાદન બેકલોગમાં તે સરખા દેખાય છે અને લગભગ કોઈ અમલીકરણ વહેંચતા નથી.
કોઈ પણ મોબાઇલ પ્લેટફોર્મ પ્રથમને SDK એપ સામે ખુલ્લું મૂકતું નથી. વપરાશકર્તા કંઈ ન કરે તો પણ દેખાતું કનેક્શન માલવેરથી અલગ પડતું નથી, તેથી બંને સિસ્ટમ ટ્રાફિક વહન કરતી કોઈપણ એપ સામે સંમતિનું દ્વાર મૂકે છે.
Android: સંમતિનું દ્વાર, અને કોઈ પ્રોફાઇલ API નહીં
VpnService Android 4.0 થી અસ્તિત્વમાં છે અને એપને tun ઇન્ટરફેસ બનાવવા દે છે, પછી પેકેટ વાંચે અને લખે છે. સેવા BIND_VPN_SERVICE સાથે ઘોષિત થવી જોઈએ, અને VpnService.prepare() તે સિસ્ટમ સંવાદ ઉત્પન્ન કરે છે જે વપરાશકર્તાને પરવાનગી માગે છે. પ્લેટફોર્મનો નમૂનો ToyVpn ઇચ્છિત આકારનું સૌથી સ્પષ્ટ નિવેદન છે: તમારો કોડ ઇન્ટરફેસ અને તેમાંથી પસાર થતી દરેક વસ્તુનો માલિક છે.
જે તે કરતું નથી તે સિસ્ટમની VPN સેટિંગ્સ સ્ક્રીન પર એન્ટ્રી ઉમેરવી છે. તે માટે કોઈ જાહેર API નથી, અને સેટિંગ્સ એપ તેની પ્રોફાઇલ એવા સ્ટોરમાં રાખે છે જ્યાં સામાન્ય એપ પહોંચી શકતી નથી. સામાન્ય એપ્લિકેશનમાંથી છુપાયેલા વર્ગોમાં કૉલ સિસ્ટમ કદી સૂચિબદ્ધ ન કરે તેવી પ્રોફાઇલ બનાવે છે, તેથી એક બિલ્ડમાં કામ કરતો દેખાતો કોડ આગલા બિલ્ડમાં ચૂપચાપ કામ કરવાનું બંધ કરે છે.
સંચાલિત માર્ગ અલગ છે. ઉપકરણ માલિક અથવા પ્રોફાઇલ માલિક ઉપકરણ નીતિ API દ્વારા હંમેશા ચાલુ VPN પેકેજ નિયુક્ત કરી શકે છે, અને એન્ટરપ્રાઇઝ સાધન એવી પ્રોફાઇલ મોકલી શકે છે જે વપરાશકર્તા પછી મંજૂર કરે. આ ઉપકરણ-સંચાલન સત્તા છે, એપ ઇન્સ્ટોલ વખતે માગતી પરવાનગી નથી. જો તમારો ગ્રાહક સંસ્થા હોય, તો આ તે માર્ગ છે જેનું આયોજન કરવું; જો તમારો ગ્રાહક સ્ટોરમાંથી ઇન્સ્ટોલ કરતી વ્યક્તિ હોય, તો તે બિલકુલ ઉપલબ્ધ નથી.
iOS: અધિકાર એ સીમા છે
iOS એ જ કામ અલગ રીતે વિભાજિત કરે છે. VPN ક્લાયન્ટ Network Extension ફ્રેમવર્ક હેઠળ પેકેટ ટનલ પ્રદાતા અથવા એપ પ્રોક્સી અમલમાં મૂકે છે, અને સંબંધિત અધિકાર ડેવલપર ખાતાને આપવો પડે છે. સરળ કિસ્સા માટે NEVPNManager દ્વારા વ્યક્તિગત VPN રૂપરેખાંકન છે, અને તે હજી પણ એ જ પરવાનગી મોડેલમાં ચાલે છે. Apple આખી સપાટી Network Extension સંદર્ભમાં દસ્તાવેજ કરે છે, જે કામનો વ્યાપ નક્કી કરતા પહેલા વાંચવા યોગ્ય છે.
VPN સેટિંગ્સ સ્ક્રીન ખોલવા, વપરાશકર્તાની સાચવેલ રૂપરેખાંકનો વાંચવા અથવા તેમાંથી એક શરૂ કરવા માટે કોઈ સમર્થિત રીત નથી. ક્લાયન્ટ જે કરી શકે છે તે છે ઇન્સ્ટોલ કરવા માટે રૂપરેખાંકન પ્રોફાઇલ મોકલવી, અને પછી પરિણામી ટનલનો સામાન્ય નેટવર્કિંગ કૉલ દ્વારા ઉપયોગ કરવો. પ્રતિ-એપ ટનલિંગ MDM સર્વર માંગ પરના નિયમ દ્વારા સોંપે છે, રનટાઇમ વખતે એપ પસંદ કરતી નથી.
મોટા વેન્ડરનો VPN ક્લાયન્ટ એ પુરાવો નથી કે તમારું ખાતું એ જ વસ્તુ મોકલી શકે. તે અધિકાર પ્રતિ ડેવલપર ખાતે માંગવામાં આવે છે અને સમીક્ષા થાય છે, તેથી શેડ્યૂલ જોખમ Apple પર છે, તમારી સ્પ્રિન્ટ યોજના પર નહીં.
ડેસ્કટોપ વધુ દૂર પહોંચે છે, પણ માલિકી બદલાતી નથી
Windows પરવાનગી આપતો કિસ્સો છે. Add-VpnConnection ઉન્નત PowerShell સત્રમાંથી ટેલિફોન બુક એન્ટ્રી બનાવે છે, અને rasdial સ્ક્રિપ્ટમાંથી તેને જોડે કે છૂટું પાડે છે. એપ દસ્તાવેજિત કમાન્ડ લાઇન દ્વારા વેન્ડર ક્લાયન્ટને પણ ચલાવી શકે છે. પ્રોફાઇલ બનાવવું હજી પણ વહીવટી ક્રિયા છે, કારણ કે એન્ટ્રી આખા મશીનના સ્ટોરમાં રહે છે.
macOS અન્ય સાધનો સાથે એ જ રીતે વર્તે છે. scutil --nc start અને stop પહેલેથી અસ્તિત્વમાં હોય તેવી સેવાઓ પર કામ કરે છે, જ્યારે એક બનાવવી એ સિસ્ટમ વ્યવસ્થાપન કાર્ય છે. લેપટોપ પર પ્રક્રિયાની માલિકી તમને રૂપરેખાંકનનો માલિક બનાવતી નથી.
તેના બદલે શું બનાવવું
જો ખરી જરૂરિયાત એ છે કે તમારી એપ આંતરિક API સુધી પહોંચે, તો વપરાશકર્તા પહેલેથી ચલાવતું ટનલ પૂરતું છે. સામાન્ય HTTPS વિનંતીઓ કરો, સિસ્ટમને માર્ગ પસંદ કરવા દો, અને ટનલ નિયંત્રિત કરવાનો પ્રયાસ બંધ કરો. જો જરૂરિયાત એ છે કે ફક્ત તમારી એપનો ટ્રાફિક ટનલ વાપરે, તો સંચાલન ચેનલ દ્વારા પ્રતિ-એપ VPN માગો, અથવા એપની અંદર એવી સેવા સામે TLS સમાપ્ત કરો જે તેના વિના પહોંચી શકાય.
છુપાયેલા API લેવા યોગ્ય શોર્ટકટ નથી. તે આવૃત્તિઓ વચ્ચે બદલાય છે, એપ સમીક્ષામાં નિષ્ફળ જાય છે, અને તે જે ખામીઓ ઉત્પન્ન કરે છે તે કોડનો વારસો લેનારને સામાન્ય નેટવર્ક ખામી જેવી લાગે છે. સરખામણી Android વિરુદ્ધ iOS નથી; તે ટનલની માલિકી વિરુદ્ધ પ્લેટફોર્મને ટ્રાફિક રૂટ કરવાનું કહેવું છે, અને ફક્ત પ્રથમ જ તમારે બનાવવાનું છે.