امنیت در SqlServer2016 بخش دوم (رمز نگاری و رمزگشایی رشته اتصال)

 در بخش اول از سری مقالات امنیت در SqlServer2016 به موضوع تغییر پورت پیشفرض SqlServer پرداختیم در این مقاله قصد داریم به امنیت رشته اتصال که در برنامه تحت وب و ویندوز جهت ارتباط با SqlServer استفاده میشود بپردازیم

کلاینت جهت ارتباط با SqlServer از قابلیتی با عنوان کانکشن (Connection) استفاده میکند در واقع روش کار SqlServer به این صورت میباشد که برای اجرای دستورات SQL ابتدا باید بین کلاینت و سرور یک ارتباط برقرار شود و در ادامه کوئری های مورد نظر برای سرور SqlServer ارسال شود بنابراین در برنامه های تحت وب و یا ویندوز با توجه به اینکه کانکشن تحت عنوان رشته اتصال (Connection String) در فایل web.config نگهداری میشود، امنیت این فایل از اهمیت بسیار بالایی برخوردار میباشد به دلیل اینکه اگر این فایل به هر نحوی در دسترس هکر قرار بگیرد نام کاربری و رمز عبور اتصال به دیتا بیس در این فایل قرار دارد و هکر به راحتی میتواند به دیتابیس متصل شده و از دیتابیس هک شده سوء استفاده نماید در این مقاله قصد داریم نحوه کد کردن رشته اتصال که در فایل web.config قرار دارد را خدمت شما آموزش دهیم

جهت ارتباط با SqlServer دو روش وجود دارد

1- Windows Authentication: امن ترین روش ارتباط با SqlServer میباشد به دلیل اینکه نام کاربری و رمز عبور اتصال به دیتابیس در اختیار هکر قرار نخواهد گرفت

مثال:  کانکشن استرینک Windows Authentication

 

Data Source=192.168.1.54;Initial Catalog=MyDataBase;Integrated Security=SSPI;

 

- Sql Server Authentication: از لحاظ امنیتی از سطح پایینی برخوردار میباشد به دلیل اینکه که کلیه اطلاعات اعم از نام کاربری،رمزعبوروآدرس سرور SqlServer در رشته اتصال وجود خواهد داشت و هکر به راحتی میتواند از این اطلاعات به نفع خود استفاده نماید

مثال: رشته اتصال Sql Server Authentication

 

Data Source=192.168.1.54;Initial Catalog=MyDataBase;User Id=Test;Password=123;

 

و اما جهت کد کردن رشته اتصال قرار گرفته در فایل web.config چندین روش وجود دارد که رایج ترین و بهترین روش، استفاده از یکی از ماژول های دات نت فریم ورک با نام aspnet_regiis.exe میباشد این ماژول در مسیر زیر قرار دارد

C:\Windows\Microsoft.NET\Framework\v4.0.30319

و اما نحوه استفاده از این ماژول جهت Encrypt کردن رشته اتصال :

1- برنامه Command Prompt ویندوز را به صورت Run as administrator اجرا نمایید

2- با استفاده از دستور cd.. به ریشه درایو c برگردید و مجدداً با استفاده از این دستور به صورت cd windows به فولدری که فایل aspnet_regiis.exe قرار دارد مراجعه نمایید

3-در این مرحله جهت Encrypt کردن رشته اتصال دستور زیر را اجرا نمایید

aspnet_regiis.exe -pef "connectionStrings" "D:\FolderProject”

نتیجه اجرای دستور بالا را در تصویر زیر مشاهده میکنید

امنیت در SqlServer2016

نحوه استفاده از این ماژول جهت Decrypt کردن رشته اتصال

1- برنامه Command Prompt را به صورت Run as Administrator اجرا نمایید

2 - با استفاده از دستور cd.. به ریشه درایو c برگردید و مجدداً با استفاده از این دستور به صورت cd windows به فولدری که فایل aspnet_regiis.exe قرار دارد مراجعه نمایید

3- در این مرحله جهت Decrypt کردن رشته اتصال دستور زیر را اجرا نمایید

aspnet_regiis.exe -pdf "connectionStrings"  "D:\ FolderProject "

توجه: جهت آدرس دهی میبایست آدرس فولدر پروژه را قراردهید نه خود فایل web.config

نتیجه اجرای دستور بالا را در تصویر زیر مشاهده میکنید

امنیت در SqlServer2016موفق باشید