‏نمایش پست‌ها با برچسب اینترنت. نمایش همه پست‌ها
‏نمایش پست‌ها با برچسب اینترنت. نمایش همه پست‌ها

۱۳۹۲ خرداد ۱۸, شنبه

امنیت در اینترنت به زبان ساده (قسمت دوم - رمزنگاری)


مرور گذشته و برنامه‌ی این قسمت

در قسمت اول این مجموعه اصول اولیه‌ی برقراری ارتباط برروی اینترنت شرح داده شد. در پایان قسمت قبل به این موضوع اشاره شد که اگر کسی به مسیر‌یاب‌های بینی یا به‌طور خاص رایانه‌های شرکت اصلی‌ای که خدمات اینترنت را از آن دریافت می‌کنید، دسترسی داشته باشد، به محتوای همه‌ی ارتباطات شما هم دسترسی دارد. باز اشاره شد که روشی که برای رفع این‌گونه مشکلات و بهبود امنیت شبکه‌ها استفاده می‌شود، رمزکردن متن ارتباطات است و این، موضوع بحث نوشته‌ی فعلی است. ابتدا به شکل کلی به روش‌های رمز‌نگاری کلید عمومی اشاره می‌شود و یک روش خاص با جزییات بیش‌تر (به عنوان مثال) بررسی می‌شود. اگر علاقه‌مند به جزییات ریاضی این روش‌ها نیستید می‌توانید از بخش «بررسی روش آر‌اس‌ای» بگذرید. اگر حتی فرصت خواندن بقیه‌ی بخش‌ها را هم ندارید، قطعه فیلمی که در بخش «استفاده از رمزنگاری بر روی اینترنت» استفاده شده (و ترجمه‌ی فارسی آن) را ببینید و توضیحات مرتبط با آن را مرور کنید.


مبنای روش‌های رمزنگاری «کلید عمومی»

همه‌ی اطلاعات برروی شبکه‌های رایانه‌ای به شکل اعداد منتقل می‌شود. جزییات تبدیل حروف به اعداد و برعکس خارج از بحث ماست. به مثال شبکه‌های رایانه‌ای بازخواهیم گشت ولی فعلا فرض کنید جمعی از آدم‌ها دور میزی نشسته‌اند و هرکس صدای بقیه را می‌تواند بشنود. احمد می‌خواهد عددی، مثلا ۱۲۱ را به شکل رمزی برای بهروز بفرستد به‌طوری که فقط بهروز بتواند آن را رمزگشایی کند. اگر بهروز و احمد می‌توانستند برروی کلید رمز مشترکی توافق کنند، در آن صورت حل مسئله ساده بود. ولی فرض کنید که هیچ دو نفری مجاز به صحبت خصوصی نیستند، در این‌صورت به‌نظر شما آیا احمد قادر به ارسال پیام به شکل رمز شده است؟ پاسخ مثبت است و روش‌های مختلفی برای این‌کار وجود دارد که به روش‌های رمزنگاری با «کلید عمومی» معروفند. در این روش‌ها هر نفر، مثلا بهروز، یک کلید عمومی و یک کلید خصوصی دارد. کلید عمومی را همه می‌دانند، بنابراین بهروز می‌تواند آن را به‌شکل عمومی دور میز اعلام کند. الگوریتم رمز کردن یک پیام با داشتن کلید عمومی هم برای همه مشخص است ولی باز کردن رمز بدون داشتن کلید خصوصی تقریبا غیرممکن است.

ممکن است در ابتدا ادعای بالا غیر معقول به‌نظر برسد و برای همین جزییات یکی از رایج‌ترین این روش‌ها را در بخش بعدی (پایین) بررسی کرده‌ایم. اگر علاقه‌ای به بررسی جزییات ریاضی این روش‌ها ندارید، کافیست همین‌قدر بدانید که بنیان غیر ممکن بودن شکستن رمز بدون کلید خصوصی، بر مسائلی استوار است که برای حل آن‌ها، حتی با سریع‌ترین رایانه‌ها هم به هزاران سال‌ زمان نیاز است! مثلا یکی از مسائل رایجی که در رمز‌نگاری کلید عمومی استفاده می‌شود، مسئله‌ی تجزیه‌ی حاصل‌ضرب دو عدد اول، به عامل‌های اول آن است. کلید عمومی در این‌جا، حاصل‌ضرب دو عدد اول است و کلید خصوصی همان دو عدد یا عامل اول. برای رمزکردن یک پیام، داشتن حاصل‌ضرب کافی‌ست ولی بدون دانستن عوامل اول (کلید خصوصی) باز کردن پیام رمز شده عملا غیرممکن است.

تصویر زیر یک شهود ساده نسبت به این روش‌ها به‌دست می‌دهد، بدون این‌که وارد بحث ریاضی آن شود:

شهودی ساده از رمزنگاری با کلید عمومی. در این تصویر قفل‌های باز با نام بهروز «کلید عمومی» اویند و به تعداد زیاد در دسترس همه قرار دارند. کلید همه‌ی این قفل‌ها یکی‌ست و تنها یک نمونه از آن وجود دارد که پیش بهروز است، این همان «کلید خصوصی» اوست. (برای ساخت این تصویر از تصویر‌های وب‌گاه www.clker.com استفاده شده است.)
در این‌جا کلید عمومی هر شخص به شکل قفل‌های باز نشان داده شده که نام آن شخص روی آن نوشته و از این نوع قفل به وفور در دسترس همه است، البته در تصویر برای سادگی فقط قفل‌های بهروز نشان داده شده. همه‌ی قفل‌های بهروز با یک کلید باز می‌شود که تنها یک نمونه از آن وجود دارد و آن هم نزد بهروز است. این کلید، همان کلید خصوصی بهروز است. وقتی احمد (یا هر کس دیگری) بخواهد پیامی خصوصی (رمز شده) برای بهروز بفرستد، متن پیامش را داخل جعبه‌ای می‌گذارد و با استفاده از یکی از قفل‌های روی میز که نام بهروز را دارد، آن را قفل می‌کند. هیچ‌کسی جز بهروز نمی‌تواند جعبه را باز کند، بنابراین با این روش، بدون نیاز به صحبت خصوصی بین بهروز و احمد، احمد می‌تواند پیامی خصوصی برای بهروز بفرستد.



بررسی روش آر‌اس ای

یکی از روش‌های معمول برای رمزنگاری با کلید عمومی، روش یا الگوریتم آر‌اس‌ای (RSA) است. نام این الگوریتم از حرف اول سه مبدع آن گرفته شده، نگاه کنید به RSA در ویکی‌پدیا. در ادامه به‌شکل خیلی خلاصه این روش را بررسی می‌کنیم ولی اگر حوصله‌ی کمی ریاضیات را ندارید می‌توانید از خواندن این بخش صرف‌نظر کنید و مستقیما به ادامه‌ی نوشته در بخش بعدی بروید!

برای توضیح روش آر‌اس‌ای با استفاده از مثال بالا (ارسال عدد ۱۲۱ توسط احمد برای بهروز):
  1. بهروز دو عدد اول بزرگ انتخاب می‌کند به نام‌های p و q سپس حاصل‌ضرب n=pq را به‌طور عمومی به همه اعلام می‌کند.
  2. بهروز هم‌چنین حاصل‌ضرب f=(p-1)(q-1) را هم حساب می‌کند ولی آن را برای خودش نگه‌می‌دارد.
  3. مرحله‌ی بعدی، انتخاب عدد اول دیگری به اسم e است به شکلی که بزرگ‌ترین مقسوم‌علیه مشترک f و e مساوی یک باشد (لازم نیست e خیلی بزرگ باشد). بهروز این عدد را نیز به‌شکل عمومی به همه اعلام می‌کند. ولی در عین‌حال عدد دیگری به اسم ‌d انتخاب می‌کند به‌شکلی که حاصل‌ضرب de در تقسیم بر f باقیمانده‌اش برابر یک باشد. دقت کنید که اعداد p, q, f, d را تنها بهروز می‌داند ولی n, e را همه می‌دانند.
  4. حالا برای این‌که احمد عدد خودش (یا همان ۱۲۱) را به شکل رمزشده برای بهروز بفرستد آن را به‌توان e می‌رساند و باقی‌مانده‌ی این عدد بر n را به شکل عمومی اعلام می‌کند يعنی باقیمانده‌ی ۱۲۱e در تقسیم بر n .
  5. در بین کل جمع، تنها بهروز می‌تواند به‌سرعت به عدد رمز شده، یعنی ۱۲۱ پی ببرد! برای این‌کار بهروز باقی‌مانده‌ی فرستاده شده توسط احمد را به توان d می‌رساند و مجددا باقی‌مانده تقسیم این عدد بر n را حساب می‌کند. این باقیمانده برابر ۱۲۱ خواهد بود!
بررسی این‌که چرا باقیمانده‌ی نهایی برابر عدد رمزشده‌ی اولیه است خارج از حوصله‌ی این نوشته است. به علاوه نکته‌ی کلیدی این روش این است که بدون داشتن p و q محاسبه‌ی d از نظر پیچیدگی محاسبات، کاری بسیار دشوار است و اگر p و q به اندازه‌ی کافی بزرگ باشند تقریبا غیر ممکن. ولی همین محاسبه اگر p و q مشخص باشند خیلی ساده است. بنابراین کسی جز بهروز نمی‌تواند d را حساب کند و بدون آن رمزگشایی پیام ممکن نیست. نهایتا دقت کنید که n برای همه مشخص است و همه می‌دانند که این عدد حاصل‌ضرب دو عدد اول است ولی مسئله‌ی «تجزیه‌ی یک عدد به عوامل اول» در زمان کوتاه «احتمالا» با کامپیوتر‌های امروزی غیرممکن است. برای مسئله‌ی تجزیه اعداد صحیح یا Integer Factorization الگوریتم سریعی پیدا نشده است. به عبارت ساده منظور از این گزاره این است که برای تجزیه‌ی عددی با b بیت زمانی معادل ab لازم است که در آن a یک عدد بزرگ‌تر از یک است، مثلا ۲b. چون در روش آراس‌ای در استفاده‌های واقعی p, q اعداد اول با ۱۰۲۴ یا ۲۰۴۸ بیت‌اند، عملا زمان لازم برای تجزیه‌ی n=pq آن‌قدر زیاد است که بدون داشتن p یا q تجزیه‌ی n غیر ممکن می‌شود. اگر علاقمندید یک مثال عددی از این روش را ببینید به پاورقی مراجعه کنید. بیایید در یک مثال ساده روش آراس‌ای را تحقیق کنیم. همان‌طور که گفته شد p، q، و n اعداد بزرگی‌اند ولی ما برای سادگی یک مثال کوچک را بررسی می‌کنیم:
  1. p=۱۷‌، q=۳۱، n=۱۷×۳۱=۵۲۷
  2. f=(p-1)(q-1)=۱۶×۳۰=۴۸۰
  3. e=۱۳ و d=۳۷ توجه کنید که باقی‌مانده‌ی ۱۳×۳۷ بر ۴۸۰ برابر یک است. بهروز n=۵۲۷ و e=۱۳ را به شکل ‌«عمومی» به همه اعلام می‌کند ولی d=۳۷ را به‌شکل «خصوصی» نگه می‌دارد.
  4. احمد باقیمانده‌ی ۱۲۱۱۳ را بر ۵۲۷ حساب می‌کند و حاصل، یعنی ۱۰۰ را اعلام می‌کند.
  5. بهروز باقی‌مانده‌ی ۱۰۰۳۷ بر ۵۲۷ را حساب می‌کند. اگر این محاسبه را انجام دهید خواهید دید که حاصل ۱۲۱ است.


استفاده از رمزنگاری بر روی اینترنت

احتمالا تا الان متوجه شده‌اید که روش‌های رمزنگاری با کلید عمومی، چرا برای امنیت برروی اینترنت مهم است. محتوای ارتباطات شما ممکن است برای خیلی از افرادی که به رایانه‌های بین مسیر دسترسی دارند مشخص باشد. بنابراین برای تماس امن با رایانه‌های مقصد، مثلا رایانه‌ی بانک یا گوگل باید از روشی استفاده کرد که رمز کردن پیام برای هر کس ساده باشد، ولی تنها مقصد پیام بتواند آن را رمزگشایی کند، یعنی همان چیزی که روش‌های رمزنگاری با کلید عمومی برای ما فراهم می‌کنند.


توضیح ساده‌ی امنیت بر روی اینترنت، با اشاره‌ی غیر مستقیم به رمزنگاری با کلید عمومی. برای مشاهده‌ی فیلم با زیر‌نویس فارسی اینجا را ببینید و از فهرست ترجمه‌های زیر فیلم (Select Language)، فارسی (Persian) را انتخاب کنید، توجه کنید که عبارت‌های داخل پرانتز در متن اصلی نیست. ترجمه‌ی فارسی فیلم در پانوشت‌های همین نوشته هم موجود است.
نیمه‌ی دوم این فیلم، یعنی ارسال کلید با استفاده از جعبه و قفل فروشگاه، مثالی از استفاده از رمزنگاری با کلید عمومی است. در این‌جا قفل ارسالی، کلید عمومی فروشگاه است و کلید این قفل، همان کلید خصوصی فروشگاه است.
قطعه فیلم کوتاه رو‌به‌رو شهود خوبی از رمزنگاری بر روی اینترنت می‌دهد. اگر مایلید ترجمه‌ی فارسی این قطعه فیلم را به شکل زیرنویس بر روی فیلم تماشا کنید به این برگه مراجعه کنید. متن ترجمه در پانوشت هم موجود است. اگر مایلید ترجمه‌ی فارسی این قطعه فیلم را به شکل زیرنویس بر روی فیلم تماشا کنید به این برگه مراجعه کنید. متن زیر همان زیرنویس‌ها با ذکر زمان شروع هر قسمت است (توجه کنید که عبارت‌های داخل پرانتز در متن اصلی نیست و برای توضیح بیش‌تر در زمان ترجمه اضافه شده است).
  • 0:00 – 0:03
    امنیت اینترنتی چگونه کار می‌کند.
  • 0:04 – 0:12
    ما امروزه بیش‌تر و بیش‌تر خرید اینترنتی انجام می‌دهیم و این به این معنی است که باید اطلاعات حساس کارت اعتباری‌مان را بر روی وب بفرستیم.
  • 0:12 – 0:19
    ولی نمی‌توانیم این جزییات را بدون تغییر بفرستیم زیرا هیچ وقت نمی‌دانید چه کسی ممکن است به اطلاعات ارسالی شما گوش دهد.
  • 0:20 – 0:24
    بنابراین کاری که انجام می‌دهیم، ارسال اطلاعات به شکل رمز شده است.
  • 0:24 – 0:30
    می‌توانید به این شکل به آن فکر کنید: این قفل، یک قطعه برنامه‌ی کامپیوتریست که اطلاعات را رمز می‌کند
  • 0:30 – 0:35
    این کلید یک برنامه‌ی دیگر است که آن را در سوی دیگر رمزگشایی می‌کند.
  • 0:36 – 0:46
    کاری که ما باید بکنیم، اگر بخواهم اطلاعات کارت اعتباری‌‌ام را بر روی شبکه بفرستم، این است که آن را درون جعبه‌ای قرار دهم،‌ قفلش کنم، و کلید را پیش خودم نگه دارم.
  • 0:46 – 0:50
    بعد از آن می‌توانم آن را برای هرکس بخواهم بفرستم.
  • 0:50 – 0:57
    اهمیتی ندارد اگر در طول مسیر کس دیگری آن را دریافت کند، به‌خاطر این‌که رمز شده است و هیچ‌کس دیگری بدون داشتن کلید من نمی‌تواند آن را باز کند.
  • 0:58 – 1:03
    نهایتا، اطلاعات کارت اعتباری من با امنیت کامل به فروشگاه اینترنتی خواهد رسید.
  • 1:04 – 1:12
    حالا یک کار دیگر باقی می‌ماند: من باید کلیدم رابه فروشگاه اینترنتی بفرستم بدون این‌که کسی در بین راه بتواند صاحب آن شود. این‌کار به این شکل انجام می‌شود:
  • 1:12 – 1:21
    فروشگاه اینترنتی برای من یک جعبه می‌فرستد، به‌همراه یک قفل باز بدون کلید (این قفل همان «کلید عمومی» فروشگاه است).
  • 1:21 – 1:29
    حالا من کلیدم را داخل جعبه‌ی آن‌ها قرار می‌دهم و با قفل فروشگاه آن را قفل می‌کنم.
  • 1:31 – 1:35
    نه من و نه هیچ کس دیگری قادر به باز کردن آن نخواهد بود، فقط فروشگاه اینترنتی کلید قفل را دارد (این کلید، همان «کلید خصوصی» فروشگاه است).
  • 1:35 – 1:39
    حالا من می‌توانم کلیدم را با امنیت کامل برای فروشگاه بفرستم.
  • 1:39 – 1:45
    در این‌جا هم اهمیتی ندارد که چه کسی در بین راه جعبه را دریافت کند، چون قفل است و فقط فروشگاه اینترنتی می‌تواند آن را باز کند.
  • 1:45 – 1:55
    نهایتا جعبه به فروشگاه اینترنتی می‌رسد. در آن‌جا با استفاده از کلید فروشگاه، جعبه را باز می‌کنند و کلید من را از آن خارج کرده، جعبه اول را با استفاده از این کلید باز می‌کنند.
  • 1:55 – 2:00
    به این شکل، اطلاعات کارت اعتباری من، با امنیت کامل به دست فروشگاه اینترنتی می‌رسد.
توجه کنید که در هیچ‌کجای این فیلم اشاره‌ای به رمزنگاری با کلید عمومی نمی‌شود، ولی شما قاعدتا بعد از مشاهده‌ی فیلم متوجه استفاده از این روش شده‌اید. به‌طور مشخص، در نیمه‌ی دوم فیلم، آنجا که فروشگاه اینترنتی جعبه و قفل باز را برای خریدار می‌فرستد، این قفل باز در واقع کلید عمومی فروشگاه است، همان‌طور که در مثال احمد و بهروز هم اشاره شد . کلید خصوصی فروشگاه هم همان کلید این قفل باز است. تصویر و مثال شهودی قفل‌ها که در انتهای بخش توصیف رمزنگاری با کلید عمومی ذکر شد، از همین قطعه فیلم اقتباس شده است. دقت کنید که کلیدی که خریدار داخل جعبه‌ی قفل شده قرار می‌دهد، کلید عمومی یا خصوصی کسی نیست و می‌تواند هر پیام رمز شده‌ای باشد. این کلید در واقع همان رمز مشترکی است که فروشگاه و خریدار با استفاده از آن می‌توانند یک صحبت خصوصی انجام دهند و در مثال‌های واقعی طول عمر این رمز مشترک، معمولا به اندازه‌ی تنها یک خرید است و بعد از دور انداخته می‌شود.


مشکل «جاسوس بین راه» کماکان باقیست!

رمزنگاری با کلید عمومی، ابزار قدرتمند و لازمی برای ارتباط امن برروی اینترنت است اما کافی نیست! کمی به مشکل «جاسوس بین راه» که در انتهای قسمت اول (و ابتدای همین قسمت) به آن اشاره شد، فکر کنید. به‌طور مشخص به تصویر بالا برای ارتباط احمد و بهروز، یا به قطعه فیلمی که مشاهده کردید فکر کنید و ببینید آیا راهی برای «جاسوس بین راه» وجود دارد تا به محتوای ارتباطات رمز شده دسترسی پیدا کند؟ پاسخ مثبت است و این موضوع بحث قسمت سوم این مجموعه خواهد بود. به‌عنوان راهنمایی و مقدمه‌ی قسمت بعد، به این فکر کنید که اگر جاسوس بین راه قفلی «جعلی» به اسم فروشگاه اینترنتی (در فیلم بالا) برای خریدار بفرستد چه اتفاقی می‌افتد؟ یا مثلا اگر در مثال بهروز و احمد، یکی از افراد دور میز، قفل خودش را روی میز بگذارد ولی نام بهروز را روی آن بنویسد نتیجه چیست؟


پانوشت‌ها

۱۳۹۲ اردیبهشت ۱, یکشنبه

امنیت در اینترنت به زبان ساده (قسمت اول)


مقدمه

امروزه استفاده از اینترنت جزء ضروری زندگی خیلی از ما شده. جستجوی پاسخ سوالی یا تحقیق در مورد موضوعی، ارتباط با دوستان، اطلاع از اخبار، انجام کارهای اداری و بانکی، حتی تفریح‌های سابقا رادیوتلویزیونی، و خیلی کارهای دیگر همگی از طریق اینترنت قابل انجام است. در این بین تصور کنید که کسی همه‌ی کنش‌های شما بر روی شبکه را ببیند، از شماره‌ی حساب بانکی شما و رمز ورود به آن گرفته تا آدرس ومحتوای ایمیل‌های شما، همه‌ی وب‌سایت‌هایی که به آن سر می‌زنید و غیره. طبیعی است که از چنین اطلاعاتی به راحتی می‌توان سوء استفاده کرد. به خصوص اگر در کشوری زندگی می‌کنید که مفاهیمی مانند احترام به حریم خصوصی و قوانین سخت‌گیرانه برای مبارزه با جرایم اینترنتی چندان پیش‌رفته نیست یا اصلا وجود ندارد. یا حتی بدتر از آن، خود دولتی که باید مدافع این حریم باشد به دلایل امنیتی بزرگ‌ترین مشتری این اطلاعات شخصی باشد.

سفارش پیتزا در دنیایی بدون احترام به حریم خصوصی!

دلایل بالا احتمالا کافیست تا حداقل آشنایی با امنیت برروی شبکه را برای همه‌ی کابران این شبکه ضروری کند و هدف این مجموعه از نوشته‌ها هم همین است. تلاش بر این است که مفاهیم به شکل خیلی ساده مطرح شود و در عین حال ارتباط مثال‌های ساده با دنیای واقعی شبکه‌ها مشخص شود. به‌طور مشخص در پایان آخرین قسمت این نوشته‌ها شما، مستفل از پیش‌زمینه‌ی تحصیلی‌تان (تنها با فرض دانش ریاضی در سطح دبیرستان)، احتمالا می‌توانید نحوه‌ی کار پروتکل https را درک کنید و مثلا بدانید حمله‌هایی که در سال‌ گذشته از ایران به اکانت ایمیل بعضی از کاربران جی‌میل صورت گرفت، چگونه انجام شد. این حمله در تابستان ۱۳۹۰ (۲۰۱۱) صورت گرفت و این گزارش اولیه‌ی گوگل از ماجراست. برای گزارش‌های خبری به فارسی می‌توانید این خبر بی‌بی‌سی یا این گزارش دویچه‌وله را ببینید. درپایان این مقدمه لازم است تاکید کنم که امنیت شبکه، حتی برای شهروندان کشورهای به اصطلاح پیش‌رفته، کاملا مهم است، چه از بعد جرایم مالی و چه از بعد حریم خصوصی، برای کوتاه کردن سخن شاید دیدن این فیلم طنز کوتاه مناسب باشد.


نحوه‌ی برقراری ارتباط در اینترنت

تمام رایانه‌های متصل به شبکه‌ی اینترنت، یک آدرس اینترنتی دارند، چیزی شبیه شماره تلفن یک نفر که هر کس برای تماس گرفتن با آن شخص باید آن را بداند. ممکن است چند رایانه در یک شبکه‌ی محلی، مثلا داخل یک خانه یا سازمان، یک آدرس اینترنتی مشترک داشته باشند به‌علاوه‌ی آدرس‌های داخلی که فقط در آن خانه یا سازمان معنا دارد، چیزی مانند شماره‌ تلفن‌های داخلی اگر بخواهیم از مثال تلفن استفاده کنیم. در این‌جا و جاهای دیگر از این جزییات به قصد ساده‌سازی چشم‌پوشی می‌کنیم، برای اطلاعات بیشتر نگاه کنید به NAT در ویکی‌پدیای انگلیسی. این آدرس که اصطلاحا به آن آدرس آی‌پی (IP برگرفته از Internet Protocol) گفته می‌شود، معمولا از چهار شماره بین صفر و ۲۵۵ تشکیل می‌شود، مثلا ۱۹۲.۲۲۵.۱۰۰.۳۴ این آدرس‌ عملا یک عدد ۳۲ بیتی در مبنای دو است که به شکل چهار عدد ۸ بیتی نمایش داده می‌شود. به همین دلیل هریک از این چهار عدد حداکثر ۲۵۵ است معادل ۸ بیت یک در مبنای دو. این آدرس‌ها مربوط به رایج‌ترین پروتکل اینترنت (Internet Protocol) یا همان IPv4 است. باز هم برای سادگی از جزییات مربوط به آدرس‌های جدید ۱۲۸ بیتی یا همان IPv6 صرف‌نظر می‌کنیم. وقتی رایانه‌ی شما با رایانه‌ی دیگری بر روی شبکه ارتباط برقرار می‌کند، از همین آدرس استفاده می‌کند، البته ارتباط به شکل مستقیم برقرار نمی‌شود بلکه در بین راه از تعدادی «مسیر‌یاب» (router) می‌گذرد. مسیر‌یاب رایانه‌ای است که اطلاعات مربوط به محل و نحوه‌ی اتصال رایانه‌های مختلف روی شبکه در آن نگه‌داری می‌شود. به‌عنوان مثال، فرض کنید شما برای جستجوی وب با یکی از رایانه‌های شرکت گوگل با آدرس ۷۴.۱۲۵.۲۲۶.۷۱ ارتباط برقرار کنید، مراحل برقراری این ارتباط به شکل خیلی خلاصه چنین است:
  1. رایانه‌ی شما آدرس مقصد را به نزدیک‌ترین مسیریاب اعلام می‌کند. این مسیریاب معمولا متعلق به شرکتی‌ است که خدمات اینترنت را از آن خریداری کرده‌اید ( «رساننده خدمات اینترنت» یا همان آی‌اس‌پی یا ISP ).
  2. این مسیریاب اگر مستقیما به رایانه‌ی مقصد هم متصل باشد (که در مثال بالا بعید است)، درخواست شما را به آن می‌فرستد. اگر نه، از روی آدرس مقصد (معمولا با استفاده از شماره‌ی اول، یعنی ۷۴ در این مثال) مسیریاب اول می‌داند که درخواست شما را به کدام‌یک از مسیریاب‌های دیگری که به آن متصل است ارسال کند.
  3. دو مرحله‌ی قبلی در مسیریاب یا مسیریاب‌های بعدی هم تکرار می‌شود تا نهایتا درخواست شما به رایانه‌ی گوگل برسد.
  4. بر روی «بسته»‌ی درخواستی شما، آدرس مبدا یعنی همان رایانه‌ی شما هم نوشته شده است (مانند آدرس فرستنده روی پاکت نامه) بنابراین رایانه‌ی گوگل بعد از استخراج پاسخ شما با همان روش قبلی اطلاعات را برای رایانه‌ی شما ارسال می‌کند.
شمایی از ارتباط رایانه‌ها در اینترنت، برگرفته از ویکی‌پدیا .
در توصیف بالا از عبارت «بسته» (یا packet) استفاده شد و دلیل آن این است که درخواست یا اطلاعاتی که بین دو رایانه رد و بدل می‌شود به قطعه‌های کوچک به نام بسته شکسته می‌شود. هربسته شامل قسمتی از اطلاعات ارسالی است به علاوه‌ی آدرس مبدا، آدرس مقصد، و داده‌های دیگر مربوط به مشخصات بسته. برای اندازه‌ی این بسته‌ها معمولا سقفی تعیین می‌شود، مثلا ۶۴ کیلوبایت. بررسی دلایل استفاده از این بسته‌ها فراتر از حوصله‌ی این نوشته است. مثلا یکی از فواید این است که اگر بسته‌ای به مقصد نرسید، تنها همان یک بسته را می‌توان مجددا ارسال کرد، به علاوه بسته‌ها کاملا مستقل از یکدیگرند و ارتباط مفهومی احتمالی آن‌ها تنها در مبدا و مقصد مهم است و از دید مسیریاب اهمیتی ندارد، بنابراین بسته‌های مختلف یک پیام ممکن است از مسیرهای مختلف به مقصد برسند. تصویر روبه‌رو شاید برای درک به‌تر مراحل بالا مفید باشد. مسیر‌یاب‌ها در این تصویر با استوانه‌های آبی نشان داده شده‌اند که علامتی شبیه ضربدر روی آنهاست. می‌توانید به این تصویر به شکل هرمی نگاه کنید که کاربران نهایی (مانند رایانه‌ی منزل شما) در قاعده‌ی هرم قرار دارند و هرچه به راس هرم نزدیک‌تر می‌شویم با شرکت‌های بزرگ و بزرگ‌تری سروکار داریم که وظیفه‌ی اصلی‌شان ارائه‌ی خدمات اینترنت و ایجاد و نگه‌داری زیرساخت‌های شبکه است. مثلا رایانه‌ی شما ابتدا به آی‌اس‌پی محلی در شهر یا محله‌تان متصل است. این آی‌اس‌پی خود به آی‌اس‌پی‌های بزرگ‌تر متصل است و ... توجه کنید که در مثال بالا، هم رایانه‌ی منزل شما و هم رایانه‌ی شرکت گوگل در قاعده‌ی هرم و به عنوان کاربران نهایی قلمداد می‌شوند. به این ساختار هرمی دقت کنید چون در جاهای دیگر هم مشابه آن تکرار خواهد شد!


تبدیل نام به آدرس اینترنتی

سوالی که تا الان احتمالا پیش آمده این است که ما هر روز چندین بار از اینترنت و به‌طور خاص خدمات گوگل استفاده می‌کنیم ولی چرا تا به‌حال با آدرس‌های عجیبی مثل ۷۴.۱۲۵.۲۲۶.۷۱ سروکار نداشته‌ایم؟ پاسخ در رایانه‌هایی است که نام‌هایی مثل google.com را به این آدرس‌ها تبدیل می‌کنند و به آن‌ها «کارساز نام دامنه» يا دی‌ان‌اس (DNS: Domain Name Server) گفته می‌شود. در متون فنی به زبان فارسی، ترکیب اصطلاحات اصلی با ترجمه‌ی فارسی آن معمولا مشکل‌زاست. من در مواردی از ترجمه‌ها استفاده کرده‌ام ولی در موارد دیگر که اصطلاح اصلی خیلی رایج شده همان را به‌کار برده‌ام. به‌عنوان مثال در این‌جا «کارساز» ترجمه‌ی همان server است! به‌نظرم استفاده از ترکیب‌های فارسی ارجح است چون درک مطلب را برای غیر متخصصین راحت‌تر می‌کند ولی گاهی موجب سردرگمی می‌شود. یکی از این رایانه‌ها معمولا در همان آی‌اس‌پی محلی شما وجود دارد و وقتی شما عبارت google.com را در قسمت آدرس مرورگر (browser) خود وارد می‌کنید، مرورگر شما آدرس آی‌پی google.com را از این کارساز نام‌دامنه می‌پرسد و بعد از گرفتن پاسخ این آدرس را با آدرسی مثل ۷۴.۱۲۵.۲۲۶.۷۱ جایگزین می‌کند. از این‌جا به بعد، ادامه‌ی کار مانند مراحل بالاست. برای اطلاعات بیش‌تر نگاه کنید به ساناد یا سامانه‌ی نام دامنه. چیزی مشابه ساختار هرمی بالا بین مسیر‌یاب‌ها، برای این کارسازهای نام دامنه هم وجود دارد. مثلا دی‌ان‌اس اول ممکن است آدرس google.com را نداند که در این‌صورت از دی‌ان‌اس بزرگ‌تری در سطح بالاتر آن را می‌پرسد و الی آخر. آدرس دی‌ان‌اس اول را معمولا شرکت خدمات اینترنت به‌طور خودکار به رایانه‌ی شما اطلاع می‌دهد.

تبدیل نام به آدرس اینترنتی، برگرفته از Mx Toolbox
به عنوان نمونه می‌توانید به این وب‌سایت مراجعه کنید و آدرس اینترنتی وب‌سایت‌های مختلف را با استفاده از آن پیدا کنید. نام وب‌سایت را در قسمتی که در عکس نشان داده شده وارد کنید و بعد کلید DNS Lookup را فشار دهید.


مشکل «جاسوس بین راه»

بازگردیم به بحث امنیت در اینترنت. با توصیف بالا ابتدایی‌ترین مشکلی که از نظر امنیتی وجود دارد، این است که در مسیریاب‌های بینی، تمام اطلاعاتی که شما ردوبدل می‌کنید مشخص است. مثلا اگر کسی به رایانه‌های شرکت اصلی خدمات اینترنت شما دسترسی داشته باشد، می‌تواند وب‌سایت‌هایی که به آن متصل می‌شوید، محتوای ایمیل‌هایی که می‌فرستید، یا حتی رمزهای عبور شما را ببیند. ولی در عمل خیلی از وب‌سایت‌های معتبر از امکانات رمز‌نگاری خاصی استفاده می‌کنند که این‌ نوع از جاسوسی بسیار مشکل می‌شود. در قسمت بعدی این مجموعه به بررسی روش‌های پایه‌ی رمزنگاری در اینترنت خواهیم پرداخت. از یاد نبریم که هدف این نوشته‌ها، درک سازوکارها بدون داشتن دانش تخصصی است، پس اگر مفهومی روشن نیست، لطفا از بخش نظرات استفاده کنید.


پانوشت‌ها