All of lore.kernel.org
 help / color / mirror / Atom feed
* [dm-crypt] Few questions from a new user
@ 2014-01-08 22:35 Konrad
  2014-01-09  6:51 ` Arno Wagner
  0 siblings, 1 reply; 10+ messages in thread
From: Konrad @ 2014-01-08 22:35 UTC (permalink / raw)
  To: dm-crypt

I am new to disk encryption and I have been reading on it for the last 
days, but I am still confused on some points. I would appreciate if 
someone knowledgeable could clue me in.


1. Is SHA1 just as secure for this purpose as SHA512? After reading 
cryptsetup docs I have a feeling that yes, but I get conflicting 
opinions from various people, so I thought it's best ask at the source.

Also, does the hash used have any impact on performance of disk 
access/read/write once the system is booted? Again, I suppose not, but 
better to make sure, especially since my laptop is not a powerhouse.


2. The more I read, the more I am confused about the algorythms. 
Everything I read says that AES is the fastest, and Serpent is the 
slowest. But not according to my laptop:

$ cryptsetup benchmark
Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       344926 iterations per second
PBKDF2-sha256     198593 iterations per second
PBKDF2-sha512     129007 iterations per second
PBKDF2-ripemd160  271933 iterations per second
PBKDF2-whirlpool  134295 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
      aes-cbc   128b   149.8 MiB/s   147.9 MiB/s
  serpent-cbc   128b    51.0 MiB/s   196.4 MiB/s
  twofish-cbc   128b   127.6 MiB/s   152.5 MiB/s
      aes-cbc   256b   114.3 MiB/s   113.8 MiB/s
  serpent-cbc   256b    51.2 MiB/s   198.9 MiB/s
  twofish-cbc   256b   129.8 MiB/s   167.5 MiB/s
      aes-xts   256b   153.3 MiB/s   150.6 MiB/s
  serpent-xts   256b   176.4 MiB/s   184.1 MiB/s
  twofish-xts   256b   160.8 MiB/s   159.8 MiB/s
      aes-xts   512b   115.4 MiB/s   112.1 MiB/s
  serpent-xts   512b   178.6 MiB/s   184.2 MiB/s
  twofish-xts   512b   160.7 MiB/s   158.9 MiB/s

I suppose this is because it has no AES-IN optimisation (it is one of 
the last Core 2 Duo P9500), but still Serpent beats the others by quite 
a margin.
Plus, on top of that, it seems to be the fastest with the most complex 
key. I  thought it should be the other way around...?

So should I go ahead and use  serpent-xts   512b, or is there a catch?



3. I would like to do full disk encryption, and would like to have those 
methods of unlocking upon boot:
A - my short but complex password
B - long but easy-to-dictate password that I would give to people who 
need to access my laptop when I'm not there, without compromising my own 
password
C - if a USB key with key file is present, I want the computer to not as 
for the password upon boot

Are all three possible with dm-crypt+LUKS? And if so, do I have to set 
them all up while I enctypt my disks, or can B and/or C  be done 
afterwards?

^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: [dm-crypt] Few questions from a new user
@ 2014-01-10 14:31 Arno Wagner
  2014-01-10 15:33 ` .. ink ..
  2014-01-10 16:08 ` Milan Broz
  0 siblings, 2 replies; 10+ messages in thread
From: Arno Wagner @ 2014-01-10 14:31 UTC (permalink / raw)
  To: dm-crypt, Iggy

On Fri, Jan 10, 2014 at 07:25:57 CET, Iggy wrote:
> Would you mind explaining hash-spec?  Meaning that there is no internal
> mechanism to use different hashes/detect which has was used on a given
> volume?
> 
> Thanks for your time!
> 
> -Iggy

(Follow-up to the list, because others may wonder this too, 
also correction, as I posted nonsense. Sorry about that.)

If you look at the header specification linked here:
  http://code.google.com/p/cryptsetup/wiki/Specification

in Figure 1 you find the cipher and mode for the actual disk 
encryption, and the "hash-spec" which is the hash-function 
used by PBKDF2. 

Sorry, I was confused yesterday, you can change the hash.
(I had just though about PBKDF2 which you cannot easily 
change to, say, scrypt...)

Now the thing is that while you can change SHA-1 to, say, 
SHA-512, the attacks on SHA-1 are preimage collisions, i.e. 
you can find two input values that hash to the same value. 
That means an attacker could possibly create a second 
passphrase for one he already knows in plain which is not 
useful and hence this vulnerability of SHA-1 has no effect. 
(Actually this even is harder, I am simplifying here...)

What these attacks are useful for is, for example, 
creating two certificates with different identities in 
them but the same hash. Then you can have one signed
by some authority, but use the otehr one with the different
identity in it as the auhority signs the hash, not the 
actual identity in the certificate. For MD5, this is
really easy. For SHA-1 it is just about becomming feasible.

But this is completely useless for reversing a hash
and that is what an attacker would need to do in LUKS.
And he would need to reverse an iterated hash, iterated,
e.g., 200'000 times on my test machine. Reversing a hash 
is usually only possible by brute-force, attacks that make 
this much easier require very serious flaws in the hash. 
There are no such attacks for SHA-1 that I am aware of, 
and certainly none for an iterated SHA-1. 

So changing the hash does not do anything, really as the
attacker can only try to brute-force the passphrase and
that takes the same effort for SHA-1 and for SHA-512.

Arno
-- 
Arno Wagner,     Dr. sc. techn., Dipl. Inform.,    Email: arno@wagner.name
GnuPG: ID: CB5D9718  FP: 12D6 C03B 1B30 33BB 13CF  B774 E35C 5FA1 CB5D 9718
----
There are two ways of constructing a software design: One way is to make it
so simple that there are obviously no deficiencies, and the other way is to
make it so complicated that there are no obvious deficiencies. The first
method is far more difficult.  --Tony Hoare

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-01-10 16:36 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-08 22:35 [dm-crypt] Few questions from a new user Konrad
2014-01-09  6:51 ` Arno Wagner
2014-01-09 11:22   ` .. ink ..
2014-01-09 14:58     ` shmick
2014-01-10  5:04       ` Arno Wagner
2014-01-10  5:00     ` Arno Wagner
2014-01-10 14:31 Arno Wagner
2014-01-10 15:33 ` .. ink ..
2014-01-10 16:36   ` Arno Wagner
2014-01-10 16:08 ` Milan Broz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.