Privacy در دنیای وب (بخش سوم و پایانی)

Privacy در دنیای وب (بخش سوم و پایانی)

اما علاوه بر دو سمت ارتباط (یعنی کلاینت و سرور)، هر ریکوئستی از طریق دیوایس‌های مختلفی که در شبکه وجود دارند عبور کرده و ممکن است در این حین اطلاعات شنود شده و عملاً Privacy نقض شود که برای حل این مشکل از پروتکل HTTPS، که ورژن امن HTTP می‌باشد، استفاده می‌کنند. در این مقاله قصد داریم به آشنایی با سازوکار و نحوهٔ کارکرد پروتکل HTTPS بپردازیم که گامی مهم در فرایند مقابله با نقض Privacy (حریم خصوصی) است.

این مقاله قسمت سوم (پایانی) از مجموعه مقالات Privacy در دنیای وب است که در دو بخش قبلی علاوه بر آشنایی فنی با پروتکل HTTP، دیدیم که سرور از کلاینت چه چیزهایی را می‌داند و در چه حالاتی عملاً Privacy نقض می‌گردد اما پیش از مطالعهٔ این پُست، توصیه می‌کنیم دو قسمت قبلی را مطالعه نموده تا مفاهیم طرح‌شده در این مقاله ملموس‌تر گردند:

Privacy در دنیای وب (بخش اول)
Privacy در دنیای وب (بخش دوم)

درآمدی بر پروتکل امن HTTPS
با فاکتور گرفتن از تاریخچه و حاشیه‌های غیرفنی این فناوری، در ادامه مستقیم به اصل مطلب می‌پردازیم و آن هم چیزی نیست جز اینکه HTTPS چگونه دیتای Plain Text را در بر بستر پروتکل HTTP را امن کرده و از شَر کلیۀ کسانی که قصد شنود و یا تخریب دیتا را دارند، در امان نگاه داشته است.

HTTPS در واقع دیتای Plain Text (متن ساده) را به اصطلاح Encrypt (رمزنگاری) می‌کند و در بین مسیر کلاینت تا سرور دیتایی که توسط نُودهای دیگر دیده می‌شود چیزی جز یکسری عبارات نامفهوم و بی‌معنی نیستند! اما در عین حال، در دو سمت کلاینت و سرور این دیتا اصطلاحاً Decrypt (رمزگشایی) شده و به دیتایی بامُسمی تبدیل می‌شوند که برای کاربران قابل‌درک هستند.

شاید ظاهر فرایندی که طی می‌شود آن‌قدر پیچیده نباشد، ولی وقتی کمی دقت کنید ممکن است این سؤال مطرح می‌شود که چگونه می‌توان دیتا را طوری رمزنگاری کرد که فقط در دو سر کلاینت و سرور رمزگشایی شود و مطمئن باشیم فرد دیگری نمی‌تواند این کار را انجام دهد؟ که برای روشن‌تر شدن این مسئله، نیاز به ذکر یک مثال فرضی از دنیای واقعی است.

فرض کنید به یکصد یا دویست سال قبل برگشته‌ایم؛ زمانی که اساساً کامپیوتری وجود نداشت و شما پادشاه سرزمینی به نام X هستید و قصد دارید برای پادشاه سرزمین Y نامه بفرستید اما در عین حال نمی‌خواهید کسی از محتوای نامه باخبر شود به علاوه اینکه دوست دارید مطمئن شوید که نامه بدون هیچ‌گونه مخدوش شدنی، صحیح و سالم به دست پادشاه سرزمین دیگر می‌رسد.  برای این منظور، احتمالاً یک پیک نامه‌رسان را، که بیشتر از چشمان خود به او اطمینان دارید، خبر کرده و نامه را به دستش می‌دهید و کلی هم سفارش می‌کنید تا آن را بدون هیچ‌گونه کم‌وکاستی و بدون آنکه کسی آن را ببینید به مقصد برساند که تا اینجای کار هیچ مشکلی نیست و همه‌چیز قاعدتاً باید به خوبی پیش برود و پیک شما عازم سفر می‌شود اما در بین راه دشمن کمین کرده و نامه را از چنگش درآورده و از محتوای آن باخبر می‌شود!

خبر کشته شدن پیک به شما می‌رسد و پس از تحمیل یک شکست سنگین، احتمالاً درس بزرگی گرفته‌اید؛ اینکه هر چقدر هم پیک شما مطمئن باشد، باید راه‌حلی به منظور مقابله با چالش‌های پیش‌رویش پیدا کنید و با درس‌هایی که از اتفاقات ناگوار گذشته گرفته‌اید، دفعهٔ بعد که نامه‌ای می‌نویسید، جوری در آن صحبت می‌کنید که اساساً اگر دست شخص دیگری به آن رسید، هیچ‌وقت متوجه نوشته‌های شما نشود (مثلاً یک زبان خاصی اختراع می‌کنید و همیشه با آن زبان به مقصد مهم خود نامه می‌فرستید.) اما مشکلی که ایجاد می‌شود این است که چگونه پادشاه سرزمین Y زبان اختراعی شما را درک کند؟

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

می‌بینید که در سناریوی فرضی فوق مشکل دوچندان شد اما خبر امیدوارکننده اینکه در دنیای اینترنت این معضل به سادگی و با استفاده از HTTPS رفع شده است اما قبل از توضیح در مورد فرایند اصلی مابین کلاینت و سرور در این پروتکل، نیاز است تا در مورد روش‌های رمزنگاری نامتفارن (Asymmetric) و متقارن (Symmetric) یکسری توضیحات کلی داشته باشیم بدین صورت که:

- Asymmetric Encryption: در این نوع رمزنگاری یک قفل و یک کلید وجود دارد و همان‌طور که از نامشان پیدا است، قفل این وظیفه را دارد تا دیتا را رمزنگاری کند و کلید هم قرار است دیتا را رمزگشایی نماید و این در حالی است که در پروسهٔ رمزنگاری نامتقارن (Asymmetric Encryption)، قفل و کلید دو موجودیت کاملاً متفاوت هستند به طوری که به قفل Public Key و به کلید اصطلاحاً Private Key گفته می‌شود.

- Symmetric Encryption: در رمزنگاری متقارن، قفل و کلید دو موجودیت متفاوت نبوده و هر دو یکسانند که به آن‌ها Pre-Shared Key (یا Session Key یا حتی Symmetric Key) گفته می‌شود.

جالب است بدانید که پروتکل امن اچ‌تی‌تی‌پی‌اس از هر دو روش رمزنگاری نامتقارن و متفارن استفاده می‌کند بدین صورت که پس از درخواست کلاینت به سرور مبنی بر ایجاد یک ارتباط امن، سرور گواهی‌نامۀ دیجیتال خود را به همراه Public Key به سمت کلاینت ارسال می‌کند (لازم به ذکر است گواهینامۀ دیجیتال یا همان Digital Certificate به نوعی بیانگر هویت آن وب‌سایت بوده و نشان می‌دهد که وب‌سایت مذکور معتبر بوده و مجوز رسمی دارد.)

کلاینت پس از دریافت Digital Certificate یا به اختصار DC، آن را به سمت وب‌سایت دیگری به اسم CA Server فرستاده تا از صحت ادعای سرور مطمئن شود (CA Server مرکزی است که وظیفۀ اعتبارسنجی و هویت‌سنجی گواهینامهٔ SSL را بر عهده دارد و هر سروری که قصد دارد ارتباط امنی ایجاد کند، موظف است تا از این دست وب‌سایت‌ها یک گواهینامۀ معتبر تهیه کند.) بعد از آنکه CA Server هویت سرور را تأیید کرد و به کلاینت ریسپانس تأیید را فرستاد، در ادامه مرورگر Symmetric Key را به صورت رَندوم تولید کرده و با استفاده از Public Key رمزنگاری می‌کند و به سمت سرور می‌فرستد؛ به عبارتی، مرورگر کلید متقارن خود را با استفاده از قفلی که سرور برایش فرستاده است و CA Server هم صحت آن را تأیید کرده برای سرور می‌فرستد و کسی به جز خود سرور که Private Key را در اختیار دارد، قادر به رمزگشایی پیام کلاینت نیست.

در ادامه، پس از طی این مراحل، هم سرور و هم کلاینت Symmetric Key که توسط مرورگر کلاینت تولید شده را در اختیار دارند و SSL Connection ایجاد شده است و سرور و کلاینت از این به بعد با استفاده از Symmetric Key دیتا را رمزنگاری و رمزگشایی می‌کنند که تصویر زیر به صورت کامل این فرایند را نمایش می‌دهد:

 Privacy در دنیای وب (بخش سوم و پایانی)

تا اینجای مقاله به بررسی جزئی پروتکل HTTPS پرداختیم و دیدیم که چگونه به نقض پرایوسی در حین مسیر پایان می‌دهد (همچنین توصیه می‌کنیم برای درک بهتر نحوهٔ عملکرد اچ‌تی‌تی‌پی‌اس، به وب‌سایت How HTTPS Works مراجعه نمایید که به خوبی این سازوکار را به نمایش درآورده است.) به عنوان یک قانون کلی، چنانچه حفظ حریم خصوصی برایتان حائز اهمیت است، توصیه می‌شود حتماً از وب‌سایت‌هایی استفاده کنید که از پروتکل HTTPS استفاده می‌کنند (دقت کنید که علامت قفل سبزرنگ کنار آدرس‌بار مرورگر نشان‌دهندۀ آن است که سرتیفیکیت سرور هنوز معتبر است و در صورتی که این آیکان قرمز باشد، مرورگر به شما هشدار می‌دهد که سرتیفیکیت معتبر نیست و ریسک تبادل اطلاعات با خودتان می‌باشد!)

پیش از به پایان رساندن این مجموعه مقالات، لازم است نیم‌نگاهی به نحوهٔ مبارزه با کوکی‌های مخرب نیز داشته باشیم که در مقالهٔ Privacy در دنیای وب (بخش دوم) با ماهیت‌شان آشنا شدیم. 

مبارزه با کوکی‌های مخرب
در مقالۀ قبل دیدیم که برخی از کوکی‌ها ناخواسته شما را به اصطلاح Track می‌کنند و حتی ممکن است دیگر به راحتی قادر به پاکسازی آن‌ها نباشید! هرچند که استفاده از کوکی‌ها به نسبت قبل بسیار کمتر شده، اما کماکان برخی وب‌سایت‌ها هستند که با این روش اقدام به جمع‌آوری دیتا از کاربران کرده و عملاً Privacy را نقض می‌کنند. برای شناسایی و مقابله با کوکی‌های مخرب، تقریباً کل داستان در تنظیمات مرورگر شما خلاصه می‌شود که به ترتیب عبارتند از:

1. مسدود (بلاک) کردن کوکی‌های Third-party
2. فرستادن سیگنال Do Not Track به وب‌سایت‌ها
3. پاک کردن کوکی‌ها در زمان‌های دلخواه و یا زمانی که مشکوک می‌شوید

استراتژی‌های فوق سه مورد از تنظیمات مهمی هستند که باید در مرورگر خود سِت کنید (البته مرورگرهایی مثل کروم و فایرفاکس از قابلیت Private Mode نیز برخوردار می‌باشند بدین صورت که هرگونه ردپایی اعم از کوکی‌ها، هیستوری و ... را پاک می‌کنند و اساساً به شما اجازۀ فعالیت به اصطلاح Anonymous یا گمنام را می‌دهند.) همچنین به غیر از در نظر گرفتن موارد فوق، می‌توان از پلاگین‌هایی نظیر اَدبلاکرها و ... نیز استفاده کرد که وظیفۀ اصلی آن‌ها مبارزه با کوکی‌های مخرب و سایت‌هایی است که رفتار شما را رصد می‌کنند (البته چنانچه گرفتار سوپرکوکی‌ها شده باشید، هیچ راه‌حلی به جز اِسکن توسط یک آنتی‌ویروس قوی ندارید!)

سخن پایانی
اگرچه روش‌های مختلفی برای گشت و گذار آزاد و امن در وب وجود دارد، اما در این سه مقاله صرفاً جنبه‌ای خاص از موضوع را تشریح کردیم و توصیه می‌کنیم برای کسب اطلاعات بیشتر، به دیگر پُست‌ها با برچسب #حریم خصوصی و همچنین مقالات زیر مراجعه نمایید:

Tor چیست و چگونه کار می‌کند؟
آشنایی با کار‌هایی که در هنگام استفاده از Tor نباید انجام دهید!

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



محمد طاهری