जवाबों:
शुरुआत से, यूनिक्स और यूनिक्स-शैली ऑपरेटिंग सिस्टम (लिनक्स सहित) ने हमेशा क्रिप्टोग्राफ़िक हैश (1) के रूप में पासवर्ड संग्रहीत किया है। इन हैश को मूल रूप से संग्रहीत किया गया था /etc/passwd, लेकिन इस फ़ाइल को अन्य उद्देश्यों के लिए जानकारी उपलब्ध कराने के लिए विश्व-पठनीय होने की ls -lआवश्यकता थी - यहां तक कि /etc/passwdप्रत्येक फ़ाइल स्वामी की सांख्यिक उपयोगकर्ता आईडी को उनके उपयोगकर्ता नाम में बदलने के लिए पढ़ने के लिए एक सरल आवश्यकता भी है । हालाँकि, विश्व-पठनीय फ़ाइल में हैशेड पासवर्ड रखने से दुर्भावनापूर्ण उपयोगकर्ताओं को आसानी से उन हैश को प्राप्त करने और अन्य उपयोगकर्ताओं के खातों के लिए उपयोग करने योग्य पासवर्ड (2) उत्पन्न करने का प्रयास करने की अनुमति मिलती है।
इसे रोकने के लिए, टुकड़ों में बंटी पासवर्ड अंततः एक फ़ाइल पठनीय में केवल जड़ (और कभी कभी प्रशासकों के एक विशेषाधिकार प्राप्त समूह) द्वारा, चले गए थे /etc/shadow। यह उपयोगकर्ता प्रमाणीकरण उद्देश्यों के लिए उपलब्ध रखते हुए सिस्टम के सामान्य उपयोगकर्ताओं से हैश को छुपाता है।
नोट :
पांडित्य, मुझे पता है, लेकिन संग्रहीत पासवर्ड एन्क्रिप्टेड नहीं हैं । वे क्रिप्टोग्राफिक रूप से सुरक्षित (कम से कम उस समय जैसा लिखा गया था) हैशिंग एल्गोरिथ्म का उपयोग करके हैशेड कर रहे हैं। यहां प्रासंगिक प्राथमिक अंतर यह है कि हैश निश्चित-लंबाई है (एन्क्रिप्टेड पाठ की लंबाई पाठ की लंबाई के आधार पर भिन्न होती है जिसे एन्क्रिप्ट किया गया था) और गैर-प्रतिवर्ती (एन्क्रिप्टेड पाठ को डिक्रिप्ट किया जा सकता है; हैशेड पाठ नहीं कर सकते)।
क्योंकि हैश निश्चित लंबाई के होते हैं, इसलिए अनंत संख्या में इनपुट होते हैं जो किसी भी दिए गए हैशेड प्रतिनिधित्व से मेल खाते हैं। एक हमलावर, इसलिए, एक काम करने वाला पासवर्ड खोज सकता है, जो जरूरी नहीं कि मालिक के उपयोगकर्ता के पासवर्ड के समान हो - हालांकि यह बहुत संभव नहीं है कि आधुनिक क्रिप्टो हैश का आकार दिया गया है।
/etc/shadowसुरक्षा कारणों से फ़ाइल बनाया है, और प्रत्येक उपयोगकर्ता की एन्क्रिप्टेड पासवर्ड धारण किया गया था।
मूल रूप से, एन्क्रिप्ट किया गया पासवर्ड अंदर संग्रहीत किया गया था /etc/passwd। /etc/passwdविश्व को पठनीय होना चाहिए ताकि सिस्टम उपयोगकर्ता नामों के लिए उपयोगकर्ता मैप कर सके, और ताकि उपयोगकर्ता एक दूसरे के बारे में जानकारी प्राप्त कर सकें, जैसे कि दूसरे उपयोगकर्ता के घर की निर्देशिका, या उनके फोन नंबर, जो परंपरागत रूप से "gecos" फ़ील्ड में संग्रहीत किया गया था और "उंगली" उपयोगिता द्वारा प्रदर्शित।
लेकिन तब लोगों को एहसास हुआ कि यह एक सुरक्षा समस्या थी। पर्याप्त समय के साथ कोई भी ऐसा कर सकता है जिसे हर संभव पासवर्ड के लिए एन्क्रिप्टेड पासवर्ड उत्पन्न करके एक क्रूर हमले कहा जाता है । यदि हमलावर था कि वास्तव में के द्वारा प्रवेश करने की कोशिश कर के बिना telnetया ssh, प्रणाली पता नहीं कर सके कि यह हमला किया जा रहा था।
तो एन्क्रिप्टेड पासवर्ड को नए बनाए गए में ले जाया गया /etc/shadow, जो केवल रूट द्वारा पठनीय है।
इसमें अन्य जानकारी भी शामिल है कि /etc/passwdफ़ाइल ने उपयोगकर्ता के खाते और पासवर्ड से संबंधित समर्थन नहीं किया, उदाहरण के लिए जब पासवर्ड अंतिम बार बदला गया था और जब यह समाप्त हो जाएगा।
फ़ाइल प्रारूप के पूर्ण विवरण के लिए man 5 shadow( वेब संस्करण ) देखें ।
मैं यह नहीं कह सकता कि क्या यह SUSE के लिए समान है, बिना यह जाने कि SUSE के किस संस्करण के साथ आप काम कर रहे हैं। उदाहरण के लिए, आपका SUSE सिस्टम MD5 के बजाय ब्लोफिश का उपयोग कर सकता है।
आपने यह भी निहित किया कि आप अपनी /etc/shadowफाइल को एक अलग लिनक्स वितरण चलाने वाली प्रणाली के साथ मिला रहे थे , लेकिन यह नहीं बताया कि अन्य वितरण क्या था।
उदाहरण के लिए SuSE 9.3 से Ubuntu Server x86_64 तक छाया फ़ाइल माइग्रेट करने में समस्याएँ देखें ।
यह पता लगाने की कोशिश करने के लिए, खोलें /etc/shadowऔर देखें कि एन्क्रिप्टेड पासवर्ड फ़ील्ड के साथ शुरू होता है $1$या नहीं $2$। यदि यह शामिल है $1$, तो यह एमडी 5 है, और अधिकांश अन्य वितरणों के साथ संगत है। यदि यह होता है $2$, तो यह शायद डेबियन पर ब्लोफिश छाया फाइलों के अनुसार ब्लोफिश है ।
यदि आप उबंटू का उपयोग कर रहे हैं, तो उबंटू ब्लोफिश के लिए पहला Google खोज परिणाम एक अच्छी शुरुआत हो सकती है।
उपयोगकर्ता /etc/passwdफ़ाइल में सूचीबद्ध हैं । इस फ़ाइल में सिस्टमम द्वारा उपयोग की जाने वाली कई जानकारियां हैं, जो न केवल उपयोगकर्ताओं को लॉग इन करने की अनुमति देती हैं।
प्रत्येक पंक्ति एक उपयोगकर्ता प्रविष्टि से मेल खाती है और विभिन्न क्षेत्रों को कॉलोनों द्वारा अलग किया जाता है। पहला दायर लॉगिन है, इसके बाद संबंधित पासवर्ड है।
एन्क्रिप्ट किए गए पासवर्ड इस क्षेत्र में संग्रहीत किए जाते थे। हालाँकि, /etc/passwdफ़ाइल को सिस्टम पर सभी द्वारा पढ़ा जा सकता है, इसलिए एन्क्रिप्शन ब्रूट फोर्स के हमलों से नहीं रोकता है, जैसा कि @Mikel द्वारा कहा गया है। समाधान इन एन्क्रिप्ट किए गए पासवर्ड को रूट-रीडेबल फ़ाइल में स्थानांतरित करना था /etc/shadow:।
इस प्रकार, /etc/shadowसिस्टम के उपयोगकर्ताओं के एन्क्रिप्टेड पासवर्ड शामिल हैं। सिस्टम को यह पता है कि उसे इस फाइल में पासवर्ड की जांच करनी है जब पासवर्ड फ़ील्ड में /etc/passwdअकेले एक्स होता है (जिसका अर्थ है " क्रॉस ओवर / वगैरह / छाया")
/etc/passwdजिन पासवर्ड को स्टोर किया गया था / अभी भी उसी तरह से हैश किए गए हैं जैसे वे अंदर थे वैसे ही होंगे /etc/shadow। आप वास्तव में यह नहीं कहते हैं कि पासवर्ड /etc/passwdसादा होगा, लेकिन यह किसी ऐसे व्यक्ति के लिए अपरिचित होगा, जो आपके जवाब को गलत साबित करने के लिए * निक्स पासवर्ड को हैंडल कर सकता है।
xवास्तव में कुछ भी मतलब है। यह एक अमान्य हैश के रूप में है (जो किसी भी पासवर्ड से मेल नहीं खाता है)। कुछ सिस्टम का उपयोग करते हैं !।
चलो देखते हैं कि क्या मुझे दुनिया में सभी अप-वोट मिल सकते हैं, क्योंकि मैंने लिखा था कि '87 में लिनक्स शैडो पासवर्ड सूट क्या है;);
मूल /etc/passwdफ़ाइल में Cleartext पासवर्ड का संशोधित DES- आधारित हैश शामिल था। जिस समय यह crypt()फ़ंक्शन बनाया गया था, यह माना जाता था (और यह UNIX ऑपरेटिंग सिस्टम के रचनाकारों द्वारा कहा गया था) कि पासवर्ड के खिलाफ हमले संभव नहीं हैं, संभव पासवर्ड की संख्या और 12-बिट के उपयोग के कारण। (4,096 संभावित मूल्य) "नमक"। प्रत्येक संभावित क्लीयरटेक्स्ट पासवर्ड में 4,096 संभावित हैशेड मान थे, और 64-बिट हैशेड परिणाम के साथ, जिसने कुल 2 ^ 72 संभावित पासवर्ड हैश दिया।
जैसा कि एक अन्य पोस्टर में उल्लेख किया /etc/passwdगया है , का उपयोग विभिन्न उपयोगिताओं द्वारा उपयोगकर्ता के नाम और यूआईडी मूल्यों के बीच मैप करने के लिए किया गया था ( /etc/groupफ़ाइल समूहों के लिए अनुरूप कार्य प्रदान करता है) और इसके लिए इसे विश्व-पठनीय होना आवश्यक था।
1980 के दशक में यह स्पष्ट हो गया कि /etc/passwdफाइल में संग्रहीत पासवर्ड हैश के खिलाफ शब्दकोष व्यवहार्य हो रहे थे और /etc/shadowसिस्टम वी के एक प्रारंभिक विमोचन में एटी एंड टी यूनिक्स के लिए प्रस्तुत किया गया था। मैंने प्रलेखित किया था कि मैं कौन सा छायाचित्र मूल छाया पुस्तकालय लिखता था, और मैं ' भूल गए हैं, लेकिन यह निश्चित रूप से एक प्रारंभिक प्रणाली वी रिलीज, शायद SVR3.2 था।
AT & T ने जो किया, और जो मैंने SCO Xenix के लिए लागू किया (मूल SCO Xenix, बाद के बुरे SCO Xenix में नहीं) '87 में जो अंततः लिनक्स पर उपयोग में आया, बस हैशेड पासवर्ड को स्थानांतरित करना था /etc/shadow। इसने ड्राइव-बाय अटैक को रोक दिया, जहाँ एक अप्रकाशित उपयोगकर्ता ने इसकी एक प्रति हासिल कर ली /etc/passwdऔर इसके खिलाफ एक हमला किया। यदि आप इस बात से परिचित हैं कि मैंने छाया को पहले स्थान पर क्यों लिखा है, तो मैंने /etc/passwdउन दिनों में यूयूसीपी के माध्यम से अपनी फाइल डाउनलोड की थी, जब हमने अभी भी यूयूसीपी का इस्तेमाल सिर्फ हर चीज के लिए किया था।
जब तक लिनक्स बनाया गया और व्यापक प्रसार के उपयोग में आया, तब तक पासवर्ड हैश पर हमला करने के लिए बहुत बड़ी संख्या में उपकरण थे। उच्च-प्रदर्शन पुनः कार्यान्वयन crypt()एक एवेन्यू थे, और क्रैक और लिबक्रैक जैसे उपकरणों के माध्यम से शब्दकोश-आधारित हमले अन्य थे। प्रारंभिक बंदरगाह नैट होलोवे और फ्लोरिया ला रोश द्वारा किया गया था (मैंने उन्हें श्रेय दिया, मुझे नहीं पता कि किसी ने उनसे पहले काम किया था)।
आखिरकार crypt()एक सुरक्षित फ़ाइल में भी -base हैश का उपयोग , अब सुरक्षित नहीं था और मूल- MD5आधारित हैश परिवर्तन किए गए थे। MD5अंततः बहुत कमजोर माना जाता था, और नए हैश का उपयोग किया जाता था।
सिद्धांत रूप में, एक मजबूत पर्याप्त हैश में संग्रहीत किया जा सकता है /etc/passwd। खराब परिचालन सुरक्षा का मतलब है कि कई प्रणालियों में /etc/shadowविभिन्न अटैक वैक्टर के माध्यम से उनकी फाइलें उपलब्ध हैं - "मैंने बैकअप फ़ाइलों को चुरा लिया है" शायद सबसे आसान है।