क्रिप्ट (सी): Difference between revisions
No edit summary |
No edit summary |
||
(7 intermediate revisions by 4 users not shown) | |||
Line 3: | Line 3: | ||
{{DISPLAYTITLE:crypt (C)}} | {{DISPLAYTITLE:crypt (C)}} | ||
क्रिप्ट एक सी पॉज़िक्स लाइब्रेरी प्रकार्य है। यह सामान्यतः उपयोगकर्ता | क्रिप्ट एक सी पॉज़िक्स लाइब्रेरी प्रकार्य है। यह सामान्यतः उपयोगकर्ता स्पष्टीकरण पासवर्ड के [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन|गूढ़लेखिकी हैश प्रकार्य]] की गणना करने के लिए उपयोग किया जाता है। प्रकार्य टेक्स्ट स्ट्रिंग को निर्गम करता है जो [[नमक (क्रिप्टोग्राफी)|साल्ट (गूढ़लेखिकी]]) को भी [[कोड]] करता है (सामान्यतः पहले दो वर्ण स्वयं साल्ट होते हैं और शेष हैशेड परिणाम होता है), और उपयोग किए गए हैश एल्गोरिदम की पहचान करते है (पारंपरिक रूप से नीचे समझाया गया है)। यह निर्गम स्ट्रिंग एक पासवर्ड अभिलेखबद्ध बनाता है, जो सामान्यतः टेक्स्ट फ़ाइल में संग्रहीत होते है। | ||
अधिक औपचारिक रूप से, क्रिप्ट यूनिक्स | अधिक औपचारिक रूप से, क्रिप्ट यूनिक्स प्रणाली पर पासवर्ड सत्यापन और भंडारण के लिए गूढ़लेखिकी कुंजी व्युत्पत्ति प्रकार्य प्रदान करते है। | ||
== यूनिक्स क्रिप्ट उपयोगिता से संबंध == | == यूनिक्स क्रिप्ट उपयोगिता से संबंध == | ||
यूनिक्स में | यूनिक्स में असंबंधित [[क्रिप्ट (यूनिक्स)|क्रिप्ट (यूनिक्स]]) उपयोगिता है, जिसे प्रायः सी लाइब्रेरी प्रकार्य के साथ भ्रमित किया जाता है। दोनों के बीच अंतर करने के लिए, लेखक प्रायः उपयोगिता प्रोग्राम को 'क्रिप्ट (1)' के रूप में संदर्भित करते हैं, क्योंकि यह यूनिक्स [[मैनुअल पेज (यूनिक्स)|मैनुअल पृष्ठ (यूनिक्स]]) के खंड 1 में प्रलेखित है, और सी लाइब्रेरी प्रकार्य को 'क्रिप्ट' के रूप में संदर्भित करते है। (3), ''क्योंकि इसका प्रलेखन मैनुअल अनुभाग 3 में है।<ref name=fbsd3/>'' | ||
== विवरण == | == विवरण == | ||
यह एक ही क्रिप्ट प्रकार्य का उपयोग भंडारण के लिए | यह एक ही क्रिप्ट प्रकार्य का उपयोग भंडारण के लिए नवीन हैश उत्पन्न करने के लिए और तुलना के लिए अभिलेखबद्ध किए गए साल्ट (गूढ़लेखिकी) के साथ एक प्रस्तावित पासवर्ड को हैश करने के लिए भी किया जाता है। | ||
क्रिप्ट लाइब्रेरी | क्रिप्ट लाइब्रेरी परिच्छेदन के आधुनिक यूनिक्स कार्यान्वयन विभिन्न प्रकार की हैश पद्धतिओं का समर्थन करते हैं। मॉड्यूलर क्रिप्ट प्रारूप नामक वास्तविक मानक के बाद, परिणामस्वरूप हैशटेक्स्ट में उपयोग किए जाने वाले विशेष हैश एल्गोरिदम को अद्वितीय कोड प्रीफिक्स द्वारा पहचाना जा सकता है।<ref> | ||
Simson Garfinkel, Alan Schwartz, Gene Spafford. | Simson Garfinkel, Alan Schwartz, Gene Spafford. | ||
[https://books.google.com/books?id=50maN7VmpusC&q=Modular+Crypt+Format "Practical Unix & Internet Security"]. | [https://books.google.com/books?id=50maN7VmpusC&q=Modular+Crypt+Format "Practical Unix & Internet Security"]. | ||
Line 22: | Line 22: | ||
</ref><ref name=":0">{{cite web|url=http://pythonhosted.org/passlib/modular_crypt_format.html|title=Modular Crypt Format — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref><ref>{{cite web|url=https://github.com/ademarre/binary-mcf|title=ademarre/binary-mcf|website=GitHub.com|access-date=2 December 2018}}</ref> | </ref><ref name=":0">{{cite web|url=http://pythonhosted.org/passlib/modular_crypt_format.html|title=Modular Crypt Format — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref><ref>{{cite web|url=https://github.com/ademarre/binary-mcf|title=ademarre/binary-mcf|website=GitHub.com|access-date=2 December 2018}}</ref> | ||
<code>crypt (</code>) लाइब्रेरी प्रकार्य [[पर्ल]],<ref>{{cite web|url=http://perldoc.perl.org/functions/crypt.html|title=क्रिप्ट - perldoc.perl.org|website=Perldoc.perl.org|access-date=2 December 2018}}</ref> [[पीएचपी]],<ref>{{cite web|url=http://us.php.net/manual/en/function.crypt.php|title=PHP: crypt - Manual|website=Us.php.net|access-date=2 December 2018}}</ref> पाईक (प्रोग्रामिंग भाषा),<ref>{{cite web |url=http://pike.ida.liu.se/generated/manual/modref/ex/predef_3A_3A/crypt.html |title=तहखाना ()|access-date=2013-02-09 |archive-url=https://web.archive.org/web/20121002215125/http://pike.ida.liu.se/generated/manual/modref/ex/predef_3A_3A/crypt.html |archive-date=2012-10-02 }}</ref> [[पायथन (प्रोग्रामिंग भाषा)]] <ref>{{cite web|url=https://docs.python.org/library/crypt.html|title=crypt — Function to check Unix passwords — Python 3.7.1 documentation|website=Docs.python.org|access-date=2 December 2018}}</ref> (यद्यपि अब इसे 3.11 के रूप में हटा दिया गया है), और [[रूबी (प्रोग्रामिंग भाषा)]] <ref>{{cite web|url=http://ruby-doc.org/core/classes/String.html#M001174|title=Class: String (Ruby 2.5.3)|website=Ruby-doc.org|access-date=2 December 2018}}</ref> प्रोग्रामिंग भाषाओं में भी सम्मिलित है। | |||
== क्रिप्ट | == क्रिप्ट द्वारा समर्थित कुंजी व्युत्पत्ति प्रकार्य == | ||
समय के साथ विभिन्न एल्गोरिदम | समय के साथ विभिन्न एल्गोरिदम प्रस्तुत किए गए हैं। पिछड़े संगतता को सक्षम करने के लिए, प्रत्येक पद्धति ने [[पासवर्ड हैश]] के क्रमांकन के कुछ सम्मेलन का उपयोग करना प्रारम्भ किया जिसे बाद में मॉड्यूलर क्रिप्ट प्रारूप (एमसीएफ) कहा गया।<ref name=":0" /> वास्तविक एमसीएफ मानक से पहले जनित किया गया प्राचीन क्रिप्ट (3) हैश एक पद्धति से दूसरी पद्धति में भिन्न हो सकते है। [[पासवर्ड हैशिंग प्रतियोगिता]] के समय मॉड्यूलर क्रिप्ट प्रारूप का ठीक रूप से परिभाषित उपसमूह बनाया गया था।<ref name=":0" /> प्रारूप को इस प्रकार परिभाषित किया गया है:<ref name="phc-string-format">{{cite web | url=https://github.com/P-H-C/phc-string-format/blob/master/phc-sf-spec.md | title=पीएचसी स्ट्रिंग प्रारूप|website=Github|author=Password Hash Competition}}</ref> | ||
<code>$<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]]</code> | <code>$<id>[$<nowiki><param></nowiki>=<value> (,<nowiki><param></nowiki>=<value>) *][$<salt>[$<hash>]]</code> | ||
* <code>id</code>: हैशिंग | जहाँ | ||
* <code>param</code> नाम और | |||
* <code>salt</code>: मूलांक-64 | * <code>id</code>: हैशिंग एल्गोरिदम का प्रतिनिधित्व करने वाला एक पहचानकर्ता (जैसे कि [[MD5|एमडी5]] के लिए 1, [[SHA-2|एसएचए-2]] आदि के लिए 5) | ||
* <code>hash</code>: पासवर्ड और साल्ट को हैश करने का मूलांक -64 | * <code>param</code> नाम और उसकी <code>value</code>: हैश जटिलता पैरामीटर, जैसे आवर्तन/पुनरावृत्तियों की संख्या | ||
क्रिप्ट में रेडिक्स-64 | * <code>salt</code>: मूलांक-64 विकोडित साल्ट (गूढ़लेखिकी) | ||
* <code>hash</code>: पासवर्ड और साल्ट को हैश करने का मूलांक -64 विकोडित परिणाम | |||
क्रिप्ट में रेडिक्स-64 विकोडन को बी64 कहा जाता है और वर्णमाला का उपयोग करता है <code>./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz</code> जो अधिक सामान्य बेस64 कार्यान्वयन और इतिहास से भिन्न है | |||
{| class="wikitable" | {| class="wikitable" | ||
! | !पद्धति आईडी | ||
! | !रूपरेखा | ||
! | !उदाहरण | ||
|- | |- | ||
| | | | ||
|[[Data Encryption Standard| | |[[Data Encryption Standard|डीईएस]] | ||
|<code>Kyq4bCxAXJkbg</code> | |<code>Kyq4bCxAXJkbg</code> | ||
|- | |- | ||
|{{mono|_}} | |{{mono|_}} | ||
|[[Berkeley Software Design| | |[[Berkeley Software Design|बीएसडीआई]] | ||
|<code>_EQ0.jzhSVeUyoSqLupI</code> | |<code>_EQ0.jzhSVeUyoSqLupI</code> | ||
|- | |- | ||
|{{mono|1}} | |{{mono|1}} | ||
| | |एमडी5 | ||
|<code>$1$etNnh7FA$OlM7eljE/B7F1J4XYNnk81</code> | |<code>$1$etNnh7FA$OlM7eljE/B7F1J4XYNnk81</code> | ||
|- | |- | ||
|{{mono|2}}, {{mono|2a}}, {{mono|2b}}, {{mono|2x}}, {{mono|2y}} | |{{mono|2}}, {{mono|2a}}, {{mono|2b}}, {{mono|2x}}, {{mono|2y}} | ||
|[[bcrypt]] | |[[bcrypt|बीक्रिप्ट]] | ||
|<code>$2a$10$VIhIOofSMqgdGlL4wzE//e.77dAQGqntF/1dT7bqCrVtquInWy2qi</code> | |<code>$2a$10$VIhIOofSMqgdGlL4wzE//e.77dAQGqntF/1dT7bqCrVtquInWy2qi</code> | ||
|- | |- | ||
|{{mono|3}} | |{{mono|3}} | ||
|[[NTLM Authentication| | |[[NTLM Authentication|एनटीहैश]] | ||
|<code>$3$$8846f7eaee8fb117ad06bdd830b7586c</code> | |<code>$3$$8846f7eaee8fb117ad06bdd830b7586c</code> | ||
|- | |- | ||
|{{mono|5}} | |{{mono|5}} | ||
|[[SHA-2| | |[[SHA-2|एसएचए-256]] | ||
|<code>$5$9ks3nNEqv31FX.F$gdEoLFsCRsn/WRN3wxUnzfeZLoooVlzeF4WjLomTRFD</code> | |<code>$5$9ks3nNEqv31FX.F$gdEoLFsCRsn/WRN3wxUnzfeZLoooVlzeF4WjLomTRFD</code> | ||
|- | |- | ||
|{{mono|6}} | |{{mono|6}} | ||
|[[SHA-2| | |[[SHA-2|एसएचए-512]] | ||
|<code>$6$qoE2letU$wWPRl.PVczjzeMVgjiA8LLy2nOyZbf7Amj3qLIL978o18gbMySdKZ7uepq9tmMQXxyTIrS12Pln.2Q/6Xscao0</code> | |<code>$6$qoE2letU$wWPRl.PVczjzeMVgjiA8LLy2nOyZbf7Amj3qLIL978o18gbMySdKZ7uepq9tmMQXxyTIrS12Pln.2Q/6Xscao0</code> | ||
|- | |- | ||
|{{mono|7}} | |{{mono|7}} | ||
| | |एसक्रिप्ट | ||
|<code>$7$DU..../....2Q9obwLhin8qvQl6sisAO/$ | |<code>$7$DU..../....2Q9obwLhin8qvQl6sisAO/$एसएचएyJj/JBdcuD4lJ1AxiwCo9e5XSi8TcINcmyID12i8</code> | ||
|- | |- | ||
|{{mono|8 (Cisco)}} | |{{mono|8 (Cisco)}} | ||
|[[ | |[[SHA256|एसएचए256]] के साथ[[SHA256|पीबीकेडीएफ2]] | ||
|<code>$8$mTj4RZG8N9ZDOk$elY/asfm8kD3iDmkBe3hD2r4xcA/0oWS5V3os.O91u.</code> | |<code>$8$mTj4RZG8N9ZDOk$elY/asfm8kD3iDmkBe3hD2r4xcA/0oWS5V3os.O91u.</code> | ||
|- | |- | ||
|{{mono|8 (JunOS)}} | |{{mono|8 (JunOS)}} | ||
|[[PBKDF2]] | |[[PBKDF2|पीबीकेडीएफ2]] | ||
|<code>$8$crypt-algo$hash-algo$iterations$salt$iv$tag$encrypted</code> | |<code>$8$crypt-algo$hash-algo$iterations$salt$iv$tag$encrypted</code> | ||
<code>$8$aes256-gcm$hmac- | <code>$8$aes256-gcm$hmac-एसएचए2-256$100$y/4YMC4YDLU$fzYDI4jjN6YCyQsYLsaf8A$Ilu4jLcZarD9YnyD /Hejww$okhBlc0cGakSqYxKww</code> | ||
|- | |- | ||
|{{mono|gy}} | |{{mono|gy}} | ||
| | |गोस्त-यसक्रिप्ट | ||
|<code>$gy$jCT$HM87v.7RwpQLba8fDjNSk1$VgqS7k2OZWhFbAJVBye2vaA7ex/1VtU3a5fmL8Wv/26</code> | |<code>$gy$jCT$HM87v.7RwpQLba8fDjNSk1$VgqS7k2OZWhFbAJVBye2vaA7ex/1VtU3a5fmL8Wv/26</code> | ||
|- | |- | ||
|{{mono|md5}} | |{{mono|md5}} | ||
| | |सोलारिस एमडी5 | ||
|<code>$ | |<code>$एमडी5,rounds=5000$GUBv0xjJ$$mSwgIswdjlTY0YxV7HBVm0</code> | ||
|- | |- | ||
|{{mono|sha1}} | |{{mono|sha1}} | ||
|[[ | |[[SHA-1|एसएचए-1]] | ||
|<code>$ | के साथ[[PBKDF1|पीबीकेडीएफ1]] | ||
|<code>$एसएचए1$40000$jtNX3nZ2$hBNaIXkt4wBI2o5rsi8KejSjNqIq</code> | |||
|- | |- | ||
|{{mono|y}} | |{{mono|y}} | ||
|[[yescrypt]] | |[[yescrypt|यसक्रिप्ट]] | ||
|<code>$y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7</code> | |<code>$y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7</code> | ||
|} | |} | ||
पीएचसी उपसमूह में अधिकांश एमसीएफ हैश सम्मिलित हैं। कई अतिरिक्त एप्लिकेशन-परिभाषित विधियां स्थित हैं।<ref name=":0" /> | |||
=== एक कुंजी के रूप में पासवर्ड का उपयोग करके मूल कार्यान्वयन === | |||
तीसरे संस्करण यूनिक्स में<ref>{{cite web | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V3/man/man3/crypt.3 | title=crypt – password encoding | work=UNIX Third Edition Programmers' Manual | date = 1973-01-15 }}</ref> क्रिप्ट () लाइब्रेरी प्रकार्य का मूल कार्यान्वयन<ref name="passwd">{{cite web | url=https://www.bell-labs.com/usr/dmr/www/passwd.ps | title=Password Security: A Case History. | work=Bell Laboratories |author1=Morris, Robert |author2=Thompson, Ken | date=1978-04-03 | access-date=2013-12-17 }}</ref> ने [[M-209|एम-209]] सिफर मशीन का अनुकरण किया। कुंजी के साथ [[पासवर्ड]] को एन्क्रिप्ट करने के अतिरिक्त, जो पासवर्ड को गूढलेखित मान और कुंजी से पुनर्प्राप्त करने की अनुमति देता, उसने पासवर्ड को कुंजी के रूप में उपयोग किया, और पासवर्ड डेटाबेस में इस कुंजी के साथ पासवर्ड को एन्क्रिप्ट करने का परिणाम था। | |||
=== एक कुंजी | |||
क्रिप्ट() लाइब्रेरी प्रकार्य का मूल कार्यान्वयन<ref name="passwd">{{cite web | url=https://www.bell-labs.com/usr/dmr/www/passwd.ps | title=Password Security: A Case History. | work=Bell Laboratories |author1=Morris, Robert |author2=Thompson, Ken | date=1978-04-03 | access-date=2013-12-17 }}</ref> | |||
=== पारंपरिक डीईएस-आधारित | === पारंपरिक डीईएस-आधारित पद्धति === | ||
मूल पासवर्ड | मूल पासवर्ड गूढ़लेखन पद्धति बहुत तीव्र पाई गई और इस प्रकार सबसे संभावित पासवर्डों के पशुपन बल गणना के अधीन थी।<ref name="passwd"/> सातवें संस्करण यूनिक्स में,<ref>{{cite web | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/man/man3/crypt.3 | title=crypt, setkey, encrypt – DES encryption | work=UNIX Seventh Edition Programmers' Manual | date = 1979 }}</ref> पद्धति को [[डेटा एन्क्रिप्शन मानक|डेटा गूढ़लेखन मानक]] एल्गोरिदम के संशोधित रूप में बदल दिया गया था। इस परिवर्तन का लक्ष्य गूढ़लेखन को मंद करना था। इसके अतिरिक्त, एल्गोरिदम में एक 12-बिट साल्ट (गूढ़लेखिकी) सम्मिलित है ताकि यह सुनिश्चित किया जा सके कि आक्रामक को एक साथ पूरे पासवर्ड डेटाबेस को लक्षित करने में सक्षम होने के विपरीत प्रत्येक पासवर्ड को स्वतंत्र रूप से क्रैक करने के लिए विवश किया जाएगा। | ||
विस्तार से, उपयोगकर्ता के पासवर्ड को आठ अक्षरों तक छोटा कर दिया जाता है, और उनमें से प्रत्येक को | विस्तार से, उपयोगकर्ता के पासवर्ड को आठ अक्षरों तक छोटा कर दिया जाता है, और उनमें से प्रत्येक को मात्र 7-बिट तक सीमित कर दिया जाता है; यह 56-बिट डीईएस कुंजी बनाता है। उस कुंजी का उपयोग तब सभी-बिट-शून्य कक्ष को एन्क्रिप्ट करने के लिए किया जाता है, और फिर सिफ़र को उसी कुंजी के साथ फिर से एन्क्रिप्ट किया जाता है, और इसी प्रकार कुल 25 डीईएस गूढ़लेखन के लिए। गूढ़लेखन एल्गोरिदम को उद्विग्न करने के लिए 12-बिट साल्ट का उपयोग किया जाता है, इसलिए क्रिप्ट () को लागू करने के लिए मानक डीईएस कार्यान्वयन का उपयोग नहीं किया जा सकता है। साल्ट और अंतिम सिफ़र को [[बेस 64]] के रूप में मुद्रण करने योग्य स्ट्रिंग में विकोडित किया गया है। | ||
यह तकनीकी रूप से | यह तकनीकी रूप से गूढ़लेखन नहीं है क्योंकि डेटा (सभी बिट शून्य) को गुप्त नहीं रखा जा रहा है; यह व्यापक रूप से पहले से सभी के लिए जाना जाता है। यद्यपि, डीईएस की विशेषता यह है कि यह [[ज्ञात सादा पाठ|ज्ञात सादे पाठ]] स्थितियों में भी की पुनः प्राप्ति के लिए बहुत प्रतिरोधी है। यह सैद्धांतिक रूप से संभव है कि दो अलग-अलग पासवर्ड का परिणाम एक ही हैश में हो सकते है। इस प्रकार पासवर्ड को कभी भी डिक्रिप्ट नहीं किया जाता है: इसका उपयोग मात्र परिणाम की गणना करने के लिए किया जाता है, और मिलान के परिणामों को प्रमाण माना जाता है कि पासवर्ड समान थे। | ||
इस पद्धति का लाभ यह रहा है कि हैशटेक्स्ट को | इस पद्धति का लाभ यह रहा है कि हैशटेक्स्ट को प्रणाली संचालनों या अन्य उपयोगकर्ताओं को संबंधित सादे पाठ पासवर्ड को उद्भासित किए बिना यूनिक्स प्रणाली के बीच संग्रहीत और अनुकरण किया जा सकता है। इस सुवाह्यता ने 30 से अधिक वर्षों तक कंप्यूटिंग स्थापत्य की कई पीढ़ियों और कई विक्रेताओं से यूनिक्स के कई संस्करणों में कार्य किया है। | ||
==== पारंपरिक | ==== पारंपरिक पद्धति की दुर्बलता ==== | ||
पारंपरिक डीईएस-आधारित क्रिप्ट | पारंपरिक डीईएस-आधारित क्रिप्ट एल्गोरिदम मूल रूप से चुना गया था क्योंकि डीईएस ज्ञात सादे पाठ आक्षेप के सामने भी कुंजी पुनर्प्राप्ति के लिए प्रतिरोधी था, और क्योंकि यह संगणनात्मक रूप से कीमती था। प्रारंभिक यूनिक्स मशीनों पर पासवर्ड हैश की गणना करने में पूरे एक सेकंड का समय लगता था। इसने उस युग में शब्दकोष के आक्षेप के लिए यथोचित प्रतिरोधी बना दिया। उस समय पासवर्ड हैश सामान्यतः स्पष्टीकरण फ़ाइल (<code>[[/etc/passwd]]</code>) में संग्रहीत किया जाता था जो प्रणाली पर किसी के लिए भी पठनीय था। (इस स्पष्टीकरण फ़ाइल का उपयोग उपयोगकर्ता आईडी संख्याओं को नामों में, और उपयोगकर्ता नामों को पूर्ण नामों आदि में प्रतिचित्रित करने के लिए भी किया गया था)। | ||
उस समय से तीन दशकों में, कंप्यूटर बहुत अधिक शक्तिशाली हो गए हैं। मूर के नियम को सामान्यतः | उस समय से तीन दशकों में, कंप्यूटर बहुत अधिक शक्तिशाली हो गए हैं। मूर के नियम को सामान्यतः सत्य माना गया है, इसलिए किसी दिए गए वित्तीय निवेश के लिए उपलब्ध कंप्यूटर की गति और क्षमता यूनिक्स के पहली बार लिखे जाने के बाद से 20 गुना से अधिक हो गई है। इसने लंबे समय से डीईएस-आधारित एल्गोरिदम को शब्दकोश आक्षेप के प्रति संवेदनशील बना दिया है, और यूनिक्स और यूनिक्स जैसी प्रणालियों जैसे कि [[लिनक्स]] ने लंबे समय तक "शैडो" फ़ाइलोंका उपयोग किया है, स्पष्टीकरण फ़ाइल (<code>/etc/passwd</code>) से मात्र पासवर्ड हैश मानों को गतिमान करना और एक फ़ाइल में (पारंपरिक रूप से नामित <code>[[/etc/shadow|/etc/shodow]]</code>) जिसे मात्र विशेषाधिकार प्राप्त प्रक्रियाओं द्वारा ही पढ़ा जा सकता है। | ||
पासवर्ड तोड़ने की | पासवर्ड तोड़ने की संगणनात्मक लागत को बढ़ाने के लिए, कुछ यूनिक्स साइटों ने व्यक्तिगत रूप से तदर्थ आधार पर गूढ़लेखन आवर्तन की संख्या में वृद्धि करना प्रारम्भ कर दिया।{{Citation needed|date=July 2011}} इसका उनके <code>crypt (</code>) को मानक <code>crypt (</code>) के साथ असंगत बनाने का दुष्प्रभाव था: हैश का एक ही शाब्दिक रूप था, परन्तु अब अलग एल्गोरिदम का उपयोग करके गणना की गई थी। मानक सभी-बिट-शून्य से प्रारंभिक कक्ष को संशोधित करके कुछ साइटों ने इस असंगति प्रभाव का भी लाभ उठाया।{{Citation needed|date=July 2011}} इससे हैशिंग की लागत में वृद्धि नहीं हुई, परन्तु इसका अर्थ यह था कि मानक {{mono|crypt()}} के आधार पर पूर्व संगणित हैश शब्दकोशों को लागू नहीं किया जा सका। | ||
=== बीएसडीआई ने डीईएस-आधारित | === बीएसडीआई ने डीईएस-आधारित पद्धति का विस्तार किया === | ||
[[बर्कले सॉफ्टवेयर डिजाइन]] ने | [[बर्कले सॉफ्टवेयर डिजाइन]] ने उत्कृष्ट डीईएस-आधारित पद्धति में साधारण संशोधन किया। बीएसडीआई ने साल्ट को 24 बिट तक बढ़ाया और आवर्तन की संख्या को चर बना दिया (2<sup>24</sup>-1)। आवर्तन की चुनी हुई संख्या संग्रहीत पासवर्ड हैश में विकोडित की गई है, जो साइट द्वारा मूल पद्धति द्वारा उपयोग किए जाने वाले आवर्तन की संख्या को संशोधित करने पर उत्पन्न होने वाली असंगति से बचाती है। इन हैश की पहचान अधोरेखांकन (<code>_</code>) से प्रारम्भ करके की जाती है, जिसके बाद 4 वर्ण आवर्तन की संख्या का प्रतिनिधित्व करते हैं, फिर साल्ट के लिए 4 वर्ण। | ||
बीएसडीआई एल्गोरिदम भी लंबे पासवर्ड का समर्थन करता है, डीईएस का उपयोग करके प्रारंभिक लंबे पासवर्ड को मूल एल्गोरिदम द्वारा समर्थित आठ 7-बिट | बीएसडीआई एल्गोरिदम भी लंबे पासवर्ड का समर्थन करता है, डीईएस का उपयोग करके प्रारंभिक लंबे पासवर्ड को मूल एल्गोरिदम द्वारा समर्थित आठ 7-बिट बाइट तक नीचे कर देता है। | ||
=== | === एमडी5-आधारित पद्धति === | ||
[[Poul-Henning Kamp]] ने | [[Poul-Henning Kamp|पॉल-हेनिंग कैंप]] ने एमडी5 संदेश संकलन एल्गोरिदम पर आधारित बारोक और (उस समय) संगणनात्मक रूप से बहुमूल्य एल्गोरिदम डिज़ाइन किया। एमडी5 स्वयं पासवर्ड हैश के लिए ठीक गूढ़लेखिकी दृढ़ता प्रदान करेगा, परन्तु यह प्रदान की जाने वाली दृढ़ता के सापेक्ष गणना करने के लिए अत्यधिक तीव्र डिज़ाइन किया गया है। शब्दकोश आक्षेप को मंद करने के लिए, क्रिप्ट () पद्धति की गणना करने के लिए बहुमूल्य होने के लिए डिज़ाइन किया गया है। एमडी5 पासवर्ड हैश का मुद्रण करने योग्य रूप <code>$1$</code> से प्रारम्भ होता है। | ||
यह | यह पद्धति उपयोगकर्ताओं को किसी भी लम्बाई के पासवर्ड की अनुमति देती है, और वे अपने प्लेटफ़ॉर्म द्वारा समर्थित किसी भी वर्ण का उपयोग कर सकते हैं (मात्र 7-बिट एएससीआईआई नहीं)। (व्यावहारिक रूप से कई कार्यान्वयन पासवर्ड की लंबाई को सीमित करते हैं, परन्तु वे सामान्यतः किसी भी व्यक्ति द्वारा टाइप करने के इच्छुक होने की तुलना में लंबे समय तक पासवर्ड का समर्थन करते हैं।) साल्ट भी एक यादृच्छिक स्ट्रिंग है, जो मात्र संप्रतीक समुच्चय विचारों द्वारा सीमित है। | ||
सबसे पहले पासफ़्रेज़ और साल्ट को एक साथ हैश किया जाता है, जिससे | सबसे पहले पासफ़्रेज़ और साल्ट को एक साथ हैश किया जाता है, जिससे एमडी5 संदेश संकलन प्राप्त होता है। फिर नवीन संकलन का निर्माण किया जाता है, जिसमें पासफ़्रेज़, साल्ट और पहले संकलन सभी को जटिल रूप में एक साथ हैश किया जाता है। फिर इस संकलन को प्रकार्य के एक हजार पुनरावृत्तियों के माध्यम से पारित किया जाता है जो इसे पासफ़्रेज़ और साल्ट के साथ एक प्रकार से दोहराता है जो कि आवर्तन के बीच भिन्न होते है। इन आवर्तन के अंतिम का निर्गम परिणामी पासफ़्रेज़ हैश है। | ||
निश्चित पुनरावृति गणना के कारण इस | निश्चित पुनरावृति गणना के कारण इस पद्धति ने संगणनात्मक व्यय को खो दिया है जो एक बार आनंद लिया था और अब चक्रों की परिवर्तनीय संख्या का समर्थन किया जाता है। जून 2012 में, पॉल-हेनिंग काम्प ने एल्गोरिदम को असुरक्षित घोषित किया और उपयोगकर्ताओं को दृढ़ पासवर्ड संकेत अस्फुटक में अभिगमन करने के लिए प्रोत्साहित किया।<ref>{{cite web|url=http://phk.freebsd.dk/sagas/md5crypt_eol.html|title=Md5crypt Password scrambler is no longer considered safe by author — PHKs Bikeshed|website=Phk.freebsd.dk|access-date=2 December 2018|archive-url=https://web.archive.org/web/20180317164935/http://phk.freebsd.dk/sagas/md5crypt_eol.html|archive-date=17 March 2018}}</ref> | ||
=== ब्लोफिश-आधारित | === ब्लोफिश-आधारित पद्धति === | ||
{{Main| | {{Main|बी क्रिप्ट}} | ||
[[नील्स प्रोवोस]] और डेविड माज़िएरेस ने [[ब्लोफिश (सिफर)]] पर आधारित | [[नील्स प्रोवोस]] और डेविड माज़िएरेस ने [[ब्लोफिश (सिफर)|ब्लोफिश (सिफर]]) पर आधारित क्रिप्ट () पद्धति को डिजाइन किया, जिसे बीक्रिप्ट कहा जाता है, और इसे 1999 में [[यूसेनिक्स]] में प्रस्तुत किया।<ref>{{cite journal | url = http://www.usenix.org/events/usenix99/provos/provos_html/node1.html | title = एक भविष्य-अनुकूलनीय पासवर्ड योजना| first = Niels | last = Provos |author2=Mazières, David | year = 1999 | journal = Proceedings of 1999 USENIX Annual Technical Conference | pages = 81–92}}</ref> इन हैश का मुद्रण करने योग्य रूप <code>$2$</code>, <code>$2a$</code>, <code>$2b$</code>, <code>$2x$</code> या <code>$2y$</code> से प्रारम्भ होते है, यह इस बात पर निर्भर करता है कि एल्गोरिदम के किस संस्करण का उपयोग किया जाता है: | ||
* <code>$2$</code>{{snd}} अप्रचलित। | * <code>$2$</code>{{snd}} अप्रचलित। | ||
* <code>$2a$</code>{{snd}} इस | * <code>$2a$</code>{{snd}} इस पद्धति की पहचान करने के लिए उपयोग की जाने वाली वर्तमान कुंजी। चूंकि 2011 में गैर-ओपनबीएसडी {{tt|crypt_blowfish}} कार्यान्वयन में एक प्रमुख सुरक्षा दोष की खोज की गई थी,<ref>{{cite web | ||
| url = http://www.openwall.com/lists/announce/2011/06/21/1 | | url = http://www.openwall.com/lists/announce/2011/06/21/1 | ||
| title = crypt_blowfish 1.1; Owl glibc security update | date = 2011-06-21 | | title = crypt_blowfish 1.1; Owl glibc security update | date = 2011-06-21 | ||
| first = Solar | last = Designer | | first = Solar | last = Designer | ||
}} See also {{CVE|2011-2483}}.</ref> इस स्ट्रिंग द्वारा संकेतित हैश अब अस्पष्ट हैं और त्रुटिपूर्ण कार्यान्वयन, या बाद के निश्चित, कार्यान्वयन द्वारा उत्पन्न हो सकते हैं। गैर- | }} See also {{CVE|2011-2483}}.</ref> इस स्ट्रिंग द्वारा संकेतित हैश अब अस्पष्ट हैं और त्रुटिपूर्ण कार्यान्वयन, या बाद के निश्चित, कार्यान्वयन द्वारा उत्पन्न हो सकते हैं। गैर-एएससीआईआई (8-बिट-समूह) वर्ण वाले कुछ पासवर्ड स्ट्रिंग द्वारा त्रुटि को ट्रिगर किया जा सकता है। | ||
* <code>$2b$</code>{{snd}} | * <code>$2b$</code>{{snd}} परिवेष्टन समस्या को कम करने के लिए वर्तमान के ओपनबीएसडी कार्यान्वयन द्वारा उपयोग किया जाता है।<ref>{{Cite web|url=http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/bcrypt.c?rev=1.27&content-type=text/x-cvsweb-markup|title=src/lib/libc/crypt/bcrypt.c – view – 1.27|website=Cvsweb.openbsd.org|access-date=2016-05-14}}</ref> एल्गोरिदम के पिछले संस्करणों में लंबे पासवर्ड की समस्या है। डिज़ाइन के अनुसार, लंबे पासवर्ड को 72 अक्षरों में काट दिया जाता है, परन्तु कुछ पासवर्ड लंबाई के साथ एक बाइट पूर्णांक परिवेष्टन समस्या होती है, जिसके परिणामस्वरूप मंद हैश होते है।<ref>{{cite web | ||
| url = http://www.openwall.com/lists/oss-security/2012/01/02/4 | | url = http://www.openwall.com/lists/oss-security/2012/01/02/4 | ||
| title = OpenBSD bcrypt 8-bit key_len wraparound | date = 2012-01-02 | | title = OpenBSD bcrypt 8-bit key_len wraparound | date = 2012-01-02 | ||
| first = Solar | last = Designer | | first = Solar | last = Designer | ||
}}</ref> | }}</ref> | ||
* <code>$2x$</code>{{snd}} | * <code>$2x$</code>{{snd}} {{tt|crypt_blowfish}} की खोज के बाद फ्लैग जोड़ा गया। प्राचीन हैश का नाम बदलकर <code>$2x$</code> किया जा सकता है यह इंगित करने के लिए कि वे टूटे हुए एल्गोरिदम के साथ उत्पन्न हुए थे। ये हैश अभी भी मंद हैं, परन्तु कम से कम यह स्पष्ट है कि उन्हें उत्पन्न करने के लिए किस एल्गोरिदम का उपयोग किया गया था। | ||
* <code>$2y$</code>{{snd | * <code>$2y$</code>{{snd}} स्पष्ट रूप से नवीन, संशोधित एल्गोरिदम का उपयोग करने के लिए {{tt|crypt_blowfish}} में एक फ्लैग। बग से पीड़ित प्राचीन कार्यान्वयन पर, <code>$2y$</code> मात्रकार्य नहीं करेगा। एक नवीन, निश्चित कार्यान्वयन पर, यह <code>$2b$</code> का उपयोग करने के समान परिणाम देगा। | ||
ब्लोफिश अपने | ब्लोफिश अपने बहुमूल्य कुंजी व्यवस्थापन चरण के लिए कक्ष सिफर के बीच उल्लेखनीय है। यह मानक स्थिति में उपकुंजियों के साथ प्रारम्भ होते है, फिर कुंजी के भाग का उपयोग करके कक्ष गूढ़लेखन करने के लिए इस स्थिति का उपयोग करते है, और कुछ उपकुंजियों को बदलने के लिए उस गूढ़लेखन (वस्तुतः, एक हैशिंग) के परिणाम का उपयोग करते है। फिर यह कुंजी के दूसरे भाग को एन्क्रिप्ट करने के लिए इस संशोधित स्थिति का उपयोग करते है, और अधिक उपकुंजियों को बदलने के लिए परिणाम का उपयोग करते है। यह इस प्रकार से आगे बढ़ता है, जब तक कि सभी उपकुंजियों को समूहित नहीं किया जाता है, तब तक कुंजी को हैश करने और अवस्था के बिट को बदलने के लिए उत्तरोत्तर संशोधित अवस्था का उपयोग किया जाता है। | ||
कुंजीयन के आवर्तन की संख्या दो का सामर्थ्य है, जो एल्गोरिदम का एक निवेश है। संख्या टेक्स्ट हैश में विकोडित की गई है, उदाहरण के लिए <code>$2y$10...</code> | |||
=== एनटी हैश | === एनटी हैश पद्धति === | ||
[[MS-CHAP]] के माध्यम से | [[MS-CHAP|एमएस-चाप]] के माध्यम से एनटी स्पष्टीकरण के साथ सरल संगतता प्रदान करने के लिए फ्रीबीएसडी ने [[NTLM|एनटीएलएम]] हैश एल्गोरिदम के लिए समर्थन लागू किया।<ref>{{cite web|url=http://www.mail-archive.com/freebsd-current@freebsd.org/msg52586.html|title=NT MD4 password hash as new password encryption method for FreeBSD|website=Mail-archive.com|access-date=2 December 2018}}</ref> एनटी-हैश एल्गोरिदम मंद होने के लिए जाना जाता है, क्योंकि यह बिना किसी साल्ट के बहिष्कृत एमडी 4 हैश एल्गोरिदम का उपयोग करते है।<ref>{{cite web|url=http://davenport.sourceforge.net/ntlm.html#theNtlmResponse|title=एनटीएलएम प्रमाणीकरण प्रोटोकॉल और सुरक्षा सहायता प्रदाता|website=Davenport.sourceforge.net|access-date=2 December 2018}}</ref> फ्रीबीएसडी ने इसके लिए <code>$3$</code>का उपयोग किया। इसके उपयोग की अनुशंसा नहीं की जाती है, क्योंकि यह सरलता से टूट जाता है।<ref name=fbsd3>{{man|3|crypt|FreeBSD}}</ref> | ||
=== | === एसएचए2-आधारित पद्धति === | ||
सामान्यतः | सामान्यतः उपयोग की जाने वाली एमडी5 आधारित पद्धति पर आक्षेप करना सरल हो गया है क्योंकि कंप्यूटर का सामर्थ्य बढ़ गया है। यद्यपि ब्लोफिश-आधारित प्रणाली में आवर्तन जोड़ने का विकल्प होता है और इस प्रकार यह चुनौतीपूर्ण पासवर्ड एल्गोरिदम बना रहता है, यह राष्ट्रीय मानक और प्रौद्योगिकी-अनुमोदित एल्गोरिदम का उपयोग नहीं करता है। इन तथ्यों के आलोक में, [[Red Hat|रेड हैट]] के [[Ulrich Drepper|उलरिच ड्रेपर]] ने एसएचए-2 (एसएचए-256 और एसएचए-512) हैश प्रकार्यों पर आधारित पद्धति बनाने का प्रयास किया।<ref name="shacrypt">{{cite web | ||
| first = Ulrich | | first = Ulrich | ||
| last = Drepper | | last = Drepper | ||
Line 171: | Line 170: | ||
| url = http://people.redhat.com/drepper/sha-crypt.html | | url = http://people.redhat.com/drepper/sha-crypt.html | ||
| df = dmy-all | | df = dmy-all | ||
}}</ref> इन हैश का | }}</ref> इन हैश का मुद्रण करने योग्य रूप <code>$5$</code> (एसएचए-256 के लिए) या <code>$6$</code> (एसएचए-512 के लिए) से प्रारम्भ होते है जिसके आधार पर एसएचए संस्करण का उपयोग किया जाता है। इसका डिज़ाइन एमडी5-आधारित क्रिप्ट के समान है, कुछ उल्लेखनीय अंतरों के साथ:<ref name="shacrypt" /> | ||
* यह कुछ ही चरणों में | * यह कुछ ही चरणों में निरंतर डेटा जोड़ने से बचता है। | ||
* | * एमडी5 एल्गोरिद्म बार-बार पासवर्ड का पहला अक्षर जोड़ देगा;{{Citation needed|date=April 2010}} इस चरण को अत्यधिक बदल दिया गया था। | ||
* सन | * सन के क्रिप्ट () कार्यान्वयन से प्रेरित होकर, एल्गोरिदम निष्पादन में मुख्य पाशन पुनरावृत्तियों (आवर्तन) की संख्या निर्दिष्ट करने के लिए कार्यक्षमता जोड़ी गई थी<ref>{{cite web | author = Sun Microsystems | title = crypt_sunmd5(5) man page | url = http://docs.sun.com/app/docs/doc/816-5175/6mbba7evg | access-date = 2008-03-05 | archive-url = https://web.archive.org/web/20080416021006/http://docs.sun.com/app/docs/doc/816-5175/6mbba7evg | archive-date = 2008-04-16 }}</ref><ref>{{cite web | title = OpenSolaris, Pluggable Crypt, and the SunMD5 Password Hash Algorithm | first = Alec | last = Muffett | url = http://dropsafe.crypticide.com/article/1389 | date = 2005-12-05 | access-date = 2012-08-11}}</ref> | ||
* पुनरावृत्तियों की संख्या | * पुनरावृत्तियों की संख्या स्वतः निर्धारित रूप से 5000 है, न्यूनतम 1000 और अधिकतम 999,999,999।<ref name="shacryptcode"/> | ||
विनिर्देश और | विनिर्देश और प्रतिदर्श कोड सार्वजनिक डोमेन में जारी किए गए हैं; इसे प्रायः एसएचएक्रिप्ट के रूप में संदर्भित किया जाता है।<ref name="shacryptcode">{{cite web | url = http://www.akkadia.org/drepper/SHA-crypt.txt | title = Unix crypt using SHA-256 and SHA-512 | first = Ulrich | last = Drepper }}</ref> | ||
=== अन्य हैश === | === अन्य हैश === | ||
; {{code|$y$}} | ; {{code|$y$}} | ||
: | : यसक्रिप्ट, क्रिप्ट ({{code|$7$}}) का एक विस्तार है और पीएचसी निणार्यक है। इसका उपयोग वर्तमान पद्धतिओं के विकल्प के रूप में कई [[लिनक्स वितरण|लिनक्स वितरणों]] में किया जाता है।<ref>{{cite web |title=FESCo Says "Yes" To Fedora 35 Using Yescrypt For Hashing Shadow Passwords - Phoronix |url=https://www.phoronix.com/scan.php?page=news_item&px=Fedora-35-Yescrypt-Yes |website=www.phoronix.com}}</ref> इस हैश का उपयोग करने के लिए, जीलिबसी से {{code|libcrypt}} को लिबक्सक्रिप्ट प्रोजेक्ट से पिछड़े-संगत के साथ बदल दिया गया है।<ref>{{cite web |title=Changes/yescrypt as default hashing method for shadow - Fedora Project Wiki |url=https://fedoraproject.org/wiki/Changes/yescrypt_as_default_hashing_method_for_shadow |website=libxcrypt: Is already capable for computing yescrypt hashes since v4.3.}}</ref> | ||
; {{code|$argon2d$}}, {{code|$argon2i$}}, {{code|$argon2ds$}} | ; {{code|$argon2d$}}, {{code|$argon2i$}}, {{code|$argon2ds$}} | ||
: ये [[Argon2]] | : ये [[Argon2|आर्गन2]] एल्गोरिदम के लिए पीएचसी द्वारा निर्दिष्ट नाम हैं, परन्तु व्यापक रूप से उपयोग किए जाने वाले प्रतीत नहीं होते हैं। | ||
अतिरिक्त प्रारूप, यदि कोई हो, कार्यान्वयन के [[मैन पेज|मैन पृष्ठ]] में वर्णित हैं।<ref> | अतिरिक्त प्रारूप, यदि कोई हो, कार्यान्वयन के [[मैन पेज|मैन पृष्ठ]] में वर्णित हैं।<ref> | ||
Line 193: | Line 192: | ||
==== पुरातन यूनिक्स | ==== पुरातन यूनिक्स पद्धति ==== | ||
बिगक्रिप्ट, एचपी-यूएक्स, डिजिटल यूनिक्स, और ओएसएफ/1 पर प्रयुक्त डीईएस-क्रिप्ट का संशोधित संस्करण है। इसके और डीईएस के बीच मुख्य अंतर यह है कि बिगक्रिप्ट पासवर्ड के सभी वर्णों का उपयोग करते है, न कि मात्र पहले 8 का, और इसकी चर लंबाई हैश है।<ref>{{cite web|url=https://pythonhosted.org/passlib/lib/passlib.hash.bigcrypt.html|title=passlib.hash.bigcrypt - BigCrypt — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref> | |||
क्रिप्ट16 डीईएस का साधारण संशोधन है, जो 16 अक्षरों तक के पासवर्ड की अनुमति देता है। अल्ट्रिक्स और ट्रू64 पर उपयोग किया गया।<ref>{{cite web|url=https://pythonhosted.org/passlib/lib/passlib.hash.crypt16.html|title=passlib.hash.crypt16 - Crypt16 — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref> | |||
== | == प्रचालन तंत्र में सहायता == | ||
{| class="wikitable" style="margin-bottom: 10px;" | {| class="wikitable" style="margin-bottom: 10px;" | ||
! | !पद्धति आईडी | ||
! | !पद्धति | ||
! | !लिनक्स ([[GNU C Library|जीलिबसी]]) | ||
! | !फ्रीबीएसडी | ||
! | !नेटबीएसडी | ||
! | !ओपनबीएसडी | ||
! | !सोलारिस | ||
! | !मैकओएस | ||
|- | |- | ||
| | | | ||
| | |डीईएस | ||
|{{yes}}<ref name="debian-manpage-crypt">{{cite web|url=https://manpages.debian.org/experimental/libcrypt-dev/crypt.5.en.html|title=Debian manpage crypt|website=manpages.debian.org|access-date=11 Jan 2022}}</ref> | |{{yes}}<ref name="debian-manpage-crypt">{{cite web|url=https://manpages.debian.org/experimental/libcrypt-dev/crypt.5.en.html|title=Debian manpage crypt|website=manpages.debian.org|access-date=11 Jan 2022}}</ref> | ||
|{{yes}} | |{{yes}} | ||
Line 219: | Line 220: | ||
|- | |- | ||
|_ | |_ | ||
| | |बीएसडीआई | ||
|{{yes}}<ref name="debian-manpage-crypt" /> | |{{yes}}<ref name="debian-manpage-crypt" /> | ||
|{{yes}} | |{{yes}} | ||
Line 228: | Line 229: | ||
|- | |- | ||
|1 | |1 | ||
| | |एमडी5 | ||
|{{yes}}<ref name="debian-manpage-crypt" /> | |{{yes}}<ref name="debian-manpage-crypt" /> | ||
|{{yes}} | |{{yes}} | ||
Line 237: | Line 238: | ||
|- | |- | ||
|2, 2a, 2b, 2x, 2y | |2, 2a, 2b, 2x, 2y | ||
| | |बीक्रिप्ट | ||
|{{yes}}<ref name="debian-manpage-crypt" /> | |{{yes}}<ref name="debian-manpage-crypt" /> | ||
|{{yes}} | |{{yes}} | ||
Line 246: | Line 247: | ||
|- | |- | ||
|3 | |3 | ||
| | |एनटीहैश | ||
|{{yes}}<ref name="debian-manpage-crypt" /> | |{{yes}}<ref name="debian-manpage-crypt" /> | ||
|{{yes}} | |{{yes}} | ||
Line 255: | Line 256: | ||
|- | |- | ||
|5 | |5 | ||
| | |एसएचए-256 | ||
|{{yes|2.7+}}<ref name="debian-manpage-crypt" /> | |{{yes|2.7+}}<ref name="debian-manpage-crypt" /> | ||
|{{yes|8.3+}} | |{{yes|8.3+}} | ||
Line 264: | Line 265: | ||
|- | |- | ||
|6 | |6 | ||
| | |एसएचए-512 | ||
|{{yes|2.7+}}<ref name="debian-manpage-crypt" /> | |{{yes|2.7+}}<ref name="debian-manpage-crypt" /> | ||
|{{yes|8.3+}} | |{{yes|8.3+}} | ||
Line 273: | Line 274: | ||
|- | |- | ||
|7 | |7 | ||
| | |एसक्रिप्ट | ||
|{{yes}}<ref name="debian-manpage-crypt" /> | |{{yes}}<ref name="debian-manpage-crypt" /> | ||
|{{yes}} | |{{yes}} | ||
Line 281: | Line 282: | ||
|{{no}} | |{{no}} | ||
|- | |- | ||
| | |एमडी5 | ||
| | |सोलारिस एमडी5 | ||
|{{yes}}<ref name="debian-manpage-crypt" /> | |{{yes}}<ref name="debian-manpage-crypt" /> | ||
|{{no}} | |{{no}} | ||
Line 290: | Line 291: | ||
|{{no}} | |{{no}} | ||
|- | |- | ||
| | |एसएचए1 | ||
| | |पीबीकेडीएफ1 के साथ एसएचए1 | ||
|{{yes}}<ref name="debian-manpage-crypt" /> | |{{yes}}<ref name="debian-manpage-crypt" /> | ||
|{{no}} | |{{no}} | ||
Line 299: | Line 300: | ||
|{{no}} | |{{no}} | ||
|- | |- | ||
| | |जीवाई | ||
| | |गोस्त-यसक्रिप्ट | ||
|{{yes}}<ref name="debian-manpage-crypt" /> | |{{yes}}<ref name="debian-manpage-crypt" /> | ||
|{{no}} | |{{no}} | ||
Line 309: | Line 310: | ||
|- | |- | ||
|y | |y | ||
| | |यसक्रिप्ट | ||
|{{yes}}<ref name="debian-manpage-crypt" /> | |{{yes}}<ref name="debian-manpage-crypt" /> | ||
|{{no}} | |{{no}} | ||
Line 320: | Line 321: | ||
=== लिनक्स === | === लिनक्स === | ||
लगभग सभी लिनक्स वितरणों द्वारा उपयोग की जाने वाली [[जीएनयू सी लाइब्रेरी]] क्रिप्ट प्रकार्य का कार्यान्वयन प्रदान करती है जो डीईएस, एमडी5 और (संस्करण 2.7 के बाद से) एसएचए-2 आधारित हैशिंग एल्गोरिदम का समर्थन करती है। | लगभग सभी लिनक्स वितरणों द्वारा उपयोग की जाने वाली [[जीएनयू सी लाइब्रेरी]] क्रिप्ट प्रकार्य का कार्यान्वयन प्रदान करती है जो डीईएस, एमडी5 और (संस्करण 2.7 के बाद से) एसएचए-2 आधारित हैशिंग एल्गोरिदम का समर्थन करती है। जीलिबसी अनुरक्षक, उलरिच ड्रेपर ने बीक्रिप्ट (पद्धति 2) समर्थन को अस्वीकार कर दिया क्योंकि यह राष्ट्रीय मानक और प्रौद्योगिकी संस्थान द्वारा अनुमोदित नहीं है।<ref>{{cite web|url=https://access.redhat.com/articles/1519843|title=bcrypt support for passwords in /etc/shadow - Red Hat Customer Portal|website=Access.redhat.com|access-date=2 December 2018}}</ref> बिना बीक्रिप्ट वाले प्रणाली के लिए सार्वजनिक डोमेन क्रिप्ट_ब्लोफिश लाइब्रेरी उपलब्ध है। इसे [[एसयूएसई लिनक्स]] में ग्लिबैक में एकीकृत किया गया है।<ref>{{cite web |title=आपके सॉफ़्टवेयर और आपके सर्वर के लिए bcrypt पासवर्ड हैशिंग ("पासवर्ड एन्क्रिप्शन")|url=https://www.openwall.com/crypt/ |website=www.openwall.com}}</ref> इसके अतिरिक्त, उपर्युक्त लिबएक्सक्रिप्ट का उपयोग यसक्रिप्ट-सक्षम प्रणाली पर जीलिबसी crypt () को बदलने के लिए किया जाता है। | ||
[[musl]] | [[musl|मुस्ल]] सी लाइब्रेरी पद्धति 1, 2, 5 और 6 के साथ-साथ परंपरा डीईएस पद्धति का समर्थन करती है। पारंपरिक डीईएस कोड बीएसडी फ्रीसेक पर आधारित है, जिसमें ग्लिबक यूएफसी-क्रिप्ट के साथ संगत होने के लिए संशोधन किया गया है।<ref>{{cite web |title=crypt_r.c\crypt\src - musl - musl - an implementation of the standard library for Linux-based systems |url=https://git.musl-libc.org/cgit/musl/tree/src/crypt/crypt_r.c |website=git.musl-libc.org}}</ref> | ||
=== | === मैकओएस === | ||
डार्विन के | डार्विन के जन्मज <code>crypt (</code>) सीमित कार्यक्षमता प्रदान करते है, मात्र डीईएस और बीएसडीआई का समर्थन करता है। ओएस एक्स अपने स्वयं के पासवर्ड हैश के लिए कुछ प्रणाली का उपयोग करते है, जो प्राचीन नेक्सट्स्टेप नेटइन्फो से लेकर नवीन निर्देशिका सेवाएं (डीएस) प्रणाली तक है।<ref>{{cite web|url=http://www.dribin.org/dave/blog/archives/2006/04/07/os_x_passwords/|title=कैसे मैक ओएस एक्स पासवर्ड प्रमाणीकरण लागू करता है|website=Dribin.org|access-date=2 December 2018}}</ref><ref>{{cite web|url=http://www.onlinehashcrack.com/how-to-extract-hashes-crack-mac-osx-passwords.php|title=मैक ओएस एक्स पासवर्ड कैसे क्रैक करें - ऑनलाइन हैश क्रैक|website=Onlinehashcrack.com|access-date=2 December 2018}}</ref> | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[कुंजी व्युत्पत्ति समारोह]] | * [[कुंजी व्युत्पत्ति समारोह|कुंजी व्युत्पत्ति नवीन]] | ||
* साल्ट ( | * साल्ट (गूढ़लेखिकी) | ||
== संदर्भ == | == संदर्भ == | ||
Line 339: | Line 339: | ||
== बाहरी संबंध == | == बाहरी संबंध == | ||
* [http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/libc/gen/crypt.c Source code for crypt(3) | * [http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/libc/gen/crypt.c Source code for crypt (3]) from Seventh Edition Unix (implements proposed डीईएस) | ||
* [http://openwall.info/wiki/john/sample-hashes Sample password hash encoding strings] | * [http://openwall.info/wiki/john/sample-hashes Sample password hash encoding strings] | ||
* [http://www.zer7.com/software/cryptsharp .NET crypt implementation] | * [http://www.zer7.com/software/cryptsharp .NET crypt implementation] | ||
{{cryptography navbox|hash}} | {{cryptography navbox|hash}} | ||
[[cs:Crypt (Unix)]] | [[cs:Crypt (Unix)]] | ||
[[Category:All articles with unsourced statements]] | |||
[[Category:Articles with hatnote templates targeting a nonexistent page]] | |||
[[Category: | [[Category:Articles with unsourced statements from April 2010]] | ||
[[Category:Articles with unsourced statements from July 2011]] | |||
[[Category:Collapse templates]] | |||
[[Category:Created On 11/05/2023]] | [[Category:Created On 11/05/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with ignored display titles]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:कंप्यूटर अभिगम नियंत्रण प्रोटोकॉल]] | |||
[[Category:क्रिप्टोग्राफ़िक हैश फ़ंक्शन]] | |||
[[Category:टूटी हुई क्रिप्टोग्राफी एल्गोरिदम]] | |||
[[Category:पासवर्ड प्रमाणीकरण]] | |||
[[Category:प्रमुख व्युत्पत्ति कार्य]] |
Latest revision as of 16:04, 25 May 2023
क्रिप्ट एक सी पॉज़िक्स लाइब्रेरी प्रकार्य है। यह सामान्यतः उपयोगकर्ता स्पष्टीकरण पासवर्ड के गूढ़लेखिकी हैश प्रकार्य की गणना करने के लिए उपयोग किया जाता है। प्रकार्य टेक्स्ट स्ट्रिंग को निर्गम करता है जो साल्ट (गूढ़लेखिकी) को भी कोड करता है (सामान्यतः पहले दो वर्ण स्वयं साल्ट होते हैं और शेष हैशेड परिणाम होता है), और उपयोग किए गए हैश एल्गोरिदम की पहचान करते है (पारंपरिक रूप से नीचे समझाया गया है)। यह निर्गम स्ट्रिंग एक पासवर्ड अभिलेखबद्ध बनाता है, जो सामान्यतः टेक्स्ट फ़ाइल में संग्रहीत होते है।
अधिक औपचारिक रूप से, क्रिप्ट यूनिक्स प्रणाली पर पासवर्ड सत्यापन और भंडारण के लिए गूढ़लेखिकी कुंजी व्युत्पत्ति प्रकार्य प्रदान करते है।
यूनिक्स क्रिप्ट उपयोगिता से संबंध
यूनिक्स में असंबंधित क्रिप्ट (यूनिक्स) उपयोगिता है, जिसे प्रायः सी लाइब्रेरी प्रकार्य के साथ भ्रमित किया जाता है। दोनों के बीच अंतर करने के लिए, लेखक प्रायः उपयोगिता प्रोग्राम को 'क्रिप्ट (1)' के रूप में संदर्भित करते हैं, क्योंकि यह यूनिक्स मैनुअल पृष्ठ (यूनिक्स) के खंड 1 में प्रलेखित है, और सी लाइब्रेरी प्रकार्य को 'क्रिप्ट' के रूप में संदर्भित करते है। (3), क्योंकि इसका प्रलेखन मैनुअल अनुभाग 3 में है।[1]
विवरण
यह एक ही क्रिप्ट प्रकार्य का उपयोग भंडारण के लिए नवीन हैश उत्पन्न करने के लिए और तुलना के लिए अभिलेखबद्ध किए गए साल्ट (गूढ़लेखिकी) के साथ एक प्रस्तावित पासवर्ड को हैश करने के लिए भी किया जाता है।
क्रिप्ट लाइब्रेरी परिच्छेदन के आधुनिक यूनिक्स कार्यान्वयन विभिन्न प्रकार की हैश पद्धतिओं का समर्थन करते हैं। मॉड्यूलर क्रिप्ट प्रारूप नामक वास्तविक मानक के बाद, परिणामस्वरूप हैशटेक्स्ट में उपयोग किए जाने वाले विशेष हैश एल्गोरिदम को अद्वितीय कोड प्रीफिक्स द्वारा पहचाना जा सकता है।[2][3][4]
crypt (
) लाइब्रेरी प्रकार्य पर्ल,[5] पीएचपी,[6] पाईक (प्रोग्रामिंग भाषा),[7] पायथन (प्रोग्रामिंग भाषा) [8] (यद्यपि अब इसे 3.11 के रूप में हटा दिया गया है), और रूबी (प्रोग्रामिंग भाषा) [9] प्रोग्रामिंग भाषाओं में भी सम्मिलित है।
क्रिप्ट द्वारा समर्थित कुंजी व्युत्पत्ति प्रकार्य
समय के साथ विभिन्न एल्गोरिदम प्रस्तुत किए गए हैं। पिछड़े संगतता को सक्षम करने के लिए, प्रत्येक पद्धति ने पासवर्ड हैश के क्रमांकन के कुछ सम्मेलन का उपयोग करना प्रारम्भ किया जिसे बाद में मॉड्यूलर क्रिप्ट प्रारूप (एमसीएफ) कहा गया।[3] वास्तविक एमसीएफ मानक से पहले जनित किया गया प्राचीन क्रिप्ट (3) हैश एक पद्धति से दूसरी पद्धति में भिन्न हो सकते है। पासवर्ड हैशिंग प्रतियोगिता के समय मॉड्यूलर क्रिप्ट प्रारूप का ठीक रूप से परिभाषित उपसमूह बनाया गया था।[3] प्रारूप को इस प्रकार परिभाषित किया गया है:[10]
$<id>[$<param>=<value> (,<param>=<value>) *][$<salt>[$<hash>]]
जहाँ
id
: हैशिंग एल्गोरिदम का प्रतिनिधित्व करने वाला एक पहचानकर्ता (जैसे कि एमडी5 के लिए 1, एसएचए-2 आदि के लिए 5)param
नाम और उसकीvalue
: हैश जटिलता पैरामीटर, जैसे आवर्तन/पुनरावृत्तियों की संख्याsalt
: मूलांक-64 विकोडित साल्ट (गूढ़लेखिकी)hash
: पासवर्ड और साल्ट को हैश करने का मूलांक -64 विकोडित परिणाम
क्रिप्ट में रेडिक्स-64 विकोडन को बी64 कहा जाता है और वर्णमाला का उपयोग करता है ./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
जो अधिक सामान्य बेस64 कार्यान्वयन और इतिहास से भिन्न है
पद्धति आईडी | रूपरेखा | उदाहरण |
---|---|---|
डीईएस | Kyq4bCxAXJkbg
| |
_ | बीएसडीआई | _EQ0.jzhSVeUyoSqLupI
|
1 | एमडी5 | $1$etNnh7FA$OlM7eljE/B7F1J4XYNnk81
|
2, 2a, 2b, 2x, 2y | बीक्रिप्ट | $2a$10$VIhIOofSMqgdGlL4wzE//e.77dAQGqntF/1dT7bqCrVtquInWy2qi
|
3 | एनटीहैश | $3$$8846f7eaee8fb117ad06bdd830b7586c
|
5 | एसएचए-256 | $5$9ks3nNEqv31FX.F$gdEoLFsCRsn/WRN3wxUnzfeZLoooVlzeF4WjLomTRFD
|
6 | एसएचए-512 | $6$qoE2letU$wWPRl.PVczjzeMVgjiA8LLy2nOyZbf7Amj3qLIL978o18gbMySdKZ7uepq9tmMQXxyTIrS12Pln.2Q/6Xscao0
|
7 | एसक्रिप्ट | $7$DU..../....2Q9obwLhin8qvQl6sisAO/$एसएचएyJj/JBdcuD4lJ1AxiwCo9e5XSi8TcINcmyID12i8
|
8 (Cisco) | एसएचए256 के साथपीबीकेडीएफ2 | $8$mTj4RZG8N9ZDOk$elY/asfm8kD3iDmkBe3hD2r4xcA/0oWS5V3os.O91u.
|
8 (JunOS) | पीबीकेडीएफ2 | $8$crypt-algo$hash-algo$iterations$salt$iv$tag$encrypted
|
gy | गोस्त-यसक्रिप्ट | $gy$jCT$HM87v.7RwpQLba8fDjNSk1$VgqS7k2OZWhFbAJVBye2vaA7ex/1VtU3a5fmL8Wv/26
|
md5 | सोलारिस एमडी5 | $एमडी5,rounds=5000$GUBv0xjJ$$mSwgIswdjlTY0YxV7HBVm0
|
sha1 | एसएचए-1
के साथपीबीकेडीएफ1 |
$एसएचए1$40000$jtNX3nZ2$hBNaIXkt4wBI2o5rsi8KejSjNqIq
|
y | यसक्रिप्ट | $y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7
|
पीएचसी उपसमूह में अधिकांश एमसीएफ हैश सम्मिलित हैं। कई अतिरिक्त एप्लिकेशन-परिभाषित विधियां स्थित हैं।[3]
एक कुंजी के रूप में पासवर्ड का उपयोग करके मूल कार्यान्वयन
तीसरे संस्करण यूनिक्स में[11] क्रिप्ट () लाइब्रेरी प्रकार्य का मूल कार्यान्वयन[12] ने एम-209 सिफर मशीन का अनुकरण किया। कुंजी के साथ पासवर्ड को एन्क्रिप्ट करने के अतिरिक्त, जो पासवर्ड को गूढलेखित मान और कुंजी से पुनर्प्राप्त करने की अनुमति देता, उसने पासवर्ड को कुंजी के रूप में उपयोग किया, और पासवर्ड डेटाबेस में इस कुंजी के साथ पासवर्ड को एन्क्रिप्ट करने का परिणाम था।
पारंपरिक डीईएस-आधारित पद्धति
मूल पासवर्ड गूढ़लेखन पद्धति बहुत तीव्र पाई गई और इस प्रकार सबसे संभावित पासवर्डों के पशुपन बल गणना के अधीन थी।[12] सातवें संस्करण यूनिक्स में,[13] पद्धति को डेटा गूढ़लेखन मानक एल्गोरिदम के संशोधित रूप में बदल दिया गया था। इस परिवर्तन का लक्ष्य गूढ़लेखन को मंद करना था। इसके अतिरिक्त, एल्गोरिदम में एक 12-बिट साल्ट (गूढ़लेखिकी) सम्मिलित है ताकि यह सुनिश्चित किया जा सके कि आक्रामक को एक साथ पूरे पासवर्ड डेटाबेस को लक्षित करने में सक्षम होने के विपरीत प्रत्येक पासवर्ड को स्वतंत्र रूप से क्रैक करने के लिए विवश किया जाएगा।
विस्तार से, उपयोगकर्ता के पासवर्ड को आठ अक्षरों तक छोटा कर दिया जाता है, और उनमें से प्रत्येक को मात्र 7-बिट तक सीमित कर दिया जाता है; यह 56-बिट डीईएस कुंजी बनाता है। उस कुंजी का उपयोग तब सभी-बिट-शून्य कक्ष को एन्क्रिप्ट करने के लिए किया जाता है, और फिर सिफ़र को उसी कुंजी के साथ फिर से एन्क्रिप्ट किया जाता है, और इसी प्रकार कुल 25 डीईएस गूढ़लेखन के लिए। गूढ़लेखन एल्गोरिदम को उद्विग्न करने के लिए 12-बिट साल्ट का उपयोग किया जाता है, इसलिए क्रिप्ट () को लागू करने के लिए मानक डीईएस कार्यान्वयन का उपयोग नहीं किया जा सकता है। साल्ट और अंतिम सिफ़र को बेस 64 के रूप में मुद्रण करने योग्य स्ट्रिंग में विकोडित किया गया है।
यह तकनीकी रूप से गूढ़लेखन नहीं है क्योंकि डेटा (सभी बिट शून्य) को गुप्त नहीं रखा जा रहा है; यह व्यापक रूप से पहले से सभी के लिए जाना जाता है। यद्यपि, डीईएस की विशेषता यह है कि यह ज्ञात सादे पाठ स्थितियों में भी की पुनः प्राप्ति के लिए बहुत प्रतिरोधी है। यह सैद्धांतिक रूप से संभव है कि दो अलग-अलग पासवर्ड का परिणाम एक ही हैश में हो सकते है। इस प्रकार पासवर्ड को कभी भी डिक्रिप्ट नहीं किया जाता है: इसका उपयोग मात्र परिणाम की गणना करने के लिए किया जाता है, और मिलान के परिणामों को प्रमाण माना जाता है कि पासवर्ड समान थे।
इस पद्धति का लाभ यह रहा है कि हैशटेक्स्ट को प्रणाली संचालनों या अन्य उपयोगकर्ताओं को संबंधित सादे पाठ पासवर्ड को उद्भासित किए बिना यूनिक्स प्रणाली के बीच संग्रहीत और अनुकरण किया जा सकता है। इस सुवाह्यता ने 30 से अधिक वर्षों तक कंप्यूटिंग स्थापत्य की कई पीढ़ियों और कई विक्रेताओं से यूनिक्स के कई संस्करणों में कार्य किया है।
पारंपरिक पद्धति की दुर्बलता
पारंपरिक डीईएस-आधारित क्रिप्ट एल्गोरिदम मूल रूप से चुना गया था क्योंकि डीईएस ज्ञात सादे पाठ आक्षेप के सामने भी कुंजी पुनर्प्राप्ति के लिए प्रतिरोधी था, और क्योंकि यह संगणनात्मक रूप से कीमती था। प्रारंभिक यूनिक्स मशीनों पर पासवर्ड हैश की गणना करने में पूरे एक सेकंड का समय लगता था। इसने उस युग में शब्दकोष के आक्षेप के लिए यथोचित प्रतिरोधी बना दिया। उस समय पासवर्ड हैश सामान्यतः स्पष्टीकरण फ़ाइल (/etc/passwd
) में संग्रहीत किया जाता था जो प्रणाली पर किसी के लिए भी पठनीय था। (इस स्पष्टीकरण फ़ाइल का उपयोग उपयोगकर्ता आईडी संख्याओं को नामों में, और उपयोगकर्ता नामों को पूर्ण नामों आदि में प्रतिचित्रित करने के लिए भी किया गया था)।
उस समय से तीन दशकों में, कंप्यूटर बहुत अधिक शक्तिशाली हो गए हैं। मूर के नियम को सामान्यतः सत्य माना गया है, इसलिए किसी दिए गए वित्तीय निवेश के लिए उपलब्ध कंप्यूटर की गति और क्षमता यूनिक्स के पहली बार लिखे जाने के बाद से 20 गुना से अधिक हो गई है। इसने लंबे समय से डीईएस-आधारित एल्गोरिदम को शब्दकोश आक्षेप के प्रति संवेदनशील बना दिया है, और यूनिक्स और यूनिक्स जैसी प्रणालियों जैसे कि लिनक्स ने लंबे समय तक "शैडो" फ़ाइलोंका उपयोग किया है, स्पष्टीकरण फ़ाइल (/etc/passwd
) से मात्र पासवर्ड हैश मानों को गतिमान करना और एक फ़ाइल में (पारंपरिक रूप से नामित /etc/shodow
) जिसे मात्र विशेषाधिकार प्राप्त प्रक्रियाओं द्वारा ही पढ़ा जा सकता है।
पासवर्ड तोड़ने की संगणनात्मक लागत को बढ़ाने के लिए, कुछ यूनिक्स साइटों ने व्यक्तिगत रूप से तदर्थ आधार पर गूढ़लेखन आवर्तन की संख्या में वृद्धि करना प्रारम्भ कर दिया।[citation needed] इसका उनके crypt (
) को मानक crypt (
) के साथ असंगत बनाने का दुष्प्रभाव था: हैश का एक ही शाब्दिक रूप था, परन्तु अब अलग एल्गोरिदम का उपयोग करके गणना की गई थी। मानक सभी-बिट-शून्य से प्रारंभिक कक्ष को संशोधित करके कुछ साइटों ने इस असंगति प्रभाव का भी लाभ उठाया।[citation needed] इससे हैशिंग की लागत में वृद्धि नहीं हुई, परन्तु इसका अर्थ यह था कि मानक crypt() के आधार पर पूर्व संगणित हैश शब्दकोशों को लागू नहीं किया जा सका।
बीएसडीआई ने डीईएस-आधारित पद्धति का विस्तार किया
बर्कले सॉफ्टवेयर डिजाइन ने उत्कृष्ट डीईएस-आधारित पद्धति में साधारण संशोधन किया। बीएसडीआई ने साल्ट को 24 बिट तक बढ़ाया और आवर्तन की संख्या को चर बना दिया (224-1)। आवर्तन की चुनी हुई संख्या संग्रहीत पासवर्ड हैश में विकोडित की गई है, जो साइट द्वारा मूल पद्धति द्वारा उपयोग किए जाने वाले आवर्तन की संख्या को संशोधित करने पर उत्पन्न होने वाली असंगति से बचाती है। इन हैश की पहचान अधोरेखांकन (_
) से प्रारम्भ करके की जाती है, जिसके बाद 4 वर्ण आवर्तन की संख्या का प्रतिनिधित्व करते हैं, फिर साल्ट के लिए 4 वर्ण।
बीएसडीआई एल्गोरिदम भी लंबे पासवर्ड का समर्थन करता है, डीईएस का उपयोग करके प्रारंभिक लंबे पासवर्ड को मूल एल्गोरिदम द्वारा समर्थित आठ 7-बिट बाइट तक नीचे कर देता है।
एमडी5-आधारित पद्धति
पॉल-हेनिंग कैंप ने एमडी5 संदेश संकलन एल्गोरिदम पर आधारित बारोक और (उस समय) संगणनात्मक रूप से बहुमूल्य एल्गोरिदम डिज़ाइन किया। एमडी5 स्वयं पासवर्ड हैश के लिए ठीक गूढ़लेखिकी दृढ़ता प्रदान करेगा, परन्तु यह प्रदान की जाने वाली दृढ़ता के सापेक्ष गणना करने के लिए अत्यधिक तीव्र डिज़ाइन किया गया है। शब्दकोश आक्षेप को मंद करने के लिए, क्रिप्ट () पद्धति की गणना करने के लिए बहुमूल्य होने के लिए डिज़ाइन किया गया है। एमडी5 पासवर्ड हैश का मुद्रण करने योग्य रूप $1$
से प्रारम्भ होता है।
यह पद्धति उपयोगकर्ताओं को किसी भी लम्बाई के पासवर्ड की अनुमति देती है, और वे अपने प्लेटफ़ॉर्म द्वारा समर्थित किसी भी वर्ण का उपयोग कर सकते हैं (मात्र 7-बिट एएससीआईआई नहीं)। (व्यावहारिक रूप से कई कार्यान्वयन पासवर्ड की लंबाई को सीमित करते हैं, परन्तु वे सामान्यतः किसी भी व्यक्ति द्वारा टाइप करने के इच्छुक होने की तुलना में लंबे समय तक पासवर्ड का समर्थन करते हैं।) साल्ट भी एक यादृच्छिक स्ट्रिंग है, जो मात्र संप्रतीक समुच्चय विचारों द्वारा सीमित है।
सबसे पहले पासफ़्रेज़ और साल्ट को एक साथ हैश किया जाता है, जिससे एमडी5 संदेश संकलन प्राप्त होता है। फिर नवीन संकलन का निर्माण किया जाता है, जिसमें पासफ़्रेज़, साल्ट और पहले संकलन सभी को जटिल रूप में एक साथ हैश किया जाता है। फिर इस संकलन को प्रकार्य के एक हजार पुनरावृत्तियों के माध्यम से पारित किया जाता है जो इसे पासफ़्रेज़ और साल्ट के साथ एक प्रकार से दोहराता है जो कि आवर्तन के बीच भिन्न होते है। इन आवर्तन के अंतिम का निर्गम परिणामी पासफ़्रेज़ हैश है।
निश्चित पुनरावृति गणना के कारण इस पद्धति ने संगणनात्मक व्यय को खो दिया है जो एक बार आनंद लिया था और अब चक्रों की परिवर्तनीय संख्या का समर्थन किया जाता है। जून 2012 में, पॉल-हेनिंग काम्प ने एल्गोरिदम को असुरक्षित घोषित किया और उपयोगकर्ताओं को दृढ़ पासवर्ड संकेत अस्फुटक में अभिगमन करने के लिए प्रोत्साहित किया।[14]
ब्लोफिश-आधारित पद्धति
नील्स प्रोवोस और डेविड माज़िएरेस ने ब्लोफिश (सिफर) पर आधारित क्रिप्ट () पद्धति को डिजाइन किया, जिसे बीक्रिप्ट कहा जाता है, और इसे 1999 में यूसेनिक्स में प्रस्तुत किया।[15] इन हैश का मुद्रण करने योग्य रूप $2$
, $2a$
, $2b$
, $2x$
या $2y$
से प्रारम्भ होते है, यह इस बात पर निर्भर करता है कि एल्गोरिदम के किस संस्करण का उपयोग किया जाता है:
$2$
– अप्रचलित।$2a$
– इस पद्धति की पहचान करने के लिए उपयोग की जाने वाली वर्तमान कुंजी। चूंकि 2011 में गैर-ओपनबीएसडी crypt_blowfish कार्यान्वयन में एक प्रमुख सुरक्षा दोष की खोज की गई थी,[16] इस स्ट्रिंग द्वारा संकेतित हैश अब अस्पष्ट हैं और त्रुटिपूर्ण कार्यान्वयन, या बाद के निश्चित, कार्यान्वयन द्वारा उत्पन्न हो सकते हैं। गैर-एएससीआईआई (8-बिट-समूह) वर्ण वाले कुछ पासवर्ड स्ट्रिंग द्वारा त्रुटि को ट्रिगर किया जा सकता है।$2b$
– परिवेष्टन समस्या को कम करने के लिए वर्तमान के ओपनबीएसडी कार्यान्वयन द्वारा उपयोग किया जाता है।[17] एल्गोरिदम के पिछले संस्करणों में लंबे पासवर्ड की समस्या है। डिज़ाइन के अनुसार, लंबे पासवर्ड को 72 अक्षरों में काट दिया जाता है, परन्तु कुछ पासवर्ड लंबाई के साथ एक बाइट पूर्णांक परिवेष्टन समस्या होती है, जिसके परिणामस्वरूप मंद हैश होते है।[18]$2x$
– crypt_blowfish की खोज के बाद फ्लैग जोड़ा गया। प्राचीन हैश का नाम बदलकर$2x$
किया जा सकता है यह इंगित करने के लिए कि वे टूटे हुए एल्गोरिदम के साथ उत्पन्न हुए थे। ये हैश अभी भी मंद हैं, परन्तु कम से कम यह स्पष्ट है कि उन्हें उत्पन्न करने के लिए किस एल्गोरिदम का उपयोग किया गया था।$2y$
– स्पष्ट रूप से नवीन, संशोधित एल्गोरिदम का उपयोग करने के लिए crypt_blowfish में एक फ्लैग। बग से पीड़ित प्राचीन कार्यान्वयन पर,$2y$
मात्रकार्य नहीं करेगा। एक नवीन, निश्चित कार्यान्वयन पर, यह$2b$
का उपयोग करने के समान परिणाम देगा।
ब्लोफिश अपने बहुमूल्य कुंजी व्यवस्थापन चरण के लिए कक्ष सिफर के बीच उल्लेखनीय है। यह मानक स्थिति में उपकुंजियों के साथ प्रारम्भ होते है, फिर कुंजी के भाग का उपयोग करके कक्ष गूढ़लेखन करने के लिए इस स्थिति का उपयोग करते है, और कुछ उपकुंजियों को बदलने के लिए उस गूढ़लेखन (वस्तुतः, एक हैशिंग) के परिणाम का उपयोग करते है। फिर यह कुंजी के दूसरे भाग को एन्क्रिप्ट करने के लिए इस संशोधित स्थिति का उपयोग करते है, और अधिक उपकुंजियों को बदलने के लिए परिणाम का उपयोग करते है। यह इस प्रकार से आगे बढ़ता है, जब तक कि सभी उपकुंजियों को समूहित नहीं किया जाता है, तब तक कुंजी को हैश करने और अवस्था के बिट को बदलने के लिए उत्तरोत्तर संशोधित अवस्था का उपयोग किया जाता है।
कुंजीयन के आवर्तन की संख्या दो का सामर्थ्य है, जो एल्गोरिदम का एक निवेश है। संख्या टेक्स्ट हैश में विकोडित की गई है, उदाहरण के लिए $2y$10...
एनटी हैश पद्धति
एमएस-चाप के माध्यम से एनटी स्पष्टीकरण के साथ सरल संगतता प्रदान करने के लिए फ्रीबीएसडी ने एनटीएलएम हैश एल्गोरिदम के लिए समर्थन लागू किया।[19] एनटी-हैश एल्गोरिदम मंद होने के लिए जाना जाता है, क्योंकि यह बिना किसी साल्ट के बहिष्कृत एमडी 4 हैश एल्गोरिदम का उपयोग करते है।[20] फ्रीबीएसडी ने इसके लिए $3$
का उपयोग किया। इसके उपयोग की अनुशंसा नहीं की जाती है, क्योंकि यह सरलता से टूट जाता है।[1]
एसएचए2-आधारित पद्धति
सामान्यतः उपयोग की जाने वाली एमडी5 आधारित पद्धति पर आक्षेप करना सरल हो गया है क्योंकि कंप्यूटर का सामर्थ्य बढ़ गया है। यद्यपि ब्लोफिश-आधारित प्रणाली में आवर्तन जोड़ने का विकल्प होता है और इस प्रकार यह चुनौतीपूर्ण पासवर्ड एल्गोरिदम बना रहता है, यह राष्ट्रीय मानक और प्रौद्योगिकी-अनुमोदित एल्गोरिदम का उपयोग नहीं करता है। इन तथ्यों के आलोक में, रेड हैट के उलरिच ड्रेपर ने एसएचए-2 (एसएचए-256 और एसएचए-512) हैश प्रकार्यों पर आधारित पद्धति बनाने का प्रयास किया।[21] इन हैश का मुद्रण करने योग्य रूप $5$
(एसएचए-256 के लिए) या $6$
(एसएचए-512 के लिए) से प्रारम्भ होते है जिसके आधार पर एसएचए संस्करण का उपयोग किया जाता है। इसका डिज़ाइन एमडी5-आधारित क्रिप्ट के समान है, कुछ उल्लेखनीय अंतरों के साथ:[21]
- यह कुछ ही चरणों में निरंतर डेटा जोड़ने से बचता है।
- एमडी5 एल्गोरिद्म बार-बार पासवर्ड का पहला अक्षर जोड़ देगा;[citation needed] इस चरण को अत्यधिक बदल दिया गया था।
- सन के क्रिप्ट () कार्यान्वयन से प्रेरित होकर, एल्गोरिदम निष्पादन में मुख्य पाशन पुनरावृत्तियों (आवर्तन) की संख्या निर्दिष्ट करने के लिए कार्यक्षमता जोड़ी गई थी[22][23]
- पुनरावृत्तियों की संख्या स्वतः निर्धारित रूप से 5000 है, न्यूनतम 1000 और अधिकतम 999,999,999।[24]
विनिर्देश और प्रतिदर्श कोड सार्वजनिक डोमेन में जारी किए गए हैं; इसे प्रायः एसएचएक्रिप्ट के रूप में संदर्भित किया जाता है।[24]
अन्य हैश
$y$
- यसक्रिप्ट, क्रिप्ट (
$7$
) का एक विस्तार है और पीएचसी निणार्यक है। इसका उपयोग वर्तमान पद्धतिओं के विकल्प के रूप में कई लिनक्स वितरणों में किया जाता है।[25] इस हैश का उपयोग करने के लिए, जीलिबसी सेlibcrypt
को लिबक्सक्रिप्ट प्रोजेक्ट से पिछड़े-संगत के साथ बदल दिया गया है।[26] $argon2d$
,$argon2i$
,$argon2ds$
- ये आर्गन2 एल्गोरिदम के लिए पीएचसी द्वारा निर्दिष्ट नाम हैं, परन्तु व्यापक रूप से उपयोग किए जाने वाले प्रतीत नहीं होते हैं।
अतिरिक्त प्रारूप, यदि कोई हो, कार्यान्वयन के मैन पृष्ठ में वर्णित हैं।[27]
पुरातन यूनिक्स पद्धति
बिगक्रिप्ट, एचपी-यूएक्स, डिजिटल यूनिक्स, और ओएसएफ/1 पर प्रयुक्त डीईएस-क्रिप्ट का संशोधित संस्करण है। इसके और डीईएस के बीच मुख्य अंतर यह है कि बिगक्रिप्ट पासवर्ड के सभी वर्णों का उपयोग करते है, न कि मात्र पहले 8 का, और इसकी चर लंबाई हैश है।[28]
क्रिप्ट16 डीईएस का साधारण संशोधन है, जो 16 अक्षरों तक के पासवर्ड की अनुमति देता है। अल्ट्रिक्स और ट्रू64 पर उपयोग किया गया।[29]
प्रचालन तंत्र में सहायता
पद्धति आईडी | पद्धति | लिनक्स (जीलिबसी) | फ्रीबीएसडी | नेटबीएसडी | ओपनबीएसडी | सोलारिस | मैकओएस |
---|---|---|---|---|---|---|---|
डीईएस | Yes[30] | Yes | Yes | Yes | Yes | Yes | |
_ | बीएसडीआई | Yes[30] | Yes | Yes | Yes | No | Yes |
1 | एमडी5 | Yes[30] | Yes | Yes | Yes | Yes | No |
2, 2a, 2b, 2x, 2y | बीक्रिप्ट | Yes[30] | Yes | Yes | Yes | Yes | No |
3 | एनटीहैश | Yes[30] | Yes | No | No | No | No |
5 | एसएचए-256 | 2.7+[30] | 8.3+ | No | No | Yes | No |
6 | एसएचए-512 | 2.7+[30] | 8.3+ | No | No | Yes | No |
7 | एसक्रिप्ट | Yes[30] | Yes | No | No | Yes | No |
एमडी5 | सोलारिस एमडी5 | Yes[30] | No | No | No | Yes | No |
एसएचए1 | पीबीकेडीएफ1 के साथ एसएचए1 | Yes[30] | No | Yes | No | No | No |
जीवाई | गोस्त-यसक्रिप्ट | Yes[30] | No | No | No | No | No |
y | यसक्रिप्ट | Yes[30] | No | No | No | No | No |
लिनक्स
लगभग सभी लिनक्स वितरणों द्वारा उपयोग की जाने वाली जीएनयू सी लाइब्रेरी क्रिप्ट प्रकार्य का कार्यान्वयन प्रदान करती है जो डीईएस, एमडी5 और (संस्करण 2.7 के बाद से) एसएचए-2 आधारित हैशिंग एल्गोरिदम का समर्थन करती है। जीलिबसी अनुरक्षक, उलरिच ड्रेपर ने बीक्रिप्ट (पद्धति 2) समर्थन को अस्वीकार कर दिया क्योंकि यह राष्ट्रीय मानक और प्रौद्योगिकी संस्थान द्वारा अनुमोदित नहीं है।[31] बिना बीक्रिप्ट वाले प्रणाली के लिए सार्वजनिक डोमेन क्रिप्ट_ब्लोफिश लाइब्रेरी उपलब्ध है। इसे एसयूएसई लिनक्स में ग्लिबैक में एकीकृत किया गया है।[32] इसके अतिरिक्त, उपर्युक्त लिबएक्सक्रिप्ट का उपयोग यसक्रिप्ट-सक्षम प्रणाली पर जीलिबसी crypt () को बदलने के लिए किया जाता है।
मुस्ल सी लाइब्रेरी पद्धति 1, 2, 5 और 6 के साथ-साथ परंपरा डीईएस पद्धति का समर्थन करती है। पारंपरिक डीईएस कोड बीएसडी फ्रीसेक पर आधारित है, जिसमें ग्लिबक यूएफसी-क्रिप्ट के साथ संगत होने के लिए संशोधन किया गया है।[33]
मैकओएस
डार्विन के जन्मज crypt (
) सीमित कार्यक्षमता प्रदान करते है, मात्र डीईएस और बीएसडीआई का समर्थन करता है। ओएस एक्स अपने स्वयं के पासवर्ड हैश के लिए कुछ प्रणाली का उपयोग करते है, जो प्राचीन नेक्सट्स्टेप नेटइन्फो से लेकर नवीन निर्देशिका सेवाएं (डीएस) प्रणाली तक है।[34][35]
यह भी देखें
- कुंजी व्युत्पत्ति नवीन
- साल्ट (गूढ़लेखिकी)
संदर्भ
- ↑ 1.0 1.1 FreeBSD Library Functions Manual –
- ↑ Simson Garfinkel, Alan Schwartz, Gene Spafford. "Practical Unix & Internet Security". 2003. section "4.3.2.3 crypt16( ), DES Extended, and Modular Crypt Format". "The Modular Crypt Format (MCF) specifies an extensible scheme for formatting encrypted passwords. MCF is one of the most popular formats for encrypted passwords"
- ↑ 3.0 3.1 3.2 3.3 "Modular Crypt Format — Passlib v1.7.1 Documentation". Pythonhosted.org. Retrieved 2 December 2018.
- ↑ "ademarre/binary-mcf". GitHub.com. Retrieved 2 December 2018.
- ↑ "क्रिप्ट - perldoc.perl.org". Perldoc.perl.org. Retrieved 2 December 2018.
- ↑ "PHP: crypt - Manual". Us.php.net. Retrieved 2 December 2018.
- ↑ "तहखाना ()". Archived from the original on 2012-10-02. Retrieved 2013-02-09.
- ↑ "crypt — Function to check Unix passwords — Python 3.7.1 documentation". Docs.python.org. Retrieved 2 December 2018.
- ↑ "Class: String (Ruby 2.5.3)". Ruby-doc.org. Retrieved 2 December 2018.
- ↑ Password Hash Competition. "पीएचसी स्ट्रिंग प्रारूप". Github.
- ↑ "crypt – password encoding". UNIX Third Edition Programmers' Manual. 1973-01-15.
- ↑ 12.0 12.1 Morris, Robert; Thompson, Ken (1978-04-03). "Password Security: A Case History". Bell Laboratories. Retrieved 2013-12-17.
- ↑ "crypt, setkey, encrypt – DES encryption". UNIX Seventh Edition Programmers' Manual. 1979.
- ↑ "Md5crypt Password scrambler is no longer considered safe by author — PHKs Bikeshed". Phk.freebsd.dk. Archived from the original on 17 March 2018. Retrieved 2 December 2018.
- ↑ Provos, Niels; Mazières, David (1999). "एक भविष्य-अनुकूलनीय पासवर्ड योजना". Proceedings of 1999 USENIX Annual Technical Conference: 81–92.
- ↑ Designer, Solar (2011-06-21). "crypt_blowfish 1.1; Owl glibc security update". See also CVE-2011-2483.
- ↑ "src/lib/libc/crypt/bcrypt.c – view – 1.27". Cvsweb.openbsd.org. Retrieved 2016-05-14.
- ↑ Designer, Solar (2012-01-02). "OpenBSD bcrypt 8-bit key_len wraparound".
- ↑ "NT MD4 password hash as new password encryption method for FreeBSD". Mail-archive.com. Retrieved 2 December 2018.
- ↑ "एनटीएलएम प्रमाणीकरण प्रोटोकॉल और सुरक्षा सहायता प्रदाता". Davenport.sourceforge.net. Retrieved 2 December 2018.
- ↑ 21.0 21.1 Drepper, Ulrich (19 September 2007). "Unix crypt with SHA-256/512". Retrieved 21 November 2018.
- ↑ Sun Microsystems. "crypt_sunmd5(5) man page". Archived from the original on 2008-04-16. Retrieved 2008-03-05.
- ↑ Muffett, Alec (2005-12-05). "OpenSolaris, Pluggable Crypt, and the SunMD5 Password Hash Algorithm". Retrieved 2012-08-11.
- ↑ 24.0 24.1 Drepper, Ulrich. "Unix crypt using SHA-256 and SHA-512".
- ↑ "FESCo Says "Yes" To Fedora 35 Using Yescrypt For Hashing Shadow Passwords - Phoronix". www.phoronix.com.
- ↑ "Changes/yescrypt as default hashing method for shadow - Fedora Project Wiki". libxcrypt: Is already capable for computing yescrypt hashes since v4.3.
- ↑
- ↑ "passlib.hash.bigcrypt - BigCrypt — Passlib v1.7.1 Documentation". Pythonhosted.org. Retrieved 2 December 2018.
- ↑ "passlib.hash.crypt16 - Crypt16 — Passlib v1.7.1 Documentation". Pythonhosted.org. Retrieved 2 December 2018.
- ↑ 30.00 30.01 30.02 30.03 30.04 30.05 30.06 30.07 30.08 30.09 30.10 30.11 "Debian manpage crypt". manpages.debian.org. Retrieved 11 Jan 2022.
- ↑ "bcrypt support for passwords in /etc/shadow - Red Hat Customer Portal". Access.redhat.com. Retrieved 2 December 2018.
- ↑ "आपके सॉफ़्टवेयर और आपके सर्वर के लिए bcrypt पासवर्ड हैशिंग ("पासवर्ड एन्क्रिप्शन")". www.openwall.com.
- ↑ "crypt_r.c\crypt\src - musl - musl - an implementation of the standard library for Linux-based systems". git.musl-libc.org.
- ↑ "कैसे मैक ओएस एक्स पासवर्ड प्रमाणीकरण लागू करता है". Dribin.org. Retrieved 2 December 2018.
- ↑ "मैक ओएस एक्स पासवर्ड कैसे क्रैक करें - ऑनलाइन हैश क्रैक". Onlinehashcrack.com. Retrieved 2 December 2018.
बाहरी संबंध
- Source code for crypt (3) from Seventh Edition Unix (implements proposed डीईएस)
- Sample password hash encoding strings
- .NET crypt implementation