
एक सेंसरशिप दरकिनार करने का उपकरण जो सत्तावादी राज्य प्रतिद्वंद्वियों द्वारा पहचान से बचने के लिए है।
Cloak एक प्लगेबल ट्रांसपोर्ट है जो OpenVPN जैसे पारंपरिक प्रॉक्सी टूल्स को परिष्कृत सेंसरशिप और डेटा डिस्क्रिमिनेशन से बचने में मदद करता है।
Cloak एक स्वतंत्र प्रॉक्सी प्रोग्राम नहीं है। बल्कि, यह प्रॉक्सी किए गए ट्रैफ़िक को सामान्य वेब ब्राउज़िंग गतिविधियों के रूप में छिपाकर काम करता है। पारंपरिक टूल्स के विपरीत, जिनमें बहुत प्रमुख ट्रैफ़िक फ़िंगरप्रिंट होते हैं और सरल फ़िल्टरिंग नियमों द्वारा ब्लॉक किए जा सकते हैं, Cloak को कम गलत सकारात्मकता के साथ सटीक रूप से लक्षित करना बहुत मुश्किल है। इससे सेंसरशिप कार्रवाइयों को होने वाली साइड इफेक्ट बढ़ जाती है, क्योंकि Cloak को ब्लॉक करने के प्रयास उन सेवाओं को भी नुकसान पहुंचा सकते हैं जिन पर सेंसर राज्य निर्भर करता है।
किसी भी तीसरे पक्ष के पर्यवेक्षक के लिए, Cloak सर्वर चलाने वाला होस्ट एक हानिरहित वेब सर्वर से अप्रभेद्य है। यह सर्वर से और सर्वर तक ट्रैफ़िक प्रवाह को निष्क्रिय रूप से देखने के साथ-साथ Cloak सर्वर के व्यवहारों की सक्रिय रूप से जांच करने पर भी लागू होता है। यह क्रिप्टोग्राफिक स्टेग्नोग्राफी तकनीकों की एक श्रृंखला के उपयोग के माध्यम से प्राप्त किया जाता है।
Cloak का उपयोग किसी भी प्रॉक्सी प्रोग्राम के साथ किया जा सकता है जो ट्रैफ़िक को TCP या UDP के माध्यम से टनल करता है, जैसे कि Shadowsocks, OpenVPN और Tor। एक ही सर्वर होस्ट पर कई प्रॉक्सी सर्वर चलाए जा सकते हैं और Cloak सर्वर एक रिवर्स प्रॉक्सी के रूप में कार्य करेगा, ग्राहकों को उनके वांछित प्रॉक्सी एंड से जोड़ेगा।
Cloak कई अंतर्निहित TCP कनेक्शनों के माध्यम से ट्रैफ़िक को मल्टीप्लेक्स करता है, जिससे हेड-ऑफ़-लाइन ब्लॉकिंग कम होती है और TCP हैंडशेक ओवरहेड समाप्त होता है। यह ट्रैफ़िक पैटर्न को वास्तविक वेबसाइटों के अधिक समान बनाता है।
Cloak मल्टी-यूज़र सपोर्ट प्रदान करता है, जिससे कई क्लाइंट एक ही पोर्ट (डिफ़ॉल्ट रूप से 443) पर प्रॉक्सी सर्वर से कनेक्ट हो सकते हैं। यह उपयोग क्रेडिट और बैंडविड्थ नियंत्रण जैसी ट्रैफ़िक प्रबंधन सुविधाएँ भी प्रदान करता है। यह एक प्रॉक्सी सर्वर को कई उपयोगकर्ताओं की सेवा करने की अनुमति देता है, भले ही अंतर्निहित प्रॉक्सी सॉफ़्टवेयर कई उपयोगकर्ताओं के लिए डिज़ाइन नहीं किया गया हो।
Cloak Amazon Cloudfront जैसे मध्यवर्ती CDN सर्वर के माध्यम से टनलिंग का भी समर्थन करता है। ऐसी सेवाओं का इतना व्यापक रूप से उपयोग किया जाता है कि उनके ट्रैफ़िक को बाधित करने के प्रयास सेंसर के लिए बहुत अधिक साइड इफेक्ट पैदा कर सकते हैं।
सर्वर पर Shadowsocks के साथ Cloak को तेज़ी से तैनात करने के लिए, आप @HirbodBehnam द्वारा लिखित इस स्क्रिप्ट को चला सकते हैं।
git clone https://github.com/cbeuw/Cloak
cd Cloak
go get ./...
make
बिल्ड की गई बाइनरी build फ़ोल्डर में होंगी।
कॉन्फ़िगरेशन फ़ाइलों के उदाहरण example_config फ़ोल्डर के अंतर्गत पाए जा सकते हैं।
RedirAddr वह रीडायरेक्शन पता है जब आने वाला ट्रैफ़िक Cloak क्लाइंट से नहीं है। आदर्श रूप से इसे सेंसर द्वारा अनुमत किसी प्रमुख वेबसाइट पर सेट किया जाना चाहिए (जैसे www.bing.com)।
BindAddr उन पतों की सूची है जिन्हें Cloak बाइंड और सुनेगा (जैसे सभी इंटरफ़ेस पर पोर्ट 443 और 80 सुनने के लिए [":443",":80"])।
ProxyBook एक ऑब्जेक्ट है जिसकी कुंजी क्लाइंट-साइड पर उपयोग की जाने वाली ProxyMethod का नाम है (केस-सेंसिटिव)। इसका मान एक सरणी है जिसका पहला तत्व प्रोटोकॉल है, और दूसरा तत्व ऊपरी प्रॉक्सी सर्वर का एक IP:PORT स्ट्रिंग है जिस पर Cloak ट्रैफ़िक अग्रेषित करेगा।
उदाहरण:
{
"ProxyBook": {
"shadowsocks": [
"tcp",
"localhost:51443"
],
"openvpn": [
"tcp",
"localhost:12345"
]
}
}
PrivateKey बेस64 में एन्कोडेड स्टैटिक curve25519 डिफी-हेलमैन प्राइवेट कुंजी है।
BypassUID उन UID की सूची है जो बिना किसी बैंडविड्थ या क्रेडिट सीमा प्रतिबंध के अधिकृत हैं।
AdminUID बेस64 में व्यवस्थापक उपयोगकर्ता का UID है। यदि आप केवल BypassUID में उपयोगकर्ता जोड़ते हैं तो आप इसे खाली छोड़ सकते हैं।
DatabasePath userinfo.db का पथ है, जो उपयोगकर्ता उपयोग जानकारी और प्रतिबंधों को संग्रहीत करने के लिए उपयोग किया जाता है। Cloak फ़ाइल को स्वचालित रूप से बनाएगा यदि यह मौजूद नहीं है। यदि आप केवल BypassUID में उपयोगकर्ता जोड़ते हैं तो आप इसे खाली छोड़ सकते हैं। इस फ़ील्ड का कोई प्रभाव नहीं है यदि AdminUID एक वैध UID नहीं है या खाली है।
KeepAlive उन सेकंड की संख्या है जो OS को बताता है कि अंतर्निहित प्रॉक्सी सर्वर को TCP KeepAlive प्रोब भेजने से पहले कितनी देर तक निष्क्रियता के बाद प्रतीक्षा करनी है। शून्य या नकारात्मक मान इसे निष्क्रिय कर देगा। डिफ़ॉल्ट 0 (निष्क्रिय) है।
UID बेस64 में आपका UID है।
Transport direct या CDN हो सकता है। यदि सर्वर होस्ट चाहता है कि आप सीधे उससे कनेक्ट करें, तो direct का उपयोग करें। यदि इसके बजाय CDN का उपयोग किया जाता है, तो CDN का उपयोग करें।
PublicKey सर्वर व्यवस्थापक द्वारा दी गई बेस64 में स्टैटिक curve25519 सार्वजनिक कुंजी है।
ProxyMethod आपके द्वारा उपयोग की जा रही प्रॉक्सी विधि का नाम है। यह सर्वर की ProxyBook में प्रविष्टियों में से एक से बिल्कुल मेल खाना चाहिए।
EncryptionMethod उस एन्क्रिप्शन एल्गोरिदम का नाम है जिसे आप Cloak द्वारा उपयोग करना चाहते हैं। विकल्प हैं plain, aes-256-gcm (aes-gcm के समानार्थी), aes-128-gcm, और chacha20-poly1305। नोट: Cloak परिवहन सुरक्षा प्रदान करने के लिए अभिप्रेत नहीं है। एन्क्रिप्शन का उद्देश्य प्रॉक्सी प्रोटोकॉल के फिंगरप्रिंट को छिपाना और पेलोड को सांख्यिकीय रूप से यादृच्छिक जैसा बनाना है। आप इसे केवल plain पर छोड़ सकते हैं यदि आप सुनिश्चित हैं कि आपका अंतर्निहित प्रॉक्सी टूल पहले से ही एन्क्रिप्शन और प्रमाणीकरण दोनों प्रदान करता है (AEAD या समान तकनीकों के माध्यम से)।
ServerName वह डोमेन है जिसे आप अपने ISP या फ़ायरवॉल को सोचने देना चाहते हैं कि आप देख रहे हैं। आदर्श रूप से इसे सर्वर के कॉन्फ़िगरेशन में RedirAddr से मेल खाना चाहिए, एक प्रमुख साइट जिसे सेंसर अनुमति देता है, लेकिन ऐसा होना ज़रूरी नहीं है। प्रत्येक कनेक्शन के लिए सर्वर नाम को यादृच्छिक बनाने के लिए random का उपयोग करें।
AlternativeNames एक सरणी है जिसका उपयोग ServerName के साथ प्रत्येक नए कनेक्शन के लिए विभिन्न ServerNames के बीच फेरबदल करने के लिए किया जाता है। यह CDN ट्रांसपोर्ट मोड के साथ टकराव कर सकता है यदि CDN प्रदाता डोमेन फ्रंटिंग को प्रतिबंधित करता है और वैकल्पिक डोमेन को अस्वीकार करता है।
उदाहरण:
{
"ServerName": "bing.com",
"AlternativeNames": ["cloudflare.com", "github.com"]
}