ساخت و مقابله با یک در پشتی امنیتی بیعیبونقص
سه شنبه 23 اردیبهشت 1393 12:19 PM
آژانس امنيت ملي آمريکا سامانههاي عظيمي همچون TUMULT ،TURMOIL و TURBULENCE را براي غربالگري فضاي مجازي در اختيار دارد. NSA همچنين قادر است متون رمزي و اطلاعات کدشده را رمزگشايي کند و دريابد کدام برنامه ميتواند چنين رمزگذاري را انجام دهد.
اما هدفي که NSA به دنبال آن است رسيدن به نقطهاي است که بتواند اطلاعات رمزشده را در کوتاهترين فاصلهي زماني و بهصورت بلادرنگ بخواند. از اين رو به در پشتي نياز دارد، درست مانند کاري که مجرمان سايبري و دولتهاي مخالف آحاد مردم انجام ميدهند.
به همين علت است که وظيفهي محققان امنيتي براي هرچه سختتر کردن ايجاد در پشتي خطيرتر ميشود.
چگونه NSA در پشتيهاي خاص خود را ايجاد کرده است؟
FBI در اواسط دههي 90 ميلادي تعبيهي در پشتي را در يک سامانهي تلفني امن AT&T امتحان کرده است؛ Clipper Chip ريزپردازندهاي است که اين سازمان در رايانهها و تلفنها کار ميگذاشت و توسط آن تماسهاي شهروندان آمريکايي را استراق سمع ميکرد. اين تراشه که توسط دولت فدرال آمريکا براي استانداردسازي فنآوريهاي رمزنگاري طراحي و معرفي شده، شامل بخشي به نام LEAF بود. LEAF در حقيقت کليدي بود که براي رمزگذاري ارتباطات تلفني استفاده ميشد؛ خود LEAF هم توسط يک کليد شناختهشده براي FBI رمزگذاري شده بود. اين کليد نيز به همراه مکالمات تلفني منتقل ميشد. يک شنودکنندهي FBI ميتواند LEAF را نيز شنود کرده و آن را رمزگذاري نمايد، سپس از اطلاعات به دست آمده براي استراق سمع تماسهاي تلفني استفاده نمايد.
اما Clipper Chip با واکنش شديد مردم مواجه و کنار گذاشته شد.
پس از بحث و جدلهايي که پيرامون Clipper Chip پيش آمد، NSA تصميم گرفت در پشتي خود را با فريب و نيرنگ پيادهسازي نمايد، مثلاً با درخواست مؤدبانه، اِعمال فشار، تهديد، رشوه دادن، و يا الزام از طريق مراجع قانوني. نام اين برنامه BULLRUN ميباشد.
مقابله با چنين حملاتي دشوار است. آنطور از که از شواهد برميآيد تقريباً غيرممکن است که بتوان تضمين کرد يک قطعهي پيچيدهي نرمافزاري اطلاعات محرمانه را فاش نکند. يعني هرگز نميتوان مطمئن بود که هيچگونه نقص امنيتي در نرمافزار مورد استفاده وجود ندارد.
از زماني که در ماه گذشته طرح BULLRUN بهطور عمومي افشاء شد، جامعهي امنيتي به بررسي شکافهاي امنيتي کشفشده در طول چند سال گذشته پرداخت تا به اين ترتيب نشانهاي را از دستکاريهاي عمدي پيدا نمايد. در اين ميان، آسيبپذيري موجود در اعداد تصادفي بستر دبيان احتمالاً عمدي نبوده است، اما ميتوان گفت که شکاف امنيتي لينوکس2003 کاملاً عمدي بوده است. همانطور که اشاره کرديم الگوريتم سازندهي اعداد تصادفي DUAL_EC_DRBG ميتواند در پشتي NSA باشد. نقص موجود در SSL 2.0 نيز اشتباهي بيش نبوده است. اما بهطور قطع ميتوان گفت که ضعف الگوريتم رمزنگاري GSM A5/1 سهوي نيست.
NSA چگونه در پشتي ميسازد؟
براي نهادهاي شنودکنندهي دولتي مانند NSA، تيزبيني و مهارت از اهميت بالايي برخوردار است. بهطور کلي اين سازمانها سه ويژگي زير را نبايد فراموش کنند:
امکان کشف اندک: هرچه يک در پشتي کمتر روي عملکرد طبيعي يک برنامه اثر بگذارد بهتر است. البته حالت ايدهآل اين است که در پشتي به هيچ وجه کارکرد نرمافزار را تحت شعاع قرار ندهد. همچنين هرچه يک در پشتي کوچکتر باشد مناسبتر است. در بهترين شرايط در پشتي ميبايست چيزي شبيه کد کاربردي طبيعي باشد. بهطور مثال يک در پشتي رمزگذاري رايانامه که نسخهي رونوشت يک متن شفاف را به يک نسخهي رمزشده ضميمه ميکند نامطلوبتر از در پشتي است که بيشتر بيتهاي کليدي يک برنامه را استفادهي مجدد ميکند.
قابليت انکار بالا: اگر در پشتي کشف شود، بايد مانند يک اشتباه به نظر برسد. در پشتي ميتواند يک تغيير جزئي در کد عملياتي باشد، يا املاي غلط يک مقدار ثابت باشد. يا اينکه استفادهي مجدد از يک کليد يکبار مصرف باشد. درست به همين خاطر است که بسياري از افراد باور ندارند که ممکن است DUAL_EC_DRBG در پشتي باشد؛ زيرا قضيهي DUAL_EC_DRBG بيش از حد روشن است.
توطئهچيني براي يک گروه کوچک: هرچه تعداد افرادي که از در پشتي خبر دارند بيشتر باشد، احتمال آشکار شدن اين راز بيشتر ميشود. از اين رو در پشتيهاي مطرح را نبايد در هر جايي معرفي کرد.
اين ويژگيها بيانگر چند مطلب هستند:
خرابکاري در يک سامانهي غير متنباز به مراتب راحتتر از سامانهي متنباز است؛ زيرا شانس کشف خرابکاري در يک سامانهي متنباز بيشتر است. از سوي ديگر، اين واقعيت را هم نبايد فراموش کرد که در هم ريختن يک سامانهي متنباز گسترده که داراي توسعهدهندگان بيشماري است و کنترل نسخههاي آن بهطور منظم انجام نميشود کار سادهاي است.
اگر عملکرد يک سامانهي نرمافزاري ربطي به سامانههاي ديگر نداشته باشد، امکان خرابکاري مهياتر ميشود. مثلاً يک سامانهي رمزگذاري غيرمتنبازِ VPN تنها ميبايست با ساير نمونههاي همان سامانهي خاص کار کند. اِعمال تغييرات دلخواه در چنين سامانهاي آسانتر از يک VPN استاندارد مورد استفاده در صنعت است. اين VPN بايد با تجهيزات ساير شرکتها نيز کار کند.
درهم ريختن يک سامانهي نرمافزاري تجاري راحتتر است، زيرا سودهاي مالي موجب ايجاد انگيزهي قوي در شرکتي ميشود که NSA آن را هدف قرار داده است.
تحت تأثير قرار دادن پروتکلهاي توسعهيافته توسط نهادهاي مطرح استاندارد باز دشوارتر است، چرا که چشمهاي بسياري به دنبال اين نهادهاست. در سوي مقابل سامانههايي که به کمک نهادهاي استاندارد بسته طراحي شدهاند آسانتر است، خصوصاً اگر افرادي که درگير استاندارد مربوطه هستند از امنيت سر در نياورند.
سامانههايي که اطلاعات به ظاهر تصادفي را بيپرده ارسال ميکنند، در معرض اِعمال تغيير قرار دارند. يکي از مؤثرترين راهها براي دستکاري يک سامانه فاشکردن اطلاعات کليدي است. همانطور که در توصيفLEAF گفتيم، ويرايش کليدهاي تصادفي و يا اطلاعات سرآيند راحتترين راه براي انجام چنين کاري است.
طراحي راهبردهاي لازم براي مقابله با در پشتي
با مرور اصولي که ذکر شد ميتوانيم راهبردهاي زير را ارائه کنيم:
شرکتها بايد کد رمزنگاري خود را که شامل مشخصههاي پروتکل است در دسترس عموم قرار دهند. اين کار به ديگران اجازه ميدهد در کد مربوطه به جستوجوي آسيبپذيري بپردازند. اين درست است که ما هرگز متوجه نخواهيم شد که آيا کدي که ديدهايم هماني است که واقعاً در نرمافزار استفاده شده يا خير، اما نبايد فراموش کرد که جايگزين کردن پنهانيِ در پشتي در يک کد کار دشواري است که شرکت مربوطه را نيز وادار به دروغگويي راجع به برنامه ميکند.
شرکتها ميبايست نسخههاي جداگانهي سازگاري را از سامانههاي رمزنگاري ايجاد کنند تا مطمئن شوند سامانههاي مذکور به درستي کار ميکنند.
هيچ رمز و رازي نبايد وجود داشته باشد. اين رازها هميشه سامانه را آسيبپذيرتر ميکنند.
همهي توليدکنندههاي اعداد تصادفي بايد با استانداردهاي مصوب همخواني داشته باشند.
پروتکلهاي رمزنگاري بايد به نحوي طراحي شوند که از نشت تصادفي هرگونه اطلاعات جلوگيري به عمل بياورند.
بدی کردیم خوبی یادمان رفت
زدلها لای روبی یادمان رفت