در مطلب قبل یک مقدمهای بر gpg و ارتباط امن داشتیم و این که چه کارا میشه باهاش کرد.
در این قسمت آموزش به ساخت کلید gpg میپردازم…
اصلا GPG چیه؟
GPG یا GnuPG مخفف GNU Privacy Guard است که نسخهای آزاد از PGP میباشد.
یک نرمافزار رمزنگاری و رمزگذاریه که قرار نحوهی پیاده سازیش روی چیزای مختلف رو توی یک سری مطلب سریالی بنویسم…
خب بریم سراغ نصبش؛
در همین اول چندین نکته رو باید در مورد ساخت کلید بگم که مهم هستن، در نسخههای اوبونتو ۱۶.۱۰ به بالا بستههای gpg و gpg2 یک نخسه هستند و gpg2 به gpg لینک شده و عملا هر دو از یک نگراش کتابخانه و بسته استفاده میکنن.
اما در نسخههای قدیمیتر این موضوع فرق میکنه، یعنی بستههای gpg و gpg2 فرق دارن.
در طول آموزش بطور کل هم فرقاشون رو توضیح میدم هم یک سری نکات دیگه، اما بطور کل پیشنهادم برای توزیعهای زیر ۱۶.۱۰ مثل ۱۶.۰۴ و پایینتر اینه که از بسته gpg2 استفاده شه چون بهتره.
به دلیل تفاوت نسخه gpg و gpg2 در نگارشهای زیر ۱۶.۱۰ من کل آموزش رو با دستور gpg2 به جلو میبرم با ذکر این نکته که gpg2 و gpg در نگراشهای بالای ۱۶.۱۰ یه نسخه هستند.
ابتدا ما نیاز به نصب بستهی gnupg و gpg2 داریم پس دستور زیر رو وارد میکنیم:
$ sudo apt install gnupg gnupg2
حالا میریم سراغ ساخت کلید:
$ gpg2 --full-gen-key
حالا میپرسه که کدوم نوع کلید رو میخواید (Please select what kind of key you want) :
ما گزینه یک رو میخوایم که نوشته (1) RSA and RSA (default)، پس گزینه 1 رو وارد میکنیم و اینتر میزنیم.
حالا میگه که کلیدهای RSA میتونن بین ۱۰۲۴ تا ۴۰۹۶ بیت طول داشته باشن.
و بعد میپرسه شما چه اندازهی کلیدی مد نظرتونه؟
ما میزنیم 4096. اینجا به توضیح نیازه که اگر سیستمتون ضعیفه مجبورید از ۱۰۲۴ یا ۲۰۴۸ یا مقدایر دیگهای برای ساخت کلید استفاده کنید، چون برای ساخت کلید ۴۰۹۶ بیتی به پردازش زیادی نیازه، یعنی شما باید برنامههای مختلفی رو باز کنید تا برنامه gpg2 از اطلاعات مختلف توی حافظه برای ساخت اطلاعات تصادفی کلید استفاده کنه. البته این که میگم پردازش زیاد منظورم اینه شما باید برنامههای زیادی باز کنید و اقدام به تایپ کردن و حرکت موس و از این دست کارا انجام بدید، خب ممکنه یه سیستم ضعیف باشه و نکشه.
حالا چرا ۴۰۹۶ گذاشتیم؟ چون که هر چی طول کلید بیشتر باشه قطعا شکستنش سختتر خواهد بود پس ما هم ۴۰۹۶ رو میزنیم و میریم سراغ مرحله بعد.
حالا از ما میخواد که تاریخ انقضای کلید رو بهش بدیم:
من 0 زدم چون نمیخوام کلیدم منقضی شه پس شما هم اگر دوست داشتید ۰ بزنید.
مرحله بعد هم میپرسه اطلاعات درسته؟
میگیم بله و y مینویسیم و اینتر میکنیم.
در مرحله بعد هم میگه GnuPG نیاز به یک سری مشخصات ما داره برای ساخت کلید(اطلاعات شخصی نه چندان مهم):
میپرسه Real Name:
من زدم: Sosha
بعد Email Address:
من زدم: sosha.m.1996@gmail.com
Comment:
Soshmak
و در آخر میپرسه اطلاعات درسته؟
که ما o مینویسم به معنی okay و اینتر میزنیم.
حالا یه صفحه گرافیکی باید به شکل زیر باز کنه و از شما بخواد Passphare رو وارد کنید:
(پیشنهاد من اینه که یک گذرواژه خیلی قوی بگذارید. من خودم از ۶۴ کاراکتر شامل حروف بزرگ و کوچیگ، عدد و نماد استفاده کردم. و راستی این گذرواژه رو باید یادتون بمونه و یا یک جا یادداشت کنید چون موقع استفاده از کلید ازتون گذرواژه میخواد، شاید بهترین پیشنهادم براتون این باشه که از این برنامه استفاده کنید KeePassX.)
بعد از وارد کردن گذرواژه و زدن دکمه OK به شما ممکنه همچین پیامی بده:
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
این به این معنی هست که شما باید یک سری کار انجام بدید برای ساخته شدن کلید، یعنی از حرکت دادن موس روی صفحه گرفته تا نوشتن توی یه فایل متنی یا هر چیز دیگه گرفته تا باز کردن برنامههای مختلف توی سیستمعاملتون، این کارا برای این هست که چون کلید برای ساخته شدنش از اطلاعات مختلف توی حافظه بطور تصادفی استفاده میکنه و شما توی این لحظه که متن بالا رو دیدید باید سریعا کارهای گفته شده رو انجام بدید تا کلید ساخته شه. احتمالا بخاطر ۴۰۹۶ بیتی بودن کلید و هم سرعت سیستمتون ممکنه مقداری این کار زمانبر باشه…
در نهایت که کلید با موفقیت ساخته بشه باید با این پیام رو به رو بشید که توی عکس زیر میبینید:
بیسار خب، مرحله ساخت کلید رو با موفقیت به پایان رسوندیم.
در مرحله بعد میتونید خیلی کارا با کلیدتون انجام بدید، واسه شروع میتونید کلید عمومیتون رو در دسترس همه قرار بدید که اگه کاری با شما داشتن پیامشون رو با کلید عمومی شما رمزنگاری کنن و براتون بفرستن…
برای این که بتونید کلید عمومیتون رو به دوستاتون یا بقیه افراد توی جامعه بخواید به اشتراک بذارید، باید یه خروجی از کلید عمومیتون بگیرید.
با این دستور میتونید از کلید عمومیتون یه خروجی بگیرید، البته اول نیاز هست که لیست کلیداتون رو ببینید:
$ gpg2 --list-key
بعد این دستور رو میزنید:
$ gpg2 --armor --export <fingerprint>
جای <fingerprint> باید فینگرپرینت موردنظر خودتون رو بذارید، مثلا فینگرپرینت من EEFBA44F03B125B2103D4559F6C6C216BF243ED2 هست و باید دستور رو به شکل زیر وارد کنم:
$ gpg2 --armor --export EEFBA44F03B125B2103D4559F6C6C216BF243ED2
برای درک بهتر عکس زیر رو ببینید:
و بعد یه خروجی به شما میده که یه سری حروف بزرگ و کوچیک به همراه عدد و نماد داده که این کلید عمومی شماست
برای من اینه:
-----BEGIN PGP PUBLIC KEY BLOCK----- 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 RGo= =1tc5 -----END PGP PUBLIC KEY BLOCK-----
احتمالا برای شما هم یه چیز توی همین مایهها باشه.
کافیه این رو همونطور که بهتون گفتم به دوستان یا هر کس که میخواد با شما ارتباط امن برقرار کنه بدید تا پیامش یا پروندهی مورد نظرش رو با کلیدعمومی شما رمزنگاری کنه.
یا اگه میخواید کلید عمومی خودتون رو به این صورت نفرستید میتونید از دستور زیر استفاده کنید:
$ gpg2 --armor --export <fingerprint> > my.pub
جای fingerprint که فینگرپرینت خودتون میذارید و جای my.pub هم هر اسمی که دوست داشتید، ولی .pub رو آخرش بذارید.
بعدش به شما یه پرونده میده توی همون دایرکتوری که این دستور رو زدید.
بعد میتونید همون پرونده رو به هر کسی خواستید بدید.
یا یکی از اینجاها که کلیدتون رو میتونید بذارید که همه ببینن keyserver.ubuntu.com هستش، کافیه برید به سایت و کلیدتون رو توی textbox که توی عکس زیر هست بگذارید و دکمه Submit! رو فشار بدید:
مثلا منم کلید عمومی خودم رو اینجا گذاشتم: http://keyserver.ubuntu.com/pks/lookup?op=get&fingerprint=on&search=0xF6C6C216BF243ED2
البته جاهای دیگه هم میشه گذاشت مثل برنامه keybase.io که خودم چون در حال یادگیری کار با برنامش هستم آموزشش رو نمیتونم فعلا بذارم اما تا یه حدی که یاد گرفتم حتما مینویسم آموزش کار با برنامش رو. اما امکانات جالبی داشت، توی این برنامه هم میشه کلیدهاتون رو بگذارید و حتی با دوستاتون به چت بپردازید
در مطالب بعدی باز در مورد نحوه پیادهسازیهای کلید gpg میپردازیم، احتمالا پیادهسازی روی رایانامه…
gpg و ارتباط رمزنگاریشده(ارتباط امن)
gpg و ارتباط رمزنگاریشده(ارتباط امن) – قسمت سوم
موفق باشید…
نوشته gpg و ارتباط رمزنگاریشده(ارتباط امن) – قسمت دوم اولین بار در نوشتههای یک دوستدار گنو پدیدار شد.