Hijacking در اصل بمعنای هواپیماربایی و یا سایر وسایط نقلیه بهمراه مسافران آن است. ولی اجازه دهید
ما از واژه ارتباط ربایی استفاده کنیم. ارتباط ربایی نوعی از حمله به شبکه است که مهاجم کنترل ارتباز را در اختیار می گیرد
– مانند یک هواپیماربا که کنترل پرواز را در اختیار می گیرد- نفوذگر بین دو موجود در شبکه قرار می گیرد و برای هرکدام از طرفین ارتباط خود را جای دیگری جامی زند!
در نوعی از ارتباط ربایی (که بعنوان man in the middle نیز شناخته می شود)، مهاجم کنترل یک ارتباط برقرارشده
را در حالیکه در حال انجام است، در اختیار می گیرد. نفوذگر پیام ها را در هنگام تبادل «کلید عمومی» دریافت می کند
و آنها را با جایگزین کردن کلیدعمومی خودش، برای طرف درخواست کننده مجدداً ارسال می کند، بطوریکه دو طرف اولیه هنوز بنظر
در حال ارتباط مستقیم هستند. نفوذگر از برنامه ای استفاده می کند که برای کلاینت بنظر سرور بیاید و برای سرور بنظر کلاینت.
این نوع حمله ممکن است فقط برای دستیابی به پیام ها بکار رود یا توسط آن حمله گر در پیام ها تغییر ایجاد کند و سپس آنها را ارسال کند.
برای اینکه بتوان امنیت را در تبادل پیام ها برقرار کرد، از رمزنگاری استفاده می شود. به این ترتیب که فرستنده متن
اولیه پیام را رمز می کند و گیرنده آنرا رمزگشایی می کند، تا به متن اصلی پیام پی ببرد. متن رمزشده بخودی خود
قابل فهم نیست، مگر اینکه بتوان آنرا رمزگشایی کرد. برای رمزکردن متن از الگوریتم رمزنگاری بهمراه کلید رمزنگاری استفاده می شود.
چنانچه کلید مورد استفاده برای رمزکردن و رمزگشایی پیام یکی باشد، رمزنگاری یا کلید، متقارن نامیده می شود.
چون دو طرف ارتباط باید از یک کلید استفاده کنند، بنابراین باید این کلید مبادله شود، که خود این عمل از امنیت ارتباط می کاهد.
بهمین منظور از الگوریتم های نامتقارن رمزنگاری استفاده می شود. در این الگوریتمهای نامتقارن، کلید رمزکردن و رمزگشایی، یکی نیستند
و در عین حال با دانستن یکی از آنها، نمی توان دیگری را بدست آورد. بنابراین یک جفت کلید وجود دارد که یکی کلید اختصاصی و دیگری کلید عمومی است
. هر شخص برای ارتباط با دیگران، آنها را تنها از کلید عمومی خویش مطلع می سازد. برای ارسال پیام به این شخص، متن پیام
با استفاده از کلید عمومی این فرد رمز می شود به وی فرستاده می شود و وی پس از دریافت، متن را با کلید اختصاصی خودش رمزگشایی می کند.
فرض کنید A و B می خواهند یک ارتباط امن داشته باشند. A به B کلید عمومی خودش را اعلام می کند و از B کلید عمومی وی را درخواست می کند
. B کلید عمومی A را دریافت می کند و کلید عمومی خودش را برای A ارسال می کند. چنانچه A بخواهد برای B پیامی بفرستد، ابتدا آن را
با کلیدعمومی B رمز می کند و برای B ارسال می کند. B متن رمزشده را دریافت می کند و با استفاده از کلید اختصاصی خودش رمزگشایی می کند.
چنانچه متن رمز شده به X برسد، نمی تواند از محتوای آن مطلع شود، زیر از کلید اختصاصی B اطلاعی ندارد.
حال ببینیم همین X چگونه می تواند مرتکب ارتباط ربایی شود! X در نقطه ای بین A و B قرار می گیرد. A برای ارسال پیام به B ابتدا یک درخواست
به سمت Bمی فرستد و کلید عمومی B را درخواست می کند، غافل از اینکه این در خواست به X می رسد. X این درخواست را به B می فرستد
در حالیکه وانمود می کند خودش A است. B با دیدن این درخواست کلید عمومی خود را به درخواست کننده، به گمان اینکه A است می فرستد.
X کلید عمومی B را دریافت می کند، اما کلید عمومی خودش را برای A می فرستد و A گمان می کند که این کلید عمومی B است. حال A پیام خود
را با ظاهراً کلید عمومی B ولی در واقع کلید عمومی X رمز می کند و به ظاهراً B ولی در واقع X می فرستند. X این پیام را دریافت می کند و با کلید اختصاصی خودش
رمزگشایی می کند، از محتوای آن مطلع می شود یا در آن تغییر ایجاد می کند و متن حاصل را با کلید عمومی B که در اختیار دارد، رمز می کند
و برای B ارسال می کند. در حالیکه B گمان می کند پیام دریافت شده، از طرف A ارسال شده است. برای ارسال پیام امن از B به A، مراحل فوق
بالعکس انجام می گیرد. به این ترتیب X بین A و B قرار می گیرد و از محتوای پیام های آنها مطلع می شود و آن ها را دستکاری می کند،
بدون اینکه A و B متوجه غیرمستقیم بودن ارتباط شوند.