روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ امنیت اطلاعات لایههای پیچیدهی زیادی دارد. حملات ساده اما مؤثر، مثل فیشینگ از طریق ایمیل یا مهندسی اجتماعی، برای همه شناختهشدهاند. ما همچنین بارها دربارهی حملات هدفمند پیشرفتهای نوشتهایم که با سوءاستفاده از آسیبپذیریهای نرمافزارها و سرویسهای سازمانی انجام میشوند. و در میان پیشرفتهترین آنها، حملاتی هستند که از ویژگیهای بنیادی سختافزار بهره میبرند. هرچند چنین حملاتی ارزان نیستند، اما این هزینه همهی مهاجمان را منصرف نمیکند — یا دستکم پژوهشگران را نه.
اخیراً پژوهشگران دو دانشگاه آمریکایی مقالهای منتشر کردهاند که نمونهای شگفتانگیز از یک حملهی سختافزاری را شرح میدهد. آنها با استفاده از قابلیت استاندارد سیستمعامل برای جابهجایی بین وظایف، حملهای طراحی کردند که «خوابگردی» نام گرفت و میتواند یک الگوریتم پیشرفتهی رمزنگاری داده را بشکند.
کانال جانبی — خوابگردی
«خوابگردی» نوعی حملهی کانال جانبی است. در این زمینه، «کانال جانبی» به روشی گفته میشود که اطلاعات محرمانه را از طریق مشاهدهی غیرمستقیم به دست میآورد. مثلاً تصور کنید کسی دارد رمز عبور را روی یک صفحهکلید تایپ میکند. شما حروف یا نمادها را نمیبینید، اما صدای فشردن کلیدها را میشنوید. همین صدا — که در اینجا کانال جانبی است — میتواند نشان دهد چه متنی تایپ شده است. نمونهی کلاسیک دیگر، پایش تغییرات مصرف برق یک سیستم رایانهای است.
چرا مصرف برق تغییر میکند؟ ساده است: وظایف محاسباتی مختلف منابع متفاوتی میخواهند. پردازشهای سنگین، CPU و RAM را تا نهایت ظرفیت درگیر میکنند، اما تایپ در یک ویرایشگر متن معمولاً باعث میشود سیستم بیشتر وقت خود را بیکار باشد. در بعضی موارد، همین تغییرات در مصرف برق میتواند اطلاعات حساسی مانند کلیدهای خصوصی رمزنگاری را فاش کند — مشابه شنیدن چند کلیک خفیف که موقعیت درست چرخندههای یک قفل گاوصندوق را لو میدهد.
چرا این حملات پیشرفته محسوب میشوند؟ چون یک رایانه بهطور همزمان چندین کار را انجام میدهد و همهی آنها بهنوعی بر مصرف برق اثر میگذارند. بیرون کشیدن اطلاعات مفید از این حجم نویز، کاری بسیار پیچیده است. حتی در سادهترین دستگاهها مثل کارتخوانهای هوشمند، پژوهشگران باید صدها هزار اندازهگیری را در زمان کوتاه انجام دهند، این فرایند را دهها یا صدها بار تکرار کنند، و سپس روشهای پیچیدهی پردازش سیگنال را به کار بگیرند تا امکان حملهی کانال جانبی را تأیید یا رد کنند. Sleepwalkتا حدی این مسیر را ساده کرده است: پژوهشگران توانستند تنها با یکبار اندازهگیری الگوی مصرف برق — آن هم در جریان یک «تعویض زمینه» — به اطلاعات مفید دست پیدا کنند.
تعویض زمینه[1]
ما همه به جابهجایی بین برنامهها روی رایانه یا گوشی هوشمند عادت داریم. در سطحی عمیقتر، چنین چندکارگیای با مکانیزمهای مختلفی در پسزمینه انجام میشود که یکی از آنها «تعویض زمینه» است. در این فرآیند، وضعیت یک برنامه ذخیره میشود و دادههای برنامهی دیگر در CPU بارگذاری میگردد. اینکه کدام برنامه اولویت داشته باشد و چه زمانی اجرا شود، توسط سیستمعامل تصمیمگیری میشود. با این حال، یک راه ساده برای وادار کردن سیستم به تعویض زمینه این است که برنامهنویس دستور sleep را به کد اضافه کند. در این حالت، سیستمعامل تشخیص میدهد که برنامه در حال حاضر به توان پردازشی CPU نیاز ندارد و به وظیفهی دیگری سوئیچ میکند. تعویض زمینه — بهویژه وقتی تابع sleepفراخوانی شود — فرآیندی پرمصرف از نظر انرژی است، چون باید وضعیت یک برنامه ذخیره و دادههای برنامهی دیگر در CPU بارگذاری شود. تصویری که در بالا آمده، یک جهش ولتاژ را هنگام چنین جابهجایی نشان میدهد.
مشخص شد که ماهیت این جهش مصرف انرژی هم به کاری که قبل از آن در حال اجرا بوده و هم به دادهای که پردازش میشده وابسته است. به بیان ساده، پژوهشگران توانستند اجرای یک حملهی کانال جانبی مبتنی بر اندازهگیری مصرف انرژی سیستم را بهشدت ساده کنند. به جای اندازهگیریهای طولانیمدت، تنها یک جهش انرژی در زمانی از پیش تعیینشده تحلیل میشود. این جهش غیرمستقیم دو نوع داده به دست میدهد: اینکه چه برنامهای پیش از سوئیچ در حال اجرا بوده و چه دادهای پردازش میشده است. بعد از این، تنها کاری که میماند اجرای حمله بر اساس طرحی است که در ادامه آمده است.
حملهی Sleepwalk در دنیای واقعی
پژوهشگران آزمایشهای خود را روی یک برد تکپردازندهی Raspberry Pi 4 انجام دادند و ابتدا نشان دادند که جهش مصرف انرژی ناشی از وظایف محاسباتی مختلف هنگام تعویض زمینه، یک «اثر انگشت» منحصربهفرد دارد. حال فرض کنید این رایانه در حال اجرای فرایند رمزنگاری داده باشد. ما میتوانیم هر متنی را بهعنوان ورودی به الگوریتم رمزنگاری بدهیم، اما کلید رمزنگاری را نمیدانیم. اگر در یک نقطهی مشخص از اجرای الگوریتم رمزنگاری، تعویض زمینه را عمداً فعال کنیم چه میشود؟ سیستمعامل وضعیت برنامه را ذخیره میکند و این باعث جهشی در مصرف انرژی میشود. پژوهشگران با استفاده از یک اسیلوسکوپ[2] و تکرار مداوم اندازهگیری این جهش، توانستند کلید محرمانه را استخراج کنند!
این تنها یکی از نکات مهمی بود که در این آزمایشها به دست آمد. آنها حتی موفق شدند یک کلید خصوصی SIKE را بهطور کامل بازسازی کنند. SIKE یک الگوریتم رمزنگاری نسبتاً جدید است که بهعنوان جایگزینی برای الگوریتمهای سنتی پیشنهاد شده تا دادهها را حتی در عصر رایانش کوانتومی محافظت کند. اما با وجود نوآوری ظاهری، پرسشهایی دربارهی استحکام این الگوریتم مطرح شده است. افزون بر این، برای استخراج کلید محرمانه، پژوهشگران فقط از حملهی Sleepwalk استفاده نکردند، بلکه از یک ضعف ذاتی خود الگوریتم نیز بهره بردند. حملهی Sleepwalk نتوانست الگوریتم سنتی و مطمئن (اما غیر پساکوانتومی) AES-128 را بهطور کامل بشکند. با این حال، تیم پژوهش توانست ۱۰ بایت از ۱۶ بایت کلید خصوصی را بازسازی کند — که همین هم موفقیتی قابل توجه است، چون Sleepwalk نسبت به بسیاری از روشهای دیگر حملهی کانال جانبی سادهتر است.
تا اینجای کار بحثی دربارهی استفادهی عملی از Sleepwalk در جریان نیست. هدف پژوهشگران صرفاً این بود که نشان دهند جهشهای مصرف انرژی در جریان تعویض زمینه میتواند اطلاعات محرمانه را فاش کند — و موفق هم شدند. اما ممکن است روزی مهاجمان واقعی این حمله را برای سرقت دادههای واقعی توسعه دهند؛ چه این دادهها در یک رایانه باشند، چه روی یک فلش امن یا کیف پول رمزارز. نتیجهی این پژوهش آن است که الگوریتمهای رمزنگاری موجود و در حال توسعه باید کمی مقاومتر شوند. افزون بر این، حملهی Sleepwalk بهطور غیرمستقیم به یک نکتهی کلیدی در پیادهسازی سیستمهای رمزنگاری اشاره میکند: الگوریتمهای آینده باید در برابر تحلیل با استفاده از رایانش کوانتومی (رمزنگاری پساکوانتومی) مقاوم باشند؛ اما به همان اندازه مهم است که این کار بهدرستی انجام شود. در غیر این صورت، یک الگوریتم به ظاهر امنتر ممکن است در برابر حملات سنتی آسیبپذیرتر از الگوریتمهای پیشاکوانتومی باشد.
[1] Context Switching
[2]اسیلوسکوپ یک دستگاه اندازهگیری است که شکل موج سیگنالهای الکتریکی را روی یک نمایشگر (معمولاً صفحهنمایش گرافیکی) نشان میدهد. با اسیلوسکوپ میتوان دید که ولتاژ یک سیگنال در طول زمان چگونه تغییر میکند — دقیقاً مثل اینکه ضربان قلب را روی مانیتور میبینی، اما اینبار برای جریان برق!
کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.