VPN-ஐ சார்ந்திருக்காமல் Android செயலிகளில் தெளிவான உரையைத் தடுக்கவும்
பேலோடில் உள்ள தெளிவான உரையும் பாதையில் உள்ள தெளிவான உரையும் வெவ்வேறு பிரச்சினைகள். முதலாவதை செயலியில் திருத்துங்கள், இரண்டாவதை சுரங்கம் அல்லது சாதனக் கொள்கையால்.
Android-இல் தெளிவான உரையைத் தடுப்பது என்பது முற்றிலும் வேறுபட்ட இரண்டு விஷயங்களைக் குறிக்கிறது. ஒன்று செயலிக்குள் உள்ள கொள்கை, அது அதன் சொந்த வலையமைப்பு அடுக்குக்கு சாதாரண HTTP-ஐ மறுக்க உத்தரவிடுகிறது. மற்றொன்று சாதன அளவிலான ஏற்பாடு, அது தொலைபேசியில் உள்ள அனைத்தையும் ஒரே நேரத்தில் பாதுகாக்க முயல்கிறது, பொதுவாக போக்குவரத்தை VPN வழியாக அனுப்புவதன் மூலம். அவை வெவ்வேறு பிரச்சினைகளைத் தீர்க்கின்றன, இரண்டாவதால் முதலாவதை சரிசெய்ய முடியாது: சுரங்கம் தொலைபேசிக்கும் வெளியேற்றத்திற்கும் இடையிலான பகுதியைப் பாதுகாக்கிறது, ஆனால் HTTP பேசும் செயலி அந்த வெளியேற்றத்திற்கு அப்பால் உள்ள அனைத்துடனும் இன்னும் HTTP-ஐயே பேசுகிறது.
ஒரு பெயரின் கீழ் இரண்டு பிரச்சினைகள்
முதல் பிரச்சினை பேலோடு: செயலி அடையாளச் சான்றுகள் அல்லது டோக்கன்களை முழுவதும் மறையாக்கப்படாத கோரிக்கையில் எழுதுகிறது, எனவே அதைப் பார்க்கக்கூடிய ஒவ்வொரு தாவலும் அதைப் படிக்க முடியும். இரண்டாவது பாதை: செயலி முற்றிலும் சரியாக இருக்கலாம், இருப்பினும் அது எங்கு இணைகிறது என்பதை உள்ளூர் Wi-Fi இயக்குபவர் எதுவும் அறியக்கூடாது என நீங்கள் விரும்புகிறீர்கள். VPN இரண்டாவதை மட்டுமே கையாள்கிறது.
இந்த வேறுபாடே திருத்தத்தின் உரிமையாளரைத் தீர்மானிக்கிறது. பேலோடு செயலியை வழங்குபவருக்கே சொந்தம், ஏனெனில் எந்த URL அழைக்கப்படுகிறது, சான்றிதழ் சரிபார்க்கப்படுகிறதா என்பதை அந்தக் குறியீடே தீர்மானிக்கிறது. பாதை சாதனத்துக்கோ வலையமைப்புக்கோ சொந்தம், ஏனெனில் கேள்வி பாக்கெட்டுகள் எங்கு செல்கின்றன என்பதே தவிர அவற்றில் என்ன இருக்கிறது என்பது அல்ல.
முதல் பாதை: நீங்கள் கட்டுப்படுத்தும் செயலி
நீங்கள் செயலியை வழங்கினால், திருத்தம் என்பது ஒரு போக்குவரத்து முடிவு மற்றும் அதைச் செயல்படுத்தும் கொள்கை. ஒவ்வொரு முனையையும் HTTPS-க்கு திருப்புங்கள், புரவலன் பெயர் மற்றும் சான்றிதழ் சரிபார்ப்பை இயக்கத்தில் வையுங்கள், மேலும் சாதாரண HTTP-க்கான பின்னடைவை ஒரு உள்ளமைவுக் கொடி தூரத்தில் வைக்காமல் நீக்குங்கள். மறுவழியமைப்பு இங்கு உதவாது: 301 பெறும் HTTP கோரிக்கை ஏற்கனவே அதன் தலைப்புகளையும் உடலையும் வெளிப்படையாக அனுப்பிவிட்டது, எனவே அடையாளச் சான்றுகள் மறுவழியமைப்பு அவற்றைப் பாதுகாக்கும் என்ற அனுமானத்தில் ஒருபோதும் பயணிக்கக்கூடாது.
Android 7.0 முதல், Network Security Configuration கொள்கையை வெளிப்படுத்துகிறது. கீழே உள்ள கோப்பு மிகச் சிறிய பயனுள்ள பதிப்பு: களம் சார்ந்த விதிவிலக்கு வேறு விதமாகச் சொல்லாத வரை அது எல்லா இடங்களிலும் தெளிவான உரையை மறுக்கிறது.
<network-security-config>
<base-config cleartextTrafficPermitted="false" />
</network-security-config>அந்த வளத்தை மேனிஃபெஸ்ட்டில் இருந்து குறிப்பிடுங்கள், பின்னர் வழங்குவதற்கு முன் ஏற்கனவே உள்ள விதிவிலக்குகளைப் படியுங்கள். பழைய பிழைத்திருத்த களம் அல்லது கட்டண வழங்குநரின் SDK உள்ளீடு நீங்கள் பாதுகாக்க முயன்ற புரவலனுக்கு தெளிவான உரையை மீண்டும் அமைதியாக அனுமதிக்கலாம்.
பதிப்பின் இரண்டு விவரங்களை அறிவது பயனுள்ளது. API 28 அல்லது அதற்குப் புதியதை இலக்காகக் கொண்ட செயலிகள் ஏற்கனவே இயல்பாகவே தெளிவான உரையை மறுக்கின்றன, எனவே இன்னும் சாதாரண HTTP பேசும் செயலி பழைய API நிலையை இலக்காகக் கொள்கிறது அல்லது எங்காவது விதிவிலக்கு வைத்திருக்கிறது. வலைப்பிணைய பாதுகாப்பு உள்ளமைவு இருக்கும்போது, பழைய android:usesCleartextTraffic மேனிஃபெஸ்ட் பண்பு இனி இந்தக் கேள்வியைத் தீர்மானிக்காது, அதனால்தான் அந்தக் கொடியை மாற்றுவது சில சமயங்களில் எதுவும் செய்யாதது போலத் தெரிகிறது.
இரண்டாவது பாதை: நீங்கள் கட்டுப்படுத்தாத செயலி
நிறுவப்பட்ட மூன்றாம் தரப்பு செயலிக்கு பயனர் அமைப்பின் மூலம் அதன் பாதுகாப்பு உள்ளமைவை மீண்டும் எழுத முடியாது. உண்மையான விருப்பங்கள் தயாரிப்பின் சொந்த பாதுகாப்பான இணைப்புக் கட்டுப்பாடுகள், ஏற்கனவே TLS பயன்படுத்தும் பராமரிக்கப்படும் மாற்று, அல்லது சாதனம் எதை இயக்கலாம் என்பதை வரம்பிடும் நிர்வகிக்கப்பட்ட சாதனக் கொள்கை. இவை வெவ்வேறு உறுதிமொழிகள், மூன்றாவது மட்டுமே சாதனக் குழுவுக்கு விரிவடைகிறது.
வலையமைப்பு விதிகள் தோற்றத்தை விட பலவீனமான மாற்றுகள். போர்ட் 443-ஐ மட்டும் அனுமதிப்பது அங்கீகரிக்கப்பட்ட TLS-ஐ நடைமுறைப்படுத்தாது, ஏனெனில் பல தெளிவான உரை நெறிமுறைகளை அந்தப் போர்ட்டுக்கு நகர்த்தலாம், போர்ட் 80-ஐ தடுப்பது மற்ற போர்ட்களின் தெளிவான உரையை மறைக்காது. உலாவியின் HTTPS-மட்டும் பயன்முறையும் அந்த உலாவிக்கே வரம்பிடப்பட்டது, அதே தொலைபேசியில் உள்ள தனி மின்னஞ்சல் அல்லது அரட்டை செயலிக்கு அல்ல.
போக்குவரத்து மறையாக்கப்பட்டதாகத் தெரிய ஒரு இடைமறிப்புச் சான்றிதழை நிறுவுவது நம்பிக்கையின் மாற்றம், திருத்தம் அல்ல. அது செயலியின் சேவையக அங்கீகாரத்தை உங்களுடையதால் மாற்றுகிறது, தொடக்கத்திலேயே சான்றிதழ்களைச் சரிபார்க்காத செயலி அதனால் சரிசெய்யப்படாது; ஸ்ட்ரீமை யார் படிக்கலாம் என்பதை மட்டுமே நீங்கள் நகர்த்தியுள்ளீர்கள்.
VPN எங்கு உதவுகிறது, எங்கு உதவாது
உள்ளூர் வலையமைப்பு இணைப்பைப் பற்றி எதுவும் அறியக்கூடாது, அல்லது செயலி வேறு வழியில் அடைய முடியாத தனியுரிமைச் சேவையை அடைய வேண்டும் என்பதே தேவையானால் சுரங்கம் சரியான கருவி. HTTP வாடிக்கையாளரை HTTPS பேச வைப்பதற்கு அது தவறான கருவி, ஏனெனில் கோரிக்கை சுரங்கத்திற்குள் நுழைந்த அதே வடிவில் வெளியேறுகிறது.
Android ஒரு நடைமுறை வரம்பைச் சேர்க்கிறது: தளம் ஒரு நேரத்தில் ஒரு VPN சேவையை மட்டுமே இயக்குகிறது. அந்த இடத்தை எடுக்கும் உள்ளூர் வடிகட்டி செயலி உங்களுக்கு உண்மையில் தேவையான தொலை சுரங்கத்துடன் போட்டியிடுகிறது, இரண்டிற்கும் இடையே மாறுவது செயலி அளவிலானது அல்ல, சாதன அளவிலான செயல். அந்த ஒரே இடம் பேலோடு கொள்கையை செயலியில் வைத்து சுரங்கத்தை பாதைக்காக வைத்திருக்க நல்ல காரணம்.
இரண்டும் ஒன்றிணையும் ஒரே சந்தர்ப்பம் நீங்களே இயக்கும் தனியுரிமை சேவையகம். அங்கு நெறிமுறை இன்னும் தெளிவான உரையாக இருந்தாலும் சுரங்கம் பாதையைத் தனியுரிமையாக்க முடியும், இது வெளிப்பாட்டைக் குறைக்கிறது ஆனால் பேலோடு என்ன என்பதை மாற்றாது. அதை ஆபத்துக் குறைப்பாகக் கருதுங்கள், தரவின் மறையாக்கமாக அல்ல.
தடுக்கப்பட்டது எனக் கூறும் முன் என்ன சோதிக்க வேண்டும்
மக்களை ஆச்சரியப்படுத்தும் இயல்புநிலையில் தொடங்குங்கள்: API 28 அல்லது அதற்குப் புதியதை இலக்காகக் கொண்ட செயலி ஏற்கனவே தெளிவான உரையை மறுக்க வேண்டும், எனவே இயல்புநிலையை நகலெடுக்கும் உள்ளமைவைச் சேர்ப்பதற்கு முன் இலக்கு நிலையைச் சரிபாருங்கள். பின்னர் தோல்வி நிலையை வேண்டுமென்றே சோதியுங்கள்: சாதாரண HTTP புரவலனுக்கான கோரிக்கை பின்னடைவு வழியாக அமைதியாக வெற்றிபெறாமல் தோல்வியடைய வேண்டும்.
adb shell dumpsys package com.example.app | grep -E 'targetSdk|versionName'
adb logcat | grep -i cleartextவெற்றி நிலைக்கு, HTTPS அழைப்பு உண்மையான சான்றிதழ்ச் சங்கிலியைச் சரிபார்க்கிறது என்பதையும், நம்பமுடியாத சான்றிதழ் உள்ள ப்ராக்ஸி பொறுத்துக்கொள்ளப்படாமல் நிராகரிக்கப்படுகிறது என்பதையும் உறுதிசெய்யுங்கள். எந்தச் சான்றிதழுடனும் வெற்றிபெறும் கைக்குலுக்கல் போக்குவரத்துப் பாதுகாப்பைப் பற்றி எதுவும் நிரூபிக்கவில்லை.
மூன்றாம் தரப்பு செயலிக்கு நீங்கள் உண்மையில் நடைமுறைப்படுத்தக்கூடிய எல்லையை எழுதுங்கள், அது நிர்வகிக்கப்பட்ட சாதனக் கொள்கையோ வலையமைப்பு விதியோ எதுவுமில்லாததோ ஆகலாம், அதை ஏற்பு அளவுகோல்களில் கூறுங்கள். Android பாதுகாப்பு உள்ளமைவு வழிகாட்டி தளத்தின் இயல்புநிலைகளையும் எந்தப் பகுதிகள் கொள்கையை மதிக்கின்றன என்பதையும் பட்டியலிடுகிறது, உங்கள் உள்ளமைவு எதையாவது செய்கிறதா என்பதைத் தீர்மானிப்பது இந்தப் பகுதியே.