در شبکه های کامپیوتری، port knocking یک روش برای باز کردن پورت مشخص در دیواره آتش، با دریافت درخواست از شبکه خارجی است. این پورت مشخص از خارج شبکه و با انجام عمل پویش مانند پورت اسکن کاملا بسته به نظر میرسد، اما برای درخواست مشخص شده، باز میشود. این عمل باز کردن پورت کاملا به صورت اتوماتیک انجام میشود. یکی از انواع روشهای knocking با عنوان single packet authentication شناخته میشود که در آن، یک بسته اطلاعاتی کد شده، فرستاده میشود تا پورت ارتباطی برای ادامه باز شود.
حفاظها (firewall) در معماری امنیت شبکه، برای فیلتر کردن بستهها یا اعتبارسنجی یک پروتکل استفاده میشوند و در این دو کار، به خوبی عمل میکنند. اما حفاظها اطلاعات کمی درباره برنامهها و روند استفاده شبکه برای هر کدام از آنها و همچنین کاربران شبکه دارد، این مساله باعث بروز دو مشکل میشود:
1 محدود کردن دسترسی به شبکه داخلی از طریق بیرون.
2 محدود کردن دسترسی کاربران داخلی به تعداد محدود پورتهای مشخص.
توجه شود که خود محدودیتهای اعمال شده برای کاربران، به دلیل محدود کردن روشهای سو استفاده و حمله به شبکه است و اگر روشی باشد که بدون محدود کردن کاربران مجاز، بتواند در برابر کاربردهای غیر مجاز به خوبی عمل کند، روش مناسبتری خواهد بود.
معماری نرمافزارهای شبکه بر اساس معماری clinet-server میباشد. قسمت clinet که معمولا یک رابط کاربری است برای ارتباط با کاربر، اتصال به server و درخواست یک سرویس خاص از آن. برای مثال یک مرورگر اینترنت به server متصل میشود و درخواست خود را برای یک صفحه یا سند خاص به آن میدهد. کاربردهای Peer-to-Peer هم نقش server را دارد و هم نقش clinet را. برنامه ای مثل پراکسی، برای مرورگر یک برنامه سرور ایت و برای وب سرور یک کلاینت حساب میشود.
پروتکل اینترنت IP چه مشکلات امنیتی اساسی دارد؟
- هر کاربر میتواند با روند ip spoofing خود را جای هر ip دیگر نشان دهد.
- در پروتکل tcp عدد ابتدایی قابلیت حدس زدن را دارد، بنابراین امکان سرقت نشست session hijack بسیار افزایش میابد.
- بسیاری از پروتکل های مسیریابی موجود در اینترنت ناامن طراحی شده اند.
- بسته ip قابلیت تکه تکه frangmentation را دارند، که به یک attacker اجازه میدهد بسته اطالعاتی را به چند قسمت تقسیم کند و در چند بخش بفرستد تا نتوان جامعیت آن را کشف کرد.
بعد از این مقدمه نسبتا طولانی به مبحث port knocking ادامه میدهیم.
اگر بخواهیم مقایسه ای انجام دهیم بین روند قدیمی پروتکل اینترنت با روند port knocking، میتوان به یک در تشبیه کرد. در پروتکل اینترنت، مانند این است که در باز است اما کنار در یک نفر نگهبان وجود دارد. با روند ناکینگ اگر مقایسه کنیم، مانند این است که در بسته است، و بعد از در زدن و احراز هویت در باز میشود. همان نگهبانها هم وجود دارند.
یک توضیح اضافی در اینجا لازم است، اینکه در روند پروتکل اینترنت در باز است، همان به معنی باز بودن پورت است.
سرویس port knocking در مقابل یک بسته حاوی درخواست که کدگذاری نیز شده است، آن را به سرویسهای دیگر که خود را ثبت کردهاند تحویل میدهد، و اگر سرویسی توانست پیام دریافتی را کدگشایی کند، پورت مورد نظر باز خواهد شد.
یک تز فوق لیسانس با موضوع برسی کارایی و افزایش کارایی حفاظ ها با این روش با عنوان زیر در لینک http://www.ciphertext.info/papers/thesis-degraaf.pdf برای مطالعه کاملتر وجود دارد.