Cloudflare و قابلیت تولید اعداد تصادفی واقعی
قلب دنیای آنلاین امروزی اعداد تصادفی است. بهعنوان مثال، خیلی از الگوریتمهای رمزنگاری برپایهی اعدادی است که بهصورت تصادفی تولید شدهاند. بااینحال، چطور میتوان فهمید یک عدد واقعا تصادفی است؟ سؤال بجایی است. در طول تاریخ، ابزارهای فیزیکی و مجازی مختلفی برای تولید اعداد تصادفی ساخته و طراحی شدند؛ ولی درنهایت، تمام آنها بهشکست انجامیدند. در اینجا، منظور ما از شکست این است که دستگاه مدنظر عددی تولید میکند که حدسزدنی است یا بهگونهای میتوان روی روند تولید اعداد در دستگاه اثر گذاشت.
راهحل این مشکل در دست غول اینترنتی کلودفلر (Cloudflare) است. این شرکت بیشتر بهدلیل تولید نرمافزاری برای محافظت دربرابر حملات DDoS یا Distributed Denial-of-Service attack و خدمات اینترنتیاش شناخته شده است. کلودفلر بههمراه پنج سازمان دیگر که بیشتر دانشگاهها و شرکتهای امنیتی هستند، پروژهای بهنام لیگ انتروپی (League of Entropy) را راهاندازی کرده است. این نام بیشتر شبیه به نام بازیهای کامپیوتری یا فیلمهای سینمایی است تا پروژهای به این مهمی، ولی درواقع ازلحاظ فنی این نام بسیار جالب است.
نحوهی کار لیگ انتروپی
هریک از سازمانهای حاضر در لیگ انتروپی روش ویژهی خودشان را برای تولید عدد تصادفی بهکار میبرند. کلودفلر آرایهای از لامپهای لاوا در دفتر مرکزی خود در سانفرانسیسکو دارد. حرکت پیشبینینشدنی لاوا، بهعبارت دقیقتر واکس پارافین، در داخل این لامپها را دوربینی ضبط میکند و سپس دادهها به برنامهی تولید عدد شبهتصادفی منتقل میشود که درنهایت، این برنامه عدد تصادفی تولید میکند.
شایان ذکر است دانشگاه شیلی عدد تصادفی خود را بهکمک منابع مختلفی تولید میکند که هر دقیقه تغییر میکنند. این منابع شامل بلاکچین اتریوم، بعضی از فعالیتها در توییتر، دادههای ایستگاه رادیو محلی، کارت تولید عدد تصادفی و مرکز لرزهنگاری محلی است. شیلی روی منطقهی گسل آتاکاما قرار دارد و زمینلرزه و پسلرزه معمولا زیاد در آنجا اتفاق رخ میدهد.
دیگر سازمانهای دخیل در لیگ انتروپی، دانشگاه پلیتکنیک لوزان سوئیس و شرکت امنیتی کودلسکی (Kudelski) و شرکت پروتکل لبز (Protocol Labs) هستند. دادهها از این چند شرکت جمعآوری و ترکیبشان به تولید عدد تصادفی منجر میشود. منطق پشت این قضیه آن است که ترکیب چند عدد تصادفی، باعث ایجاد عددی تصادفیتر میشود.
برای بهاشتراکگذاشتن عدد تصادفی تولیدی لیگ انتروپی از برنامهای بهنام Drand استفاده میشود که محققان دانشگاه لوزان سوئیس آن را با زبان برنامهنویسی گوگل، یعنی Go، توسعه دادهاند. باید اضافه کرد که زبان برنامهنویسی Go برای ساخت برنامههای شبکه و دستگاههایی مناسب است که از معماری چندهستهای استفاده میکنند.
یکی از ویژگیهای مهم پروژهی یادشده، پایداری و مدل توسعهیافتهی آن است. اگر یکی از پنج سازمان دخیل در این پروژه، چه بهصورت عمدی و چه بهصورت غیرعمدی از کار بیفتند، این برنامه بازهم میتواند عدد تصادفی قدرتمندی تولید کند؛ زیرا این پروژه براساس مدلهای توزیعشده و انعطافپذیری ساخته شده و داشتن چنین قابلیتهایی آن را جذابتر میکند.
گفتوگویی با مدیر کلودفلر
لندن هاب بسیار مهمی برای کلودفلر است و این شرکت تعداد زیادی متخصص را در این شهر استخدام کرده. مقر این شرکت در نبش ساختمان شورای شهر قدیم لندن قرار دارد که در منطقهی رفتوآمد گردشگران واقع است و فاصلهی کمی هم با بزرگترین چرخوفلک اروپا، یعنی چشم لندن دارد. در صحبتی با مدیراجرایی شرکت کلودفلر، متیو پرنس (Matthew Prince)، از او دربارهی این پروژه و کاربردش پرسیده شد.
اول از همه باید بدانید اعداد تصادفی ساختهشدهی لیگ انتروپی برای استفاده در همهی انواع تولیدکنندگان رمزعبور مناسب نیست، وی میافزاید:
این موضوع اساسا تحقیقشدنی است. شما میتوانید به گذشته نگاه کنید و متوجه شوید چه اعدادی بهصورت تصادفی تولید شده است. اگر عدد مناسبی داشته باشید و به گذشته برگردید، شما بهطوربالقوه میتوانید رمزعبور یا کلید رمزگذاری را دوباره بازسازی کنید.
او در بخش دیگری از سخنانش گفت:
اگر بخواهید عددی برای برندهی مسابقه بختآزمایی یا عددی برای برنامههای بسیار مهمتر انتخاب کنید و به راهی نیاز دارید که مطمئن باشید منشأ تصادفی دارد، این ابزار میتواند برایتان ارزشمند باشد.
پرنس مشتاقانه از وجود تعاریف مختلفی درزمینهی مفهوم تصادفیبودن در امنیت سایبری میگوید:
بعضی مواقع داشتن برنامهی تولید اعداد تصادفی خصوصی اهمیت زیادی دارد. ما چنین چیزی را برای خودمان ساختهایم. برای مواقعی که به برنامهی تولید اعداد تصادفی عمومی نیاز داریم، این ترکیبی از اعداد از چندین قطعه مختلف است تا بتوانیم مطمئن شویم واقعا این عدد تصادفی است.
یکی از برتریهای لیگ انتروپی رویکردش برای حذف امکان شکست کل فرایند دراثر خرابی هر بخش است. در سناریویی فرضی، اگر محققان موفق شوند رخنهای در یکی از تولیدکنندگان اعداد تصادفی کشف کنند، وجود چهار تولیدکنندهی دیگر میتواند از سوءاستفاده جلوگیری کند.
او گفت:
آنچه باعث بهبود این برنامه میشود، این است که اگر یکی از این سازمانها فاسد یا مخرب باشد یا به هر طریقی به آن نفوذ شود، تا زمانیکه از منابع انتروپی استفاده میکنید، این برنامه بهطورذاتی بازهم میتواند اعداد تصادفی تولید کند.
شرکت کلودفلر به سازمانهای دیگر اجازه میدهد منابع انتروپی خود را به این لیگ اضافه کنند. بااینحال، اگر شما هم به این موضوع علاقهمندید، میتوانید به کد منبع برنامه Drand در گیتهاب نگاهی بیندازید یا از اینجا یاد بگیرید که چطور از اعداد فوقتصادفی در برنامههای خود استفاده کنید.