3Way Handshake چیست؟ همانطور که قبلا هم در انجمن تخصصی فناوری اطلاعات ایران مطالعه کردید بصورت کلی ما پروتکل ها را از نظر نوع ارتبط به دو دسته اتصالگرا یا Connection Oriented و عدم اتصال گرا یا Connectionless تقسیم بندی می کنیم ، یکی از پروتکل های بسیار معروف در بحث اتصالگرا ، پروتکل TCP یا Transmission Control Protocol است که بیشترین استفاده را در ارتباطات مهم و حیاتی در سرویس ها بر عهده دارد.
TCP برای برقراری ارتباط ابتدا باید درستی و صحت ارتباط تایید شود و سپس ارتباط برقرار شود ، فرآیند برقراری ارتباط در پروتکل TCP توسط یک فرآیند سه مرحله ای به نام Three-way Handshake یا Triple-Handshake انجام می شود ، در واقع هرگاه صحبت از Three-Way Handshake شد یعنی پروتکل ها قصد برقراری ارتباط با همدیگر را دارند ، فرآیند Three-Way Handshake در پروتکلی مثل TCP به شکل زیر انجام می شود :
در نهایت بعد از اینکه Source یک بسته ACK در تایید برقراری ارتباط به Destination ارسال کرد ارتباط آماده برقراری است ، بعد از اینکه این فرآیند سه مرحله ای به درستی انجام شد به این معنی است که پورت FTP یا 21 ای که ما در اینجا درخواست داده ایم بر روی سرور باز یا Open است و آماده برقراری ارتباط است ، در حالت عادی بعد از برقرار شدن ارتباط Three Way Handshake فرآیند شروع ارتباط انجام می شود اما اگر اینکار توسط یک نرم افزار اسکنر انجام شود معمولا در نهایت در صورت بسته بودن پورت مورد نظر بسته اطلاعاتی FIN یا FINISH بعد از برقراری موفقیت آمیز ارتباط ارسال می شود و یا اینکه بسته RST یا Reset توسط نرم افزار ارسال می شود تا ارتباط بسته شود. همانطور که گفتیم این فرآیند در تمامی پروتکل های Connection oriented به این شکل انجام می شود.
اگر بخواهیم مقایسه ای داشته باشیم برای درک بهتر این موضوع کافیست ساختار برقراری یک ارتباط تلفنی قدیمی را در نظر بگیریم ، شما گوشی را بر می دارید و شماره شخص مورد نظرتان را میگیرید ( همان پورت FTP ای که درخواست دادیم ) سپس بعد از برقراری ارتباط تلفنی و برداشتن گوشی تلفن شخص مورد نظر پاسخ می دهد الو بفرمایید ( شما میگید الو از بندست D: ) این کلمه الو همان SYN//ACK است و در نهایت شما می گویید سلام ، میخواستم در خصوص موضوعی با شما صحبت کنم و این همان فرآیند ACK آخر است که ارتباط ما آغاز می شود و صحبت های دو نفر از اینجا شروع می شود ، نکنید این کارارو بده زشته ... D:
در ارتباطات استانداردی که در پروتکل TCP انجام می شود اولین قسمتی که برای برقراری ارتباط بررسی می شود در ساختار بسته اطلاعاتی قسمتی به نام TCP Packet Header و به ویژه قسمتی به نام FLAG است ، در واقع قسمت FLAG ابتدا بررسی می شود و بعد از بررسی های لازم ارتباط بین سیستم ها برقراری می شود و دستورات به سیستم ها داده می شود ، در این قسمت از بسته اطلاعاتی FLAG های مختلفی دیده می شوند که مهمترین آنها به شرح زیر می باشند :
اسکن کردن با SYN یا SYN Scanning معمولا با استفاده از سه FLAG معروف SYN و ACK و RST انجام می شود.شما می توانید با استفاده از این FLAG ها و بعضا دستکاری کردن بسته های اطلاعاتی ارسالی به سمت سرور اطلاعات بسیار خوبی در خصوص پورت ها و سرویس های سیستم هدف بدست بیاورید که در فرآیند Enumeration بیشتر انجام می شود. تصویر محل قرارگیری Flag ها در پروتکل TCP را در بالا می توانید مشاهده کنید که در قسمت Header قرار گرفته است.
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود