linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alon Bar-Lev <alon.barlev@gmail.com>
To: Phillip Hellewell <phillip@hellewell.homeip.net>
Cc: Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	viro@ftp.linux.org.uk, mike@halcrow.us, mhalcrow@us.ibm.com,
	mcthomps@us.ibm.com, toml@us.ibm.com, yoder1@us.ibm.com,
	James Morris <jmorris@namei.org>,
	"Stephen C. Tweedie" <sct@redhat.com>,
	Erez Zadok <ezk@cs.sunysb.edu>,
	David Howells <dhowells@redhat.com>
Subject: Re: [PATCH 0/12: eCryptfs] eCryptfs version 0.1.6
Date: Fri, 05 May 2006 12:05:37 +0300	[thread overview]
Message-ID: <445B1561.1020703@gmail.com> (raw)
In-Reply-To: <20060504031755.GA28257@hellewell.homeip.net>

Phillip Hellewell wrote:
> This patch set constitutes the 0.1.6 release of the eCryptfs
> cryptographic filesystem:
> 

Great work!
I just want to make some notes about the user mode interface.

I think that current security and encryption solutions that
come out these days without a proper smart card support
create a false sense of security for users. So solutions
should first be designed so that a smart card can be used,
and only then provide a passphrase alternative.

This is the first time I've looked on the user mode
keyutils, and it looks quite good. I think that the eCryptfs
should use it more ?correctly? so that keys stored on smart
card may be used.

For example, you can publish a text format of the key data
so that any application can easily and independently
construct this.

A simple example of key content is:
eCryptfs:version:cipher:key
or:
eCryptfs:1:AES256:123DD12ED12312....

You can modify the mount options:
mount -o keytype=type,keydesc=desc,keydata=data

So that any specific key may be provided, and not only keys
derived from a passphrase. And a proper key may be
instantiate from the kernel.

User may already have this key available using keyctl. The
key may be available from any place.

But if the key is not available, the following
request-key.conf this may be written:

---
create user eCryptfs:p11-data:*
|/usr/bin/eCryptfs-key-p11-data /etc/eCryptfs-key-p11-data.conf

create user eCryptfs:pass:* |/usr/bin/eCryptfs-key-pass
---

This will construct the key from the data if the key is not
available.

For PKCS#11 the providers listed in the conf file, key may
be stored as a data object, and data may be:
	cipher:slot-type:slot:application:label:PIN
	Where:
		slot-type
			slot	- slot id
			name	- slot name
			label	- token label

	?Calling without a PIN may allow prompt for dialog
	via a named pipe to a running daemon by uid?

For passphrase the data may be the cipher:passphrase.

Another issue is a multi user access without a shared
secret. This may be done by encrypting the symmetric key in
several asymmetric ones. Again this can be done in user
mode... But there is a need to support reencrypting the
whole filesystem with a new symmetric key so that a user may
be removed from the list.

In order to support this mode using smart cards when key is
unavailable, the following request-key.conf may be written:

---
create user eCryptfs:p11-multi:*
|/usr/bin/eCryptfs-key-p11-multi
/etc/eCryptfs-key-p11-multi.conf
---

Now the data may be:
	cipher:slot-type:slot:id-type:id:PIN
	Where:
		slot-type
			slot	- slot id
			name	- slot name
			label	- token label
		id-type
			id	- CKA_ID
			label	- CKA_LABEL
			subject	- certificate subject


I hope I understood correctly the various components.

If you like, I will be happy to help you with the user mode
stuff, and implement the smart card access.

Best Regards,
Alon Bar-Lev


  parent reply	other threads:[~2006-05-05  9:03 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-04  3:17 [PATCH 0/12: eCryptfs] eCryptfs version 0.1.6 Phillip Hellewell
2006-05-04  3:27 ` [PATCH 1/13: eCryptfs] fs/Makefile and fs/Kconfig Phillip Hellewell
2006-05-04  3:35 ` [PATCH 2/13: eCryptfs] Documentation Phillip Hellewell
2006-05-04  7:32   ` Pavel Machek
2006-05-04 12:11     ` Michael Halcrow
2006-05-04  3:36 ` [PATCH 3/13: eCryptfs] Makefile Phillip Hellewell
2006-05-04  3:37 ` [PATCH 4/13: eCryptfs] Main module functions Phillip Hellewell
2006-05-04  3:37 ` [PATCH 5/13: eCryptfs] Header declarations Phillip Hellewell
2006-05-04 14:51   ` Pekka Enberg
2006-05-04 14:58     ` Artem B. Bityutskiy
2006-05-04 15:22       ` Pekka Enberg
2006-05-04 15:29         ` Artem B. Bityutskiy
2006-05-04 15:08     ` Michael Thompson
2006-05-04  3:38 ` [PATCH 6/13: eCryptfs] Superblock operations Phillip Hellewell
2006-05-04  9:55   ` Pavel Machek
2006-05-04 14:02     ` Michael Thompson
2006-05-04 14:26       ` Pekka Enberg
2006-05-04 14:37   ` Pekka Enberg
2006-05-04 15:00     ` Michael Thompson
2006-05-04 15:12       ` Pekka Enberg
2006-05-04 21:40   ` David Howells
2006-05-05 13:12     ` Dave Kleikamp
2006-05-05 14:03     ` David Howells
2006-05-05 14:34       ` Dave Kleikamp
2006-05-05 14:52       ` David Howells
2006-05-05 16:15   ` Timothy R. Chavez
2006-05-04  3:39 ` [PATCH 7/13: eCryptfs] Dentry operations Phillip Hellewell
2006-05-05 16:46   ` Timothy R. Chavez
2006-05-04  3:39 ` [PATCH 8/13: eCryptfs] File operations Phillip Hellewell
2006-05-04  4:06   ` Eric Dumazet
2006-05-05 18:55   ` Timothy R. Chavez
2006-05-04  3:40 ` [PATCH 9/13: eCryptfs] Inode operations Phillip Hellewell
2006-05-04  3:41 ` [PATCH 10/13: eCryptfs] Mmap operations Phillip Hellewell
2006-05-04 15:13   ` Pekka Enberg
2006-05-04 21:43   ` David Howells
2006-05-05 15:22     ` Dave Kleikamp
2006-05-05 15:38       ` Pekka Enberg
2006-05-06  2:21         ` Andrew Morton
2006-05-06 16:00           ` Michael Halcrow
2006-05-06 16:42             ` Andrew Morton
2006-05-06 16:57               ` Linus Torvalds
2006-05-04  3:42 ` [PATCH 11/13: eCryptfs] Keystore Phillip Hellewell
2006-05-04  3:42 ` [PATCH 12/13: eCryptfs] Crypto functions Phillip Hellewell
2006-05-04  3:43 ` [PATCH 13/13: eCryptfs] Debug functions Phillip Hellewell
2006-05-04 20:30   ` Randy.Dunlap
2006-05-04  7:28 ` [PATCH 0/12: eCryptfs] eCryptfs version 0.1.6 Pavel Machek
2006-05-04 12:08   ` Michael Halcrow
2006-05-05  9:05 ` Alon Bar-Lev [this message]
2006-05-05 16:08   ` Michael Halcrow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=445B1561.1020703@gmail.com \
    --to=alon.barlev@gmail.com \
    --cc=akpm@osdl.org \
    --cc=dhowells@redhat.com \
    --cc=ezk@cs.sunysb.edu \
    --cc=jmorris@namei.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcthomps@us.ibm.com \
    --cc=mhalcrow@us.ibm.com \
    --cc=mike@halcrow.us \
    --cc=phillip@hellewell.homeip.net \
    --cc=sct@redhat.com \
    --cc=toml@us.ibm.com \
    --cc=viro@ftp.linux.org.uk \
    --cc=yoder1@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).