رمزگذاری و رمزگشایی فایل ها با GPG در لینوکس

امیرحسین بیگدلو 4 ماه قبل

GnuPG که عموماً با نام GPG شناخته می شود، یک ابزار بسیار همه کاره است که به طور گسترده به عنوان استاندارد صنعتی برای رمزگذاری مواردی مانند ایمیل ها، پیام ها، فایل ها یا هر چیزی که نیاز دارید برای ارسال ایمن به شخصی استفاده می شود، استفاده می شود.

 

شروع کار با GPG آسان است و می توانید در عرض چند دقیقه از آن استفاده کنید.

 

در این آموزش، نحوه رمزگذاری و رمزگشایی فایل ها با GPG را به شما نشان می دهم. این یک آموزش ساده است و می توانید تمام آن را برای تمرین در سیستم لینوکس خود نیز امتحان کنید. این به شما کمک می کند تا دستورات GPG را تمرین کنید و زمانی که کاملاً تازه کار هستید آن را درک کنید.

 

دوره پیشنهادی: دوره آموزش رایگان لینوکس

 

 #  GPG چطور کار میکند؟

برای شروع استفاده از GPG، ابتدا باید یک کلید GPG داشته باشید. کلید GPG همان چیزی است که بعداً در آموزش برای رمزگذاری (یا رمزگشایی) فایل‌ها استفاده می‌کنید. همچنین همان چیزی است که برای شناسایی شما استفاده می شود، با مواردی مانند نام و ایمیل شما نیز به کلید مرتبط است.

 

کلیدهای GPG با استفاده از دو فایل، یک کلید خصوصی و یک کلید عمومی کار می کنند. این دو کلید به یکدیگر گره خورده اند و هر دو برای استفاده از تمام عملکردهای GPG، به ویژه رمزگذاری و رمزگشایی فایل ها، مورد نیاز هستند.

 

کلید gpg در لینوکس

 

وقتی فایلی را با GPG رمزگذاری می کنید، از کلید خصوصی استفاده می کند. فایل رمزگذاری شده جدید تنها با کلید عمومی جفت شده قابل رمزگشایی است.

 

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

 

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

 

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

 

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

 

مقاله پیشنهادی: فولدر یا دایرکتوری؟ چرا در لینوکس به فولدر، دایرکتوری گفته میشود؟

 

 #  رمزگذاری و رمزگشایی فایل ها با GPG

این یک سناریوی بسیار ساده است. من فرض می کنم که شما فقط یک سیستم دارید و می خواهید ببینید GPG چگونه کار می کند. شما فایل ها را به سیستم دیگری ارسال نمی کنید. شما فایل را رمزگذاری می کنید و سپس آن را در همان سیستم رمزگشایی می کنید.

 

 

 +  مرحله اول: نصب GPG

ابزار  gpg به صورت پیشفرض در بیشتر مخازن توزیع ها لینوکس وجود دارد.

 

در سیستم های مبتنی بر دبیان و اوبونتو، بسته gpg را با دستور زیر نصب کنید:

sudo apt install gpg

 

اگر سیستم مبتنی بر Arch دارید، برای نصب gpg میتوانید از pacman استفاده کنید:

sudo pacman -S gnupg

 

 

 +  مرحله دوم: ساخت کلید GPG

ساخت کلید gpg به راحتی زدن یک دستور است. فقط دستور زیر را اجرا کنید، و کلید شما ایجاد می شود (می توانید برای اکثر سوالات از پیش فرض ها استفاده کنید، همانطور که در قسمت های زیر نشان داده شده است):

gpg --full-generate-key

 

ساخت یک کلید gpg جدید

 

سپس می توانید ببینید که کلید خصوصی و کلید عمومی هر دو توسط شناسه نشان داده شده در زیر pub با استفاده از دستورات –list-secret-keys و –list-public-keys به یکدیگر گره خورده اند:

 

مقاله پیشنهادی: دریافت اطلاعات سیستم‌های لینوکسی با ابزار inxi

 

 +  مرحله سوم: رمزگذاری فایل با gpg

اکنون که کلیدهای GPG خود را تنظیم کرده اید، می توانید رمزگذاری فایل های خود را شروع کنید! برای رمزگذاری فایل ها از دستور زیر استفاده کنید:

gpg --encrypt --output file.gpg --recipient user@example.com file

 

بیایید به این بپردازیم که این دستور چه کاری را سریع انجام می دهد:

  • ابتدا گزینه –encrypt را مشخص کردید. این به سادگی به GPG می گوید که ما یک فایل را رمزگذاری خواهیم کرد.
  • بعد، –output file.gpg را مشخص کردید. این می تواند هر چیزی باشد، اگرچه معمولاً نام فایلی است که رمزگذاری می کنید به اضافه یک پسوند gpg.
  • بعد، –recipient user@example.com را تایپ کنید. این ایمیل یک کلید GPG مربوطه را مشخص می کند که در واقع هنوز در این سیستم وجود ندارد.

 

 

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

 

در نهایت، شما به سادگی فایلی را که قرار است رمزگذاری کنید، مشخص کنید. برای این مثال، اجازه دهید از فایلی به نام message.txt با محتوای زیر استفاده کنیم:

We're encrypting with GPG!

 

سپس اگر سعی کنید فایل را بخوانید، خواهید دید که به نظر می رسد گسسته است. فایل اکنون رمزگذاری شده است:

 

حالا بیایید فایل message.txt رمزگذاری نشده را حذف کنیم تا بتوانید ببینید که فایل message.txt.gpg در واقع بدون فایل اصلی به خوبی رمزگشایی می‌شود:

 

 

 +  مرحله چهارم: رمزگشایی فایل با gpg

در نهایت، اجازه دهید در واقع پیام رمزگذاری شده را رمزگشایی کنیم. با استفاده از دستور زیر می توانید این کار را انجام دهید:

gpg --decrypt --output file file.gpg

 

با بررسی آرگومان ها در اینجا، ابتدا –decrypt را مشخص می کنیم که به GPG می گوید که شما یک فایل را رمزگشایی می کنید.

 

سپس، فایل خروجی output–- را وارد می‌کنید، که به سادگی به GPG می‌گوید پس از رمزگشایی، فرم رمزگذاری شده فایل ما را در چه فایلی ذخیره می‌کنید.

 

در نهایت، file.gpg را وارد می‌کنید، که فقط مسیر فایل رمزگذاری شده شماست.

 

به دنبال مثال، دستوری که من استفاده می کنم به صورت زیر خواهد بود:

gpg --decrypt --output message.txt message.txt.gpg

 

 

و تبریک، کار شما تمام شد! وقتی می‌خواهید فایل‌ها را با GPG رمزگذاری و رمزگشایی کنید، این همه چیز است.

 

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

 

مقاله پیشنهادی: آموزش دستور pstree لینوکس

 

 #  ارسال و دریافت کلید GPG

برای ارسال یک کلید GPG به شخصی، ابتدا باید آن را از زنجیره کلید(keychain) خود صادر کنید، که شامل تمام کلیدهای عمومی و خصوصی شماست.

 

برای صادر کردن یک کلید، به سادگی شناسه کلید را در زنجیره کلید خود پیدا کنید، و سپس دستور زیر را اجرا کنید و id را با شناسه کلید و key.gpg را با نام فایلی که می‌خواهید در آن ذخیره کنید، جایگزین کنید:

gpg --output key.gpg --export id

 

 

برای وارد کردن یک کلید، کافی است فایل خروجی (از دستور قبلی) را به کاربر دیگر بدهید و سپس دستور زیر را اجرا کنید:

gpg --import key.gpg

 

 

اما برای استفاده از کلید به طور معمول، باید کلید را تأیید کنید تا GPG به درستی به آن اعتماد کند.

 

این را می توان با اجرای دستور –edit-key بر روی سیستم کاربر دیگر و با امضای کلید انجام داد:

gpg --edit-key id

 

 

سپس دستور fpr را اجرا کنید که اثر انگشت کلید را نشان می دهد. خروجی این دستور باید در مقابل خروجی دستگاه شما اعتبارسنجی شود که با اجرای همان دستور –edit-key در سیستم شما قابل یافتن است:

 

اگر همه چیز مطابقت دارد، فقط دستور sign را اجرا کنید و همه چیز آماده است:

 

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

 

 

 #  نتیجه گیری

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

مطالب مشابه



مونگارد