در این مقاله می توانید در مورد فن آوری مورد استفاده در سرور های متعدد هاستینگ و همچنین به حداکثر رساندن امنیت و آپ تایم سایت را بدانید.

در حال حاضر هاست برای وب سایت به یک کالا تبدیل شده است که در آن رقابت به حد بسیار بالایی رسیده است و قابلیت انتخاب میان انواع پکیچ های هاستینگ و امکانات و قیمت بسیار مشکل میباشد. علاوه بر این انتخاب یک هاست بر اساس ارزانی قیمت یک ایده ی خوب نمیباشد و به جای آن بالا بودن قیمت هاست هم از نظر قابلیت اطمینان و خدمات بیشتر باعث از دست دادن پول و در نتیجه خرابی کسب وکار شرکت ها می شود.


انتخاب بهترین از بین هزاران شرکت ارائه دهند گان هاستینگ و نمایندگی فروش هاست کار بسیار مشکل میباشد. نه تنها بر اساس آمار و روش آزمایش حتی اگر هاستینگ به یک کالا تبدیل شود انتخاب یک هاست بر اساس قابلیت اطمینان بالاتر همچنین مشکل میباشد.
در حال حاضر اساس قابل اطمینان بودن هر شرکت میزبانی وب هاست جایگزین میباشد. هاست جایگزین ارائه کننده جایگزین در صورت بروز هر مشکل میباشد. هاست اضافی برای اطمینان از تداوم کار به عنوان یکپارچه و شفاف امکان پذیر است.



چیزی دیگری که تا حدودی شناخته شده است نام دامنه سرور ( DNS ) میباشد. DNS یک ویژگی دارد به اسم round robin که در هنگام رسیدن درخواست از DNS اجازه می دهد از میان آدرس ها تا یک آدرس IP خاص را انتخاب کند.


نام دامنه سرور DNS نقش پایگاه داده از نام هاست به آدرس های IP خود را دارد. بنابراین به جای به خاطر سپردن یک سری گسترده از اعداد ( آدرس IP ) فقط لازم است در مرورگر نام دامنه خود WWW.MYDOMAIN.COM را تایپ کنید تا به وب سایت خود دسترسی پیدا کنید.


در حال حاضر انتشار اطلاعات DNS در سراسر بازار وب به طور معمول 2 تا 3 روز طول خواهد کشید. به خاطر این دلیل وقتی کسی دامنه را خرید یا منتقل کند فورا در مرورگر وب قابل رویت نخواهد بود. 2 تا 3 روز طول می کشد تا در تمام دنیا اطلاعات DNS بارگذاری شود.


این تاخیر منافع امنیتی هاستینگ یک وب سایت بر روی چند سرور متعدد را خنثی می کند چون وب سایت در صورت هر مشکلی برای چند روز پایین ( down ) خواهد بود. برای معالجه این کار باید DNS خود را به یک سرور دیگر تغییر دهد و چند روز صبر کند تا تغییر در روتر و اینترنت انجام گیرد.


در عین حال یک راه دیگر برای حل مشکل بالا وجود دارد و آن هم round robin استراتژی DNS میباشد و می تواند این سردرگمی را با نقشه برداری یک نام دامنه به بیش از یک آدرس IP حل کند. در حال حاضر باید یک شرکت هاستینگی را انتخاب کنید که از روش DNS round robin استفاده می کند و آن را به مشتریان خود ارائه بدهد. 


DNS round robin توسط شرکت میزبانی با راه اندازی یک وب سایت بر 2 وب سرور مستقل یا حتی بیشر از 2 وب سرور اجرا خواهد شد. این گونه یک وب سایت 2 آدرس IP اختصاصی یا بیشتر برای خود خواهد داشت.



پروتکل امنیتی SSL چیست؟



SSL یا Secure Socket Layer راه حلی جهت برقراری ارتباطات ایمن میان یک سرویس دهنده و یک سرویس گیرنده است که توسط شرکت Netscape ارایه شده است. در واقع SSL پروتکلی است که پایین تر از لایه کاربرد (لایه ۴ از مدل TCP/IP) و بالاتر از لایه انتقال (لایه سوم از مدل TCP/IP) قرار می گیرد. 

مزیت استفاده از این پروتکل، بهره گیری از موارد امنیتی تعبیه شده آن برای امن کردن پروتکل های غیرامن لایه کاربردی نظیر HTTP، LDAP، IMAP و... می باشد که براساس آن الگوریتم های رمزنگاری بر روی داده های خام (plain text) که قرار است از یک کانال ارتباطی غیرامن مثل اینترنت عبور کنند، اعمال می شود و محرمانه ماندن داده ها را در طول کانال انتقال تضمین می کند. 

به بیان دیگر شرکتی که صلاحیت صدور و اعطای گواهی های دیجیتال SSL را دارد برای هر کدام از دو طرفی که قرار است ارتباطات میان شبکه ای امن داشته باشند، گواهی های مخصوص سرویس دهنده و سرویس گیرنده را صادر می کند و با مکانیزم های احراز هویت خاص خود هویت هر کدام از طرفین را برای طرف مقابل تایید می کند، البته غیر از این کار می بایست تضمین کند که اگر اطلاعات حین انتقال مورد سرقت قرار گرفت، برای رباینده قابل درک و استفاده نباشد که این کار را با کمک الگوریتم های رمزنگاری و کلیدهای رمزنگاری نامتقارن و متقارن انجام می دهد. 

ملزومات یک ارتباط مبتنی بر پروتکل امنیتی SSL عبارتند از :
برای داشتن ارتباطات امن مبتنی بر SSL عموما به دو نوع گواهی دیجیتال SSL یکی برای سرویس دهنده و دیگری برای سرویس گیرنده و یک مرکز صدور و اعطای گواهینامه دیجیتال یا CA نیاز می باشد. وظیفه CA این است که هویت طرفین ارتباط، نشانی ها، حساب های بانکی و تاریخ انقضای گواهینامه را بداند و براساس آن ها هویت ها را تعیین نماید.

مکانیزم های تشکیل دهنده SSL


۱- تایید هویت سرویس دهنده 


با استفاده از این ویژگی در SSL، یک کاربر از صحت هویت یک سرویس دهنده مطمئن می شود. نرم افزارهای مبتنی بر SSL سمت سرویس گیرنده، مثلا یک مرورگر وب نظیر Internet Explorer از تکنیک های استاندارد رمزنگاری مبتنی بر کلید عمومی و مقایسه با کلیدهای عمومی یک سرویس دهنده، (مثلا یک برنامه سرویس دهنده وب نظیر IIS می تواند از هویت او مطلع شود و پس از اطمینان کامل، کاربر می تواند نسبت به وارد نمودن اطلاعات خود مانند شماره کارت های اعتباری و یا گذرواژه ها اقدام نماید. 

۲- تایید هویت سرویس گیرنده 


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

۳- ارتباطات رمز شده 


کلیه اطلاعات مبادله شده میان سرویس دهنده و گیرنده می بایست توسط نرم افزارهای موجود در سمت سرویس دهنده و سرویس گیرنده رمزنگاری (Encrypt) شده و در طرف مقابل رمزگشایی (Decrypt) شوند تا حداکثر محرمانگی (Confidentiality) در این گونه سیستم ها لحاظ شود. 


اجزای پروتکل SSL 


پروتکل SSL دارای دو زیرپروتکل تحت عناوین زیر می باشد: 

۱- SSL Rocord Protocol که نوع قالب بندی داده های ارسالی را تعیین می کند. 

۲- SSL Handshake Protocol که براساس قالب تعیین شده در پروتکل قبلی، مقدمات ارسال داده ها میان سرویس دهنده ها و سرویس گیرنده های مبتنی بر SSL را تهیه می کند. 


بخش بندی پروتکل SSL به دو زیرپروتکل دارای مزایای چندی است از جمله: 

اول: در ابتدای کار و طی مراحل اولیه ارتباط (Handshake) هویت سرویس دهنده برای سرویس گیرنده مشخص می گردد. 

دوم: در همان ابتدای شروع مبادلات، سرویس دهنده و گیرنده بر سر نوع الگوریتم رمزنگاری تبادلی توافق می کنند. 

سوم: در صورت لزوم، هویت سرویس گیرنده نیز برای سرویس دهنده احراز می گردد. 

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

پنجم: ارتباطات بر مبنای SSL رمزنگاری می شود.



الگوریتم های رمزنگاری پشتیبانی شده در SSL


در استاندارد SSL، از اغلب الگوریتم های عمومی رمزنگاری و مبادلات کلید (Key Exchcenge Algorithm) نظیرRSA, RC۴, RC۲,MD۵, KEA, DSA, DES و RSA Key Exchauge، SHA-۱،Skipjack و DES۳ پشتیبانی می شود و بسته به این که نرم افزارهای سمت سرویس دهنده و سرویس دهنده نیز از موارد مذکور پشتیبانی نمایند، ارتباطات SSL می تواند براساس هر کدام از این الگوریتم ها صورت پذیرد.

 البته بسته به طول کلید مورد استفاده در الگوریتم و قدرت ذاتی الگوریتم می توان آن ها را در رده های مختلفی قرار داد که توصیه می شود با توجه به سناریوهای موردنظر، از الگوریتم های قوی تر نظیر DES۳ با طول کلید ۱۶۸ بیت برای رمزنگاری داده ها و همچنین الگوریتم SHA-۱ برای مکانیزم های تایید پیغام MD۵ استفاده شود و یا این که اگر امنیت در این حد مورد نیاز نبود، می توان در مواردی خاص از الگوریتم رمزنگاری RC۴ با طول کلید ۴۰ بیت و الگوریتم تایید پیغام MD۵ استفاده نمود.


نحوه عملکرد داخلی پروتکل SSL 


همان طور که می دانید SSL می تواند از ترکیب رمزنگاری متقارن و نامتقارن استفاده کند. رمزنگاری کلید متقارن سریع تر از رمزنگاری کلید عمومی است و از طرف دیگر رمزنگاری کلید عمومی تکنیک های احراز هویت قوی تری را ارایه می کند.

 یک جلسه SSL (SSL Session) با یک تبادل پیغام ساده تحت عنوان SSL Handshake شروع می شود. این پیغام اولیه به سرویس دهنده این امکان را می دهد تا خودش را به سرویس دهنده دارای کلید عمومی معرفی نماید و سپس به سرویس گیرنده و سرویس دهنده این اجازه را می دهد که یک کلید متقارن را ایجاد نمایند که برای رمزنگاری ها و رمزگشایی سریع تر در جریان ادامه مبادلات مورد استفاده قرار می گیرد. 

گام هایی که قبل از برگزاری این جلسه انجام می شوند براساس الگوریتم RSA Key Exchange عبارتند از: 

۱- سرویس گیرنده، نسخه SSL مورد استفاده خود، تنظیمات اولیه درباره نحوه رمزگذاری و یک داده تصادفی را برای شروع درخواست یک ارتباط امن مبتنی بر SSL به سمت سرویس دهنده ارسال می کند. 

۲- سرویس دهنده نیز در پاسخ نسخه SSL مورد استفاده خود، تنظیمات رمزگذاری و داده تصادفی تولید شده توسط خود را به سرویس گیرنده می فرستد و همچنین سرویس دهنده گواهینامه خود را نیز برای سرویس گیرنده ارسال می کند و اگر سرویس گیرنده از سرویس دهنده، درخواستی داشت که نیازمند احراز هویت سرویس گیرنده بود، آن را نیز از سرویس گیرنده درخواست می کند. 

۳- سپس سرویس گیرنده با استفاده از اطلاعاتی که از سرویس دهنده مجاز در خود دارد، داده ها را بررسی می کند و اگر سرویس دهنده مذکور تایید هویت شد، وارد مرحله بعدی می شود و در غیر این صورت با پیغام هشداری به کاربر، ادامه عملیات قطع می گردد. 

۴- سرویس گیرنده یک مقدار به نام Secret Premaster را برای شروع جلسه ایجاد می کند و آن را با استفاده از کلید عمومی (که اطلاعات آن معمولا در سرویس دهنده موجود است) رمزنگاری می کند و این مقدار رمز شده را به سرویس دهنده ارسال می کند. 

۵- اگر سرویس دهنده به گواهینامه سرویس گیرنده نیاز داشت می بایست در این گام برای سرویس دهنده ارسال شود و اگر سرویس گیرنده نتواند هویت خود را به سرویس دهنده اثبات کند، ارتباط در همین جا قطع می شود. 

۶- به محض این که هویت سرویس گیرنده برای سرویس دهنده احراز شد، سرویس دهنده با استفاده از کلید اختصاصی خودش مقدار Premaster Secret را رمزگشایی می کند و سپس اقدام به تهیه مقداری به نام Master Secret می نماید. 

۷- هم سرویس دهنده و هم سرویس گیرنده با استفاده از مقدار Master Secret کلید جلسه (Session Key) را تولید می کنند که در واقع کلید متقارن مورد استفاده در عمل رمزنگاری و رمزگشایی داده ها حین انتقال اطلاعات است و در این مرحله به نوعی جامعیت داده ها بررسی می شود. 

۸- سرویس گیرنده پیغامی را به سرویس دهنده می فرستد تا به او اطلاع دهد، داده بعدی که توسط سرویس گیرنده ارسال می شود به وسیله کلید جلسه رمزنگاری خواهد شد و در ادامه، پیغام رمز شده نیز ارسال می شود تا سرویس دهنده از پایان یافتن Handshake سمت سرویس گیرنده مطلع شود. 

۹- سرویس دهنده پیغامی را به سرویس گیرنده ارسال می کند تا او را از پایان Handshake سمت سرویس دهنده آگاه نماید و همچنین این که داده بعدی که ارسال خواهد شد توسط کلید جلسه رمز می شود. 

۱۰- در این مرحله SSL Handshake تمام می شود و از این به بعد جلسه SSL شروع می شود و هر دو عضو سرویس دهنده و گیرنده شروع به رمزنگاری و رمزگشایی و ارسال داده ها می کنند.

SSL چگونه کار می‌کند؟


به زبان ساده وقتی شما درخواست یک صفحه‌ی ایمن (معمولا با https) می‌کنید، سرور یک کلید عمومی (Public Key) ساخته و به همراه یک درخواست گواهینامه SSL که تمامی اطلاعات شرکت درخواست کننده در آن قرار دارد به سرویس‌دهنده‌ی خدمات SSL می‌فرستد. سرویس دهنده خدمات SSL با استفاده از الگوریتم‌های پیشرفته اقدام به رمزگذاری کلید عمومی کرده و پس از رمزگذاری آن، کلید جدیدی ساخته و آن را به سرور بازمی‌گرداند (که به این کلید جدید، کلید خصوصی یا Private Key گفته می‌شود). در مبحث امنیت شبکه، مهم‌ترین قسمت در سرویس‌دهی SSL حفظ و نگهداری همین کلید خصوصی است و در صورتی که بتوان به کلید خصوصی دسترسی پیدا کرد یعنی می‌توان اطلاعات را خواند. کلید عمومی را هر کسی می‌تواند مشاهده کند اما کلید خصوصی را نه!
پس از دریافت کلید خصوصی، ارتباط امن شما با سرور برقرار شده و می‌توانید با خیالی تقریبا راحت در وبسایت به گشت و گذار بپردازید!

SSL چگونه امنیت داده‌ها را تضمین می‌کند؟


پروتکل SSL اطلاعاتی که قرار است تبادل شود را با الگوریتم‌های پیچیده‌ای رمزنگاری می‌کند تا اگر در بین راه شخص سومی این اطلاعات را به سرقت برد نتواند آن را بخواند. این اطلاعات فقط و فقط به وسیله کدهای Private Key قابل خواندن هستند و در صورتی که این کدها در دسترس دیگری قرار بگیرد به راحتی می‌تواند اطلاعات شما را شنود کند. یک شرکت سرویس‌دهنده‌ی SSL نیز همیشه به دنبال این است که کسی نتواند به کلید خصوصی دسترسی داشته باشد.

آیا SSL قابل اعتماد است؟


وقتی شما فرمی را بدون پروتکل SSL در یک وبسایت تکمیل کرده و ارسال می‌کنید، این اطلاعات به صورت یک فایل متنی به مقصد فرستاده می‌شود. اما وقتی پای SSL به میان می‌آید، این کدها به صورت ایمن یا در اصطلاح داخل یک تونل امنیتی انتقال داده می‌شوند که افراد بیگانه نمی‌توانند آنها را بخوانند. یعنی اگر سارق در میانه راه به این کدها دسترسی پیدا کند فقط کدهای نامفهومی را می‌بیند که با روش‌های پیشرفته‌ای کدگذاری شده‌اند و فقط در مرورگر کاربر و کامپیوتر سرور قابل رویت هستند اما اخیرا همین کدهای SSL نیز توسط دو پژوهشگر شکسته شدند.
اگر بخواهیم SSL را با شیوه متنی (Clear text) مقایسه کنیم بسیار بسیار ایمن‌تر و پایدارتر است و میلیون‌ها وبسایت از این شیوه برای حفظ محرمانه بودن اطلاعات خود استفاده می‌کنند اما این روش هم می‌تواند دستخوش حمله‌های امنیتی قرار بگیرد.

جعل گواهی امنیتی به چه صورت انجام می‌پذیرد؟


وقتی هکر به سرور سرویس‌دهنده SSL نفوذ کرده و اختیار سرور را به دست می‌گیرد، به راحتی می‌تواند درخواست‌های وارده از جانب وبسایت‌ها را مشاهده کرده و کاربران آن‌ها را به یک وبسایت جعلی با مقادیر جعلی منتقل نماید. کاری که در صفحه نخست Gmail شاهد آن بودیم. وقتی کاربران ایرانی وارد وبسایت gmail می‌شدند، پس از ارسال درخواست گواهی امنیتی از سوی وبسایت، به یک صفحه جعلی ساخته شده هدایت می‌شدند و وقتی نام کاربری و کلمه عبور خود را در صفحه جعلی وارد می‌نمودند، این اطلاعات به راحتی در اختیار شخص هکر قرار می‌گرفت حتی بدون اینکه خود وبسایت سرویس‌دهنده از این موضوع اطلاعی داشته باشد. به همین راحتی!