All of lore.kernel.org
 help / color / mirror / Atom feed
* ecryptfs-mount-private fails the first time after boot
@ 2013-11-15 22:51 Benjamin Moody
  2013-11-15 23:34 ` Tyler Hicks
  0 siblings, 1 reply; 5+ messages in thread
From: Benjamin Moody @ 2013-11-15 22:51 UTC (permalink / raw)
  To: ecryptfs

I don't know if this list is the right place to be asking this
question; please let me know if there's a better place.  I'm not
subscribed to the list so please CC me on replies.

I'm using ecryptfs on Scientific Linux 6.4 (kernel
2.6.32-358.23.2.el6.x86_64, ecryptfs-utils 82-6.el6_1.3) and I'm
having a minor but annoying problem.  The first time I run
'ecryptfs-mount-private' after booting the system, it always fails.
(It's happened at least 10 times; I'm quite certain that I'm entering
the passphrase correctly.)  I then need to run
'ecryptfs-umount-private' and 'ecryptfs-mount-private' again in order
for my files to finally show up.

I believe I selected all the default options when I set the filesystem
up, except that I had it use a separate passphrase, not my login
password.  It's encrypted with AES and filename encryption is enabled.
 It's mounted at /home/benjamin/Private/ and the encrypted files are
stored in /home/benjamin/.Private/.

When I run ecryptfs-mount-private for the first time, it shows the following:

$ ecryptfs-mount-private
Enter your wrapping passphrase:
Inserted auth tok with sig [...] into the user session keyring
keyctl_search: Required key not available
Perhaps try the interactive 'ecryptfs-mount-private'

At this point, the following messages appear in dmesg:

$ dmesg
...
TECH PREVIEW: ecryptfs may not be fully supported.
Please review provided documentation for limitations.
SELinux: initialized (dev ecryptfs, type ecryptfs), uses genfs_contexts

And at this point, the filesystem is *mounted* but the files are not
correctly decrypted (i.e. Private appears to be an exact mirror of
.Private):

$ ls Private/
ECRYPTFS_FNEK_ENCRYPTED.FWaO.4n6KQUoiUR2FAbPNmeUAR1Zw4f3.rLCHzv3PNoOtExPXP.Ei0KiAE--
ECRYPTFS_FNEK_ENCRYPTED.FXaO.4n6KQUoiUR2FAbPNmeUAR1Zw4f3.rLC-NRvX4ESyXeGh90V8z6JRo2qp.xjwPLn8Fz1BXP8u22-
...

I then unmount and remount it:

$ ecryptfs-umount-private
keyctl_search: Required key not available
Perhaps try the interactive 'ecryptfs-mount-private'

$ ecryptfs-mount-private
Enter your wrapping passphrase:
Inserted auth tok with sig [...] into the user session keyring

at which point it works as expected.  If I later run
ecryptfs-umount-private again, it doesn't display the 'keyctl_search'
error message.

So, does anyone know why this might be happening?  Is it a known bug
in the kernel and/or ecryptfs-utils?  If it's not easy to fix, is
there a workaround?

Thanks in advance,
Benjamin Moody

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

* Re: ecryptfs-mount-private fails the first time after boot
  2013-11-15 22:51 ecryptfs-mount-private fails the first time after boot Benjamin Moody
@ 2013-11-15 23:34 ` Tyler Hicks
  2013-11-16  0:29   ` Benjamin Moody
  0 siblings, 1 reply; 5+ messages in thread
From: Tyler Hicks @ 2013-11-15 23:34 UTC (permalink / raw)
  To: Benjamin Moody; +Cc: ecryptfs

[-- Attachment #1: Type: text/plain, Size: 2947 bytes --]

On 2013-11-15 17:51:49, Benjamin Moody wrote:
> I'm using ecryptfs on Scientific Linux 6.4 (kernel
> 2.6.32-358.23.2.el6.x86_64, ecryptfs-utils 82-6.el6_1.3)

I don't have a system derived from RHEL 6 to test from. But I gave it a
shot with Ubuntu 10.04 (kernel 2.6.32-52.114-generic, ecryptfs-utils
83-0ubuntu3.2.10.04.3).

I wasn't able to reproduce the bug that you're seeing. I thought that
maybe the RHEL 6 derivatives don't enable the pam_ecryptfs module and
that it does something that ecryptfs-mount-private needs, so I commented
it out of my pam configs and tried again but still couldn't reproduce
it.

> When I run ecryptfs-mount-private for the first time, it shows the following:
> 
> $ ecryptfs-mount-private
> Enter your wrapping passphrase:
> Inserted auth tok with sig [...] into the user session keyring
> keyctl_search: Required key not available
> Perhaps try the interactive 'ecryptfs-mount-private'
> 
> At this point, the following messages appear in dmesg:
> 
> $ dmesg
> ...
> TECH PREVIEW: ecryptfs may not be fully supported.
> Please review provided documentation for limitations.
> SELinux: initialized (dev ecryptfs, type ecryptfs), uses genfs_contexts
> 
> And at this point, the filesystem is *mounted* but the files are not
> correctly decrypted (i.e. Private appears to be an exact mirror of
> .Private):
> 
> $ ls Private/
> ECRYPTFS_FNEK_ENCRYPTED.FWaO.4n6KQUoiUR2FAbPNmeUAR1Zw4f3.rLCHzv3PNoOtExPXP.Ei0KiAE--
> ECRYPTFS_FNEK_ENCRYPTED.FXaO.4n6KQUoiUR2FAbPNmeUAR1Zw4f3.rLC-NRvX4ESyXeGh90V8z6JRo2qp.xjwPLn8Fz1BXP8u22-
> ...

It would be nice to see the mount options, from /proc/mounts, at this
point.

I'm having to make some assumptions, but it looks like the mount happens
without the filename encryption key being loaded into the kernel
keyring.

Also, seeing how many user keys are loaded at this point would be
helpful:

$ keyctl show | grep user: | wc -l
2

> I then unmount and remount it:
> 
> $ ecryptfs-umount-private
> keyctl_search: Required key not available
> Perhaps try the interactive 'ecryptfs-mount-private'
> 
> $ ecryptfs-mount-private
> Enter your wrapping passphrase:
> Inserted auth tok with sig [...] into the user session keyring
> 
> at which point it works as expected.

At this point, the keyctl show command above should spit out the same
result as above. But, I think you'll see "1" printed when you run it
above, and "2" printed now.

> So, does anyone know why this might be happening?

No. I don't recall a fixed bug similar to this, but you should search
our bug tracker (https://bugs.launchpad.net/ecryptfs). Also, take a look
through the RHEL bug tracker.

Sorry I'm not more help at this point but I can't reproduce it at the
moment and don't recall us fixing anything like this. Dustin tends to
this portion of ecryptfs-utils, so maybe he'll remember something when
he sees your email.

Tyler

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: ecryptfs-mount-private fails the first time after boot
  2013-11-15 23:34 ` Tyler Hicks
@ 2013-11-16  0:29   ` Benjamin Moody
  2013-11-16  0:41     ` Tyler Hicks
  0 siblings, 1 reply; 5+ messages in thread
From: Benjamin Moody @ 2013-11-16  0:29 UTC (permalink / raw)
  To: Tyler Hicks; +Cc: ecryptfs

Thanks for your quick reply!

On 11/15/13, Tyler Hicks <tyhicks@canonical.com> wrote:
> On 2013-11-15 17:51:49, Benjamin Moody wrote:
>> I'm using ecryptfs on Scientific Linux 6.4 (kernel
>> 2.6.32-358.23.2.el6.x86_64, ecryptfs-utils 82-6.el6_1.3)
>
> I don't have a system derived from RHEL 6 to test from. But I gave it a
> shot with Ubuntu 10.04 (kernel 2.6.32-52.114-generic, ecryptfs-utils
> 83-0ubuntu3.2.10.04.3).
>
> I wasn't able to reproduce the bug that you're seeing. I thought that
> maybe the RHEL 6 derivatives don't enable the pam_ecryptfs module and
> that it does something that ecryptfs-mount-private needs, so I commented
> it out of my pam configs and tried again but still couldn't reproduce
> it.

I'm pretty sure it isn't using pam_ecryptfs, but that shouldn't make a
difference in this case (since I'm not using the login password),
right?

>> When I run ecryptfs-mount-private for the first time, it shows the
>> following:
>>
>> $ ecryptfs-mount-private
>> Enter your wrapping passphrase:
>> Inserted auth tok with sig [...] into the user session keyring
>> keyctl_search: Required key not available
>> Perhaps try the interactive 'ecryptfs-mount-private'
>>
>> At this point, the following messages appear in dmesg:
>>
>> $ dmesg
>> ...
>> TECH PREVIEW: ecryptfs may not be fully supported.
>> Please review provided documentation for limitations.
>> SELinux: initialized (dev ecryptfs, type ecryptfs), uses genfs_contexts
>>
>> And at this point, the filesystem is *mounted* but the files are not
>> correctly decrypted (i.e. Private appears to be an exact mirror of
>> .Private):
>>
>> $ ls Private/
>> ECRYPTFS_FNEK_ENCRYPTED.FWaO.4n6KQUoiUR2FAbPNmeUAR1Zw4f3.rLCHzv3PNoOtExPXP.Ei0KiAE--
>> ECRYPTFS_FNEK_ENCRYPTED.FXaO.4n6KQUoiUR2FAbPNmeUAR1Zw4f3.rLC-NRvX4ESyXeGh90V8z6JRo2qp.xjwPLn8Fz1BXP8u22-
>> ...
>
> It would be nice to see the mount options, from /proc/mounts, at this
> point.

/home/benjamin/.Private /home/benjamin/Private ecryptfs
rw,relatime,ecryptfs_sig=dceda47e1c1e65a1,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs
0 0

> I'm having to make some assumptions, but it looks like the mount happens
> without the filename encryption key being loaded into the kernel
> keyring.
>
> Also, seeing how many user keys are loaded at this point would be
> helpful:
>
> $ keyctl show | grep user: | wc -l
> 2

Interesting.  It shows 0 when first starting up, and 1 after I run
ecryptfs-mount-private for the first time.  Looks like you're right
and it's loading the *file* decryption key but not the *filename* key.
 (In fact I was partially incorrect before; the file contents are
being decrypted correctly, it's just the filenames that remain
encrypted.)

>> I then unmount and remount it:
>>
>> $ ecryptfs-umount-private
>> keyctl_search: Required key not available
>> Perhaps try the interactive 'ecryptfs-mount-private'
>>
>> $ ecryptfs-mount-private
>> Enter your wrapping passphrase:
>> Inserted auth tok with sig [...] into the user session keyring
>>
>> at which point it works as expected.
>
> At this point, the keyctl show command above should spit out the same
> result as above. But, I think you'll see "1" printed when you run it
> above, and "2" printed now.

Indeed, it now shows 2, and /proc/mounts shows

/home/benjamin/.Private /home/benjamin/Private ecryptfs
rw,relatime,ecryptfs_fnek_sig=9a046cc859c834ba,ecryptfs_sig=dceda47e1c1e65a1,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs
0 0

>> So, does anyone know why this might be happening?
>
> No. I don't recall a fixed bug similar to this, but you should search
> our bug tracker (https://bugs.launchpad.net/ecryptfs). Also, take a look
> through the RHEL bug tracker.

Thanks.  I'll do so.

Benjamin

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

* Re: ecryptfs-mount-private fails the first time after boot
  2013-11-16  0:29   ` Benjamin Moody
@ 2013-11-16  0:41     ` Tyler Hicks
  2013-11-16  1:00       ` Benjamin Moody
  0 siblings, 1 reply; 5+ messages in thread
From: Tyler Hicks @ 2013-11-16  0:41 UTC (permalink / raw)
  To: Benjamin Moody; +Cc: ecryptfs

[-- Attachment #1: Type: text/plain, Size: 4711 bytes --]

On 2013-11-15 19:29:01, Benjamin Moody wrote:
> Thanks for your quick reply!
> 
> On 11/15/13, Tyler Hicks <tyhicks@canonical.com> wrote:
> > On 2013-11-15 17:51:49, Benjamin Moody wrote:
> >> I'm using ecryptfs on Scientific Linux 6.4 (kernel
> >> 2.6.32-358.23.2.el6.x86_64, ecryptfs-utils 82-6.el6_1.3)
> >
> > I don't have a system derived from RHEL 6 to test from. But I gave it a
> > shot with Ubuntu 10.04 (kernel 2.6.32-52.114-generic, ecryptfs-utils
> > 83-0ubuntu3.2.10.04.3).
> >
> > I wasn't able to reproduce the bug that you're seeing. I thought that
> > maybe the RHEL 6 derivatives don't enable the pam_ecryptfs module and
> > that it does something that ecryptfs-mount-private needs, so I commented
> > it out of my pam configs and tried again but still couldn't reproduce
> > it.
> 
> I'm pretty sure it isn't using pam_ecryptfs, but that shouldn't make a
> difference in this case (since I'm not using the login password),
> right?
> 
> >> When I run ecryptfs-mount-private for the first time, it shows the
> >> following:
> >>
> >> $ ecryptfs-mount-private
> >> Enter your wrapping passphrase:
> >> Inserted auth tok with sig [...] into the user session keyring
> >> keyctl_search: Required key not available
> >> Perhaps try the interactive 'ecryptfs-mount-private'
> >>
> >> At this point, the following messages appear in dmesg:
> >>
> >> $ dmesg
> >> ...
> >> TECH PREVIEW: ecryptfs may not be fully supported.
> >> Please review provided documentation for limitations.
> >> SELinux: initialized (dev ecryptfs, type ecryptfs), uses genfs_contexts
> >>
> >> And at this point, the filesystem is *mounted* but the files are not
> >> correctly decrypted (i.e. Private appears to be an exact mirror of
> >> .Private):
> >>
> >> $ ls Private/
> >> ECRYPTFS_FNEK_ENCRYPTED.FWaO.4n6KQUoiUR2FAbPNmeUAR1Zw4f3.rLCHzv3PNoOtExPXP.Ei0KiAE--
> >> ECRYPTFS_FNEK_ENCRYPTED.FXaO.4n6KQUoiUR2FAbPNmeUAR1Zw4f3.rLC-NRvX4ESyXeGh90V8z6JRo2qp.xjwPLn8Fz1BXP8u22-
> >> ...
> >
> > It would be nice to see the mount options, from /proc/mounts, at this
> > point.
> 
> /home/benjamin/.Private /home/benjamin/Private ecryptfs
> rw,relatime,ecryptfs_sig=dceda47e1c1e65a1,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs
> 0 0
> 
> > I'm having to make some assumptions, but it looks like the mount happens
> > without the filename encryption key being loaded into the kernel
> > keyring.
> >
> > Also, seeing how many user keys are loaded at this point would be
> > helpful:
> >
> > $ keyctl show | grep user: | wc -l
> > 2
> 
> Interesting.  It shows 0 when first starting up, and 1 after I run
> ecryptfs-mount-private for the first time.  Looks like you're right
> and it's loading the *file* decryption key but not the *filename* key.
>  (In fact I was partially incorrect before; the file contents are
> being decrypted correctly, it's just the filenames that remain
> encrypted.)
> 
> >> I then unmount and remount it:
> >>
> >> $ ecryptfs-umount-private
> >> keyctl_search: Required key not available
> >> Perhaps try the interactive 'ecryptfs-mount-private'
> >>
> >> $ ecryptfs-mount-private
> >> Enter your wrapping passphrase:
> >> Inserted auth tok with sig [...] into the user session keyring
> >>
> >> at which point it works as expected.
> >
> > At this point, the keyctl show command above should spit out the same
> > result as above. But, I think you'll see "1" printed when you run it
> > above, and "2" printed now.
> 
> Indeed, it now shows 2, and /proc/mounts shows
> 
> /home/benjamin/.Private /home/benjamin/Private ecryptfs
> rw,relatime,ecryptfs_fnek_sig=9a046cc859c834ba,ecryptfs_sig=dceda47e1c1e65a1,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs
> 0 0

Now that I know my assumptions were correct, I think I know the cause of
the problem. When the eCryptfs kernel module is loaded, it creates
/sys/fs/ecryptfs/version to let userspace (ecryptfs-utils) know what
features the eCryptfs kernel module supports. One of those features is
filename encryption...

Ubuntu builds the eCryptfs module into the kernel, so that file always
exists. I bet RHEL, and its derivatives, do not build it in. So, the
file in sysfs does not exist and the utilities can't tell if the kernel
supports filename encryption. The first mount happens without the
filename encryption key and the eCryptfs kernel module is auto-loaded
when doing the mount. Now, the sysfs file exists and future mounts
result in filename encryption being enabled.

Try `modprobe ecryptfs` before running ecryptfs-mount-private for the
first time and see if the filenames are decrypted.

Tyler

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: ecryptfs-mount-private fails the first time after boot
  2013-11-16  0:41     ` Tyler Hicks
@ 2013-11-16  1:00       ` Benjamin Moody
  0 siblings, 0 replies; 5+ messages in thread
From: Benjamin Moody @ 2013-11-16  1:00 UTC (permalink / raw)
  To: Tyler Hicks; +Cc: ecryptfs

Running modprobe ecryptfs was all I needed.  I guess this is something
that should really be fixed at the package level, but now that I know
what's going on I can easily kludge around it. :)

(Although, I don't know if this makes sense, but wouldn't it be better
in a situation like this to *try* to load both keys, even if we don't
know the kernel supports filename encryption, and only fall back to
showing the encrypted filenames if that fails?)

Thanks again!

Benjamin

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

end of thread, other threads:[~2013-11-16  1:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-15 22:51 ecryptfs-mount-private fails the first time after boot Benjamin Moody
2013-11-15 23:34 ` Tyler Hicks
2013-11-16  0:29   ` Benjamin Moody
2013-11-16  0:41     ` Tyler Hicks
2013-11-16  1:00       ` Benjamin Moody

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.