FDE (Tam Disk Şifrelemesi) nasıl bu kadar hızlı çalışır?


13

Ubuntu'nun tam disk şifrelemesinin kaputun altında nasıl çalıştığını merak ediyorum. İşte bir örnek:

Aşağıdaki dizeyi diskin içeriği olarak değerlendirmek:

hello world

Bir tür şifreleme yöntemini uyguladıktan sonra şöyle görünecektir:
(Bu örnek için + 1'lik bir kayma ile Sezar şifresini kullandım, örneğin A → B; B → C ...)

ifmmp xpsme

Anladığım kadarıyla, bilgisayar kapatıldığında, sürücünün içeriği yukarıdaki dize olacaktır. Ancak tekrar açıldığında, Ubuntu'nun hello worldbaşarılı bir şekilde önyükleme yapabilmek için içeriğinin tekrar geri gelmesi gerekiyor .

Gerçekte elde edemediğim şey, gerçek dünyada diskin içeriğinin çok daha fazla olması ve şifreleme algoritmasının daha karmaşık olması ve bilgisayarın sadece birkaç saniye içinde hepsini tamamen şifrelemesini / şifresini çözmesini zor buluyorum (önyükleme veya kapatma daha uzun sürmez).

Bu nasıl mümkün olabilir?

Yanıtlar:


10

AES / Rijndael Şifrelemesi genel olarak nasıl çalışır?

Bu sayfa, 50'den fazla görüntü, örneğin bu ikisi gibi görünse de, anlaşılması kolay görünen Gelişmiş Şifreleme Standardı (AES) için eğlenceli bir Sopa Şekil Kılavuzu'na sahiptir :

resim açıklamasını buraya girin

ve

resim açıklamasını buraya girin

Hepsini burada çoğaltmak için çok fazla, ancak hepsi bir arada bir görüntünüz olması gerekiyorsa, bu:

resim açıklamasını buraya girin


Veya http://www.password-depot.com/know-how/blowfish_and_rijndael.htm adresinde daha kompakt bir açıklama var.

Rijndael şifreleme yöntemi baytlarda xor işlemlerini değiştirme, değiştirme ve gerçekleştirmeye dayanır. Yöntem şöyle görünür:

  • 128 bitlik anahtardan Rijndael, her biri 128 bitlik 10 anahtar üretir.
  • Bu anahtarlar 4x4 dizilere yerleştirilir.
  • Düz metin de 4x4 dizilere ayrılmıştır (her biri 128 bit).
  • 128 bitlik düz metin öğelerinin her biri 10 turda işlenir (128 bitlik anahtarlar için 10 mermi, 192 için 12, 256 için 14).
  • 10. turdan sonra kod üretilir.
  • Her bir bayt bir S kutusunda ikame edilir ve yerine GF üzerindeki karşılık gelir (2 8).
  • Daha sonra bir bit-akıllı modulo-2 matrisi uygulanır, ardından 63 ile bir XOR işlemi uygulanır.
  • Matrislerin çizgileri döngüsel olarak sıralanır.
  • Matris çarpımının sütunları GF'de değiştirilir (2 8).
  • Her turun alt anahtarları bir XOR işlemine tabi tutulur.

Rijndael farklı alt anahtarlarla birkaç kez gerçekleştirilirse bu şifreleme yönteminin güvenlik seviyesi artar.


Ubuntu'nun Tam Disk Şifrelemesi nasıl çalışır?

Ben inanıyorum bu LÜKS ile bir bölüm (AES ile varsayılan ayarlar) şifreleyerek çalışır ve sonra (gibi LVM ile üzerinde bazı birimleri koyar /Bir parola girdikten sonra takas,) ve açılışta çözer ve bağlar onları. Ve parolayı soracak kadar önyükleme yapan düzenli (şifrelenmemiş) bir önyükleme bölümü var.

the_simple_computer'ın Ubuntu ile Tam Disk Şifreleme Kılavuzu (Güncelleme 28 Haziran 2015) , varsayılan yükleyicinin şifrelemesinin nasıl çalıştığıyla ilgili olduğunu söylüyor ve çift önyüklemenin işe yaramayacağını (en azından kutudan çıktığı gibi değil), sürücünün MBR kullanmanız gerekir, böylece " bilgisayarınızda UEFI varsa, dağıtım eski BIOS modunda yüklenir, böylece Güvenli Önyüklemeyi kullanamazsınız " ve " ayrıca size sistem RAM'inize (genellikle gereksiz) eşit bir takas boyutu verir ve ne tür bir şifreleme kullanıldığına dair hiçbir seçeneğiniz yok. "


Şifreleme ne kadar hızlı?

Eğer çalıştırırsanız cryptsetup benchmarko testler ve şifreleme yalnız, (şu anda) varsayılan aes-XTS hatları için nöbet alır ne kadar hızlı anlatacağım:

#  Algorithm | Key |  Encryption |  Decryption
     aes-xts   256b    150.0 MiB/s    145.0 MiB/s

Ortalama bir sabit disk okuma hızı 80-160 MB / s olabilir, bu nedenle normal bir okumadan çok daha uzun olmayacaksınız ve hala beklerken okunan sektörlerin şifresi çözülmüş olabilir. daha fazla okumak için sabit disk.

Bir SSD muhtemelen daha hızlı olabilir , belki 200-550MB / s, bu yüzden fark edebilirsiniz. Ancak, rastgele okumalar daha yavaş olabilir ve SSD hızlarının kullanımdan sonra yavaşlayabileceğini okudum (belki sürücü tamamen dolduğunda ve sektörleri "silmeye" başlaması gerekir?)

Bilgisayar tüm sürücüyü sadece birkaç saniye içinde nasıl tamamen şifreleyebilir / şifresini çözebilir (önyükleme veya kapatılması daha uzun sürmez)?

Önce her şeyin şifresini çözmek zorunda değil. Şifreleme (LUKS) veri blokları üzerinde çalışır, herhangi bir bloğun şifresini çözebilir ve sürücünün şifrelenmiş verileri ile dosya sisteminin gördükleri arasında bir katman gibi davranır.

Dosya sistemi herhangi bir veri bloğunu görmek istediğinde, LUKS önce bloke olan şifreyi çözer ve daha sonra şifresi çözülmüş verileri dosya sistemine verir. Öncelikle sürücünün veri bloğunu okumasını beklersiniz (şifreleme kullanmadan olduğu gibi) ve yalnızca o tek bloğun (veya birkaç bloğun) şifresini çözmek için fazladan bir gecikmeniz olur - ve şifre çözme işlemi sürücüden daha hızlıysa okuyabilir, şifre çözme olabilir sürücü verilerinin sonraki blok okur önce bitmiş olması.

Bu nedenle, normal bir dosya sisteminin bir dosyayı okumak için tüm sürücüyü okumasına gerek olmadığı gibi, şifreleme eklendiğinde de tüm sürücüyü okumasına gerek yoktur ve işleri çok daha yavaş hale getirmez .

Sabit sürücüdeki veriler her zaman şifrelenir , bu nedenle kapatma sırasında anahtarı unutmak dışında yapacak bir şey yoktur.


@Hewbot Q'nuzun başlığı "bu kadar hızlı mı?" (başlık hala sormak istediğiniz şey mi?)
Xen2050

3

Bu bir basitleştirme olacak, ancak şifreli bir dosya sistemindeki bir dosyaya erişme sürecinden geçmeye çalışacağım.

Örneğin, şifrelenmiş dosya sisteminin başlangıcında bir dosya tablosu olduğunu varsayalım; diyelim ki okumak istiyoruz /foo.bar. Yani, yaptığımız ilk şey bölümün başlangıcını okumak, şifresini çözmek ve istediğimiz dosyaya bakmaktır; diyelim ki dosya 0x10000000 baytta başlıyor. Bu yüzden okumak için, o konumdaki diskten okumaya ve şifresini çözmeye başlarız; benzer şekilde, yazmak için yeni içerikleri şifreleyebilir ve bu yeni konuma yazabiliriz.

Umarım bu süreçle ilgili herhangi bir karışıklığı gidermeye yardımcı olur.


1
Bence bu OP'nin sorusuna gerçekten cevap veren cevap - onun yanlış algısı, sadece kullanıldıkça okunan / yazılan bitleri değil, tüm sürücüyü tamamen şifrelemesi / şifresini çözmesi gerektiğidir.
SomeoneSomewhereSupportsMonica

2

İşlemci, özel talimat seti kullanır. Bu nedenle mümkündür, AES-NI . Hızlı şifreleme ve şifre çözme sağlar veya ek yükü kestiğini söyleyebilirsiniz. Hızlıdır çünkü burada açıklandığı gibi donanım uygulamasıdır .

Performans etkilerini buradan kontrol edebilirsiniz ve ek güvenlik için buna değer.


1
Ayrıca, diskteki veriler yalnızca gerektiğinde şifrelenir / şifresi çözülür; örneğin, önyüklemede, yalnızca başlangıç ​​komut dosyaları, kullanıcı bilgileri, DM / WE yürütülebilir dosyaları vb. şifresi çözülür
Nick Mertin

Birçok CPU AES desteğine sahip değildir ve Ubuntu'nun şifrelemesi hala üzerlerinde çalışıyor ...
Yapsalar

@shsh O zaman, gerçekten eski bir bilgisayarda olsaydım, FDE kullanmak imkansız olurdu, çünkü donanım uygulaması olmaz mıydı? O zaman tüm diskin önyükleme ve kapatma sırasında şifrelenip şifresinin çözüldüğünü anlamalı mıyım?
Hewbot

@ MagikM18 Öyleyse, algoritma "dize" nin tamamında şifre çözme işlemine nereden başlayacağını nasıl bilebilir? Yani, bir belgeyi açarsam, nerede olduğunu "koordinatlarını" nasıl bilir?
Hewbot

@Newbot yine de aynı şekilde; temel olarak, şifreleme fiziksel disk ve dosya sistemi arka plan programı arasındaki bir katmandır. böylece, diskten veri okumak istediğinde, okunur ve şifresi çözülür; bu yüzden normal bir fs'de olduğu gibi, önce dosya tablosunu okuyacak, dosyanın başlangıç ​​konumunu bulacak, sonra oradan okuyacaktır.
Nick Mertin

0

Modern bilgisayarlar saniyede milyarlarca işlem yapabilir, bu yüzden şifreleme ve şifre çözmenin hızlı olması beni şaşırtmaz.

Bu şekilde sezgisel olarak bilgisayarların bir şeyleri ne kadar hızlı gerçekleştirdiğini sıralarım:

  1. Bellek içinde hesaplamalar yapmak (özellikle L1 ve L2 bellek), son derece hızlı
  2. Yerel depolamadan okuma, daha az hızlı (katı hal diskleri sabit disklerden daha hızlıdır)
  3. Ağdan okuma, daha az hızlı.

Anlaşılması gereken diğer anahtar bit, işletim sisteminin sistemi başlatmak için tüm sabit diskin şifresini çözmesi gerekmemesidir. Bunun yerine, işletim sistemi sabit diskin yalnızca ihtiyaç duyduğu parçaların şifresini nasıl çözeceğini bilir ve aynı şey yazma için de geçerlidir.

Öylesine sezgisel olarak, şişe boynunun disk olduğunu hayal ettiğim için, tam disk şifrelemenin performans üzerinde çok fazla etkisi olmadığına şaşırmadım.

Tabii ki, bu sezgiler her zaman gerçeğe uymuyor. Örneğin, gerçekte, tam disk şifrelemesinin gözle görülür bir performans isabetine neden olduğu durumlar olmuştur. Ancak genellikle bunlar, geliştiriciler birkaç iyileştirme geliştirme aşamasından geçtikten sonra çözülür.


1
Bu cevabın mümkün olan bir yolunu bulamıyorum. Sadece 1 TB'ı USB 3.0 ile kopyalamak birkaç dakika sürer, eğer orta bir işlem yapılması gerekiyorsa (şifre çözme), bir bilgisayarı FDE ile başlatmak birkaç dakika sürebilir.
Hewbot

@Hewbot Cevabı çözmenin anında gerçekleştiğini açıklamak için cevabımı düzenledim. İşletim sisteminin şifrelenmiş 1 TB disk kullanmaya başlamak için 1 TB veri okumasına gerek yoktur.
Flimm
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.