FreeBSD pkg 2.8.0 के रिलीज़ से SHA-256 को धीरे-धीरे हटाकर चेकसम के लिए Blake2b का उपयोग किया जाएगा (क्वांटम सुरक्षा?)
नमस्ते, मैं अक्षम (munou) हूँ।
जब मैंने Github टाइमलाइन पर freebsd/pkg का रिलीज़ देखा, तो मेरी नज़र अचानक Blake2b शब्द पर पड़ी।
https://github.com/freebsd/pkg/releases#release-2.8.0
- Blake2b used everywhere possible for checksums; repositories use blake2 instead of sha256
ऐसा लगता है कि यह Blake2b स्वयं 2016 में GNU coreutils में शामिल और रिलीज़ कर दिया गया था।
आखिर Blake2b क्या है?
मैंने पहले इसके बारे में थोड़ा ही पढ़ा था और मुझे बस इतना पता था कि यह एक हैश एल्गोरिदम है, इसलिए मैंने इसे थोड़ा और जांचा।
Blake2 (Blake2b) को Rust में लागू किया #Security - Qiita
Blake2 के दो प्रकार हैं: सामान्य संस्करण Blake2b और छोटा संस्करण Blake2s। Blake2b 64-बिट के लिए है और Blake2s 8~32-बिट के लिए।
समझ गया।
RFC:
RFC 7693 - BLAKE2 क्रिप्टोग्राफिक हैश और मैसेज ऑथेंटिकेशन कोड (MAC)
यह Argon2 पासवर्ड हैशिंग में भी इस्तेमाल होता है। क्या भविष्य में पासवर्ड हैशिंग के लिए bcrypt की जगह Argon2 और क्रिप्टोग्राफिक हैश के लिए SHA-256 की जगह Blake2 का उपयोग करना आधुनिक डिज़ाइन बन जाएगा? मुझे लगता है कि यह संभव है, क्योंकि पहले से ही ऐसे कार्यान्वयन मौजूद हैं जो Argon2 का उपयोग कर रहे हैं। हालाँकि, md5sum जैसे एल्गोरिदम अभी भी हल्के और तेज़ हैश के रूप में उपयोग किए जाते हैं और सरल अखंडता जांच के लिए सुविधाजनक हैं। यहाँ तक कि WebSocket हैंडशेक में भी RFC के अनुसार SHA-1 का उपयोग करने का उल्लेख है, लेकिन चूंकि WS कार्यान्वयन में इसे बदलने का कोई मतलब नहीं है, इसलिए इसे वैसे ही रखा गया है।
इस दस्तावेज़ में वर्णित WebSocket हैंडशेक SHA-1 की सुरक्षा विशेषताओं (जैसे टकराव प्रतिरोध या दूसरे प्री-इमेज हमले के प्रति प्रतिरोध) पर निर्भर नहीं करता है ([RFC4270] में वर्णित)।
RFC 6455 - WebSocket प्रोटोकॉल
चूँकि मैं इस सवाल पर चर्चा कर सकता था, इसलिए मैंने ChatGPT (GPT 5.6) से पूछा।
निष्कर्ष यह है कि Argon2 पर माइग्रेशन आधुनिकीकरण के रूप में उचित है, लेकिन क्रिप्टोग्राफिक हैश के लिए यह ऐसा है जैसे कि हमारे पास एक और विकल्प बढ़ गया हो।
हालाँकि, यह काफी आश्चर्यजनक है कि FreeBSD ने pkg के checksum उपयोग को बदल दिया है, इसलिए क्या यह भविष्य में काफी मानक बन जाएगा या नहीं?
GPT 5.6 से प्रश्न नीचे दिया गया है
Q. क्या पासवर्ड हैशिंग के लिए bcrypt की जगह Argon2 और क्रिप्टोग्राफिक हैश के लिए SHA-256 की जगह Blake2 का उपयोग करना आधुनिक डिज़ाइन बन जाएगा?
A. हाँ, पासवर्ड स्टोरेज के लिए bcrypt → Argon2id को निश्चित रूप से 'आधुनिकीकरण' कहा जा सकता है। दूसरी ओर, सामान्य क्रिप्टोग्राफिक हैश के लिए SHA-256 → BLAKE2 हमेशा एक सरल पीढ़ीगत बदलाव नहीं है।
पासवर्ड के लिए वर्तमान प्राथमिकताएँ इस प्रकार हैं:
| उपयोग | पारंपरिक | वर्तमान अनुशंसा |
|---|---|---|
| पासवर्ड स्टोरेज | bcrypt | Argon2id |
| पासवर्ड स्टोरेज का विकल्प | PBKDF2 / scrypt | Argon2id / scrypt |
| सामान्य हैश | SHA-256 | SHA-256 / SHA-3 / BLAKE2 / BLAKE3 |
| MAC | HMAC-SHA256 | HMAC-SHA256 / keyed BLAKE2 |
| तेज़ अखंडता जांच | SHA-256 | BLAKE2 / BLAKE3 |
OWASP भी नए सिस्टम के लिए Argon2id को पहली पसंद मानता है, और bcrypt को मुख्य रूप से मौजूदा सिस्टम के लिए रखता है। Argon2id एक मेमोरी-हार्ड KDF है जो न केवल CPU लोड बल्कि मेमोरी उपयोग को भी हमले की लागत में शामिल करता है, इसलिए यह GPU/ASIC के माध्यम से पासवर्ड क्रैकिंग के खिलाफ bcrypt की तुलना में डिज़ाइन के मामले में अधिक फायदेमंद है। (OWASP Cheat Sheet Series)
उदाहरण के लिए, एक नए कार्यान्वयन के लिए:
password
↓
Argon2id(
salt = random 128bit,
memory = 64 MiB,
iterations = 3,
parallelism = उपयुक्त
)
↓
$argon2id$v=19$m=65536,t=3,p=...
जैसा कॉन्फ़िगरेशन स्वाभाविक है। RFC 9106 भी Argon2id की अनुशंसा करता है। (RFC एडिटर)
दूसरी ओर,
SHA-256 → BLAKE2
के बारे में बात कुछ अलग है।
SHA-256 पुराना या असुरक्षित नहीं हुआ है।
SHA-256 के लिए वर्तमान में कोई व्यावहारिक टकराव हमला या प्री-इमेज हमला ज्ञात नहीं है, और यह सामान्य क्रिप्टोग्राफिक उद्देश्यों के लिए अभी भी पर्याप्त शक्तिशाली है।
BLAKE2 के मुख्य लाभ हैं:
तेज़
+
उच्च सुरक्षा
+
मानक के रूप में keyed hashing
+
आसान कार्यान्वयन
इसलिए,
पुराना आधुनिक
bcrypt ───────→ Argon2id
↑काफी स्पष्ट
SHA-256 ───────→ BLAKE2
↑
जरूरी नहीं कि यह प्रतिस्थापन हो
यह समझना अधिक सटीक है।
बल्कि, वर्तमान डिज़ाइन में,
Password
└─ Argon2id
Cryptographic digest
├─ SHA-256
├─ SHA-3
├─ BLAKE2
└─ BLAKE3
Message authentication
├─ HMAC-SHA256
└─ keyed BLAKE2
जैसा कि ऊपर दिखाया गया है, प्रत्येक उपयोग के मामले के लिए चयन करना आधुनिक तरीका है।
विशेष रूप से यदि आप नया सॉफ़्टवेयर डिज़ाइन कर रहे हैं और प्रोटोकॉल संगतता जैसी कोई बाधा नहीं है, तो मेरा मानना है कि आपको इस तरह सोचना चाहिए:
Password hashing
→ Argon2id
सामान्य तेज़ हैश
→ BLAKE2b / BLAKE3
बाहरी मानकों/प्रोटोकॉल के साथ संगतता को प्राथमिकता
→ SHA-256
MAC
→ HMAC-SHA256
या keyed BLAKE2
और जो महत्वपूर्ण है वह है BLAKE2 और BLAKE3। यदि आपका उद्देश्य नए डिज़ाइन में "SHA-256 से अधिक तेज़ हैश का उपयोग करना" है, तो 2026 तक आपको न केवल BLAKE2 बल्कि BLAKE3 को भी विकल्पों में शामिल करना चाहिए। BLAKE3 समानांतर प्रसंस्करण, SIMD और बड़े डेटा को हैश करने के लिए बहुत तेज़ है।
हालाँकि,
SHA-256 → BLAKE3
यह भी "सुरक्षा कारणों से SHA-256 को छोड़ने" के बारे में नहीं है, बल्कि:
प्रदर्शन और API डिज़ाइन के लाभों को प्राप्त करने का एक विकल्प है।
दूसरे शब्दों में, पूछे गए दो प्रश्न एक ही श्रेणी में नहीं हैं:
bcrypt → Argon2id
सुरक्षा डिज़ाइन को स्पष्ट रूप से आधुनिक बनाने की दिशा।
SHA-256 → BLAKE2/BLAKE3
यह सुरक्षा के लिए अनिवार्य माइग्रेशन नहीं है, बल्कि नए डिज़ाइन में प्रदर्शन और उपयोग में आसानी को ध्यान में रखते हुए किया गया चयन है।
इनमें यह अंतर है।
यदि हम इसे और आगे बढ़ाएं कि "यदि आप 2026 में प्रमाणीकरण, हस्ताक्षर, एन्क्रिप्शन और फ़ाइल हैशिंग सहित एक API को शून्य से डिज़ाइन कर रहे हैं, तो आप क्या चुनेंगे?", तो Argon2id / BLAKE3 / XChaCha20-Poly1305 / Ed25519 / X25519 के इर्द-गिर्द का आधार एक बहुत ही आधुनिक कॉन्फ़िगरेशन होगा।