اخبار داخلی آرمان داده پویان

مقالات

پروتکل SSL و TLS

پروتکل SSL و TLS

حملات و تهدیدات

 

SSL/TLS مکانیزم امنیتی‌ای می‌باشد که سرویس‌های امنیتی احراز‌هویت، اطمینان از عدم تغییر پیام و حفظ محرمانگی را برای کاربر فراهم می‌آورد و در جریان انتقال اطلاعات بر روی بستر نا‌امن اینترنت از لو رفتن و یا تغییر آن‌ها جلوگیری می‌نماید. در نتیجه حملات موفقیت‌آمیز به یک پروتکل امنیتی، مانند SSL می‌تواند یک بحران به حساب آمده و موجب عدم اطمینان کاربران برای استفاده از آن گردد.

حال به بررسی چند حمله‌ی مرتبط با SSL/TLS می‌پردازیم.

حمله‌ی POODLE

(CVE-2014-3566)

حمله‌ی POODLE در اکتبر ۲۰۱۴ برای اولین بار گزارش شد. مهاجم در این حمله، از یک آسیب‌پذیری کشف شده در SSL 3.0 استفاده می‌نماید .هنوز هم تعدادی از کاربران و سرور‌ها از SSL 3.0 برای ارتباطات داخلی‌ و همچنین ارتباط با سیستم‌های قدیمی استفاده می‌نمایند. زمانی که کاربر در حین اجرای پروتکل دست‌دهی فهرستی از نسخه‌های SSL/TLS ای که پشتیبانی می‌نماید را برای سرور ارسال می‌نماید، مهاجم در میان راه با رهگیری ترافیک و ایجاد حمله‌ی مرد میانی هویت سرور را جعل نموده و کاربر را قانع می‌کند که از SSL 3.0 استفاده نماید.

بعد از آن که ارتباط بین سرور و کاربر بر مبنای SSL 3.0 بنا شد، آن‌گاه مهاجم، حمله‌ی POODLE را آغاز می‌نماید. آسیب‌پذیری در این نسخه‌ی SSL در حالت Cipher Block Chaining می‌باشد. از آنجایی که بلاک‌های رمز طول ثابتی دارند اگر داده‌ای از طول بلاک‌ها کمتر باشد به آخر آن یک مقدار اضافه می‌گردد تا فضای اضافی پر شود. مشکل آن هم این است که مقدار ضافه شده توسط سرور نادیده گرفته می‌شود و سرور تنها به طول آن اهمیت می‌دهد و MAC ارسال شده برای متن ساده را با MAC محاسبه شده، مقایسه می‌نماید تا از دستکاری نشدن آن مطمئن شود. در نتیجه محتویات مقدار اضافه شده، بررسی نمی‌گردد که این نقطه ضعف توسط مهاجم مورد سو‌استفاده قرار می‌گیرد.

یک مهاجم می‌تواند با تغیر بایت‌های مقدار اضافه شده، متن‌ساده‌ای را که در یک بلاک رمز‌گذاری شده وجود دارد را کشف نماید. با تغیر محتوی padding و ارسال دوباره‌ی درخواست SSL 3.0 حداکثر تا ۲۵۶ بار، مهاجم می‌تواند یک بایت را رمز‌گشایی نماید.

این بدان معناست که به ازای هر ۲۵۶ درخواست، سرور میزان تغییر داده شده را می‌پذیرد. حمله‌کننده حتی نیازی ندارد که الگوریتم رمز‌نگاری و یا کلید رمز را بداند. با استفاده از ابزار خودکار، می‌تواند به متن ساده دست یابد و کاراکتر به کاراکتر آن را بیابد. این متون می‌توانند گذر‌واژه، کوکی یک جلسه و یا داده‌های حساس دیگر باشند.

پیشگیری:

  • SSL 3.0 را به طور کامل بر روی سرور غیر‌فعال نمایید.
  • ناوش‌گر خود را به آخرین ویرایش موجود ارتقا دهید و اگر به هر دلیلی مجبور هستید از ویرایش‌های قدیمی استفاده نمایید SSL 2.0 و SSL 3.0 را بر روی آن غیر‌فعال نمایید. ناوش‌گر جدید مجهز به TLS_FALLBACK_SCSV می‌باشند. در این صورت اگر کاربر درخواست ویرایش‌های پایین‌تر از بالاترین ویرایشی که توسط سرور و کاربر پشتیبانی می‌شود را نماید، سرور به صورت خودکار تشخیص می‌دهد که این پایین‌آوردن سطح به صورت عمدی بوده و در نتیجه ارتباط را قطع خواهد کرد.
  • برخی از پیاده‌سازی‌های TLS 1.0/1.1، ساختار‌های غلط padding را بعد از رمز‌گشایی قبول می‌نمایند در نتیجه آن‌ها نیز نسبت به POODLE آسیب‌پذیر می‌باشند.

حمله‌ی BEAST

(CVE-2011-3389)

حمله‌ی BEAST در سپتامبر ۲۰۱۱ گزارش شد. مهاجم از آسیب‌پذیری موجود در SSL 3.0 و TLS 1.0 استفاده می‌نماید. مهاجم اقدام به رمز‌گشایی ترافیک بین طرفین با استفاده از آسیب‌پذیری پیاده‌سازی CBC در TLS 1.0 می‌نماید.

این حمله در سمت کاربر (ناوش‌گر) اتفاق می‌افتد. مهاجم با حمله‌ی مرد‌ میانی بسته‌هایی را به جریان TLS می‌افزاید. این کار باعث می‌شود تا بتواند بردار اولیه را با پیامی که تزریق نموده است XOR نماید و نتیجه را با بلوکی که می‌خواهد رمز‌گشایی نموده، مقایسه کرده و حدس بزند.

پیشگیری:

از TLS 1.1 و TLS 1.2 استفاده نمایید.

حمله‌ی CRIME

(CVE-2012-4929)

CRIME از آسیب پذیری موجود در فشرده سازی  TLSاستفاده می‌نماید. روش فشرده سازی در پیام Client-Hello گنجانده می‌شود و یک گزینه‌ی اختیاری می‌باشد بدین معنی که اتصال می‌تواند بدون هیچ گونه فشرده سازی‌ای برقرار گردد.

هدف اصلی از فشرده‌سازی، کاهش استفاده از پهنای باند در عین حفظ یکپارچگی و امنیت در حین تبادل حجم زیادی از اطلاعات می‌باشد. DEFLATE رایج ترین الگوریتم فشرده سازی‌ای می‌باشد که مورد استفاده قرار می‌گیرد.

یکی از روش های اصلی استفاده شده توسط الگوریتم های فشرده سازی جای‌گذاری بایت‌ها یا کاراکتر‌های تکراری با یک اشاره‌گر به اولین نمونه‌ آن بایت می‌باشد. هر چه تعداد تکرار بیشتر باشد، نسبت فشرده سازی نیز بالاتر خواهد رفت.

بیایید فرض کنیم که مهاجم می خواهد یک کوکی را از سیستم قربانی بگیرد. او می‌داند که برای نشست،  وب سایت مزبور(examplebank.com  یک کوکی به نام”adm” ایجاد خواهد کرد.) در روش فشرده سازی DEFLATE بایت‌های تکراری جایگزین می‌گردند. اگر مهاجم کوکی Cookie:adm=0  را به کوکی قربانی تزریق نماید، سرور تنها ۰ را به پاسخ فشرده می‌افزاید. از آنجایی که کوکی: Cookie:adm= در حال حاضر در کوکی قربانی وجود دارد، در نتیجه به عنوان تکرار در نظر گرفته می‌شود.

مهاجم کاراکتر‌های مختلفی را تزریق می‌نماید و سپس اندازه پاسخ را پایش می‌نمایند. مهاجم بایستی کاراکتر‌های مختلفی را تزریق و سپس اندازه پاسخ را بررسی نماید. اگر اندازه پاسخ كمتر از مقدار اولیه باشد به این معنا است که کاراکتر در کوکی وجود دارد و فشرده شده است. اگر کاراکتر در کوکی وجود نداشته باشد، اندازه پاسخ بزرگتر خواهد بود.

با استفاده از اين روش مهاجم اساسا یک حمله‌ی کورکورانه به کوکی می‌نماید و از سرور پاسخ می‌گیرد.

پیشگیری:

به روز‌رسانی ناوشگر به آخرین ویرایش

تعداد بازدید: 490


تازه ترین ها