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

From Vigyanwiki
Line 8: Line 8:
जब मानक वर्ष 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>एप्पल ने कथित तौर पर [[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-एचएमएसी-एसएचए256 के लिए 600,000 पुनरावृत्तियों और पीबीकेडीएफ2-एचएमएसी-एसएचए512 के लिए 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>एप्पल ने कथित तौर पर [[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-एचएमएसी-एसएचए256 के लिए 600,000 पुनरावृत्तियों और पीबीकेडीएफ2-एचएमएसी-एसएचए512 के लिए 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>
 
 
== कुंजी व्युत्पत्ति प्रक्रिया ==
== कुंजी व्युत्पत्ति प्रक्रिया ==
पीबीकेडीएफ2 कुंजी व्युत्पत्ति फलन में पाँच इनपुट पैरामीटर हैं:<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}} (उदा., एक बंद एचएमएसी)
* {{math|पीआरएफ}} आउटपुट लंबाई {{var|hLen}} (उदाहरण के लिए, बंद एचएमएसी) के साथ दो मापदंडों का छद्म यादृच्छिक कार्य है।
* {{var|Password}} मास्टर पासवर्ड है जिससे व्युत्पन्न कुंजी उत्पन्न होती है
* {{var|पासवर्ड}} मास्टर पासवर्ड है जिससे व्युत्पन्न कुंजी उत्पन्न होती है
* {{var|Salt}} बिट्स का अनुक्रम है, जिसे साल्ट (क्रिप्टोग्राफी) के रूप में जाना जाता है
* {{var|साल्ट}} बिट्स का अनुक्रम है, जिसे साल्ट (क्रिप्टोग्राफी) के रूप में जाना जाता है
* {{var|c}} वांछित पुनरावृत्तियों की संख्या है
* {{var|c}} वांछित पुनरावृत्तियों की संख्या है
* {{var|dkLen}} व्युत्पन्न कुंजी की वांछित बिट-लंबाई है
* {{var|डीकेलेन}} व्युत्पन्न कुंजी की वांछित बिट-लंबाई है
* {{var|DK}} उत्पन्न व्युत्पन्न कुंजी है
* {{var|डीके}} उत्पन्न व्युत्पन्न कुंजी है


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


:{{math|1={{var|DK}} = T{{sub|1}} + T{{sub|2}} + ⋯ + T{{sub|{{var|dklen}}/{{var|hlen}}}}}}
:{{math|1={{var|DK}} = T{{sub|1}} + T{{sub|2}} + ⋯ + T{{sub|{{var|dklen}}/{{var|hlen}}}}}}
:{{math|1=T{{sub|i}} = F({{var|Password}}, {{var|Salt}}, {{var|c}}, {{var|i}})}}
:{{math|1=T{{sub|i}} = F({{var|Password}}, {{var|Salt}}, {{var|c}}, {{var|i}})}}


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


:{{math|1=F({{var|Password}}, {{var|Salt}}, {{var|c}}, {{var|i}}) = U{{sub|1}} ^ U{{sub|2}} ^ ⋯ ^ U{{sub|{{var|c}}}}}}
:{{math|1=F({{var|Password}}, {{var|Salt}}, {{var|c}}, {{var|i}}) = U{{sub|1}} ^ U{{sub|2}} ^ ⋯ ^ U{{sub|{{var|c}}}}}}


कहाँ:
जहाँ:
:{{math|1=U{{sub|1}} = PRF({{var|Password}}, {{var|Salt}} + INT_32_BE({{var|i}}))}}
:{{math|1=U{{sub|1}} = PRF({{var|Password}}, {{var|Salt}} + INT_32_BE({{var|i}}))}}
:{{math|1=U{{sub|2}} = PRF({{var|Password}}, U{{sub|1}})}}
:{{math|1=U{{sub|2}} = PRF({{var|Password}}, U{{sub|1}})}}
Line 42: Line 40:
:{{math|1=DK = PBKDF2(HMAC−SHA1, {{var|passphrase}}, {{var|ssid}}, 4096, 256)}}
:{{math|1=DK = PBKDF2(HMAC−SHA1, {{var|passphrase}}, {{var|ssid}}, 4096, 256)}}


पीबीकेडीएफ1 की एक सरल प्रक्रिया थी: प्रारंभिक 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> यदि आपूर्ति किया गया पासवर्ड अंतर्निहित एचएमएसी हैश फलन के ब्लॉक आकार से अधिक लंबा है, तो पासवर्ड को पहले डाइजेस्ट में प्री-हैश किया जाता है, और उस डाइजेस्ट को पासवर्ड के रूप में उपयोग किया जाता है। उदाहरण के लिए, निम्न पासवर्ड बहुत लंबा है:
== एचएमएसी टकराव ==
एचएमएसी को अपने छद्म-यादृच्छिक फलन के रूप में उपयोग करते समय पीबीकेडीएफ 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> यदि आपूर्ति किया गया पासवर्ड अंतर्निहित एचएमएसी हैश फलन के ब्लॉक आकार से अधिक लंबा है, तो पासवर्ड को पहले डाइजेस्ट में प्री-हैश किया जाता है, और उस डाइजेस्ट को पासवर्ड के रूप में उपयोग किया जाता है। उदाहरण के लिए, निम्न पासवर्ड बहुत लंबा है:


* पासवर्ड: <code>{{not a typo|plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd}}</code>
* पासवर्ड: <code>{{not a typo|plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd}}</code>
Line 72: Line 68:
  पीबीकेडीएफ2-एचएमएसी-SHA1(eBkXQTfuBqp'cTcar&g* , ...)
  पीबीकेडीएफ2-एचएमएसी-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>





Revision as of 12:18, 30 May 2023

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

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

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

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

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

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

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

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

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

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

जहाँ:

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

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

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

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

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] यदि आपूर्ति किया गया पासवर्ड अंतर्निहित एचएमएसी हैश फलन के ब्लॉक आकार से अधिक लंबा है, तो पासवर्ड को पहले डाइजेस्ट में प्री-हैश किया जाता है, और उस डाइजेस्ट को पासवर्ड के रूप में उपयोग किया जाता है। उदाहरण के लिए, निम्न पासवर्ड बहुत लंबा है:

  • पासवर्ड: plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd

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

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

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

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

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

  • plnlrtfpijpuhqylxbgqiiyipeyxvfsavzgxbbcfusqkozwpngsyjqlmjsytrmd
  • eBkXQTfuBqp'cTcar&g*

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

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

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

पीबीकेडीएफ2-एचएमएसी-SHA1( plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd , ...)
पीबीकेडीएफ2-एचएमएसी-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.


बाहरी संबंध