Dosyaları ve dizinleri güvenli bir şekilde şifrelemek ve şifrelerini çözmek, hassas verileri korumak için çok önemlidir. Güçlü bir açık kaynak aracı olan OpenSSL, küçük metin dosyalarından büyük ikili dosyalara ve hatta dizinlerin tamamına kadar her boyuttaki dosyayı işleyebilen güçlü şifreleme ve şifre çözme yetenekleri sağlar. Bu eğitim, Redhat, Ubuntu, Debian, CentOS ve Fedora gibi Linux sistemlerinde OpenSSL kullanarak dosya ve dizinleri şifreleme ve şifrelerini çözme sürecinde size yol gösterecektir.
Örnek Dosya veya Dizin Oluşturma ve RSA Anahtarları Oluşturma
Başlamak için şifrelemek istediğiniz bir dosyaya veya dizine ihtiyacınız olacak. Gösterim amacıyla örnek bir dosya veya dizin oluşturalım ve bir RSA anahtar çifti oluşturalım.
- Örnek Dosya veya Dizin Oluşturun: Neyi şifrelemek istediğinize bağlı olarak bir dosya veya dizin oluşturabilirsiniz. İşte her ikisi için de komutlar:
Bir dosya için:$ fallocate -l 100M sample_file.img
Bu komut, 100 MB boyutunda sample_file.img adlı bir dosya oluşturur.
Bir dizin için:
$ mkdir sample_directory $ touch sample_directory/file1.txt sample_directory/file2.txt
Bu, iki metin dosyası içeren sample_directory adında bir dizin oluşturur.
- Bir RSA Genel ve Özel Anahtar Çifti Oluşturun: Şimdi OpenSSL komutunu kullanarak genel ve özel bir anahtar çifti oluşturun:
$ openssl req -x509 -nodes -newkey rsa:2048 -keyout private-key.pem -out public-key.pem
Bu komut 2048 bitlik bir RSA anahtar çifti oluşturur. Özel anahtar, Private-key.pem’de, genel anahtar ise public-key.pem’de saklanır. Bu işlem sırasında sizden sertifika ayrıntıları istenecektir ancak ENTER tuşuna basarak bunları atlayabilirsiniz.
$ ls -l *.pem
Özel anahtarın güvenli bir şekilde saklandığından emin olun; çünkü onu kaybetmek, dosyalarınızın veya dizinlerinizin şifresini çözmenizi engelleyecektir.
OpenSSL Kullanarak Bir Dosyayı veya Dizini Şifrelemek
Artık anahtarlara ve örnek dosyaya veya dizine sahip olduğumuza göre şifrelemeye devam edelim.
- Dosyayı veya Dizini Şifreleyin: Bir dosyayı mı yoksa dizini mi şifrelediğinize bağlı olarak işlem biraz farklıdır.
Bir dosya için:$ openssl smime -encrypt -binary -aes-256-cbc -in sample_file.img -out sample_file.img.enc -outform DER public-key.pem
Bu komut sample_file.img dosyasını AES-256-CBC kullanarak şifreler ve şifrelenmiş çıktıyı sample_file.img.enc olarak saklar.
Bir dizin için:
Öncelikle dizini bir tarball’a sıkıştırın:$ tar -czf sample_directory.tar.gz sample_directory/
Ardından tarball’ı şifreleyin:
$ openssl smime -encrypt -binary -aes-256-cbc -in sample_directory.tar.gz -out sample_directory.tar.gz.enc -outform DER public-key.pem
Bu komut sample_directory.tar.gz dosyasını şifreler ve şifrelenmiş çıktıyı sample_directory.tar.gz.enc olarak saklar.
- Verify the Encryption: Şifreleme işleminin başarılı olduğundan emin olmak için karşılaştırma amacıyla hem orijinal hem de şifrelenmiş dosya veya dizinlerin MD5 sağlama toplamını oluşturun.
Bir dosya için:$ md5sum sample_file.img*
Bir dizin için:
$ md5sum sample_directory.tar.gz*
Sağlama toplamları, dosyanın veya dizinin şifrelendiğini doğrulayacak şekilde farklı olmalıdır.
OpenSSL Kullanarak Bir Dosyanın veya Dizinin Şifresini Çözme
Dosyanız veya dizininiz şifrelendikten sonra, şifresini nasıl çözeceğinizi bilmeniz gerekir.
- Şifrelenmiş Dosyanın veya Dizinin Şifresini Çözme: Bir dosyanın mı yoksa dizinin mi şifresini çözdüğünüze bağlı olarak aşağıdaki komutları kullanın.
Bir dosya için:$ openssl smime -decrypt -in sample_file.img.enc -binary -inform DER -inkey private-key.pem -out decrypted_sample_file.img
Bu komut, sample_file.img.enc dosyasının şifresini çözer ve sonucu decrypted_sample_file.img olarak saklar.
Bir dizin için:
İlk önce tarball’ın şifresini çözün:$ openssl smime -decrypt -in sample_directory.tar.gz.enc -binary -inform DER -inkey private-key.pem -out decrypted_sample_directory.tar.gz
Ardından dizini çıkarın:
$ tar -xzf decrypted_sample_directory.tar.gz
Bu komut orijinal sample_directory’yi geri yükler.
- Şifre Çözmeyi Doğrulama: Şifre çözmenin başarılı olduğunu doğrulamak için, şifresi çözülen dosya veya dizinin MD5 sağlama toplamını oluşturun ve bunu orijinal dosya veya dizinin sağlama toplamıyla karşılaştırın.
Bir dosya için:$ md5sum decrypted_sample_file.img sample_file.img
Bir dizin için:
$ md5sum decrypted_sample_directory.tar.gz sample_directory.tar.gz
Orijinal ve şifresi çözülmüş dosya veya dizinlerin sağlama toplamları eşleşmelidir; bu, şifre çözmenin başarılı olduğunu gösterir.
Yazının orijinalini buradan okuyabilirsiniz.