Şifrelemeyi *** uyarınca nasıl değiştirmeliyim UYARI: kullanımdan kaldırılmış anahtar türevi


17

Bir dosyayı şifrelediğimde veya şifresini çözdüğümde *** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better.

Bunun ne anlama geldiğini, prosedürlerimi nasıl değiştirmem gerektiğini anlamıyorum. Bana yardım eder misin? İle şifreleme openssl des3 <input >output.des3ve şifresini çözme openssl des3 -d <input.des3 >output

Çevre hakkında

Ubuntu 18.10

~$ openssl version OpenSSL 1.1.1 11 Sep 2018


1
3DES şifreleme yöntemi olarak kullanımdan kaldırılıyor. Uyarı yalnızca başka bir yöntem kullanmanızı önerir , daha fazla bilgi için crypto.stackexchange.com/questions/51629/… adresine bakın .
guiverc

1
Bu hata her türlü şifre için olur. Hem şifreleme hem de şifre çözme komutlarına -pbkdf2 eklemeniz gerekir.
Daniele Dellafiore

Maalesef, -pbkdf2 komutlarına nasıl ekleneceğine dair bir örnek verebilir misiniz? Nasıl eklenmesi gerektiğini anlamıyorum.
Tommy Pollák

1
Örneğinizde, yapmanız gereken sadece openssl des3 -e -pbkdf2 < input > output.des3ve openssl des3 -d -pbkdf2 < input.des3 > output. Ayrıca, 3DES yerine farklı bir blok şifreleme kullanmanız gerektiğine dair ilk yorumu kabul ediyorum (DES 1977'den beri), bunu yapmanın kolay bir yolu , AES'yi kullanmak için aes256şu anda des3bu komutlarda bulunduğunuz yeri takas etmektir ( 256 bit AES, geçerli güvenlik standartlarını karşılar).
joelhardi

Teşekkürler! Şimdi çalışır ve aes256 kullanarak uyarı olmadan. Böylece soru cevaplandı.
Tommy Pollák

Yanıtlar:


12

OpenSSL'nin iki ana ve son sürümünün Synopsys'i karşılaştırdığımda, man sayfalarını alıntılayayım.

OpenSSL 1.1.0

openssl enc -ciphername [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]

OpenSSL 1.1.1

openssl enc -cipher [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a] [-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-iter count] [-pbkdf2] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-rand file...] [-writerand file] [-engine id]

Açıkçası bazı büyük farklılıklar var, yani bu soru göz önüne alındığında, 1.1.0'da bu iki anahtar eksik:

  • pbkdf2

  • iter


Artık temel olarak iki seçeneğiniz var. Uyarıyı yok sayın veya şifreleme komutunuzu aşağıdaki gibi bir şeye ayarlayın:

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in InputFilePath -out OutputFilePath

Bu anahtarlar nerede:

  • -aes-256-cbcmaksimum koruma veya 128 bit sürüm için kullanmanız gereken şey , 3DES (Üçlü DES) bir süre önce terk edildi, bkz. Üçlü DES, 2017 yılında NIST tarafından kaldırıldı , AES ise tüm modern CPU'lar tarafından çok hızlandırıldı; CPU'nuzda örneğin AES-NI komutunun ayarlanmış olup olmadığını doğrulayabilirsiniz grep aes /proc/cpuinfo; kazanmak, kazanmak

  • -md sha512 SHA-2 fonksiyon ailesinin SHA-256'ya kıyasla daha hızlı bir çeşididir, ancak biraz daha güvenli olabilir; kazanmak, kazanmak

  • -pbkdf2: PBKDF2 (Şifre Tabanlı Anahtar Türetme Fonksiyonu 2) algoritmasını kullanın

  • -iter 100000 manuel olarak, şifre için varsayılan yineleme sayısını geçersiz kılar:

    Şifreleme anahtarını türetirken parola üzerinde belirli sayıda yineleme kullanın. Yüksek değerler, elde edilen dosyayı kaba kuvvet uygulamak için gereken süreyi artırır. Bu seçenek, anahtarı türetmek için PBKDF2 algoritmasının kullanılmasını sağlar.


1
Daha sonra, nasıl şifresini çözmek için kullanımı openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -in InputFilePath -out OutputFilePath.
l Mingzhi

1
Sadece -dkomuta ekleyerek :openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -d -in InputFilePath
Eduard Itrich

1
Bu öneri ile ilgili birkaç sorun olduğundan eminim. Gereğince en.wikipedia.org/wiki/Key_derivation_function istediğiniz yavaş anahtar türetme algoritmasının varyantı. Başka bir deyişle gereğince SHA512 kullanmayan en.wikipedia.org/wiki/PBKDF2 in the year 2000 the recommended minimum number of iterations was 1000, but the parameter is intended to be increased over time as CPU speeds increase yerde 10.000 ila 100.000 tekrarlamalar yerine 1000'i öneriyoruz böylece -
oskarpearson

@oskarpearson Doğru, şimdi okudum. Yanıt güncelleniyor.
LinuxSecurityFreak

@oskarpearson O zaman hangi hash'ı öneriyorsunuz?
anthony
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.