संचिका स्थानांतरण प्रोटोकॉल

संचिका स्थानांतरण प्रोटोकॉल (अंग्रेज़ी: File Transfer Protocol, लघु:एफटीपी) एक नेटवर्क प्रोटोकॉल होता है जिसके द्वारा इंटरनेट आधारित टीसीपी/आईपी नेटवर्क पर संचिकाओं का आदान-प्रदान किया जाता है। इसे उपयोक्ता आधारित कूट (यूजर बेस्ड पासवर्ड) या अनॉनिमस यूजर एक्सेस के द्वारा काम में लाया जाता है। अब लगभग हर संस्थान में एफटीपी सर्वर होने से, यह व्यवस्था काम में नहीं आती है। अनेक हाल के वेब ब्राउजर और फाइल प्रबंधक एफटीपी सर्वरों से जुड़ सकते हैं। इससे दूर-दराज (रिमोट) से आने वाली संचिकाओं पर लोकल फाइलों जैसा ही कार्य हो सकता है। इसमें एफटीपी यूआरएल प्रयोग में लाया जाता है। संचिका भेजने के अन्य तरीके जैसे एसएफटीपी और एससीपी एफटीपी से नहीं जुड़े होते। इनकी पूरी प्रक्रिया में एसएसएच का प्रयोग होता है।

इतिहास

फाइल ट्रांसफर प्रोटोकॉल या एफटीपी अपने वर्तमान रूप में विभिन्न चरणों से होता हुआ पहुंचा है। सर्वप्रथम १६ अप्रैल, १९७१ में इसे आरएफसी ११४ के नाम से तैयार किया गया था जिसे बाद में जून, १९८० में आरएफसी ७६५ से बदला गया जिसे सन अक्तूबर १९८५ में आरएफसी ९५९ से परिवर्तित किया गया। उसके बाद अनेक सुरक्षा संबंधी बदलाव इसमें आए। ये सुरक्षा संबंधी बदलाव इसलिए लाए गए थे क्योंकि आरंभ में संचिकाएं भेजने का यह तरीका बहुत असुरक्षित था। इस असुरक्षा का प्रमुख कारण था कि संचिका भेजने की प्रक्रिया में कोई भी उसी नेटवर्क पर उस फाइल को चुरा या नकल कर सकता था। एचटीटीपी, एसएमटीपी और टेलनेट से पूर्व यह इंटरनेट प्रोटोकॉल के कार्यक्षेत्र में आने वाली एक आम समस्या बनी हुई थी। इस समस्या का निवारण एसएफटीपी (सिक्योर फाइल ट्रांसफर प्रोटोकॉल) के द्वारा ही संभव हुआ।

सुरक्षा

मूल एफ़टीपी विनिर्देशन, संचिकाओं के अंतरण की स्वाभाविक असुरक्षित पद्धति है, क्योंकि एन्क्रिप्टेड ढंग से डाटा अंतरित करने की कोई निर्दिष्ट विधि नहीं है। इसका अर्थ यह है कि अधिकांश नेटवर्क विन्यासों के अंतर्गत, प्रयोक्ता नाम, पासवर्ड, एफ़टीपी कमांड और अंतरित संचिकाएं, एक पैकेट संसूचक के उपयोग द्वारा उसी नेटवर्क पर अवस्थित कोई भी अंतरित संचिकाओं को हथिया सकता है। यह एचटीटीपी, एसएमटीपी और टेलनेट जैसे एसएसएल के निर्माण से पहले लिखे गए कई इंटरनेट प्रोटोकॉल विनिर्देशों के लिए आम समस्या रही है। इस समस्या के लिए आम समाधान है एसएफटीपी (एसएसएच फ़ाइल अंतरण प्रोटोकॉल), या एफटीपीएस (एसएसएल की अपेक्षा एफ़टीपी), जो आरएफ़सी ४२१७ में विनिर्दिष्ट तरीक़े से एफ़टीपी में एसएसएल या टीएलएस एन्क्रिप्शन जोड़ते हैं।

अनाम एफ़टीपी

एफ़टीपी सेवा प्रदान करने वाला एक होस्ट, अतिरिक्त रूप से अनाम एफ़टीपी पहुंच उपलब्ध कराने में सक्षम होता है। प्रयोक्ता नाम के लिए पूछे जाने पर, प्रयोक्ता सामान्य तौर पर 'अनाम' खाते की सेवा में लॉग-इन करते हैं। यद्यपि आम तौर पर प्रयोक्ताओं को पासवर्ड के एवज में अपना ई-मेल पता भेजने के लिए कहा जाता है, तो आपूरित जानकारी का सत्यापन थोड़ा-बहुत या बिल्कुल नहीं किया जाता है। चूंकि आधुनिक एफ़टीपी क्लाइंट आम तौर पर प्रयोक्ता से अनाम प्रवेश प्रक्रिया को छुपाते हैं, एफ़टीपी क्लाइंट, पासवर्ड के रूप में नकली डाटा की आपूर्ति कर सकते हैं क्योंकि अनुप्रयोग को प्रयोक्ता का ई-मेल पता ज्ञात नहीं हो सकता है। गोफ़र प्रोटोकॉल को और साथ ही साधारण फ़ाइल अंतरण प्रोटोकॉल और फ़ाइल सेवा प्रोटोकॉल को भी, अनाम एफ़टीपी के लिए एक विकल्प के रूप में सुझाया गया है।

एफटीपी मेल

जहां एफटीपी एक्सेस प्रयोग में नहीं आता, वहां दूरवर्ती या रिमोट एफटीपी या एफटीपी मेल प्रयोग में लाया जाता है। इसमें एक ईमेल दूसरे एफटीपी सर्वर पर भेजा जाता है जो एफटीपी कमांड पूरी करता है और डाउनलोड संचिका वाली अनुलग्नक वापस भेजता है। यह खासकर वहां प्रयोग में लाया जाता है, जहां FTP पहुंच प्रतिबंधित हो। दूरवर्ती एफ़टीपी सर्वर को निष्पादित किए जाने वाले एफ़टीपी कमांड युक्त ई-मेल भेजा जाता है। यह एक मेल सर्वर होता है जो आवक ई-मेल को पार्स करता है, एफ़टीपी कमांडों को कार्यान्वित करता है और अटैचमेंट के रूप में डाउनलोड किए गए किसी संचिका के साथ ई-मेल वापस भेजता है। यह स्पष्ट रूप से एक एफ़टीपी क्लाइंट से कम लचीला है, क्योंकि निर्देशिकाओं को पारस्परिक क्रिया करते या आदेशों को संशोधित करते हुए नहीं देखा जा सकता है और उत्तर में बड़े संचिका अनुलग्नकों को मेल सर्वर के माध्यम से निकलने में भी समस्या हो सकती है। आजकल अधिकांश इंटरनेट प्रयोक्ताओं के पास एफ़टीपी का पहुंच सुलभ है, अतः यह प्रक्रिया दैनंदिन उपयोग में प्रचलित नहीं है।

एफ़टीपी और वेब ब्राउज़र

वर्तमान में आधुनिक और हाल ही के वेब ब्राउज़र और फाइल प्रबंधक, एफ़टीपी सर्वरों से जुड़ सकते हैं, हालांकि उनमें एफटीपीएस जैसे प्रोटोकॉल विस्तार (एक्सटेंशन) के लिए समर्थन की कमी हो सकती है। यह एफ़टीपी पर दूरवर्ती संचिकाओं की अदला-बदली में स्थानीय संचिकाओं के लिए प्रयुक्त इंटरफ़ेस जैसे माध्यम को अनुमत करता है। यह एक एफ़टीपी यूआरएल के द्वारा किया जाता है। यह इस रूप में होता है:

ftp(s)://<ftpserveraddress> 
(उदा. ftp://ftp.gimp.org/)
वैकल्पिक रूप से यूआरएल में पासवर्ड दिया जा सकता है, उदा.:

ftp(s)://<login> :<password> @<ftpserveraddress> :<port>
अधिकांश वेब ब्राउज़रों को निष्क्रिय मोड एफ़टीपी की आवश्यकता होती है, जिससे पूरा करने हेतु सभी एफ़टीपी सर्वर सक्षम नहीं हैं। कुछ ब्राउज़र केवल संचिकाओं को डाउनलोड करने की अनुमति देते हैं, पर सर्वर में संचिकाओं को अपलोड करने का कोई साधन उपलब्ध नहीं कराते हैं।

एफ़टीपी और एनएटी उपकरण

आईपी पते और पोर्ट कमांड पर पोर्ट संख्याओं का प्रतिनिधित्व और पीएएसवी उत्तर, नेटवर्क पता अनुवाद (NAT) उपकरणों के लिए FTP से निपटने में एक और चुनौती है। एनएटी उपकरण द्वारा इन मानों को बदलना पड़ता है, ताकि वे NAT-ed क्लाइंट के आई-पी पते और डाटा कनेक्शन के लिए NAT उपकरण द्वारा चुने गए पोर्ट को शामिल करें। नया पता और पोर्ट संभवतः उनके दशमलव प्रतिनिधित्व की लंबाई में अपने मूल पते और पोर्ट से अलग हों। इसका अर्थ यह है कि NAT उपकरण द्वारा सभी परवर्ती पैकेटों के लिए टीसीपी अनुक्रम और पावती फ़ील्डों को बदलते हुए, नियंत्रण कनेक्शन पर मान को सावधानी से बदला जाना चाहिए। अधिकांश NAT उपकरणों में आम तौर पर इस तरह के अनुवाद नहीं किए जाते हैं, बल्कि इस उद्देश्य के लिए विशेष अनुप्रयोग स्तरीय गेट-वे उपलब्ध रहते हैं।

एसएसएच की अपेक्षा एफ़टीपी

SSH की अपेक्षा एफ़टीपी (ना कि एसएफ़टीपी) एक एसएसएच कनेक्शन की अपेक्षा सामान्य एफ़टीपी सत्र केटनल बनाने के प्रयोग को संदर्भित करता है।
 एफ़टीपी एक से अधिक टीसीपी कनेक्शनों का उपयोग करता है (TCP/IP प्रोटोकॉल के लिए असामान्य, जो अभी भी प्रचलन में है), अतएव एसएसएच पर टनल बनाना विशेष रूप से कठिन होता है। कई एसएसएच क्लाइंटों के साथ, नियंत्रण चैनल के लिए टनल तैयार करने का प्रयास (पोर्ट २१ पर प्रारंभिक क्लाइंट-टु-सर्वर कनेक्शन) केवल चैनल की रक्षा करेगा; जब डाटा स्थानांतरित होता है, दोनों छोर पर एफ़टीपी सॉफ्टवेयर टीसीपी कनेक्शनों (डाटा चैनल) को स्थापित करेंगे, जो एसएसएच कनेक्शन से बाहर उपमार्ग पर गुज़रेंगे और इस तरह गोपनीयता, अखंडता संरक्षण, आदि नहीं रहेगी। अन्यथा, एसएसएच क्लाइंट सॉफ़्टवेयर के लिए एफ़टीपी प्रोटोकॉल का विशिष्ट ज्ञान और एफ़टीपी नियंत्रण संदेशों की निगरानी और पुनर्लेखन तथा स्वायत्त रूप से एफ़टीपी डाटा चैनलों के लिए नए अग्रेषण खोलना आवश्यक होता ज़रूरी है। एसएसएच संचार सुरक्षा के सॉफ्टवेयर परिकर का संस्करण ३ और जीपीएल द्वारा लाइसेंसकृत एफ़ओएनसी, ऐसे दो सॉफ्टवेयर पैकेज हैं, जो इस विधा का समर्थन करते हैं। SSH की अपेक्षा FTP को कभी-कभी सुरक्षित FTP के रूप में भी संदर्भित किया जाता है; इसे FTP सुरक्षित करने की SSL/TLS (FTPS) जैसी अन्य पद्धति नहीं समझना चाहिए। SSH का उपयोग करते हुए संचिकाओं को स्थानांतरित करने के अन्य तरीक़ों में शामिल हैं एसएफ़टीपी और एससीपी, जो एफ़टीपी से संबंधित नहीं हैं; इनमें से प्रत्येक में, पूरा वार्तालाप (क्रिडेंशियल और डाटा) हमेशा SSH प्रोटोकॉल द्वारा सुरक्षित है।