paint-brush
اصل "وب اعتماد" یا نحوه عملکرد PGPتوسط@web3judge
307 قرائت
307 قرائت

اصل "وب اعتماد" یا نحوه عملکرد PGP

توسط Judge5m2024/09/22
Read on Terminal Reader

خیلی طولانی؛ خواندن

PGP یک استاندارد باز برای رمزگذاری و رمزگشایی متون، ایمیل ها، فایل ها، فهرست ها و پارتیشن های کل دیسک است. نسخه‌های مدرن PGP با GnuPG و سایر سیستم‌های منطبق با OpenPGP قابلیت تعامل دارند. PGP به شما امکان می دهد کلید عمومی خود را آزادانه و بدون به خطر انداختن امنیت منتشر کنید.
featured image - اصل "وب اعتماد" یا نحوه عملکرد PGP
Judge HackerNoon profile picture

پیام‌رسان‌های شما، سایت‌های پروتکل HTTPS، مجوز در سرویس‌های اینترنتی، ذخیره‌سازی امن فایل، و گاهی اوقات حتی ساعت‌های زنگ دار - همه این موارد از PGP استفاده می‌کنند. اما به هر حال چیست؟ ویکی پدیا تعریف زیر را ارائه می دهد:


Pretty Good Privacy ( PGP ) یک برنامه رمزگذاری است که حریم خصوصی رمزنگاری و احراز هویت را برای ارتباطات داده فراهم می کند. PGP برای امضا ، رمزگذاری و رمزگشایی متون، ایمیل‌ها ، فایل‌ها، دایرکتوری‌ها و پارتیشن‌های کل دیسک و افزایش امنیت ارتباطات ایمیل استفاده می‌شود. فیل زیمرمن در سال 1991 PGP را توسعه داد.


PGP و نرم افزارهای مشابه از استاندارد OpenPGP (RFC 4880)، یک استاندارد باز برای رمزگذاری و رمزگشایی داده ها پیروی می کنند. نسخه‌های مدرن PGP با GnuPG و سایر سیستم‌های سازگار با OpenPGP سازگار هستند.


در کلمات واضح است، اما بیایید ببینیم چگونه کار می کند.

مفهوم

بیایید تصور کنیم که ما کاربر A و کاربر B را داریم. آنها باید شروع به برقراری ارتباط کنند، اما به گونه ای که هیچ کس نتواند از محتوای مکاتبات آنها مطلع شود. اینجاست که رمزگذاری وارد می شود.



سیستم های مدرن از Rjindael (در حال حاضر AES)، DES، RC4 و برخی الگوریتم های دیگر استفاده می کنند.


من وارد جزئیات کار آنها نمی شوم. تنها چیزی که باید در مورد آنها بدانید این است که اگر داده های ورودی و یک کلید به آنها بدهید، یک آرایه بایت رمزگذاری شده دریافت می کنید که می تواند با همان کلید معکوس شود. آنها مانند یک قفل باز و بسته می شوند، اما بدون کلید تقریباً غیرممکن است (هیچ راه موثری برای شکستن این الگوریتم ها وجود ندارد). چنین الگوریتم های رمزگذاری را الگوریتم های رمزگذاری متقارن می نامند.


و این پاسخ است، اینطور نیست؟ اجازه دهید کاربر A کلید خود را به کاربر B بدهد. سپس می توانید مکاتبات خود را از هر دو طرف رمزگذاری کنید و هیچ کس متوجه نخواهد شد که آنها برای یکدیگر چه می نویسند.


البته اگر هر دو کاربر در زندگی واقعی همدیگر را بشناسند، یکی می تواند فلش مموری با کلید روی آن به دیگری بدهد.


اما در اینترنت انجام این کار غیرممکن است، کاربران از دو نفر فاصله دارند و یک سرویس می تواند روزانه به میلیون ها کاربر مختلف خدمات ارائه دهد. همچنین، همیشه نمی‌توان کلید رمزگذاری شخصی خود را به هرکسی که شخصاً در طول جلسه با آنها مکاتبه می‌کنید، بدهید.

امضای الکترونیکی

از آنجایی که انتقال کلید خصوصی شما از همان AES مانند به خطر انداختن امنیت شما است، این سوال مطرح می شود - چگونه کاربر A می تواند کلید خود را با خیال راحت به کاربر B بدهد؟


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


چنین فرآیندی به شما این امکان را می دهد که کلید عمومی خود را آزادانه و بدون به خطر انداختن امنیت خود منتشر کنید.


این اساس اصل عملکرد "امضای الکترونیکی" است.



آنها مورد نیاز هستند تا کاربر B از داده ها مطمئن شود که داده ها با کلیدی که متعلق به کاربر A است رمزگذاری شده است و بالعکس.


امضا از هش داده های اصلی ایجاد می شود و به بسته ارسال شده متصل می شود.


گیرنده امضا را با کلید عمومی رمزگشایی می کند، آن را با هش داده های دریافتی مقایسه می کند و در صورت مطابقت، فرستنده یک کاربر واقعی است و کلاهبردار نیست.

وب اعتماد

خوب، ما متوجه شده ایم که چگونه یک دست دادن را انجام دهیم (دست دادن فرآیند تشکیل یک کانال ارتباطی امن است).


حال تصور کنید که بین کاربران A و B، کاربر دیگری به نام C وجود دارد.


"C" مهاجمی است که باید در مورد جزئیات ارتباط A و B بداند.


او دو جفت کلید برای امضا و دو کلید دیگر برای رمزگذاری داده ها ایجاد می کند.


برای کاربر A، او خود را به عنوان کاربر B و برای کاربر B به عنوان کاربر A معرفی می کند. واقعیت این است که در واقعیت های اینترنت، نمی توان 100% مطمئن بود که امضای الکترونیکی و کلید به دست آمده واقعی هستند.


بنابراین، اگر چنین سناریویی واقعاً امکان پذیر باشد، آیا A و B ما امن نیستند؟


رستگاری هست! اکنون به موضوع اصلی رسیده ایم - "وب اعتماد".


این شبکه شامل این واقعیت است که همه کاربران کلیدهای عمومی امضای الکترونیکی یکدیگر را می شناسند و از هر یک از اعضای شبکه می توان پرسید: «آیا این کلید که توسط کاربر B برای من ارسال شده متعلق به او است و متعلق به برخی نیست. مزاحم؟»


در این صورت، یک شبکه اعتماد حتی با تعداد کمی از شرکت کنندگان می تواند بسیار کارآمد باشد، زیرا اگر یکی دیگری را بشناسد، سومی با سوال از اولی، کلید عمومی دومی را خواهد دانست. همانند ریشه های درخت بلوط، Web of Trust در هم تنیده شده است و به کاربران امکان می دهد داده ها را به اشتراک بگذارند.




اکنون کاربر C ما دیگر نمی تواند جعل هویت کاربران دیگر باشد. فقط اگر تلاش کند، کاربر A، با سوال از هر یک از اعضای شبکه، متوجه می شود که شخصی بین او و کاربر B ایستاده و پیام ها را رهگیری می کند.

تعمیم

حالا بیایید همه این مفاهیم را در یک طرح ساده ترکیب کنیم.


کاربر A و کاربر B هر دو در یک شبکه اعتماد هستند و می خواهند یک ارتباط امن را شروع کنند.


"A" از چندین عضو شبکه کلید عمومی "B" را می خواهد. با استفاده از این کلید، او یک درخواست دست دادن به کاربر B ارسال می کند. "B" به نوبه خود، کلید عمومی کاربر A را یاد می گیرد، یک کلید متقارن برای ارتباط بیشتر ایجاد می کند و با استفاده از کلید عمومی کاربر A، کلید متقارن را ارسال می کند. برگشت


تمامی پیام های این طرح نیز با امضای الکترونیکی امضا می شوند.


با این ارتباط، هیچ دخالت خارجی امکان پذیر نیست و کاربران ما در نهایت می توانند شروع به مکاتبه کنند.


استفاده از این طرح به صورت دستی فایده ای ندارد - در حال حاضر در تمام پروتکل های ارتباطی اینترنتی ممکن توسط مرورگرها و برنامه های شما تعبیه شده است.

خط پایین

هیچ سیستمی کامل نیست حملات MITM (در مورد ما، مردی در وسط - راهی برای جعل گواهی ها با تأیید کلیدهای جعلی با امضاهای مورد اعتماد مرورگر کاربر قربانی) هنوز هم انجام می شود.


اما اگر "قفل سبز" را در نزدیکی نوار آدرس مرورگر خود مشاهده کردید، اطلاعات شما در دستان امن الگوریتم PGP است.