رمزنگاری فایلها در لینوکس
در لینوکس ابزارهای زیادی وجود دارد که با کمک آنها میتوان فایلهای مختلف را با استفاده از یک رمز عبور، رمزنگاری و رمزگشایی کرد. بدین ترتیب میتوانیم فایلهای خود را به صورت امن نگهداری کنیم؛ بدون آن که نگران به خطر افتادن محرمانگی آنها باشیم. اکثر توزیعهای لینوکس دارای ابزارهای استانداردی به منظور رمزنگاری فایلها میباشند. در این مقاله به آشنایی و بررسی کوتاه تعدادی از این ابزارها در لینوکس میپردازیم که با استفاده از آنها میتوان برای فایلهای خود یک رمز تعریف کرد یا به عبارت دیگر فایلهای خود را رمزنگاری نماییم.
GPG
ابزار GNU Privacy Guard (GPG) یکی از رایج ترین ابزارها برای رمزنگاری دادهها و قرار دادن رمز عبور روی فایلها است. معمولا این ابزار به صورت پیش فرض در تمام توزیعهای لینوکس نصب میباشد. نسخهی جدید این ابزار OpenPGP یا gpg2 نام دارد. اگر در توزیع شما دستور gpg شناخته شده نیست، میتوانید با استفاده از دستورات مربوط به مدیر بستهی توزیع خود آن را نصب کنید. نام بستهی مربوط به این ابزار در اکثر توزیعها gnupg نام دارد.
برای آشنایی با مدیر بستههای مختلف در توزیعهای لینوکس و چگونگی نصب بستهها میتوانید به این مقاله مراجعه کنید.
پس از نصب این ابزار، به منظور رمزنگاری فایل خود (برای مثال فایل mysecfile.txt) از دستور زیر استفاده میکنیم:
gpg -c mysecfile.txt
با بکارگیری پارامتر -c عمل رمزنگاری متقارن را با استفاده از یک کلمهی عبور انجام میدهیم. پس از آن فایلی با نام mysecfile.txt.gpg در کنار فایل اصلی ساخته میشود. بهتر است فقط نسخهی رمز شده را نگه داشته و فایل اصلی را حذف کنیم. اگر به حجم این دو فایل توجه کنید، مشاهده میکنید که حجم فایل رمز شده کوچک تر از نسخهی اصلی آن است. به این دلیل که ابزار gpg در هنگام رمز نگاری عمل فشرده سازی را نیز بر روی فایل انجام میدهد. به صورت پیش فرض از الگوریتم AES128 برای رمزنگاری در این ابزار استفاده میشود. در صورتی که قصد دارید از سایر الگوریتمهای رمزنگاری استفاده کنید، باید پارامتر crypto-algo را در دستور خود بنویسید. برای مثال همین فایل را با الگوریتم ۳DES رمزنگاری میکنیم:
gpg -c -crypto-algo=3DES mysecfile.txt
برای مشاهدهی سایر الگوریتمهای رمزنگاری قابل استفاده میتوان دستور زیر را وارد نمود:
gpg --version gpg (GnuPG) 2.1.19 libgcrypt 1.7.6 Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Home: /home/moein/.gnupg Supported algorithms: Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 Compression: Uncompressed, ZIP, ZLIB, BZIP2
در قسمت Cipher نام سایر الگوریتمها نوشته شده است.
به منظور رمزگشایی فایل موجود، از دستور زیر استفاده میکنیم:
gpg mysecfile.txt.gpg # or gpg -d mysecfile.txt.gpg
پس از وارد کردن کلمهی عبور، این فایل رمزگشایی میشود.
bcrypt و ccrypt
ابزارهای دیگری با نامهای bcrypt و ccrypt نیز در لینوکس وجود دارد که برای رمزنگاری فایلها مورد استفاده قرار میگیرند. این دو ابزار به عنوان جایگزینی برای دستور crypt در سیستم یونیکس شکل گرفته و توسعه داده شدهاند. bcrypt از الگوریتم Blowfish و ccrypt از الگوریتم Rijndael برای رمزنگاری استفاده میکنند. بسیاری از افراد استفاده از الگوریتم Blowfish را به دلیل ضعفهای موجود در آن پیشنهاد نمیکنند. بنابراین بهتر است از ابزار ccrypt برای رمزنگاری استفاده کنیم. نام بستهی مربوط به این ابزار، ccrypt نام دارد که به سادگی میتوانید آن را نصب کنید.
برای رمزنگاری فایل mysecfile.txt از دستور زیر استفاده میکنیم:
ccrypt -e mysecfile.txt # or ccencrypt mysecfile.txt
برخلاف GPG، این ابزار فایل رمزشده را جایگزین نسخهی اصلی میکند. با اجرای دستور بالا، فایلی با نام mysecfile.txt.cpt ایجاد میشود. برای رمزگشایی این فایل میتوانیم از دستور زیر استفاده کنیم:
ccrypt -d mysecfile.txt.cpt # or ccdecrypt mysecfile.txt.cpt
همانطور که مشاهده میکنید برای عملیات رمزنگاری و رمزگشایی میتوان از هر یک از این دو دستور استفاده نمود.
ZIP
امروزه یکی فرمتهای رایج استفاده شده برای فایلهای فشرده zip نام دارد. با استفاده از ابزار zip نیز میتوان برای فایلها یک کلمه عبور تعریف کرد. نام این بسته در مخازن مربوط به اکثر توزیعها zip نام داشته که به سادگی میتوانید آن را نصب کنید.
پس از نصب این بسته، با استفاده از دستور زیر میتوانیم فایلهای مورد نظر خود را فشرده کرده و برای آنها یک رمز تعریف کنیم:
zip --password mypassword myfiles.zip myfile1.txt myfile2.txt myfile3.txt
در دستور بالا بجای mypassword رمز دلخواه خود را بنویسید و بجای myfiles.zip میتوانید نام فایل جدید رمزنگاری شده را قرار دهید. در ادامهی این دستور اسامی فایلهایی را مینویسیم که قصد داریم آنها را در فایل myfiles.zip قرار دهیم.
به منظور خارج کردن فایلهای درون myfiles.zip و رمزگشایی آن از دستور زیر استفاده میکنیم:
unzip myfiles.zip
پس از وارد کردن کلمهی عبور، این فایل رمزگشایی شده و محتویات موجود در آن استخراج میشود.
OpenSSL
یکی از رایج ترین ابزارهای مورد استفاده برای رمزنگاری پیامها OpenSSL نام دارد. نام این بسته در مخازن مربوط به اکثر توزیعهای لینوکس openssl نام داشته که با استفاده از دستور مناسب برای نصب بستهها میتوانید آن را بر روی توزیع خود نصب کنید.
مثالی از رمزنگاری یک پیام با استفاده از این ابزار و متد base64 را در زیر مشاهده میکنید:
echo "Welcome to Zero to Hero" | openssl enc -base64 # output: V2VsY29tZSB0byBaZXJvIHRvIEhlcm8K
خروجی این دستور یک رشتهی رمزنگاری شده مربوط به پیام ما میباشد. حال برای رمزگشایی این رشته و بازگردانی پیام اصلی میتوانیم از دستور زیر استفاده کنیم:
echo "V2VsY29tZSB0byBaZXJvIHRvIEhlcm8K" | openssl enc -base64 -d # output: Welcome to Zero to Hero
علاوه بر رمزنگاری پیامها، OpenSSL برای رمزنگاری فایلها نیز مورد استفاده قرار میگیرد. به منظور رمزنگاری فایل مورد نظر خود با کمک OpenSSL میتوانیم از دستور زیر استفاده کنیم:
openssl enc -aes-256-cbc -in mysecfile.txt -out mysecfile.dat
در این دستور الگوریتم استفاده شده برای رمزنگاری فایل mysecfile.txt، الگوریتم aes-256-cbc میباشد. فایل رمزنگاری شده را با نام mysecfile.dat ذخیره میکنیم. حال در صورتی که بخواهیم این فایل را رمزگشایی کرده و به حالت اولیه برگردانیم، باید از دستور زیر استفاده نماییم:
openssl enc -aes-256-cbc -d -in mysecfile.dat > mysecfile.txt
بدین ترتیب فایل رمزگشایی شده با نام mysecfile.txt ذخیره میگردد.
برای رمزنگاری فایلها در محیط گرافیکی نیز روشهای مختلفی وجود دارد. برای مثال میتوانید با کلیک راست بر روی فایلهای خود آنها را compress کرده و برای فایل فشردهای که در دست ساخت است، یک رمز دلخواه تعریف کنیم. همچنین با نصب بستهی seahorse-nautilus میتوانید در Nautilus File Manager به سادگی فایلهای خود را با استفاده از GPG رمزنگاری کنید.
تمامی ابزارهای معرفی شده دارای قابلیتهای بیشتری به منظور رمزنگاری فایلها میباشند. شما با خواندن Manual Page هرکدام از آنها میتوانید به اطلاعات بیشتری دست یابید. ما با استفاده از این ابزارها، میتوانیم اطلاعات مهم و حساس خود را رمزنگاری کرده تا امنیت دسترسی به فایلها را در سیستم خود ارتقا دهیم.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.