اندروید N ارائه‎دهنده Crypto و الگوریتم SHA۱PRNG را بد می‎داند!

سرجیو جیرو، مهندس نرم‌افزار شرکت گوگل اعلام کرد که طرح گوگل برای تغییر تابع تولید کلید در سامانه عامل اندروید با تلاش این شرکت برای بهبود شرایط رمزنویسی عملاً کلید خورد. طراحان برنامه‌هایی که با استفاده از الگوریتم SHA۱PRNG کلید را از ارائه‎دهنده Crypto استخراج می‌کنند باید در این طرح به دنبال یک تابع تولید کلید دیگر بوده و اطلاعات را دوباره رمز‌نگاری کنند.
جیرو در ادامه توضیح داد که طراحی رمزنگاری جاوا که توسط اندروید مورد استفاده قرار می‌گیرد، به طراحان این امکان را می‌دهد که یک نوع جدید مانند یک رمز، یا یک تولید‌کننده اعداد شبه‌تصادفی را با استفاده از تماس‌های مختلف بسازند. درعین‌حال که گوگل تقویت ارائه‎دهنده را توصیه نمی‌کند، اما زمزمه‌هایی مبنی بر انجام این کار توسط پسوند رمزنگاری جاوا (JCE – Java Cryptography Extension) وجود دارد و برنامه‌های بسیاری از ارائه‎دهنده Crypto به‌عنوان یک ضد-الگو تولید کلید استفاده می‌کنند.

بر اساس گفته‌های جیرو، ارائه‎دهنده Crypto فقط برای نمونه‌های امنیت تصادفی، استفاده از الگوریتم SHA۱PRNG را توصیه می‌کنند. این الگوریتم از نظر قدرت رمزنگاری قوی نیست. در حقیقت، محققان اعلام کرده‌اند که توالی تصادفی به شکل دوتایی، تمایل به بازگشت اعداد صفر داشته و این مسئله وابستگی به عدد اولیه (seed) را تشدید می‌کند.
جیرو اضافه کرد: «در نتیجه، در اندروید N ما استفاده از الگوریتم SHA۱PRNG و ارائه‎دهنده Crypto را لغو می‌کنیم. یک استفاده شایع و درعین‌حال نادرست از این منابع در تولید کلیدها برای رمزنگاری با استفاده از رمز به‌عنوان عدد اولیه بوده است. اجرای SHA۱PRNG مشکلی داشت که در صورت اعلام مجموعه اعداد اولیه قبل از کسب خروجی، قطعاً می‌شد این الگوریتم را شناسایی کرد.»

جیرو در ادامه توضیحاتش اضافه کرد: «این مشکل شامل تولید یک کلید از رمزی است که به‌عنوان عدد اولیه مورداستفاده قرار گرفته است و سپس استفاده از یک خروجی تصادفی به‌جای کلید است. درعین‌حال، منظور از تصادفی در این مورد این است که عدد، قابل پیش‎بینی و از نظر قدرت رمزنگاری ضعیف باشد. در مرحله بعد، کلید به‌عنوان اطلاعات رمزنگاری یا تخریب استفاده می‎شود.»
این مهندس نرم‎افزار سپس اضافه کرد که راه‎های مختلفی برای تولید درست کلید وجود دارند. وی برای این مورد یک مثال عنوان کرد. برای طراحانی که در صورت رمزنگاری اطلاعات به روش‎های نامطمئن، به دنبال انتقال ساده‎تر اطلاعات هستند، یک برنامه راهبردی توصیه می‎شود که دارای اعدادی است که اختصاصاً برای این موارد مناسب‌اند. جیرو در این مورد می‎گوید: «شما می‏‌توانید اطلاعات خود را با استفاده از یک کلید امن باز رمزنگاری کرده و از این جهت آسوده باشید.»

برای اینکه مطمئن شوید این برنامه‌ها مرتباً به کار خود ادامه می‎دهند، شرکت گوگل یک منبع رمز را در نسخه ۲۳ اندروید SDK نصب کرده است که روی نسخه‌های Marshmallow و قبل از آن نیز قابل اجراست. طراحان باید مراقب باشند که با ارائه‎دهنده سروکار زیادی نداشته باشند، زیرا احتمال پاک شدن آن‌ها در آینده وجود دارد.
وی در ادامه یادآور شد: «برای اینکه بخش‌های زیادی از سامانه با فرض وجود SHA۱PRNG کار می‎کنند، وقتی که یک بخش از SHA۱PRNG درخواست شود و ارائه‎دهنده داده نشود، ما نمونه‌ای از OpenSSLRandom را بازمی‌گردانیم که منبعی قوی از اعداد تصادفی تولید شده از OpenSSL است.»

تخریب ارائه‎دهنده Crypto روش دیگری است که گوگل از آن برای تقویت امنیت اطلاعات کاربران در اندروید استفاده می‎کند. این روش از زمانی عملی شد که گوگل اعلام کرد وجود بخش رمزنگاری کامل دستگاه برای دستگاه‌های جدید دارای سامانه عامل اندروید نسخه Marshmallow ضروری است. در ابتدای سال جاری نیز این شرکت مشخص کرد که روزانه ۴۰۰ میلیون بازبینی امنیتی را در دستگاه‌های اندروید انجام می‎دهد تا امنیت کاربران تأمین شود.

منبع: asis

درباره نماد امنیت وب

“نماد امنیت وب” به عنوان یکی از شرکت های پیشتاز در زمینه امنیت نرم افزار و سرویس های تحت وب، با ارائه سرویس های امنیتی برای تمامی کسب و کار ها و دارای نمایندگی شرکت Acunetix (اکوانتیکس) بعنوان محبوب ترین اسکنر امنیتی black box در دنیا، ایمنی وب سایت شما را در مقابل حمله هکر ها تضمین می کند.