SNI و ارتباط آن با WAF

0 380

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

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

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

درست در وسط این قائله، SNI در قالب افزونه ای روی پروتکل https، نقش آجیل مشکل گشا را بازی خواهد کرد! اما چطور؟

SNI با قرار دادن خودش در فرآیند هندشیک، این اطمینان را به کلاینت میدهد تا به ازای وب سایتی که قصد ارتباط با آن را دارد، سرتیفکیت درست و مخصوص به آن را از سرور دریافت کند. کاری که این افزونه انجام میدهد، اینست که نام host یا نام دامین را درست در زمان انجام هندشیک و جائی که به آن احتیاج است، مشخص میکند. دقت داشته باشیم که در حالت عادی و بدون کمک SNI، این اتفاق بعد از هندشیک و در هنگام تشکیل کانکشن http رخ میدهد.

حالا اگه برای بحث آفلودینگ از Web Application Firewall (WAF) استفاده میکنیم، باید در تمام صحبت های بالا، WAF را جایگزین کلمه سرور کنیم. در واقع در این حالت، WAF وظیفه ارائه سرتیفیکیت صحیح به کلاینت را دارد و به همین دلیل باید SNI را روی آن کانفیگ کنیم.

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.