برای دسترسی به یک محیط امن در ارتباطات Sql می توان از امکانات امنیتی که MS-Sql 2008 در اختیارتان گذاشته است بهره مند شوید. این ویژگی ها دقیقا ارتباط سرور و کاربر را با استفاده از پروتکل های مختلف ایزوله می نماید. بسیاری از حملات ناخواسته توسط افراد مزاحم متوجه این قسمت از ارتباطات می باشد. بعنوان مثال این افراد بطور مداوم به شنود اطلاعات پرداخته و اگر ارتباط شما امن نباشد ، براحتی اطلاعاتتان بدست افراد سود جو قرار خواهد گرفت.
پروتکل Force Encryption قسمتی از تنظیمات SSL می باشد که همراه با IPSec استفاده می شود. پروتکل SSL ، اقدام به رمزگذاری اطلاعاتی که بین سرور و کاربر در درون شبکه در حال انتقال است می نماید. این پروتکل را می توان برای تمامی کاربران Sql سرور استفاده نمود ، البته استثنا هایی نیز وجود دارد . برای نمونه کاربران DB Library و MDAC 2.53 به این پروتکل دسترسی ندارند.
SSL به هنگام تاییدیه درخواست ارتباط کاربر به سرور بکار می رود. کامپیوتری که برروی آن Sql سرور درحال اجرا می باشد ، دارای یک گواهی از مرجع صادر کننده گواهینامه می باشد ، که برای ضمانت کاربری که به آن متصل میشود این روند بطور زنجیروار طی می شود تا به مرجع صادر کننده گواهینامه اصلی برسد. این پروسه هنگامی کارایی دارد که کاربران طوری تنظیم شده باشند که دسترسی به گواهینامه مرجع داشته باشند. البته رمزگذاری توسط گواهینامه Self-signed نیز امکانپذیر است که در ادامه درباره تنظیمات آن بیشتر توضیح خواهیم داد.
سطوحی که برای رمزگذاری در SSL مورد استفاده قرار می گیرد بستگی به نسخه ویندوز مایکروسافت داشته که در دو حالت ۴۰ و ۱۲۸ بیت ارائه گردیده است. علاوه بر مزایای گفته شده راجع به ارتباط امن ، فعالسازی این ویژگی باعث کاهش برنامه های اجرایی در سرور نیز می گردد.
هنگامیکه سرویس Sql بین سرور و کاربر ارتباط SSL برقرار می کند ، پردازش های زیر مورد نیاز می باشد:
– احتیاج به یک شبکه Roundtrip اضافی در زمان اتصال .
– اطاعاتی که از برنامه به سمت سرور ارسال می شوند ، توسط Net-Library کاربر رمزگذاری شده و توسط Net-Library سرور رمز گشایی می گردد.
– اطاعاتی که از برنامه به سمت کاربر ارسال می شوند ، توسط Net-Library سرور رمزگذاری شده و توسط Net-Library کاربر رمز گشایی می گردد.
برای تنظیم SSL در SQL سرور باید تنظیمات زیر به ترتیب انجام شوند :
۱. نصب گواهینامه در Windows certificate store سرور.
۲. روی Start کلیک کنید ، در قسمت Microsoft SQL Server program group به بخش Configuration Tools بروید. سپس برروی SQL Server Configuration Manager کلیک کنید.
۳. در بخش تنظیمات شبکه Sql سرور ، روی پروتکلهای سرور راست کلیک کنید و سپس وارد Properties شوید.
۴. در برگه Certificate ، موتور دیتابیس را برروی استفاده از گواهینامه تنظیم نمایید.
۵. در برگه Flags ، پروتکل رمزگذاری را انتخاب نمایید. اطلاعات ورود همیشه رمزگذاری می شود.
– هنگامیکه ForceEncryption برروی YES تنظیم گردد ، تمام ارتباطات کاربر/سرور رمزگذاری می شوند و کاربرانی که پروتکل رمزگذاری را پشتیبانی نمی کنند دسترسی به این ارتباطات ندارند.
– هنگامیکه ForceEncryption برروی NO تنظیم گردد ، رمزگذاری از طریق ارسال درخواست کاربر اعمال می شود و ضرورتی هم برای این کار وجود ندارد.
– Sql سرور پس از اعمال تنظیمات ForceEncryption ریست شود.
اعتبارنامه (در هنگام ورود) هنگامی که برنامه کاربر به سرور SQL متصل می شود ، بصورت رمزگذاری شده منتقل می گردد. SQL سرور یک گواهی نامه از یک مرجع صدور گواهینامه (CB) مورد اعتماد که در دسترس باشد استفاده می کند. اگر گواهی قابل اعتماد نصب نشده باشد، SQL سرور یک گواهی Self-signed هنگامیکه ارتباط آغاز می شود ، تولید و با استفاده از آن شروع به رمزگذاری می نماید. این گواهی Self-signed برای افزایش امنیت استفاده میشود اما به هر جهت نمی تواند در برابر جعل هویت هایی که برای سرور انجام می شود قابل اطمینان باشد. در صورتی که گواهی Self-signed استفاده شده باشد، و گزینه ForceEncryption نیز فعال باشد، تمام انتقال داده ها در سراسر شبکه بین سرور SQL و درخواست مشتری با استفاده از گواهی Self-signed رمزگذاری می گردند. باید به این نکته توجه داشته باشید که با استفاده از گواهی self-signed امنیت بالایی را فراهم نساخته اید. اینگونه گواهی ها به شدت در برابر حملات مرد-میانی(Man in the middle) آسیب پذیر هستند و تا جایی که امکان دارد از اینگونه پروتکل ها نباید در فضای اینترنت استفاده کرد.
برای استفاده از گواهی در Sql سرور بایدشرایط زیر برقرار باشد:
– گواهینامه باید در سرور محلی و یا سرور کاربر نصب شده باشد.
– زمان فعلی سیستم باید در بازه گواهینامه قرار داشته باشد.
– Enhanced Key Usage باید طریقه احراز هویت را برای سرور مشخص نماید. به عبارت دیگر گواهی استفاده شده باید هنگام احراز هویت سرور ، تعریف شده باشد. Sql server 2008 R2 و Native client ، گواهی های Wildcard را نیز پشتیبانی می نمایند.
برای رمز گذاری برروی cluster باید گواهی سرور با FQDN برروی تمام نقاط شبکه نصب شود . برای مثال اگر دونقطه cluster داشته باشید. cluster اول با نام test1.yourcompany.com و cluster دوم به نام test2.yourcompany.com و Failover Clustered نیز با نام fcisql باشد، باید گواهی برای fcisql.yourcompany.com برروی دو نقطه نصب شود. سپس برای تنظیمات رمزگذاری باید از پروتکل Forceencryption استفاده شود.
و یا با خرید گواهینامه ssl با پشتبانی ۷/۲۴ به سادگی ایمن شوید.