dm-crypt Digest, Vol 66, Issue 20
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 436 lines · On Dec 31, 2014, at 4:00 AM, [email protected] wrote:
Send dm-crypt mailing list submissions to
[email protected]To subscribe or unsubscribe via the World Wide Web, visit
http://www.saout.de/mailman/listinfo/dm-crypt
or, via email, send a message with subject or body 'help' to
[email protected]You can reach the person managing the list at
[email protected]When replying, please edit your Subject line so it is more specific than "Re: Contents of dm-crypt digest..."
Today's Topics:
1. unsafe??? use of memset (.. ink ..)
2. Re: unsafe??? use of memset (Milan Broz)
3. Re: unsafe??? use of memset (Arno Wagner)
4. Re: unsafe??? use of memset (Arno Wagner)
5. Re: Asustor NAS and cryptsetup 1.6.1 ([email protected])
6. Re: Asustor NAS and cryptsetup 1.6.1 (Sven Eschenberg)
7. Re: Asustor NAS and cryptsetup 1.6.1 (Arno Wagner)----------------------------------------------------------------------
Message: 1
Date: Tue, 30 Dec 2014 16:57:56 +0300
From: ".. ink .." <[email protected]>
To: "[email protected]" <[email protected]>
Subject: [dm-crypt] unsafe??? use of memset
Message-ID:
<CAFnMBaQZp63DCZB9f9K1tPia237OGWjVQ6c2oYM7VNSDWqk_Vw@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"a lot of people like this one[2] advises against the use of memset to clear memory but crypsetup seems to
ignore this advice and use memset a lot like in[1].Any reason why cryptseup is ignoring this advice?
[1]
https://code.google.com/p/cryptsetup/source/browse/lib/tcrypt/tcrypt.c#272
[2]
http://edc.tversu.ru/elib/inf/0088/0596003943_secureprgckbk-chp-13-sect-2.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.saout.de/pipermail/dm-crypt/attachments/20141230/bac6fac1/attachment-0001.html>------------------------------
Message: 2
Date: Tue, 30 Dec 2014 15:26:02 +0100
From: Milan Broz <[email protected]>
To: ".. ink .." <[email protected]>, "[email protected]"<[email protected]>Subject: Re: [dm-crypt] unsafe??? use of memset
Message-ID: <[email protected]>
Content-Type: text/plain; charset=windows-1252Quoted 5 lines · .. ink ..
a lot of people like this one[2] advises against the use of memset to clear memory but crypsetup seems to ignore this advice and use memset a lot like in[1].
Any reason why cryptseup is ignoring this advice?
Why ignore? It worked with old compilers (and VC is not the issue here).
This is opensource, so I usually respond with "send a patch" to these messages...
But actually I have patch for that for weeks. I have just another issues which have unfortunately much higher priority in my life and I am not going commit half-baked patch.
FYI:
I fixed it is kernel dmcrypt, there we can usememzero_explicit()
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/md/dm-crypt.c?id=1a71d6ffe18c0d0f03fc8531949cc8ed41d702eeCryptsetup will follow (hopefully soon with other fixes).
And it is nothing critical.
There is a nice description of problem
https://cryptocoding.net/index.php/Coding_rules#Prevent_compiler_interference_with_security-critical_operationsActually I want to replace zero memset with zero it with code used in BLAKE2. It is simple and should work.
static inline void
secure_zero_memory(void *v, size_t n){
volatileuint8_t*p = (volatileuint8_t*)v; while(n--) *p++ = 0;
}Milan
Quoted 3 lines
[1] https://code.google.com/p/cryptsetup/source/browse/lib/tcrypt/tcrypt.c#272
[2] http://edc.tversu.ru/elib/inf/0088/0596003943_secureprgckbk-chp-13-sect-2.html------------------------------
Message: 3
Date: Tue, 30 Dec 2014 17:38:14 +0100
From: Arno Wagner <[email protected]>
To: [email protected]
Subject: Re: [dm-crypt] unsafe??? use of memset
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-asciiInteresting question. I think it is not relevant for most Linux scenarios, as
memset()comes precompiled as part of a binary library, and the compiler has no clue what it does and hence cannot optimize it away.If memset is compiled together with the code using it, this would be a problem, but also one anybody writing secure code should be aware of. I am not aware of any normal Linux scenarios where that could happen.
Still, soemthing low-priority to fix eventually, as it cannot be ruled out that it may some day be compiled in a dangerous fashion or
memset()may be made a macro or some other bizarre circumstances.BTW, with GCC, there is also the possibility to locally prohibit optimization with something like:
#pragma GCC
push_options
#pragma GCC optimize ("O0")
code
#pragma GCCpop_optionsI needed that some time ago, but do not remember for what.
Anyways, this is an area where recipes do not cut it. For secure code you have to understand how it gets compiled on the specific target platform and what the issues there are.
Arno
Quoted 15 lines · .. ink ..
a lot of people like this one[2] advises against the use of memset to clear memory but crypsetup seems to
ignore this advice and use memset a lot like in[1].Any reason why cryptseup is ignoring this advice?
[1]
https://code.google.com/p/cryptsetup/source/browse/lib/tcrypt/tcrypt.c#272
[2]
http://edc.tversu.ru/elib/inf/0088/0596003943_secureprgckbk-chp-13-sect-2.html_______________________________________________
dm-crypt mailing list
[email protected]
http://www.saout.de/mailman/listinfo/dm-cryptSignature · 18 lines
Arno Wagner, Dr. sc. techn., Dipl. Inform., Email: [email protected] GnuPG: ID: CB5D9718 FP: 12D6 C03B 1B30 33BB 13CF B774 E35C 5FA1 CB5D 9718 ---- A good decision is based on knowledge and not on numbers. -- Plato If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ------------------------------ Message: 4 Date: Tue, 30 Dec 2014 17:47:21 +0100 From: Arno Wagner <[email protected]> To: [email protected] Subject: Re: [dm-crypt] unsafe??? use of memset Message-ID: <[email protected]> Content-Type: text/plain; charset=us-asciiQuoted 18 lines · Milan Broz
Quoted 5 lines · .. ink ..
a lot of people like this one[2] advises against the use of memset to clear memory but crypsetup seems to ignore this advice and use memset a lot like in[1].
Any reason why cryptseup is ignoring this advice?
Why ignore? It worked with old compilers (and VC is not the issue here).
This is opensource, so I usually respond with "send a patch" to these messages...
But actually I have patch for that for weeks. I have just another issues which have unfortunately much higher priority in my life and I am not going commit half-baked patch.
FYI:
I fixed it is kernel dmcrypt, there we can usememzero_explicit()
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/md/dm-crypt.c?id=1a71d6ffe18c0d0f03fc8531949cc8ed41d702eeQuoted 6 lines
Cryptsetup will follow (hopefully soon with other fixes).
And it is nothing critical.
There is a nice description of problem
https://cryptocoding.net/index.php/Coding_rules#Prevent_compiler_interference_with_security-critical_operationsInteressting! So the problem is that
memset()may not even be called. That would be bad. In that case the compiler would need to know that there are no volatile variables used insidememset(), which again, I think it should not be able to on Linux as gcc does not look at the libraries before linking. Apparently MS Visual C++ 2010 knows more about the libraries than is good for it.My take would be that this is a legal optimization (with regard to the C standard), but one that needs some hidden special treatment of
memset(). Of course I could be wrong.Arno
Quoted 18 lines
Actually I want to replace zero memset with zero it with code used in BLAKE2. It is simple and should work.
static inline void
secure_zero_memory(void *v, size_t n){
volatileuint8_t*p = (volatileuint8_t*)v; while(n--) *p++ = 0;
}Milan
Quoted 3 lines
[1] https://code.google.com/p/cryptsetup/source/browse/lib/tcrypt/tcrypt.c#272
[2] http://edc.tversu.ru/elib/inf/0088/0596003943_secureprgckbk-chp-13-sect-2.html_______________________________________________
dm-crypt mailing list
[email protected]
http://www.saout.de/mailman/listinfo/dm-cryptSignature · 25 lines
Arno Wagner, Dr. sc. techn., Dipl. Inform., Email: [email protected] GnuPG: ID: CB5D9718 FP: 12D6 C03B 1B30 33BB 13CF B774 E35C 5FA1 CB5D 9718 ---- A good decision is based on knowledge and not on numbers. -- Plato If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ------------------------------ Message: 5 Date: Tue, 30 Dec 2014 10:18:38 -0800 From: "[email protected]" <[email protected]> To: "[email protected]" <[email protected]> Subject: Re: [dm-crypt] Asustor NAS and cryptsetup 1.6.1 Message-ID: <[email protected]> Content-Type: text/plain; charset=windows-1252; format=flowed They are reluctant to give out any details, but are saying that they will be releasing a new version of their software in the coming weeks that uses ecryptfs instead. Is this a step forward or backward (or rather just "sideways")? MarkQuoted 12 lines · Arno Wagner
Quoted 11 lines · On Tue, Dec 30, 2014 at 03:32:58 CET, [email protected] wrote:
Quoted 10 lines · Quentin Lefebvre
Quoted 5 lines · On 29/12/2014 20:06, [email protected] wrote :
Assuming I did create the container with aes-cbc-essiv:sha256; would cryptsetup automatically figure out the correct parameters when it is subsequently called without those parameters to mount the container? Or do non-default parameters at creation time require the same non-default parameters again for subsequent mounts?
As you may have understood, in plain mode, there is no header, so no way for cryptsetup to guess the algorithm used. Thus, if it is a non-default one, it must be specified also at mount time.
Quoted 8 lines
Quoted 4 lines
Hm, makes sense. Is there some kind of a config file that I could specify the parameters in, and that would be read prior to using the defaults - similar to how some parameters for mount can be specified in
/etc/fstab?Only if the NAS-makers added one. cryptsetup does not have a mechanism for this.
Arno
------------------------------
Message: 6
Date: Tue, 30 Dec 2014 20:16:48 +0100
From: "Sven Eschenberg" <[email protected]>
To: [email protected]
Subject: Re: [dm-crypt] Asustor NAS and cryptsetup 1.6.1 Message-ID:<[email protected]>Content-Type: text/plain;charset=utf-8
Hummm, good question.
I think backwards. ecryptfs basicly does a per file encryption. So you'll have a normal filesystem which holds encrypted files. The downside is bad performance as it uses FUSE, it potentiolly discloses the structure of the filesystem (while filenames are scrambled the tree structure is visible). It is easier to backup as you can easily backup the encrypted files and do not need to dump the whole block device. (The price for this is disclosing the fs structure)
Regards
-Sven
Quoted 27 lines · On Tue, December 30, 2014 19:18, [email protected] wrote:
They are reluctant to give out any details, but are saying that they will be releasing a new version of their software in the coming weeks that uses ecryptfs instead.
Is this a step forward or backward (or rather just "sideways")?Mark
Quoted 19 lines · Arno Wagner
Quoted 7 lines · On Tue, Dec 30, 2014 at 03:32:58 CET, [email protected] wrote:
Quoted 6 lines · Quentin Lefebvre
Quoted 5 lines · On 29/12/2014 20:06, [email protected] wrote :
Assuming I did create the container with aes-cbc-essiv:sha256; would cryptsetup automatically figure out the correct parameters when it is subsequently called without those parameters to mount the container? Or do non-default parameters at creation time require the same non-default parameters again for subsequent mounts?
Quoted 8 lines
Quoted 4 lines
As you may have understood, in plain mode, there is no header, so no way for cryptsetup to guess the algorithm used. Thus, if it is a non-default one, it must be specified also at mount time.
Hm, makes sense. Is there some kind of a config file that I could specify the parameters in, and that would be read prior to using the defaults - similar to how some parameters for mount can be specified in
/etc/fstab?Only if the NAS-makers added one. cryptsetup does not have a mechanism for this.
Quoted 7 lines
Quoted 1 line
Arno
_______________________________________________
dm-crypt mailing list
[email protected]
http://www.saout.de/mailman/listinfo/dm-crypt------------------------------
Message: 7
Date: Wed, 31 Dec 2014 08:26:39 +0100
From: Arno Wagner <[email protected]>
To: [email protected]
Subject: Re: [dm-crypt] Asustor NAS and cryptsetup 1.6.1
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-asciiecryptfs leaks a lot of data like filenames, sizes, modifiaction times, etc. These can be critical. For example, sometimes file-sizes are misused as "fingerprints".
I would say definitely backwards security-wise, for possibly some better usability.
Arno
Quoted 33 lines · On Tue, Dec 30, 2014 at 19:18:38 CET, [email protected] wrote:
They are reluctant to give out any details, but are saying that they will be releasing a new version of their software in the coming weeks that uses ecryptfs instead.
Is this a step forward or backward (or rather just "sideways")?Mark
Quoted 12 lines · Arno Wagner
Quoted 11 lines · On Tue, Dec 30, 2014 at 03:32:58 CET, [email protected] wrote:
Quoted 10 lines · Quentin Lefebvre
Quoted 5 lines · On 29/12/2014 20:06, [email protected] wrote :
Assuming I did create the container with aes-cbc-essiv:sha256; would cryptsetup automatically figure out the correct parameters when it is subsequently called without those parameters to mount the container? Or do non-default parameters at creation time require the same non-default parameters again for subsequent mounts?
As you may have understood, in plain mode, there is no header, so no way for cryptsetup to guess the algorithm used. Thus, if it is a non-default one, it must be specified also at mount time.
Quoted 8 lines
Quoted 4 lines
Hm, makes sense. Is there some kind of a config file that I could specify the parameters in, and that would be read prior to using the defaults - similar to how some parameters for mount can be specified in
/etc/fstab?Only if the NAS-makers added one. cryptsetup does not have a mechanism for this.
Arno
_______________________________________________
dm-crypt mailing list
[email protected]
http://www.saout.de/mailman/listinfo/dm-cryptSignature · 23 lines
Arno Wagner, Dr. sc. techn., Dipl. Inform., Email: [email protected] GnuPG: ID: CB5D9718 FP: 12D6 C03B 1B30 33BB 13CF B774 E35C 5FA1 CB5D 9718 ---- A good decision is based on knowledge and not on numbers. -- Plato If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ------------------------------ Subject: Digest Footer _______________________________________________ dm-crypt mailing list [email protected] http://www.saout.de/mailman/listinfo/dm-crypt ------------------------------ End of dm-crypt Digest, Vol 66, Issue 20 ****************************************