فهرست مطالب
1. مقدمه
گزارشهای مستمر از نشت حسابها و رمزهای عبور وبسایتها، اهمیت حیاتی امنیت اطلاعات و رمز عبور را برجسته میسازد. در حالی که آسیبپذیریهای وبسایت یک عامل است، امنیت ذاتی خود رمز عبور از اهمیت بالایی برخوردار است. روشهای رایج ناامن رمز عبور شامل رمزهای عبور مبتنی بر کلمات کلیدی، استفاده از عبارات رایج، گنجاندن اطلاعات شخصی و استفاده مجدد از رمز عبور میشود. ظهور هوش مصنوعی و مدلهای زبانی بزرگ، مهاجمان را قادر میسازد تا رمزهای عبور را مؤثرتر حدس بزنند.
این پژوهش یک تولیدکننده رمز عبور امن مبتنی بر مولدهای اعداد شبهتصادفی رمزنگاریشده (PRNG) ارائه میدهد. این سیستم با استفاده از کد احراز هویت پیام مبتنی بر هش کلیددار (HMAC)، MAC مبتنی بر رمز (CMAC) یا MAC مبتنی بر KECCAK (KMAC)، PRNGهایی میسازد تا اعداد تصادفی امن تولید کنند که سپس برای ایجاد رمزهای عبور استفاده میشوند. تصادفی بودن تولیدشده با استاندارد NIST SP 800-90B از طریق آزمونهای آنتروپی و آزمونهای مستقل و توزیع یکسان (IID) اعتبارسنجی میشود.
2. مرور ادبیات
2.1. مولد اعداد شبهتصادفی مبتنی بر مولد همنهشت خطی
این مولدها که معمولاً در زبانهایی مانند C و Java استفاده میشوند، دنبالهای را از طریق رابطه بازگشتی تولید میکنند: $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$، که با مقدار اولیه $k$ بذرگذاری میشود. این مولدها ناامن هستند زیرا حالت آنها قابل معکوس شدن است: $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$، که بذر و کل دنباله را افشا میکند.
2.2. مولدهای اعداد شبهتصادفی امن
مولدهای اعداد شبهتصادفی رمزنگاریشده به گونهای طراحی شدهاند که حتی در صورت شناخته شدن بخشی از خروجی، غیرقابل پیشبینی باشند.
2.2.1. PRNG مبتنی بر HMAC
امنیت این روش مبتنی بر خاصیت یکطرفه توابع هش (مانند SHA2، SHA3) است. برای یک کلید $k$ و پیام $M$، HMAC به صورت زیر محاسبه میشود: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$. از حالت شمارنده برای تولید بلوکهای متعدد برای خروجیهای طولانیتر استفاده میشود.
2.2.2. PRNG مبتنی بر CMAC
امنیت این روش مبتنی بر استاندارد رمزگذاری پیشرفته (AES) است. این روش در حالت زنجیرهای بلوک رمز (CBC) عمل میکند. بلوک متن رمز نهایی پس از پردازش پیام پدشده، به عنوان MAC/خروجی عمل میکند: $r_{cmac}(k, Split(M))$.
2.2.3. PRNG مبتنی بر KMAC
این روش مبتنی بر تابع هش SHA-3 (KECCAK) است، KMAC خروجی با طول متغیر ارائه میدهد و به عنوان یک نامزد قوی برای رمزنگاری پساکوانتومی در نظر گرفته میشود.
2.3. روشهای اعتبارسنجی تصادفی بودن
NIST SP 800-90B روشهایی برای ارزیابی منابع آنتروپی ارائه میدهد. تخمین آنتروپی، غیرقابل پیشبینی بودن (مینیآنتروپی) را کمّی میکند. آزمون IID بررسی میکند که آیا دادهها مستقل و با توزیع یکسان هستند یا خیر، که یک فرض کلیدی برای بسیاری از آزمونهای آماری است. گذراندن این آزمونها، کیفیت منبع تصادفی بودن را تأیید میکند.
3. تولیدکننده رمز عبور امن پیشنهادی
معماری سیستم شامل موارد زیر است: 1) کاربر به صورت اختیاری یک پیام برای هش شدن (TBHM) ارائه میدهد. 2) یک PRNG رمزنگاریشده (مبتنی بر HMAC/CMAC/KMAC) از TBHM (و یک کلید) برای تولید یک جریان بیتی با آنتروپی بالا استفاده میکند. 3) این جریان بیتی بر روی یک مجموعه کاراکتر تعریفشده توسط کاربر (مانند حروف و اعداد + نمادها) با طول مشخص نگاشت میشود تا رمز عبور نهایی تولید شود. امنیت با مقایسه فضای جستجوی رمز عبور با قدرت کلیدهای AES-128 و AES-256 تحلیل میشود.
4. آزمایشها و نتایج
4.1. تنظیمات آزمایشی
سه نوع PRNG (HMAC-SHA256، CMAC-AES-128، KMAC256) پیادهسازی شد. دنبالههای بزرگی از بیتهای تصادفی برای آزمایش تولید شد.
4.2. نتایج اعتبارسنجی تصادفی بودن
نتیجه کلیدی: هر سه ساختار PRNG پیشنهادی (HMAC، CMAC، KMAC) با موفقیت هر دو آزمون اعتبارسنجی آنتروپی و آزمونهای IID مطابق با NIST SP 800-90B را گذراندند. این امر به صورت تجربی نشان میدهد که اعداد تولیدشده از تصادفی بودن و کیفیت آماری کافی برای تولید رمز عبور رمزنگاریشده برخوردار هستند.
4.3. تحلیل عملکرد
کارایی محاسباتی ارزیابی شد. در حالی که همه روشها قابل اجرا هستند، KMAC و HMAC ممکن است بسته به پلتفرم، پروفایلهای عملکردی متفاوتی نشان دهند، در حالی که CMAC مبتنی بر AES اغلب در سختافزار دارای شتابدهنده AES سریعتر است.
5. نتیجهگیری و کارهای آتی
این مقاله یک چارچوب تولیدکننده رمز عبور امن ساختهشده بر اساس PRNGهای رمزنگاریشده (HMAC، CMAC، KMAC) ارائه داد. تصادفی بودن تولیدشده با استفاده از استانداردهای NIST اعتبارسنجی شد که مناسب بودن آن را تأیید کرد. کارهای آتی شامل ادغام این تولیدکننده در افزونههای مرورگر یا مدیران رمز عبور، بررسی استفاده از آن در تولید کلیدهای رمزنگاری فراتر از رمزهای عبور و آزمایش مقاومت آن در برابر حملات حدسی مبتنی بر هوش مصنوعی نوظهور است.
6. تحلیل اصیل و تفسیر کارشناسی
بینش اصلی: این مقاله درباره اختراع یک رمز جدید نیست؛ بلکه یک راهحل مهندسی کاربردی و مطابق با استانداردها برای یک مشکل انسانی فراگیر است: ایجاد رمز عبور ضعیف. ارزش اصلی آن در اعمال صحیح ابزارهای اولیه رمزنگاری ثابتشده (HMAC، CMAC، KMAC) به عنوان PRNGهای توصیهشده توسط NIST و اعتبارسنجی دقیق خروجی است - مرحلهای که اغلب در تولیدکنندههای رمز عبور «خودساخته» نادیده گرفته میشود. در عصری که هوش مصنوعی میتواند الگوهای دادههای شخصی را مدلسازی کند (همانطور که در پژوهشهایی مانند PassGAN در مورد حدس زدن رمز عبور با هوش مصنوعی دیده میشود)، تغییر منبع تصادفی بودن رمز عبور از مغز انسان به الگوریتمهای رمزنگاری اعتبارسنجیشده، یک ارتقاء امنیتی غیرقابل مذاکره است.
جریان منطقی: منطق آن صحیح است و از یک الگوی کلاسیک رمزنگاری کاربردی پیروی میکند: 1) شناسایی آسیبپذیری (رمزهای عبور ضعیف تولیدشده توسط انسان). 2) انتخاب ابزارهای رمزنگاری مناسب و بررسیشده (PRNGهای NIST SP 800-108). 3) ساخت یک سیستم (نگاشت خروجی PRNG به مجموعه کاراکتر). 4) اعتبارسنجی مؤلفه اصلی (خروجی PRNG از طریق NIST SP 800-90B). این روششناسی، آینهای از بهترین روشها در طراحی سیستم امن است، مشابه نحوهای که کتابخانههای مدرن مانند `libsodium` ابزارهای اولیه قوی و امن بهطور پیشفرض را در اولویت قرار میدهند.
نقاط قوت و ضعف:
نقاط قوت: اعتبارسنجی دقیق NIST قویترین جنبه مقاله است که اعتبار تجربی فراهم میکند. استفاده از KMAC با آمادگی برای دوران پساکوانتومی همسو است. ورودی اختیاری کاربر (TBHM) یک ویژگی هوشمندانه است که در صورت نیاز، امکان تولید مجدد قطعی رمز عبور را فراهم میکند، بدون اینکه امنیت در صورت قوی بودن PRNG به خطر بیفتد.
نقاط ضعف: محدودیت اصلی مقاله، دامنه آن به عنوان یک اثبات مفهوم است. این مقاله فاقد تحلیل پیادهسازی در دنیای واقعی است که به کانالهای جانبی (حملات زمانبندی در حین نگاشت)، مدیریت کلید امن برای PRNG و چالشهای ادغام با سیاستهای رمز عبور موجود میپردازد. علاوه بر این، در حالی که قدرت رمز عبور را با AES مقایسه میکند، تحلیل عمیقی از اتلاف آنتروپی در فرآیند نگاشت مجموعه کاراکتر ارائه نمیدهد، که جزئیاتی حیاتی برای رمزهای عبور کوتاه است.
بینشهای قابل اجرا: برای متخصصان امنیت، نتیجه روشن است: اجازه ندهید کاربران یا توابع تصادفی ساده، رمزهای عبور را انتخاب کنند. یک تولیدکننده رمز عبور سمت سرور مانند این را برای بازنشانی «رمز عبور را فراموش کردهام» یا تنظیم اولیه کاربر پیادهسازی کنید. انتخاب خاص PRNG میتواند سفارشی شود: از CMAC-AES برای سرعت در سرورهای رایج و از KMAC برای نگرانی بلندمدت کوانتومی استفاده کنید. مهمتر از همه، هرگونه پذیرش باید شامل مدیریت بذر/کلید PRNG با همان دقت هر کلید رمزنگاری دیگر باشد. این کار باید در چارچوبهایی مانند برگه تقلب احراز هویت OWASP به عنوان یک الگوی توصیهشده برای تولید رمز عبور امن ادغام شود.
7. جزئیات فنی و فرمولبندی ریاضی
امنیت به فرمولبندی PRNGها وابسته است. برای HMAC:
$r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
که در آن $h$ یک تابع هش مانند SHA-256 است، $ipad/opad$ ثابتها هستند و $k$ کلید است. برای تولید رمز عبور، یک شمارنده $i$ در $M_i$ گنجانده میشود تا بلوکهای متعددی تولید شود: $M_i = i || \text{Label} || 0x00 || \text{Context} || L$. سپس بیتهای خروجی به یک اندیس عدد صحیح تبدیل میشوند تا کاراکترها از مجموعه $C$ با اندازه $N$ انتخاب شوند: $\text{index} = \text{random_bits} \mod N$.
8. چارچوب تحلیل و مثال موردی
سناریو: یک سرویس وب نیاز دارد تا یک رمز عبور قوی ۱۲ کاراکتری برای یک حساب کاربری جدید تولید کند.
کاربرد چارچوب:
1. تعریف پارامترها: مجموعه کاراکتر $C$ = 94 کاراکتر ASCII قابل چاپ. طول $L=12$. انتخاب PRNG: HMAC-SHA256.
2. تولید تصادفی بودن: آنتروپی برای بذر $k$ جمعآوری شود. از TBHM = "serviceX_user123" استفاده شود. PRNG مبتنی بر HMAC در حالت شمارنده برای تولید $\lceil log_2(94^{12}) \rceil \approx 79$ بیت آنتروپی اجرا شود.
3. نگاشت به رمز عبور: از جریان ۷۹ بیتی برای تولید ۱۲ اندیس استفاده شود که هر کدام یک کاراکتر از $C$ را انتخاب میکنند.
4. بررسی اعتبارسنجی: آنتروپی رمز عبور تولیدشده حدود ۷۸.۵ بیت است، که قابل مقایسه با یک کلید متقارن حدود ۸۰ بیتی است و به طور قابل توجهی قویتر از هر رمز عبور انتخابشده توسط انسان است.
گردش کار بدون کد: این فرآیند میتواند در یک فراخوان API سمت سرور کپسوله شود و رمزنگاری را به طور کامل از کاربر نهایی انتزاع کند.
9. کاربردها و جهتهای آتی
1. موتور اصلی مدیر رمز عبور: این تولیدکننده به عنوان موتور پیشفرض ایجاد رمز عبور در مدیران رمز عبور متنباز و تجاری (مانند Bitwarden، 1Password) ادغام شود.
2. گذار به دوران پساکوانتومی: تولید مبتنی بر KMAC یک راهحل آماده برای تولید رمز عبور و توکن مقاوم در برابر کوانتوم است، همانطور که توسط پروژه رمزنگاری پساکوانتومی NIST توصیه شده است.
3. امنیت اینترنت اشیاء و سیستمهای توکار: نسخههای سبکوزن CMAC-AES میتوانند رمزهای عبور منحصربهفرد دستگاه و کلیدهای API را در محیطهای محدود تولید کنند.
4. زنجیره بلوکی و وب۳: بذرهای عبارت یادآوری امن و تصادفی برای کیفپولهای ارز دیجیتال با استفاده از یک منبع تصادفی قابل تأیید تولید شوند.
5. استانداردسازی: این روششناسی به نهادهای استانداردسازی مانند IETF یا FIDO برای گنجاندن در پروتکلهای احراز هویت نسل بعدی پیشنهاد شود.
10. مراجع
- M. Bishop, "Computer Security: Art and Science", Addison-Wesley, 2018.
- NIST, "Special Publication 800-63B: Digital Identity Guidelines", 2017.
- M. L. Mazurek et al., "Measuring Password Guessability for an Entire University", IEEE S&P, 2013.
- B. Ur et al., "How Does Your Password Measure Up? The Effect of Strength Meters on Password Creation", USENIX Security, 2012.
- NIST, "Special Publication 800-108: Recommendation for Key Derivation Using Pseudorandom Functions", Rev. 1, 2022.
- NIST, "Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation", 2018.
- J. Kelsey, B. Schneier, D. Wagner, "Secure Applications of Low-Entropy Keys", ISW, 1997.
- FIPS PUB 202, "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions", 2015.
- B. Hitaj et al., "PassGAN: A Deep Learning Approach for Password Guessing", NeurIPS Workshop, 2017.
- D. J. Bernstein et al., "The Security Impact of a New Cryptographic Random Number Generator", 2020.