آشنایی با تکنولوژی sni
امروزه، امنیت ارتباطات و حفظ حریم خصوصی از اهمیت بالایی برخوردار است. بخصوص در ارتباطاتی که مانند پروتکل HTTPS انتقال دادههای حساس را دربرمیگیرند. تکنولوژی sni یا Server Name Indication به یک پروتکل در لایه انتقال (Transport Layer) اینترنت اشاره دارد که در عمل به وبسایتهایی کمک میکند که با اشتراک یک آدرس IP عمل کنند. در واقع، SNI به سرور ابری اجازه میدهد که در شبکههای امنی که از پروتکل SSL/TLS برای رمزنگاری دادهها استفاده میکنند، درخواستها را از یکدیگر تمایز دهند. این امکان باعث میشود که سرورها بتوانند بر روی یک IP میزبانیهای متعددی را اجرا کرده و از گواهینامههای SSL/TLS متفاوت برای هر میزبان استفاده کنند. SNI در حفظ امنیت و امکان اشتراک گذاری سرورها در یک آدرس IP نقش مهمی ایفا میکند.
در این مطلب به بررسی موارد زیر خواهیم پرداخت:
- تکنولوژی sni چیست
- دلایل استفاده از تکنولوژی sni
- بررسی نحوه کارکرد تکنولوژی sni
- آشنایی با مزایا و معایب تکنولوژی sni
- تفاوت بین تکنولوژی sni و san
تکنولوژی sni چیست
تکنولوژی sni تا حدودی مانند ارسال بسته به یک ساختمان آپارتمانی به جای خانه است. وقتی بستهای را به خانه شخصی پست میکنید، آدرس خیابان به تنهایی کافی است تا بسته را به شخص مناسب برسانید.
اما وقتی بستهای به یک ساختمان آپارتمانی ارسال میشود، علاوه بر آدرس خیابان، به شماره واحد آپارتمان نیز نیاز دارد؛ در غیر این صورت، ممکن است بسته به شخص دیگر تحویل داده شود و یا اصلا تحویل داده نشود.
بسیاری از وب سرورها بیشتر شبیه ساختمانهای آپارتمانی هستند تا خانه ها. وب سرورها میزبان چندین نام دامنه میباشند، بنابراین آدرس IP به تنهایی برای نشان دادن اینکه کاربر در تلاش است به کدام دامنه دسترسی پیدا کند، کافی نیست.
این عمل میتواند منجر به نشان دادن گواهی SSL اشتباه توسط سرور شود که از اتصال HTTPS جلوگیری میکند یا آن را خاتمه میدهد، درست مانند تحویل بستهای که اگر شخص صحیح آن را امضا نکند، بستهای به آن آدرس تحویل داده نمیشود.
هنگامی که چندین وبسایت بر روی یک سرور ابری میزبانی میشوند، یک آدرس آی پی واحد را به اشتراک میگذارند و هر وبسایت گواهی SSL مختص به خود را دارند، در این صورت ممکن است سرور در زمان اتصال ایمن سیستم کاربر به یکی از وبسایتها سردرگم شود که باید کدام گواهی SSL را نشان دهد.
این به این دلیل است که فرایند دستی (handshake) SSL/TLS قبل از اینکه دستگاه کاربر از طریق HTTP نشان دهد که به کدام وب سایت متصل است، رخ میدهد.
Server Name Indication یا همان SNI برای حل این مشکل طراحی شده است.
SNI افزونهای برای پروتکل TLS (که قبلاً پروتکل SSL نامیده میشد) است که در HTTPS استفاده میشود.
به منظور اطمینان از اینکه دستگاههای کاربر میتوانند گواهی SSL صحیح را برای وبسایتی که قصد دسترسی به آن را دارند، مشاهده کنند، این گواهی در فرایند دستی (handshake) TLS/SSL گنجانده شده است.
این افزونه امکان مشخص کردن hostname یا domain name وبسایت را در هنگام فرایند دستی (handshake) TLS به جای زمانی که اتصال HTTP پس از handshake باز میشود، فراهم میکند.
به بیان سادهتر، SNI این امکان را برای دستگاه کاربر فراهم میکند که بتواند یک اتصال امن با https://www.example.com باز کند، حتی اگر آن وبسایت در همان مکان (همان آدرس IP) https://www.samsung.com، https://www.a Other-website.com و https://www.example.io میزبانی شود.
بیشتر بدانید : نظارت بر ترافیک شبکه با نصب Ntopng در Debian
تکنولوژی sni از آنچه به عنوان “common name mismatch error” شناخته میشود، جلوگیری میکند: هنگامی که دستگاه کاربر به آدرس IP مناسب برای یک وبسایت میرسد، اما نام موجود در گواهی SSL با نام وبسایت مطابقت ندارد. اغلب این نوع خطا منجر به پیام خطای “Your connection is not private” در مرورگر کاربر میشود.
SNI به عنوان یک افزونه به TLS/SSL در سال 2003 اضافه شد. تقریباً همه مرورگرها، سیستم عاملها و وب سرورها از این تکنولوژی پشتیبانی میکنند و به استثنای برخی از قدیمیترین مرورگرها و سیستم عاملها هنوز در حال استفاده هستند.
دلایل استفاده از تکنولوژی sni
تکنولوژی sni به صاحبان وبسایت اجازه میدهد تا با تسهیل مدیریت گواهی SSL، ارتباطات خود را با کاربران و مشتریان خود ایمن کنند.
بدون SNI، هر وبسایت برای استفاده از رمزگذاری HTTPS به یک آدرس IP منحصربهفرد نیاز دارد که میتواند برای کسبوکارهای کوچک و شرکتهایی با بودجه محدود گران تمام شود.
sni همچنین مدیریت وبسایتها را آسان تر میکند، زیرا وب سرورها اکنون میتوانند چندین گواهی SSL/TLS را در یک آدرس IP میزبانی کنند.
این بدان معناست که صاحبان وبسایت میتوانند به راحتی وبسایتها را از حسابهای hosting خود اضافه یا حذف کنند.
تکنولوژی sni چگونه کار میکند
زمانی که از یک وبسایت بر روی HTTPS بازدید میکنید، مرورگر وب و وب سرور سایت شما باید از طریق فرایند دستی (handshake) SSL/TLS یک اتصال امن برقرار کنند. در طول این فرآیند، مرورگر وب پیامی را به سرور ابری ارسال میکند که شامل hostname وبسایت است.
در این تکنولوژی، hostname وبسایت در پیام Client Hello گنجانده شده است، که به سرور اجازه میدهد تا گواهی صحیح را برای استفاده در پیام Server Hello انتخاب کند.
در نتیجه، سرور میتواند چندین گواهی SSL را در یک آدرس IP میزبانی کند.
بیشتر بدانید : آشنایی با انواع هکر و تکنیکهای هک
اکثر وب سرورها و مرورگرهای مدرن از تکنولوژی sni پشتیبانی میکنند، اما در نسخههای قدیمیتر ممکن است این پشتیبانی را نداشته باشند.
در این موارد، مرورگر وب ممکن است یک گواهی عمومی SSL به جای گواهی صحیح دریافت کند که میتواند باعث بروز هشدار یا خطا شود.
مزایای تکنولوژی sni چیست
تکنولوژی sni کل فضای هاستینگ را هنگام نصب و مدیریت گواهیهای SSL تغییر داده است. در ادامه به بررسی مزایای اصلی این تکنولوژی خواهیم پرداخت.
میزبانی چند دامنهای
با استفاده از sni میتوانید چندین وبسایت را روی یک سرور ابری و آدرس IP میزبانی و امن کنید. این تکنولوژی به طور قابل توجهی هزینههای هاستینگ را کاهش و مدیریت SSL را ساده میکند.
انعطاف پذیری
SNI انعطاف پذیری را برای افزودن یا حذف وبسایتها از سرور بدون نیاز به پیکربندی مجدد سرور یا به دست آوردن آدرسهای IP اضافی را فراهم میکند.
حفظ امنیت
SNI به ارزیابی و اعتبارسنجی گواهینامههای امنیتی برای هر دامنه اجازه میدهد. این تکنولوژی به کاربران امکان میدهد تا به صورت امن با هر دامنه ارتباط برقرار کنند و از حریم خصوصی و امنیت ارتباط خود مطمئن شوند.
توزیع بار موثرتر
استفاده از SNI در سناریوهای توزیع بار (load balancing) به شرکتها و سازمانها کمک میکند تا بار ورودی را به صورت موثرتر بین سرورها توزیع کنند و کارایی سیستم را بهبود بخشند.
در حالی که SNI دارای مزایای قابل توجهی است، اما چند اشکال بالقوه در این تکنولوژی وجود دارد.
- بعضی از نسخههای قدیمی مرورگرها، سرورها و سیستمعاملها قادر به پشتیبانی از SNi نیستند.
- راهاندازی صحیح SNi نیازمند تنظیمات دقیق در سرور و شبکه است و مدیران IT باید به درستی تنظیمات و پارامترهای SNi را انجام دهند که برخی اوقات میتواند پیچیدگیهای فنی را به همراه داشته باشد.
- برخی از دامنهها و سرویسها هنوز از SNi پشتیبانی نمیکنند و ممکن است به درستی با آن ها کار نکند. البته ممکن است به دلیل تنظیمات اشتباه در سمت سرور یا عدم پشتیبانی از سمت سیستم کاربر باشد.
تفاوت بین تکنولوژی sni و san چیست
SNI و SAN هر دو روشی برای پشتیبانی از چندین گواهی SSL در یک سرور ابری واحد هستند. تفاوت اصلی بین SNI و SAN در این است که SNI یک فناوری سمت سرور است، در حالی که SAN یک ویژگی گواهی است.
همانطور که می دانید، SNI یک وب سرور را قادر میسازد تا چندین گواهی را در یک آدرس IP واحد میزبانی کند. هنگامی که یک کلاینت به سرور متصل می شود، SNI به سرور اجازه میدهد تا بر اساس نام دامنه ارائه شده در درخواست اولیه کاربر، تعیین کند که از کدام گواهی استفاده کند.
بیشتر بدانید : Load Average چیست
از سوی دیگر، SAN یکی از ویژگیهای گواهینامههای SSL است که به یک گواهی اجازه میدهد تا چندین نام دامنه را تحت یک نصب ایمن کند.
گواهی SAN شامل فهرستی از نامهای دامنه اضافی است که میتوانید با همان گواهی از آنها محافظت کنید.
اکثر مرورگرها و سرورهای ابری از SNI و SAN پشتیبانی میکنند. با این حال، برخی از سیستمهای قدیمی ممکن است با آنها ناسازگار باشند.
تکنولوژی sni از کدام مرورگرها پشتیبانی میکند
SNI اکنون با 99 درصد مرورگرها مانند Chrome،Mozilla،Opera و تمام سیستمهای سرور اصلی سازگار است.
شما میتوانید تکنولوژی sni را در Apache، Nginx،Ubuntu،Debian،CentOS و بسیاری از سیستمهای محبوب دیگر پیاده سازی کنید.
برخی از کتابخانهها نیز مانند Open SSL ،GnutTLS ،Python ،Oracle و Java از SNI پشتیبانی میکنند. هر زمان که نیاز به ایمن سازی چندین وبسایت در یک آدرس IP داشته باشید میتوانید از SNI استفاده کنید.
جمع بندی
تکنولوژی sni یک پروتکل مهم در حوزه امنیت وب است که در ارتباط با فرایند امنیتی HTTPS مورد استفاده قرار میگیرد. SNi اجازه میدهد که برنامههای کاربر، نام سرور مورد نظر خود را در هنگام برقراری ارتباط با سرورها تعیین کنند. بدون استفاده از sni، تنها یک گواهینامه SSL برای هر آدرس IP استفاده میشد که محدودیتهایی را برای هاستینگ چند دامنه ایجاد میکرد. اما با وجود این تکنولوژی، چندین دامنه میتوانند از یک آدرس IP استفاده کرده و هرکدام از آنها گواهینامههای SSL مختص به خود را داشته باشند. به کمک تکنولوژی sni، امنیت ارتباطات وب افزایش مییابد و حفظ حریم خصوصی کاربران تضمین میشود، زیرا هر دامنه میتواند از گواهینامههای SSL جداگانه خود استفاده کند. همچنین، این تکنولوژی به مدیران سرور امکان میدهد تا چندین دامنه را به صورت همزمان بر روی یک سرور میزبانی کنند و در نتیجه هزینههای مربوط به گواهینامههای SSL را بهینهسازی کنند. sni برای افرادی که چندین وبسایت، سرویس یا برنامه را مدیریت میکنند و به دنبال بهبود مدیریت سرورها و کاهش هزینهها هستند بسیار مفید است. از این رو، استفاده از تکنولوژی SNi میتواند باعث بهبود عملکرد سرورها، افزایش امنیت و البته صرفهجویی در هزینهها باشد.
[yasr_overall_rating]