LLM से बने पासवर्ड खतरनाक क्यों हैं: 100-bit जैसे दिखते हैं, लेकिन असल में सिर्फ 27-bit
(irregular.com)सिक्योरिटी कंपनी Irregular के शोध के आधार पर यह बताया गया है कि Claude, ChatGPT, Gemini जैसे आधुनिक LLM (Large Language Model) जो पासवर्ड बनाते हैं, वे ऊपर से बहुत मज़बूत दिखते हैं, लेकिन वास्तव में बेहद कमजोर होते हैं.
मुख्य प्रयोग के नतीजे
- हर मॉडल से “मुझे एक पासवर्ड बनाकर दो” अनुरोध 50 बार दोहराया गया
- Claude Opus 4.6: 50 में से 18 बार बिल्कुल वही पासवर्ड
G7$kL9#mQ2&xP4!wआया (36% समान), और यूनिक पासवर्ड सिर्फ 30 थे - हर मॉडल की पैटर्न पसंद स्पष्ट दिखी
- Claude → 'G' से शुरू + दूसरा अक्षर '7'
- ChatGPT → 'v' से शुरू
- Gemini → 'k' या 'K' से शुरू
- temperature को 0.0~1.0 तक बदलने पर भी ज्यादा फर्क नहीं पड़ा (0.0 पर 50 बार बिल्कुल वही पासवर्ड)
entropy (randomness) का भ्रम
- KeePass जैसे टूल इसे “लगभग 100-bit entropy, बहुत मज़बूत” के रूप में आँकते हैं
→ ऐसा लगता है मानो सुपरकंप्यूटर से भी इसे तोड़ने में अरबों साल लगेंगे - लेकिन वास्तविक Shannon entropy की गणना में Claude द्वारा बनाए गए पासवर्ड सिर्फ 27-bit स्तर के निकले
→ यानी सामान्य कंप्यूटर से कुछ ही सेकंड में तोड़े जा सकने वाले कमजोर पासवर्ड - GPT-5.2 के उदाहरण में: 15वें स्थान पर अंक '2' आने की संभावना 99.7% थी (लगभग तय)
LLM पासवर्ड बनाने के लिए अनुपयुक्त क्यों हैं?
- सचमुच मज़बूत पासवर्ड के लिए CSPRNG (cryptographically secure random number generator) चाहिए, जिसमें हर अक्षर समान संभावना से आए
- इसके उलट, LLM को सबसे संभावित अगले token की भविष्यवाणी करने के लिए train किया जाता है → यानी पूर्वानुमेयता अधिकतम होती है
- → इसलिए prompt को बेहतर बनाने या temperature बदलने से भी मूल समस्या हल नहीं होती (Irregular का निष्कर्ष)
बड़ी समस्या: AI coding agent का जोखिम
- Claude Code, Gemini-CLI, Codex आदि कोड में कमजोर पासवर्ड hardcode कर सकते हैं
उदाहरण: MariaDB, PostgreSQL, FastAPI API key आदि - “मुझे पासवर्ड generate करके दो” →
openssl randजैसी सुरक्षित विधि सुझाते हैं
“मुझे कोई पासवर्ड recommend करो” → LLM-निर्मित पैटर्न वाला पासवर्ड सीधे डाल देते हैं - GitHub पर
K7#mP9,k9#vLजैसे पैटर्न खोजने पर ऐसे कई वास्तविक repository मिलते हैं
निष्कर्ष
- LLM “मज़बूत दिखने वाले” पासवर्ड तो अच्छी तरह बना लेते हैं, लेकिन वास्तविक सुरक्षा बाहरी रूप पर नहीं, बल्कि असल entropy और randomness पर निर्भर करती है.
- LLM की prediction-केंद्रित डिजाइन के कारण वे संरचनात्मक रूप से पासवर्ड generation के लिए उपयुक्त नहीं हैं, और खासकर जब AI coding tool इन्हें कोड में डालते हैं, तो सुरक्षा कमजोरियाँ चुपचाप automated development process में फैल सकती हैं.
7 टिप्पणियां
इंसान भी चीज़ों को सचमुच रैंडम तरीके से चुनने में अच्छे नहीं होते। उनमें कोई पैटर्न नहीं होना चाहिए, लेकिन पैटर्न से जानबूझकर बचना भी अपने आप में एक पैटर्न माना जा सकता है।
मुझे सच में बहुत जिज्ञासा है कि Claude code ने रैंडम स्ट्रिंग क्यों नहीं बनाई।
आह... अब समझ में आया कि प्रोफेसर first-year engineering students को calculus फिर से पढ़ाते समय वैसा चेहरा क्यों बनाते हैं।
हाय, यह तो थोड़ा ज़्यादा ही खराब है
openssl rand -hex 64चलाने पर यह काम अच्छे से हो जाएगा, फिर खास तौर पर LLM से सीधे password generate क्यों करवाना चाहिए...?इंसानों से भी password बनवाओ तो वे उसे खुद के लिए याद रखना आसान हो, इसलिए किसी तय pattern के साथ ही बनाते हैं।
डेवलपर्स के लिए शायद यह कोई बड़ी समस्या न हो। लेकिन आजकल vibe coding की वजह से आम लोग भी काफी coding कर रहे हैं, इसलिए लगता है कि कोड के अंदर अपने-आप घुस जाने वाले default values ज़्यादा बड़ी समस्या बनेंगे। उदाहरण के लिए DB access password वगैरह..
यह सोचें तो, मैंने ऐसे कई मामले देखे हैं जहाँ वेब service deploy तो कर दी गई, लेकिन
.envजैसी sensitive files को external network से access किया जा सकता था...किसी ने बिना समझे OpenClaw से web service बना दी और HTML source में key को ज्यों-का-त्यों डाल दिया, तो key चोरी हो सकती है और फिर अचानक बिल आ जाने जैसी स्थिति भी बन सकती है