بخشی از مقاله
راه اندازی و ارزیابی مکانیزم های امنیتی در پروتکل SIP
جکبده:
با توجه به استفاده وسیع پروتکل SeSSlon ) SIP Initiation Protocol) در شبکههای نسل اینده، لازم است که امنیت ان به صورت دقیقی مورد بررسی قرار گیرد. در این مقاله بعد از مطالعه اجمالی امنیت این پروتکل به بررسی اثر احراز هویت و استفاده از پروتکل TLS در بستر آزمایش راه اندازی شده پرداخته می شود. نتایج ارائه شده شامل متابع مصرف شده، تاخیر زمان برقراری جلسه، گذردهی و بررسی مقیاس پذیری سرورها هستند و نشان میدهند که امن نمودن سیگنالینگ پروتکل SIP بوسیله پروتکل TLS کاهش مقیاس پذیری سرورها و هزینه پردازشی بالا را به همراه خواهد داشت و نیاز است که ارایه دهنده سرویس به طراحی دقیقی در ارتباطات کاربران و اتصالات بین دامنه ای بپرداز
واژه های کلیدی: امنیت پروتکل SIP ، پروتکل TLS، احراز هویت دایجست، سیگنالینگ.
۱ - مقدمه
پروتکل SIP پروتکل سیگنالینگ لایه کاربرد به منظور اغاز، مدیریت و پایان جلسات صدا و تصویر از طریق بسته ها میباشد. استفاده از این پروتکل انچنان رشد روزافزونی داشته است که به عنوان پروتکل سیگنالینگ در IMS، که بستر سیگنالینگ پیشنهادی برای شبکههای نسل آینده است، درنظر گرفته شده است. علت استفاده روز افزون از SIP، قابلیتهای منحصر به فردی نظیر حمایت از انواع مختلف تحرک، امکان ترافیک سیگنالینگ از ترافیک دادهها، متنی بودن و غیره میباشد. با توجه به اینکه عبور بستهها از طریق بستر باز اینترنت همواره مورد هدف تهدیدات امنیتی بوده است، لازم است که راه کارهای مناسبی در مورد SIP نیز بدین منظور در نظر گرفته شده باشد. البته با توجه به اینکه این پروتکل ساختاری شبیه HTTP دارد می تواند از مکانیزمهای امن سازی مشابهی استفاده کدد، اما به هر صورت بعضی از ویژگیهای خاص پروکل SIP نظیر پشتیبانی از انواع تحرک، ارسالهای چندپخشی، متنی بودن و وجود آنرا دچار چالش می کند. با توجه به مسائل مطرح شده از مهمترین مسائلی که لازم است در مورد این موجودیتهای میانی زیاد پروتکل به طور مناسب بررسی شود مساله امنیت ان است. هدف این مقاله ان است که بعد از بررسی ساختارهای امنیتی در SIP به بررسی کارایی دو مکانیزم امنیتی مهمتر آن یعنی استفاده از پروتکل TLS و احراز هویت دایجست کاربران بپردازد. به منظور واقعی بودن بستر ازمایش SIP با استفاده از نرمافزارهای متنباز راه اندازی شده است که ازمایش کاربرها در پیکربندی های گوناگون را قابل بررسی می کند. در مقاله قبلی [۱]
در قالب بستر آزمایش، پارامترهای گوناگون کیفیت تماس از دیدگاه نقاط انتهایی و سرورها مورد ارزیابی و بهبود قرار گرفته اند. در ادامه در این پژوهش قصد داریم که مساله امن نمودن ارتباطات در پروتکل SIP را مورد ارزیابی قرار داده و با شناخت تهدیدات و هزینه مسایل امنیتی در جهت طراحی درست اجزا شبکههای ارتباطی مبتنی بر SIP و بهبود کارایی آن قدم برداریم. مقالات متعددی به بررسی امنیت و تهدیدات پروتکل SIP پرداخته اند که در اینجا به ذکر چند مورد از آنها اکتفا می کنیم. در | 2 || بعضی از حملات و مکانیزمهای امنیتی در پروتکل SIP مورد بررسی قرار گرفته است. در این مقاله عیبها و حسنهای هر کدام از روشهای قابل استفاده در این پروتکل، بررسی شده است. با توجه به لزوم ارزیابی کارایی روشهای امن سازی SIP در || 3 || بوسیله شبیه - سازی در نرم افزار 2-nS به مقایسه این روشها از لحاظ زمان برقراری جلسه پرداخته شده است. با توجه به اینکه SPAM در SIP بحرانی تر از HTTP است بسیاری از مقالات به بررسی SPAM در پروتکل SIP می پردازند (SPTT). به عنوان مثال در [4] با پیادهسازی یک ماژول در نرم افزار OpenSER) به صورت کارایی از SPTT جلوگیری شده است. دیگر کارها شامل جلوگیری و تشخیص حملات DOS و همچنین حملات مرد میانی (MitM-DOS) است در ادامه این پژوهش در بخشهای دوم و سوم پا پروتکل SIP و موجودیتهای آن بیشتر آشنا خواهیم شد و روشهای امن نمودن سیگنالینگ آن را مورد بررسی قرار می دهیم. در بخش چهارم بستر ازمایش پیادهسازی شده را توضیح خواهیم داد و در بخش پنجم مورد بررسی قرار می گیرد و چالشهای ایجاد شده و راهکارها توضیح داده خواهندشد.
۲- آشنایی با پروتکل SIP
پروتکل SIP یک پروتکل لایه کاربرد و مبتنی بر متن میباشد که برای مدیریت جلسات توسط IETF استاندارد شده است. معماری این پروتکل متشکل از دو نوع نهاد منطقی تحت عنوان عامل کاربر و سرور می باشد. عامل کاربر (UserAgent) یک جز انتهایی در نشست میباشد. در حقیقت عامل کاربر یک برنامه کاربردی است که خود به دو قست عامل کاربر - مشتری (UAC) و عامل کاربر- سرور (JASا) تقسیم می شود. تلفن های اینترنتی شامل هر دو جزء می - باشند. هنگامی که کاربر قصد تماس گرفتن دارد از عامل کاربرمشتری خود استفاده می کند و هنگامی که به تلفن او زنگ میزنند از عامل کاربر - سرور خود استفاده میکند. سرورهای SIP شامل سرور پروکسی، رجیسترار و سرور اصلاح مسیر هستند. سرور پروکسی (PrOXy Server)، تقاضاها را از عامل کاربر و یا دیگر سرورها دریافت و بعد از پردازش پیام و ارتباط مناسب با دیگر موجودیتهای سرور، سیگنالینگ را به نحو مناسب هدایت می کند. درخواستها یا به صورت داخلی اداره شده و یا اینکه احتمالا پس از تغییراتی به سایر سرورها عبور داده میشود. سرور رجیسترار سروری است که پیام ثبت (REGIS TER) را دریافت کرده و عهده - دار احراز هویت کاربر است. در صورت تابید رجیسترار، موقعیت کاربر در سرویس تعیین موقعیت (OCation SerVIce، ا) به روز می شود (سرویس تعیین موقعیت جزء موجودیتهای با الا؟ نیست). در صورت تحرک کاربرها وجود سرور اصلاح مسیر Red rect Ser۷er) الزامی می شود و موقعیت جدید کاربرها از این سرور پرسیده می شود. شایان ذکر است که این اجزا به صورت منطقی هستند و بنابراین میتوان آنها را روی یک جزء فیزیکی پیادهسازی کرد.
پیامهای SIP دو صورت کلی دارند: تقاضا و پاسخ شش نوع مختلف تقاضا وجود دارد که عبارتند از: E اACK IN VT و REGISTER -- Lala' BYE -is sells' CANCEL برای ثبت اطلاعات مورد نیاز جهت ایجاد ارتباط و OPTIONS) برای دریافت قابلیتهای سرور، عامل کاربر - سرور بعد از دریافت و تفسیر تقاضا، پیام پاسخ را تولید و ارسال می کند. پاسخ نشانه وضعیت و روند پیشرفت تقاضا است. پاسخها میتوانند متفاوت باشند که نوع انها بوسیله یک کد وضعیت سه رقمی مشخص می گردد، اولین رقم مشخص کننده کلاس پاسخ است. در مجموع شش کلاس مختلف داریم که کلاسهای استفاده شده در این تحقیق در زیر امدهاند؛ "l XX: پیام رسیده در حال پردازش است. مثلا جواب ۱۸۰ به منزله زنگ خوردن گوشی صرف مقابل است.
"2XX : تقاضا کامل شده است. مثل - ۲۰ که به منزله پایان موفق تقاضا است. کاربر در صورتی که منتظر جواب طرف مقابل باشد و ACK دریافت نکند این جواب را مجددا ارسال می کند. "4XX تقاضای کاربر با خطا مواجه شده و پا نیاز به اصلاح دارد. مللا خطای ۴۰۱ دال بر ارسال مجدد تقاضای ثبت با سرایند احراز هویت میباشد و یا ۴۰۸ به منزله منقضی شدن تقاضا است. به منظور واضحتر شدن نحوه رد و بدل شدن پیامها، برقراری یک تماس در حالتی که کاربرها احراز هویت میشوند مورد بررسی قرار میگیرد. در شکل ۱ برنامه کاربردی نصب شده روی نوت بوک (تماس گیرنده) تقاضای IN VTTE را به سرور پروکسی ارسال می کند. سرور پروکسی با ارسال خطای ۴۰۷ از کاربر تقاضای احراز هویت می کند. کاربر در جواب مجددا تقاضای IN VTTE را با سرایند احراز هویت ارسال می کند. سرور پروکسی پا سوال از پایگاه داده سندیت رمز عبور کاربر را چک می کند و در صورت درست بودن رمز عبور با رجوع به سرویس تعیین موقعیت از موقعیت تلفن اینترنتی (طرف دوم تماس) آگاه می شود و تقاضای تماس را به آن ارسال می کند. پیام ۱۰۰ به منزله کوشش برای ایجاد تماس به نوت بوک ارسال می شود و سرور در صورت خاموشی بودن تلفن اینترنتی (عدم دریافت پیام ۱۸۰) و یا جواب ندادن تلفن اینترنتی (عدم دریافت ۲۰۰۰) با تنظیم زمانبندهایی برای این تماس، ارسالهای مجدد تقاضا را به عهده میگیرد. نوت بوک در صورت دریافت جواب ۲۰۰ از سرور پروکسی، تقاضای ACK را ارسال می کند و تماس برقرار می شود.
۳- روشهای اعن نمودن پروتکل SIP
به منظلور امن نمودن سیگنالینگ SIP، احراز هویت )La (Authentication- ت (Integrity) و محرمائگی (Confidentiality) مورد نیاز است. احراز هویت معمولی پروتکل SIP برای آگاهی طرفین ارتباط از هویت هم می تواند در هر دو سمت سرور و کاربر انجام شود اما به هر صورت انجام آن از طریق سرور یک امر اجتناب ناپذیر است (طبق شکل ۱) و از این طریق سرور علاوه بر احراز هویت کاربر به مسائل حسابرسی و اجازه تماس نیز میپردازد. مشکل احراز هویت معمولی پروتکل SIP عدم فراهم آوردن تمامیت و محرمانگی تماسهاست و این مورد هنگامی حادتر جلوه خواهد کرد که ساختار این پروتکل و استعداد آن برای مورد حمله قرار گرفتن در نظر گرفته شود. به طور کلی تهدیدات وارده به پروتکل SIP را میتوان به سه قسمت تقسیم کرد. اولین دسته تهدیدات ناشی از اینترنت و شبکه است و در دیگر پروتکلها نیز وجود دارد. به عنوان مثال در حمله انکار سرویس (DOS) که دسترس پذیری سرور ( و یا کاربر) را دچار اختلال می کند، مهاجم با ارسال فراوان پیامهای ساختگی قربانی را از کار میاندازد. با توجه به متنی بودن پروتکل SIP، شنود و جاسوسی در جهت تدارک حملاتی مثل مرد میانی (man in the middle) و غیره نیز به راحتی میتواند انجام پذیرد. دسته دوم تهدیدات ناشی از طبیعت پروتکل SIP هستند، به عنوان مثال مزاحم با ارسال پیام BYE از جانب کاربر قربانی تماس را دچار خلل میکند و یا با ارسال پیام REGISTER محرمانگی کاربرها را زیر سوال میبرد. دسته سوم تهدیدات ناشی از جوان بودن و پیچیدگی این پروتکل هستند. به عنوان مثال مهاجم با اضافه نمودن دستورات SQL در پیامها و یا با پیامهای بدشکل بافرهای سرورها و کاربرها را سرریز می نماید. این دو نوع حمله دال بر آن است که توابع تجزیه کننده (PaTSC) پیامها در کاربرها و سرورها باید بسیار هوشمندانه عمل کنند. راه حلهای ارائه شده به منظور امن نمودن پروتکل SIP بسیار متنوع هستند که این روشها جدا از روشهای معمولی برای دیگر SDP) SIP) را نیز میتوان با استفاده از این پروتکل امن نمود. این مساله از دید نقاط انتهایی می تواند با اهمیت باشد که بدنه پیام آنها توسط هیچ کس در مسیر ارسال قابل خواندن نباشد. با توجه به اینکه موجودیتهای سرور بسیاری در بین راه وجود دارند این ساختار دچار پروتکلها نیستند.
در جدول ۱ مکانیزمهای مورد استفاده برای امنیت "ا SI معرفی شده است. این مکانیزمها در لایههای گوناگون شبکه و بر اساس ساختار پروتکلهایی نظیر HTTP و SMTP در نظر گرفته شدهاند. ذکر این نکته ضروری است که علاوه بر این موارد A , , (Intrusion Detection Systems) DS 44(Tire Wall) نیز به منظور مقابله با حملاتی مثل DoS از کارایی قابل قبولی برخوردار هستند هر چند که محدودیتهای خاص خود را دارا هستند. به عنوان مثال دیواره اتش تحرک کاربرها و مقیاس پذیری سرورها را دچار مشکل می کند و در سیستمهای IDS نیز بسیاری از شرایط ناخواسته به عنوان حمله تشخیص داده میشوند و همچنین مهاجمان مدام در حال به روز رسانی روشهای حمله خود هستند و این سیستمها تنها روی تهدیدات خاصی مفید عمل می کنند
. ۳ - ۱ امنبت در لا به شبکه (IIPSec)
استالدارد IPSec به منظور امن نمودن لایه شبکه توسط IETF ارایه شده است || 8 || این سرویس هر سه نیاز احراز هویت، محرمانگی و تمامیت را فراهم می کند. اشکال استفاده از این ساختار در این است که امکان انتخاب نوع سرویسی که میخواهد امن باشد از بین میرود در حقیقت تمامی ارتباطات شبکه کاربرها امن می شود. با توجه به اینکه بسیاری از سرویسهای یک کاربر لزوما از ارتباط امن استفاده نمی کنند سربار این پروتکل برای استفاده در پروتکل SIP بسیار بالا خواهد بود.
S/MIME2-3
پروتکل MIMH امن یا S/MIME [9] در حقیقت در جهت امن نمودن انتها به انتهای بدنه پیام ایمیل پیشنهاد شده است. بدنه پیامهای اشکال می شود و بسته به سیاست شبکه ممکن است این کار از دید موجودیتهای میانی تخلف محسوب شود. اشکال دیگر این مکانیزم از پشت NAT بودن عده عمددای از کاربرها ناشی میشود و نیاز است که سرور پروکسی به منظور اصلاح سر آیند SDP به آن دسترسی داشته باشد.
۳-۳ احراز هویت دایجست (Digest)
احراز هویت پروتکل SIP بر مبنای احراز هویت پروتکل HTTP [10] انجام می گیرد که به صورت اختصار احراز هویت دایجست نامیده می شود. هنگامی که یک تقاضای REGISTER به رجیستر ار (و یا ی IN VTTE به سرور پروکسی) می رسد، بدون در نظر گرفتن تقاضا، جواب ۱-۴ (۷-۴) ارسال میشود که حاوی سرایند احراز هویت است. این سر آیند حاوی روش احراز هویت، NonCc و پارامترهای دیگر است. طبق استاندارد SIP، روش احراز هویت دایجست انتخاب شده است و NOnce یک مقدار تصادفی (عموما عدد ۴۰ رقمی) است و بدین منظور ارسال می شود که کاربر کلمه عبور خود را با آن کد کند. نوع الگوریتم رمز کردن از پارامترهای دیگر است که در صورتی که ذکر نشود MD5 است. کاربر با توجه به لام کاربری و رمز عبور خود و پارامترهای دیگر مثل Realm Nonce اK الا و Method، جواب را تولید می کند و در سرایند احراز هویت تقاضای IN VTTB مجدد قرار میدهد. سرور نیز با توجه به نام کاربری و رمز به اشتراک گذاشته شده همین کار را انجام می دهد و جوابها را پا هم مقایسه می کند و در صورت مشابه بودن جوابها ادامه سیگنالینگ کاربر را پی می گیرد. همانطور که ذکر شد این مکانیزم محرمانگی و تمامیت را تضمین نمیکند اما به هر صورت رمز عبور کاربر به صورت محرمانه باقی می ماند || ۲ ||
۴-۳ امنیت در لایه انتقال (TLS)
بوسیله پروتکل TLS || 11]، ارسال رمز شده پیامهای SIP به صورت نقطه به نقطه فراهم می شود. این پروتکل در لایه انتقال پر روی پروتکل اتصال گرا و اعتمادپذیر TCP قرار میگیرد ( پروتکل دیگری به نام DTLS نیز با مکانیزمی مشابه بر روی UDP قرار می گیرد). یک ارتباط TTS از چهار فاز عمده تشکیل شده است: فاز اول برقراری اتصال TCP است و دو طرف ارتباط در فاز دوم به مذاکره بر سر الگوریتم رمزنگاری و تمامیت میپردازند. در فاز سوم براساس مذاکرات مرحله قبل، تبادل کلید عمومی و احراز هویت دو طرف انجام می شود. بعد از این مرحله هر کدام از دو طرف یک رمز سری اصلی (Master Secret key) محاسبه می کنند و در فاز چهارم از طریق آن به رد و ہندل کردن تر افیک SIP په صورت رمز متقارن می۔ پردازند. بعد از اتمام سیگنالینگ،