पीबीकेडीएफ2: Difference between revisions

From Vigyanwiki
m (Deepak moved page मैं गर्म हूं to पीबीकेडीएफ2 without leaving a redirect)
(text)
Line 1: Line 1:
{{short description|Standard for a password-based key derivation function}}
{{short description|Standard for a password-based key derivation function}}
{{use mdy dates|date=May 2022}}
[[क्रिप्टोग्राफी]] में, पीबीकेडीएफ1 और पीबीकेडीएफ2 (पासवर्ड-आधारित कुंजी व्युत्पत्ति फलन 1 और 2) स्लाइडिंग कम्प्यूटेशनल लागत के साथ प्रमुख व्युत्पत्ति फलन हैं, जिनका उपयोग ब्रूट-फ़ोर्स हमलों की भेद्यता को कम करने के लिए किया जाता है।<ref name="RFC3962" />
 
[[क्रिप्टोग्राफी]] में, PBKDF1 और PBKDF2 (पासवर्ड-आधारित कुंजी व्युत्पत्ति फ़ंक्शन 1 और 2) एक स्लाइडिंग कम्प्यूटेशनल लागत के साथ प्रमुख व्युत्पत्ति कार्य हैं, जिनका उपयोग ब्रूट-फ़ोर्स हमलों की भेद्यता को कम करने के लिए किया जाता है।<ref name="RFC3962"/>
 
पीबीकेडीएफ2 [[आरएसए प्रयोगशालाओं]] की सार्वजनिक-कुंजी क्रिप्टोग्राफ़ी मानक (पीकेसीएस) श्रृंखला का हिस्सा है, विशेष रूप से पीकेसीएस{{nbsp}}#5 v2.0, [[इंटरनेट इंजीनियरिंग टास्क फोर्स]] के RFC के रूप में भी प्रकाशित{{nbsp}2898. यह PBKDF1 का स्थान लेता है, जो केवल 160 बिट तक की व्युत्पन्न कुंजी का उत्पादन कर सकता है।<ref>{{Cite journal|title = PKCS{{nbsp}}#5: Password-Based Cryptography Specification, Version 2.0 |url=http://tools.ietf.org/html/rfc2898#section-5.2 |id=RFC{{nbsp}}2898 |website = tools.ietf.org |access-date = 2015-10-23|first = Burt|last = Kaliski|year=2000 |doi=10.17487/RFC2898 |author-link=Burt Kaliski|doi-access=free }}</ref> आरएफसी{{nbsp}}8018 (पीकेसीएस{{nbsp}}#5 v2.1), 2017 में प्रकाशित, पासवर्ड हैशिंग के लिए PBKDF2 की अनुशंसा करता है।<ref>{{cite journal |id=RFC{{nbsp}}8018 |title=PKCS{{nbsp}}#5: Password-Based Cryptography Specification, Version 2.1 |first=Kathleen |last=Moriarty |editor-first1=K |editor-last1=Moriarty |display-authors=etal |url=https://tools.ietf.org/html/rfc8018 |website = tools.ietf.org|year=2017 |doi=10.17487/RFC8018 }}</ref>
 


पीबीकेडीएफ2 [[आरएसए प्रयोगशालाओं]] की सार्वजनिक-कुंजी क्रिप्टोग्राफ़ी मानक (पीकेसीएस) श्रृंखला का हिस्सा है, विशेष रूप से पीकेसीएस#5 v2.0, [[इंटरनेट इंजीनियरिंग टास्क फोर्स]] के आरएफसी 2898 के रूप में भी प्रकाशित किया गया है। यह पीबीकेडीएफ1 का अधिक्रमण करता है, जो केवल 160 बिट तक लंबी व्युत्पन्न कुंजी का उत्पादन कर सकता है।<ref>{{Cite journal|title = PKCS{{nbsp}}#5: Password-Based Cryptography Specification, Version 2.0 |url=http://tools.ietf.org/html/rfc2898#section-5.2 |id=RFC{{nbsp}}2898 |website = tools.ietf.org |access-date = 2015-10-23|first = Burt|last = Kaliski|year=2000 |doi=10.17487/RFC2898 |author-link=Burt Kaliski|doi-access=free }}</ref> आरएफसी 8018 (पीकेसीएस#5 v2.1), 2017 में प्रकाशित, पासवर्ड हैशिंग के लिए पीबीकेडीएफ2 की अनुशंसा करता है।<ref>{{cite journal |id=RFC{{nbsp}}8018 |title=PKCS{{nbsp}}#5: Password-Based Cryptography Specification, Version 2.1 |first=Kathleen |last=Moriarty |editor-first1=K |editor-last1=Moriarty |display-authors=etal |url=https://tools.ietf.org/html/rfc8018 |website = tools.ietf.org|year=2017 |doi=10.17487/RFC8018 }}</ref>
== उद्देश्य और संचालन ==
== उद्देश्य और संचालन ==
PBKDF2 [[नमक (क्रिप्टोग्राफी)]] मान के साथ इनपुट [[पासवर्ड]] या [[पदबंध]] के लिए [[हैश-आधारित संदेश प्रमाणीकरण कोड]] (HMAC) जैसे छद्म-यादृच्छिक फ़ंक्शन को लागू करता है और एक व्युत्पन्न कुंजी उत्पन्न करने के लिए प्रक्रिया को कई बार दोहराता है, जिसे तब उपयोग किया जा सकता है बाद के कार्यों में एक [[कुंजी (क्रिप्टोग्राफी)]]। जोड़ा गया कम्प्यूटेशनल कार्य [[पासवर्ड क्रैकिंग]] को और अधिक कठिन बना देता है, और इसे [[कुंजी खींचना]] के रूप में जाना जाता है।
पीबीकेडीएफ2 [[नमक (क्रिप्टोग्राफी)]] मान के साथ इनपुट [[पासवर्ड]] या [[पदबंध]] के लिए [[हैश-आधारित संदेश प्रमाणीकरण कोड]] (HMAC) जैसे छद्म-यादृच्छिक फलन को लागू करता है और एक व्युत्पन्न कुंजी उत्पन्न करने के लिए प्रक्रिया को कई बार दोहराता है, जिसे तब उपयोग किया जा सकता है बाद के कार्यों में एक [[कुंजी (क्रिप्टोग्राफी)]]। जोड़ा गया कम्प्यूटेशनल फलन [[पासवर्ड क्रैकिंग]] को और अधिक कठिन बना देता है, और इसे [[कुंजी खींचना]] के रूप में जाना जाता है।


जब मानक वर्ष 2000 में लिखा गया था, तो पुनरावृत्तियों की अनुशंसित न्यूनतम संख्या 1,000 थी, लेकिन सीपीयू की गति में वृद्धि के साथ पैरामीटर को समय के साथ बढ़ाने का इरादा है। 2005 में एक करबरोस (प्रोटोकॉल) मानक ने 4,096 पुनरावृत्तियों की सिफारिश की;<ref name="RFC3962">{{Cite journal|title = Advanced Encryption Standard (AES) Encryption for Kerberos 5|url = http://tools.ietf.org/html/rfc3962|website = tools.ietf.org|access-date = 2015-10-23 |first=Kenneth |last=Raeburn | year=2005 | doi=10.17487/RFC3962 |id=RFC{{nbsp}}3962|doi-access=free }}</ref> Apple Inc. ने कथित तौर पर [[iOS 3]] के लिए 2,000 और [[iOS 4]] के लिए 10,000 का उपयोग किया;<ref>{{Cite web|title = Smartphone Forensics: Cracking BlackBerry Backup Passwords |work=Advanced Password Cracking – Insight |publisher=ElcomSoft |date=30 September 2010 |url=http://blog.elcomsoft.com/2010/09/smartphone-forensics-cracking-blackberry-backup-passwords/ |access-date=2015-10-23}}</ref> जबकि 2011 में [[ लास्ट पास ]] ने [[जावास्क्रिप्ट]] क्लाइंट के लिए 5,000 पुनरावृत्तियों और सर्वर-साइड हैशिंग के लिए 100,000 पुनरावृत्तियों का उपयोग किया।<ref>{{Cite web |title = लास्टपास सुरक्षा अधिसूचना|url=https://blog.lastpass.com/2011/05/lastpass-security-notification/|website = The LastPass Blog|date = 5 May 2011|access-date = 2023-01-31}}</ref> 2023 में, [[OWASP]] ने PBKDF2-HMAC-SHA256 के लिए 600,000 पुनरावृत्तियों और PBKDF2-HMAC-SHA512 के लिए 210,000 पुनरावृत्तियों का उपयोग करने की अनुशंसा की।<ref>{{Cite web |date=15 August 2021 |title=पासवर्ड स्टोरेज चीट शीट|url=https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#pbkdf2 |url-status=live |archive-url=https://web.archive.org/web/20230123232056/https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html |archive-date=23 January 2023 |access-date=2023-01-23 |website=OWASP Cheat Sheet Series}}</ref>
जब मानक वर्ष 2000 में लिखा गया था, तो पुनरावृत्तियों की अनुशंसित न्यूनतम संख्या 1,000 थी, लेकिन सीपीयू की गति में वृद्धि के साथ पैरामीटर को समय के साथ बढ़ाने का इरादा है। 2005 में एक करबरोस (प्रोटोकॉल) मानक ने 4,096 पुनरावृत्तियों की सिफारिश की;<ref name="RFC3962">{{Cite journal|title = Advanced Encryption Standard (AES) Encryption for Kerberos 5|url = http://tools.ietf.org/html/rfc3962|website = tools.ietf.org|access-date = 2015-10-23 |first=Kenneth |last=Raeburn | year=2005 | doi=10.17487/RFC3962 |id=RFC{{nbsp}}3962|doi-access=free }}</ref> Apple Inc. ने कथित तौर पर [[iOS 3]] के लिए 2,000 और [[iOS 4]] के लिए 10,000 का उपयोग किया;<ref>{{Cite web|title = Smartphone Forensics: Cracking BlackBerry Backup Passwords |work=Advanced Password Cracking – Insight |publisher=ElcomSoft |date=30 September 2010 |url=http://blog.elcomsoft.com/2010/09/smartphone-forensics-cracking-blackberry-backup-passwords/ |access-date=2015-10-23}}</ref> जबकि 2011 में [[ लास्ट पास ]] ने [[जावास्क्रिप्ट]] क्लाइंट के लिए 5,000 पुनरावृत्तियों और सर्वर-साइड हैशिंग के लिए 100,000 पुनरावृत्तियों का उपयोग किया।<ref>{{Cite web |title = लास्टपास सुरक्षा अधिसूचना|url=https://blog.lastpass.com/2011/05/lastpass-security-notification/|website = The LastPass Blog|date = 5 May 2011|access-date = 2023-01-31}}</ref> 2023 में, [[OWASP]] ने पीबीकेडीएफ2-HMAC-SHA256 के लिए 600,000 पुनरावृत्तियों और पीबीकेडीएफ2-HMAC-SHA512 के लिए 210,000 पुनरावृत्तियों का उपयोग करने की अनुशंसा की।<ref>{{Cite web |date=15 August 2021 |title=पासवर्ड स्टोरेज चीट शीट|url=https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#pbkdf2 |url-status=live |archive-url=https://web.archive.org/web/20230123232056/https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html |archive-date=23 January 2023 |access-date=2023-01-23 |website=OWASP Cheat Sheet Series}}</ref>


[[File:Pbkdf2 nist.png|thumb|पासवर्ड-आधारित कुंजी व्युत्पत्ति फ़ंक्शन 2 की पुनरावृत्ति प्रक्रिया का एल्गोरिथम प्रतिनिधित्व।]]पासवर्ड में नमक मिलाने से हमलों के लिए प्रीकंप्यूटेड हैश ([[इंद्रधनुष टेबल]]) का उपयोग करने की क्षमता कम हो जाती है, और इसका मतलब है कि कई पासवर्डों का अलग-अलग परीक्षण किया जाना चाहिए, एक बार में नहीं। सार्वजनिक कुंजी क्रिप्टोग्राफी मानक कम से कम 64 बिट्स की नमक लंबाई की सिफारिश करता है।<ref name="RFC8018s4">{{Cite journal |id=RFC{{nbsp}}8018 |title=PKCS{{nbsp}}#5: Password-Based Cryptography Specification, Version 2.1: Section 4. Salt and Iteration Count |url = https://tools.ietf.org/html/rfc8018#section-4 |website = tools.ietf.org|access-date = 2018-01-24 |first=Kathleen |last=Moriarty |editor-first1=K |editor-last1=Moriarty |year=2017 |doi=10.17487/RFC8018 |display-authors=etal}}</ref> यूएस [[मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान]] 128 बिट्स की नमक लंबाई की सिफारिश करता है।<ref>{{Cite web |id=SP{{nbsp}}800-132 |title=Recommendation for Password-Based Key Derivation Part 1: Storage Applications |url=https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf |website=NIST |access-date = 2018-12-20 |first1=Meltem |last1=Sönmez Turan |first2=Elaine |last2=Barker |first3=William |last3=Burr |first4=Lily |last4=Chen}}</ref>
[[File:Pbkdf2 nist.png|thumb|पासवर्ड-आधारित कुंजी व्युत्पत्ति फलन 2 की पुनरावृत्ति प्रक्रिया का एल्गोरिथम प्रतिनिधित्व।]]पासवर्ड में नमक मिलाने से हमलों के लिए प्रीकंप्यूटेड हैश ([[इंद्रधनुष टेबल]]) का उपयोग करने की क्षमता कम हो जाती है, और इसका मतलब है कि कई पासवर्डों का अलग-अलग परीक्षण किया जाना चाहिए, एक बार में नहीं। सार्वजनिक कुंजी क्रिप्टोग्राफी मानक कम से कम 64 बिट्स की नमक लंबाई की सिफारिश करता है।<ref name="RFC8018s4">{{Cite journal |id=RFC{{nbsp}}8018 |title=PKCS{{nbsp}}#5: Password-Based Cryptography Specification, Version 2.1: Section 4. Salt and Iteration Count |url = https://tools.ietf.org/html/rfc8018#section-4 |website = tools.ietf.org|access-date = 2018-01-24 |first=Kathleen |last=Moriarty |editor-first1=K |editor-last1=Moriarty |year=2017 |doi=10.17487/RFC8018 |display-authors=etal}}</ref> यूएस [[मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान]] 128 बिट्स की नमक लंबाई की सिफारिश करता है।<ref>{{Cite web |id=SP{{nbsp}}800-132 |title=Recommendation for Password-Based Key Derivation Part 1: Storage Applications |url=https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf |website=NIST |access-date = 2018-12-20 |first1=Meltem |last1=Sönmez Turan |first2=Elaine |last2=Barker |first3=William |last3=Burr |first4=Lily |last4=Chen}}</ref>




== कुंजी व्युत्पत्ति प्रक्रिया ==
== कुंजी व्युत्पत्ति प्रक्रिया ==
PBKDF2 कुंजी व्युत्पत्ति फ़ंक्शन में पाँच इनपुट पैरामीटर हैं:<ref name=rfc2898>Password-Based Cryptography Specification {{IETF RFC|2898}}</ref>
पीबीकेडीएफ2 कुंजी व्युत्पत्ति फलन में पाँच इनपुट पैरामीटर हैं:<ref name=rfc2898>Password-Based Cryptography Specification {{IETF RFC|2898}}</ref>
:{{math|1=DK = PBKDF2(PRF, {{var|Password}}, {{var|Salt}}, {{var|c}}, {{var|dkLen}})}}
:{{math|1=DK = PBKDF2(PRF, {{var|Password}}, {{var|Salt}}, {{var|c}}, {{var|dkLen}})}}


कहाँ:
कहाँ:
* {{math|PRF}} आउटपुट लंबाई के साथ दो पैरामीटर का छद्म यादृच्छिक कार्य है {{var|hLen}} (उदा., एक बंद HMAC)
* {{math|PRF}} आउटपुट लंबाई के साथ दो पैरामीटर का छद्म यादृच्छिक फलन है {{var|hLen}} (उदा., एक बंद HMAC)
* {{var|Password}} मास्टर पासवर्ड है जिससे व्युत्पन्न कुंजी उत्पन्न होती है
* {{var|Password}} मास्टर पासवर्ड है जिससे व्युत्पन्न कुंजी उत्पन्न होती है
* {{var|Salt}} बिट्स का अनुक्रम है, जिसे नमक (क्रिप्टोग्राफी) के रूप में जाना जाता है
* {{var|Salt}} बिट्स का अनुक्रम है, जिसे नमक (क्रिप्टोग्राफी) के रूप में जाना जाता है
Line 46: Line 42:
:{{math|1=DK = PBKDF2(HMAC−SHA1, {{var|passphrase}}, {{var|ssid}}, 4096, 256)}}
:{{math|1=DK = PBKDF2(HMAC−SHA1, {{var|passphrase}}, {{var|ssid}}, 4096, 256)}}


PBKDF1 की एक सरल प्रक्रिया थी: प्रारंभिक U (इस संस्करण में T कहा जाता है) द्वारा बनाया गया है {{math|PRF({{var|Password}} + {{var|Salt}})}}, और निम्नलिखित बस हैं {{math|PRF({{var|U}}{{sub|previous}})}}. कुंजी को अंतिम हैश के पहले dkLen बिट्स के रूप में निकाला जाता है, यही कारण है कि आकार सीमा होती है।<ref name=rfc2898/>
पीबीकेडीएफ1 की एक सरल प्रक्रिया थी: प्रारंभिक U (इस संस्करण में T कहा जाता है) द्वारा बनाया गया है {{math|PRF({{var|Password}} + {{var|Salt}})}}, और निम्नलिखित बस हैं {{math|PRF({{var|U}}{{sub|previous}})}}. कुंजी को अंतिम हैश के पहले dkLen बिट्स के रूप में निकाला जाता है, यही कारण है कि आकार सीमा होती है।<ref name=rfc2898/>




== एचएमएसी टकराव ==
== एचएमएसी टकराव ==
एचएमएसी को अपने छद्म-यादृच्छिक फ़ंक्शन के रूप में उपयोग करते समय पीबीकेडीएफ 2 की एक दिलचस्प संपत्ति है। प्रत्येक जोड़ी के भीतर टकराव के साथ कई अलग-अलग पासवर्ड जोड़े को तुच्छ रूप से बनाना संभव है।<ref>{{Cite web |url=https://mathiasbynens.be/notes/pbkdf2-hmac |title=PBKDF2+HMAC hash collisions explained |first=Mathias |last=Bynens |website=mathiasbynens.be}}</ref> यदि आपूर्ति किया गया पासवर्ड अंतर्निहित HMAC हैश फ़ंक्शन के ब्लॉक आकार से अधिक लंबा है, तो पासवर्ड को पहले डाइजेस्ट में प्री-हैश किया जाता है, और उस डाइजेस्ट को पासवर्ड के रूप में उपयोग किया जाता है। उदाहरण के लिए, निम्न पासवर्ड बहुत लंबा है:
एचएमएसी को अपने छद्म-यादृच्छिक फलन के रूप में उपयोग करते समय पीबीकेडीएफ 2 की एक दिलचस्प संपत्ति है। प्रत्येक जोड़ी के भीतर टकराव के साथ कई अलग-अलग पासवर्ड जोड़े को तुच्छ रूप से बनाना संभव है।<ref>{{Cite web |url=https://mathiasbynens.be/notes/pbkdf2-hmac |title=PBKDF2+HMAC hash collisions explained |first=Mathias |last=Bynens |website=mathiasbynens.be}}</ref> यदि आपूर्ति किया गया पासवर्ड अंतर्निहित HMAC हैश फलन के ब्लॉक आकार से अधिक लंबा है, तो पासवर्ड को पहले डाइजेस्ट में प्री-हैश किया जाता है, और उस डाइजेस्ट को पासवर्ड के रूप में उपयोग किया जाता है। उदाहरण के लिए, निम्न पासवर्ड बहुत लंबा है:


* पासवर्ड: <code>{{not a typo|plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd}}</code>
* पासवर्ड: <code>{{not a typo|plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd}}</code>
Line 59: Line 55:


* SHA1 (ASCII): <code>eBkXQTfuBqp'cTcar&g*</code>
* SHA1 (ASCII): <code>eBkXQTfuBqp'cTcar&g*</code>
इसका मतलब है कि नमक या पुनरावृत्तियों की परवाह किए बिना, PBKDF2-HMAC-SHA1 पासवर्ड के लिए समान कुंजी बाइट उत्पन्न करेगा:
इसका मतलब है कि नमक या पुनरावृत्तियों की परवाह किए बिना, पीबीकेडीएफ2-HMAC-SHA1 पासवर्ड के लिए समान कुंजी बाइट उत्पन्न करेगा:


* plnlrtfpijpuhqylxbgqiiyipeyxvfsavzgxbbcfusqkozwpngsyjqlmjsytrmd
* plnlrtfpijpuhqylxbgqiiyipeyxvfsavzgxbbcfusqkozwpngsyjqlmjsytrmd
Line 71: Line 67:
* व्युत्पन्न कुंजी लंबाई: 16 बाइट्स
* व्युत्पन्न कुंजी लंबाई: 16 बाइट्स


निम्नलिखित दो फ़ंक्शन कॉल:
निम्नलिखित दो फलन कॉल:


  PBKDF2-HMAC-SHA1( plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd , ...)
  पीबीकेडीएफ2-HMAC-SHA1( plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd , ...)
  PBKDF2-HMAC-SHA1(eBkXQTfuBqp'cTcar&g* , ...)
  पीबीकेडीएफ2-HMAC-SHA1(eBkXQTfuBqp'cTcar&g* , ...)


समान व्युत्पन्न कुंजी बाइट उत्पन्न करेगा (<code>17EB4014C8C461C300E9B61518B9A18B</code>). ये व्युत्पन्न कुंजी टकराव एक सुरक्षा भेद्यता का प्रतिनिधित्व नहीं करते हैं - क्योंकि पासवर्ड का हैश उत्पन्न करने के लिए किसी को अभी भी मूल पासवर्ड पता होना चाहिए।<ref>{{Cite web|url=https://crypto.stackexchange.com/questions/26510/why-is-hmac-sha1-still-considered-secure|title = Collision resistance - Why is HMAC-SHA1 still considered secure? |website=crypto.stackexchange.com}}</ref>
समान व्युत्पन्न कुंजी बाइट उत्पन्न करेगा (<code>17EB4014C8C461C300E9B61518B9A18B</code>). ये व्युत्पन्न कुंजी टकराव एक सुरक्षा भेद्यता का प्रतिनिधित्व नहीं करते हैं - क्योंकि पासवर्ड का हैश उत्पन्न करने के लिए किसी को अभी भी मूल पासवर्ड पता होना चाहिए।<ref>{{Cite web|url=https://crypto.stackexchange.com/questions/26510/why-is-hmac-sha1-still-considered-secure|title = Collision resistance - Why is HMAC-SHA1 still considered secure? |website=crypto.stackexchange.com}}</ref>




== पीबीकेडीएफ2 == के विकल्प
== पीबीकेडीएफ2 == के विकल्प
PBKDF2 की एक कमजोरी यह है कि जबकि इसकी पुनरावृत्तियों की संख्या को समायोजित किया जा सकता है ताकि यह मनमाने ढंग से बड़ी मात्रा में कंप्यूटिंग समय ले सके, इसे एक छोटे सर्किट और बहुत कम रैम के साथ लागू किया जा सकता है, जो एप्लिकेशन-विशिष्ट एकीकृत का उपयोग करके क्रूर-बल हमले करता है। सर्किट या [[ ग्राफ़िक्स प्रोसेसिंग युनिट ]] अपेक्षाकृत सस्ते।<ref name="percival2009">[[Colin Percival]]. [http://www.tarsnap.com/scrypt.html scrypt]. As presented in [http://www.tarsnap.com/scrypt/scrypt.pdf "Stronger Key Derivation via Sequential Memory-Hard Functions"]. presented at BSDCan'09, May 2009.</ref> [[bcrypt]] पासवर्ड हैशिंग फ़ंक्शन के लिए बड़ी मात्रा में RAM की आवश्यकता होती है (लेकिन अभी भी अलग से ट्यून करने योग्य नहीं है, यानी CPU समय की दी गई राशि के लिए निश्चित है) और इस तरह के हमलों के खिलाफ थोड़ा मजबूत है,<ref>{{cite web|url=http://securityledger.com/new-25-gpu-monster-devours-passwords-in-seconds |title=New 25 GPU Monster Devours Passwords In Seconds |publisher=The Security Ledger |date=2012-12-04 |access-date=2013-09-07}}</ref> जबकि अधिक आधुनिक [[लिखी हुई कहानी]] कुंजी व्युत्पन्न कार्य मनमाने ढंग से बड़ी मात्रा में मेमोरी का उपयोग कर सकता है और इसलिए एएसआईसी और जीपीयू हमलों के लिए अधिक प्रतिरोधी है।<ref name="percival2009" />
पीबीकेडीएफ2 की एक कमजोरी यह है कि जबकि इसकी पुनरावृत्तियों की संख्या को समायोजित किया जा सकता है ताकि यह मनमाने ढंग से बड़ी मात्रा में कंप्यूटिंग समय ले सके, इसे एक छोटे सर्किट और बहुत कम रैम के साथ लागू किया जा सकता है, जो एप्लिकेशन-विशिष्ट एकीकृत का उपयोग करके क्रूर-बल हमले करता है। सर्किट या [[ ग्राफ़िक्स प्रोसेसिंग युनिट ]] अपेक्षाकृत सस्ते।<ref name="percival2009">[[Colin Percival]]. [http://www.tarsnap.com/scrypt.html scrypt]. As presented in [http://www.tarsnap.com/scrypt/scrypt.pdf "Stronger Key Derivation via Sequential Memory-Hard Functions"]. presented at BSDCan'09, May 2009.</ref> [[bcrypt]] पासवर्ड हैशिंग फलन के लिए बड़ी मात्रा में RAM की आवश्यकता होती है (लेकिन अभी भी अलग से ट्यून करने योग्य नहीं है, यानी CPU समय की दी गई राशि के लिए निश्चित है) और इस तरह के हमलों के खिलाफ थोड़ा मजबूत है,<ref>{{cite web|url=http://securityledger.com/new-25-gpu-monster-devours-passwords-in-seconds |title=New 25 GPU Monster Devours Passwords In Seconds |publisher=The Security Ledger |date=2012-12-04 |access-date=2013-09-07}}</ref> जबकि अधिक आधुनिक [[लिखी हुई कहानी]] कुंजी व्युत्पन्न फलन मनमाने ढंग से बड़ी मात्रा में मेमोरी का उपयोग कर सकता है और इसलिए एएसआईसी और जीपीयू हमलों के लिए अधिक प्रतिरोधी है।<ref name="percival2009" />


2013 में, अधिक प्रतिरोधी दृष्टिकोण विकसित करने के लिए [[पासवर्ड हैशिंग प्रतियोगिता]] (PHC) आयोजित की गई थी। 20 जुलाई 2015 को [[Argon2]] को अंतिम PHC विजेता के रूप में चुना गया था, जिसमें चार अन्य पासवर्ड हैशिंग योजनाओं को विशेष मान्यता दी गई थी: Catena, [[Lyra2]], Yescrypt और Makwa।<ref>[https://password-hashing.net "Password Hashing Competition"]</ref> एक अन्य विकल्प [[ गुब्बारा हैशिंग ]] है, जिसकी पासवर्ड नीति#NIST दिशानिर्देशों में अनुशंसा की गई है।<ref>{{cite web|website=NIST |id=SP{{nbsp}}800-63B |title=Digital Identity Guidelines Authentication and Lifecycle Management Section 5.1.1.2 |url=https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-63b.pdf|access-date=June 18, 2021}}</ref>
2013 में, अधिक प्रतिरोधी दृष्टिकोण विकसित करने के लिए [[पासवर्ड हैशिंग प्रतियोगिता]] (PHC) आयोजित की गई थी। 20 जुलाई 2015 को [[Argon2]] को अंतिम PHC विजेता के रूप में चुना गया था, जिसमें चार अन्य पासवर्ड हैशिंग योजनाओं को विशेष मान्यता दी गई थी: Catena, [[Lyra2]], Yescrypt और Makwa।<ref>[https://password-hashing.net "Password Hashing Competition"]</ref> एक अन्य विकल्प [[ गुब्बारा हैशिंग ]] है, जिसकी पासवर्ड नीति#NIST दिशानिर्देशों में अनुशंसा की गई है।<ref>{{cite web|website=NIST |id=SP{{nbsp}}800-63B |title=Digital Identity Guidelines Authentication and Lifecycle Management Section 5.1.1.2 |url=https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-63b.pdf|access-date=June 18, 2021}}</ref>
Line 95: Line 92:
*{{cite web |url=https://www.emc.com/collateral/white-papers/h11302-pkcs5v2-1-password-based-cryptography-standard-wp.pdf |archiveurl=https://web.archive.org/web/20170411220929/https://www.emc.com/collateral/white-papers/h11302-pkcs5v2-1-password-based-cryptography-standard-wp.pdf |archivedate=2017-04-11 |website=RSA Laboratories |title=PKCS{{nbsp}}#5 v2.1}}
*{{cite web |url=https://www.emc.com/collateral/white-papers/h11302-pkcs5v2-1-password-based-cryptography-standard-wp.pdf |archiveurl=https://web.archive.org/web/20170411220929/https://www.emc.com/collateral/white-papers/h11302-pkcs5v2-1-password-based-cryptography-standard-wp.pdf |archivedate=2017-04-11 |website=RSA Laboratories |title=PKCS{{nbsp}}#5 v2.1}}
*{{IETF RFC|2898|link=no}} – Specification of PKCS{{nbsp}}#5 v2.0.
*{{IETF RFC|2898|link=no}} – Specification of PKCS{{nbsp}}#5 v2.0.
*{{IETF RFC|6070|link=no}} – Test vectors for PBKDF2 with HMAC-SHA1.
*{{IETF RFC|6070|link=no}} – Test vectors for पीबीकेडीएफ2 with HMAC-SHA1.
*[http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf NIST Special Publication 800-132 Recommendation for Password-Based Key Derivation]
*[http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf NIST Special Publication 800-132 Recommendation for Password-Based Key Derivation]



Revision as of 10:04, 30 May 2023

क्रिप्टोग्राफी में, पीबीकेडीएफ1 और पीबीकेडीएफ2 (पासवर्ड-आधारित कुंजी व्युत्पत्ति फलन 1 और 2) स्लाइडिंग कम्प्यूटेशनल लागत के साथ प्रमुख व्युत्पत्ति फलन हैं, जिनका उपयोग ब्रूट-फ़ोर्स हमलों की भेद्यता को कम करने के लिए किया जाता है।[1]

पीबीकेडीएफ2 आरएसए प्रयोगशालाओं की सार्वजनिक-कुंजी क्रिप्टोग्राफ़ी मानक (पीकेसीएस) श्रृंखला का हिस्सा है, विशेष रूप से पीकेसीएस#5 v2.0, इंटरनेट इंजीनियरिंग टास्क फोर्स के आरएफसी 2898 के रूप में भी प्रकाशित किया गया है। यह पीबीकेडीएफ1 का अधिक्रमण करता है, जो केवल 160 बिट तक लंबी व्युत्पन्न कुंजी का उत्पादन कर सकता है।[2] आरएफसी 8018 (पीकेसीएस#5 v2.1), 2017 में प्रकाशित, पासवर्ड हैशिंग के लिए पीबीकेडीएफ2 की अनुशंसा करता है।[3]

उद्देश्य और संचालन

पीबीकेडीएफ2 नमक (क्रिप्टोग्राफी) मान के साथ इनपुट पासवर्ड या पदबंध के लिए हैश-आधारित संदेश प्रमाणीकरण कोड (HMAC) जैसे छद्म-यादृच्छिक फलन को लागू करता है और एक व्युत्पन्न कुंजी उत्पन्न करने के लिए प्रक्रिया को कई बार दोहराता है, जिसे तब उपयोग किया जा सकता है बाद के कार्यों में एक कुंजी (क्रिप्टोग्राफी)। जोड़ा गया कम्प्यूटेशनल फलन पासवर्ड क्रैकिंग को और अधिक कठिन बना देता है, और इसे कुंजी खींचना के रूप में जाना जाता है।

जब मानक वर्ष 2000 में लिखा गया था, तो पुनरावृत्तियों की अनुशंसित न्यूनतम संख्या 1,000 थी, लेकिन सीपीयू की गति में वृद्धि के साथ पैरामीटर को समय के साथ बढ़ाने का इरादा है। 2005 में एक करबरोस (प्रोटोकॉल) मानक ने 4,096 पुनरावृत्तियों की सिफारिश की;[1] Apple Inc. ने कथित तौर पर iOS 3 के लिए 2,000 और iOS 4 के लिए 10,000 का उपयोग किया;[4] जबकि 2011 में लास्ट पास ने जावास्क्रिप्ट क्लाइंट के लिए 5,000 पुनरावृत्तियों और सर्वर-साइड हैशिंग के लिए 100,000 पुनरावृत्तियों का उपयोग किया।[5] 2023 में, OWASP ने पीबीकेडीएफ2-HMAC-SHA256 के लिए 600,000 पुनरावृत्तियों और पीबीकेडीएफ2-HMAC-SHA512 के लिए 210,000 पुनरावृत्तियों का उपयोग करने की अनुशंसा की।[6]

पासवर्ड-आधारित कुंजी व्युत्पत्ति फलन 2 की पुनरावृत्ति प्रक्रिया का एल्गोरिथम प्रतिनिधित्व।

पासवर्ड में नमक मिलाने से हमलों के लिए प्रीकंप्यूटेड हैश (इंद्रधनुष टेबल) का उपयोग करने की क्षमता कम हो जाती है, और इसका मतलब है कि कई पासवर्डों का अलग-अलग परीक्षण किया जाना चाहिए, एक बार में नहीं। सार्वजनिक कुंजी क्रिप्टोग्राफी मानक कम से कम 64 बिट्स की नमक लंबाई की सिफारिश करता है।[7] यूएस मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान 128 बिट्स की नमक लंबाई की सिफारिश करता है।[8]


कुंजी व्युत्पत्ति प्रक्रिया

पीबीकेडीएफ2 कुंजी व्युत्पत्ति फलन में पाँच इनपुट पैरामीटर हैं:[9]

DK = PBKDF2(PRF, Password, Salt, c, dkLen)

कहाँ:

  • PRF आउटपुट लंबाई के साथ दो पैरामीटर का छद्म यादृच्छिक फलन है hLen (उदा., एक बंद HMAC)
  • Password मास्टर पासवर्ड है जिससे व्युत्पन्न कुंजी उत्पन्न होती है
  • Salt बिट्स का अनुक्रम है, जिसे नमक (क्रिप्टोग्राफी) के रूप में जाना जाता है
  • c वांछित पुनरावृत्तियों की संख्या है
  • dkLen व्युत्पन्न कुंजी की वांछित बिट-लंबाई है
  • DK उत्पन्न व्युत्पन्न कुंजी है

प्रत्येक hLen-बिट ब्लॉक {{math|Ti}व्युत्पन्न कुंजी का } DK, की गणना निम्नानुसार की जाती है (के साथ + अंकन स्ट्रिंग संयोजन):

DK = T1 + T2 + ⋯ + Tdklen/hlen
Ti = F(Password, Salt, c, i)

कार्यक्रम F xor है (^) श्रृंखलित PRFs के पुनरावृत्तियों का। PRF का पहला पुनरावृत्ति PRF कुंजी के रूप में पासवर्ड का उपयोग करता है और नमक के साथ जुड़ा हुआ है i इनपुट के रूप में बिग-एंडियन 32-बिट पूर्णांक के रूप में एन्कोड किया गया। (ध्यान दें कि i एक 1-आधारित इंडेक्स है।) PRF के बाद के पुनरावृत्तियों में PRF कुंजी के रूप में पासवर्ड का उपयोग किया जाता है और इनपुट के रूप में पिछले PRF गणना का आउटपुट:

F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc

कहाँ:

U1 = PRF(Password, Salt + INT_32_BE(i))
U2 = PRF(Password, U1)
Uc = PRF(Password, Uc−1)

उदाहरण के लिए, WPA2 उपयोग करता है:

DK = PBKDF2(HMAC−SHA1, passphrase, ssid, 4096, 256)

पीबीकेडीएफ1 की एक सरल प्रक्रिया थी: प्रारंभिक U (इस संस्करण में T कहा जाता है) द्वारा बनाया गया है PRF(Password + Salt), और निम्नलिखित बस हैं PRF(Uprevious). कुंजी को अंतिम हैश के पहले dkLen बिट्स के रूप में निकाला जाता है, यही कारण है कि आकार सीमा होती है।[9]


एचएमएसी टकराव

एचएमएसी को अपने छद्म-यादृच्छिक फलन के रूप में उपयोग करते समय पीबीकेडीएफ 2 की एक दिलचस्प संपत्ति है। प्रत्येक जोड़ी के भीतर टकराव के साथ कई अलग-अलग पासवर्ड जोड़े को तुच्छ रूप से बनाना संभव है।[10] यदि आपूर्ति किया गया पासवर्ड अंतर्निहित HMAC हैश फलन के ब्लॉक आकार से अधिक लंबा है, तो पासवर्ड को पहले डाइजेस्ट में प्री-हैश किया जाता है, और उस डाइजेस्ट को पासवर्ड के रूप में उपयोग किया जाता है। उदाहरण के लिए, निम्न पासवर्ड बहुत लंबा है:

  • पासवर्ड: plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd

इसलिए, HMAC-SHA1 का उपयोग करते समय, इसे SHA-1 का उपयोग करके प्री-हैश किया जाता है:

  • SHA1 (हेक्स): 65426b585154667542717027635463617226672a

ASCII में किसका प्रतिनिधित्व किया जा सकता है:

  • SHA1 (ASCII): eBkXQTfuBqp'cTcar&g*

इसका मतलब है कि नमक या पुनरावृत्तियों की परवाह किए बिना, पीबीकेडीएफ2-HMAC-SHA1 पासवर्ड के लिए समान कुंजी बाइट उत्पन्न करेगा:

  • plnlrtfpijpuhqylxbgqiiyipeyxvfsavzgxbbcfusqkozwpngsyjqlmjsytrmd
  • eBkXQTfuBqp'cTcar&g*

उदाहरण के लिए, का उपयोग कर:

  • पीआरएफ: HMAC-SHA1
  • नमक: A009C1A485912C6AE630D3E744240B04
  • पुनरावृत्तियाँ: 1,000
  • व्युत्पन्न कुंजी लंबाई: 16 बाइट्स

निम्नलिखित दो फलन कॉल:

पीबीकेडीएफ2-HMAC-SHA1( plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd , ...)
पीबीकेडीएफ2-HMAC-SHA1(eBkXQTfuBqp'cTcar&g* , ...)

समान व्युत्पन्न कुंजी बाइट उत्पन्न करेगा (17EB4014C8C461C300E9B61518B9A18B). ये व्युत्पन्न कुंजी टकराव एक सुरक्षा भेद्यता का प्रतिनिधित्व नहीं करते हैं - क्योंकि पासवर्ड का हैश उत्पन्न करने के लिए किसी को अभी भी मूल पासवर्ड पता होना चाहिए।[11]


== पीबीकेडीएफ2 == के विकल्प पीबीकेडीएफ2 की एक कमजोरी यह है कि जबकि इसकी पुनरावृत्तियों की संख्या को समायोजित किया जा सकता है ताकि यह मनमाने ढंग से बड़ी मात्रा में कंप्यूटिंग समय ले सके, इसे एक छोटे सर्किट और बहुत कम रैम के साथ लागू किया जा सकता है, जो एप्लिकेशन-विशिष्ट एकीकृत का उपयोग करके क्रूर-बल हमले करता है। सर्किट या ग्राफ़िक्स प्रोसेसिंग युनिट अपेक्षाकृत सस्ते।[12] bcrypt पासवर्ड हैशिंग फलन के लिए बड़ी मात्रा में RAM की आवश्यकता होती है (लेकिन अभी भी अलग से ट्यून करने योग्य नहीं है, यानी CPU समय की दी गई राशि के लिए निश्चित है) और इस तरह के हमलों के खिलाफ थोड़ा मजबूत है,[13] जबकि अधिक आधुनिक लिखी हुई कहानी कुंजी व्युत्पन्न फलन मनमाने ढंग से बड़ी मात्रा में मेमोरी का उपयोग कर सकता है और इसलिए एएसआईसी और जीपीयू हमलों के लिए अधिक प्रतिरोधी है।[12]

2013 में, अधिक प्रतिरोधी दृष्टिकोण विकसित करने के लिए पासवर्ड हैशिंग प्रतियोगिता (PHC) आयोजित की गई थी। 20 जुलाई 2015 को Argon2 को अंतिम PHC विजेता के रूप में चुना गया था, जिसमें चार अन्य पासवर्ड हैशिंग योजनाओं को विशेष मान्यता दी गई थी: Catena, Lyra2, Yescrypt और Makwa।[14] एक अन्य विकल्प गुब्बारा हैशिंग है, जिसकी पासवर्ड नीति#NIST दिशानिर्देशों में अनुशंसा की गई है।[15]


यह भी देखें

संदर्भ

  1. 1.0 1.1 Raeburn, Kenneth (2005). "Advanced Encryption Standard (AES) Encryption for Kerberos 5". tools.ietf.org. doi:10.17487/RFC3962. RFC 3962. Retrieved 2015-10-23.
  2. Kaliski, Burt (2000). "PKCS #5: Password-Based Cryptography Specification, Version 2.0". tools.ietf.org. doi:10.17487/RFC2898. RFC 2898. Retrieved 2015-10-23.
  3. Moriarty, Kathleen; et al. (2017). Moriarty, K (ed.). "PKCS #5: Password-Based Cryptography Specification, Version 2.1". tools.ietf.org. doi:10.17487/RFC8018. RFC 8018.
  4. "Smartphone Forensics: Cracking BlackBerry Backup Passwords". Advanced Password Cracking – Insight. ElcomSoft. 30 September 2010. Retrieved 2015-10-23.
  5. "लास्टपास सुरक्षा अधिसूचना". The LastPass Blog. 5 May 2011. Retrieved 2023-01-31.
  6. "पासवर्ड स्टोरेज चीट शीट". OWASP Cheat Sheet Series. 15 August 2021. Archived from the original on 23 January 2023. Retrieved 2023-01-23.
  7. Moriarty, Kathleen; et al. (2017). Moriarty, K (ed.). "PKCS #5: Password-Based Cryptography Specification, Version 2.1: Section 4. Salt and Iteration Count". tools.ietf.org. doi:10.17487/RFC8018. RFC 8018. Retrieved 2018-01-24.
  8. Sönmez Turan, Meltem; Barker, Elaine; Burr, William; Chen, Lily. "Recommendation for Password-Based Key Derivation Part 1: Storage Applications" (PDF). NIST. SP 800-132. Retrieved 2018-12-20.
  9. 9.0 9.1 Password-Based Cryptography Specification RFC 2898
  10. Bynens, Mathias. "PBKDF2+HMAC hash collisions explained". mathiasbynens.be.
  11. "Collision resistance - Why is HMAC-SHA1 still considered secure?". crypto.stackexchange.com.
  12. 12.0 12.1 Colin Percival. scrypt. As presented in "Stronger Key Derivation via Sequential Memory-Hard Functions". presented at BSDCan'09, May 2009.
  13. "New 25 GPU Monster Devours Passwords In Seconds". The Security Ledger. 2012-12-04. Retrieved 2013-09-07.
  14. "Password Hashing Competition"
  15. "Digital Identity Guidelines Authentication and Lifecycle Management Section 5.1.1.2" (PDF). NIST. SP 800-63B. Retrieved June 18, 2021.


बाहरी संबंध