Re: Booting from encrypted ZFS WAS: RE: How to mount encrypted file system at boot? Why no pass phraserequesed

2011-04-27 Thread Daniel Carosone
If I understood correctly:

 - there is no requirement for the system to boot (or be bootable)
   outside of your secure locations.   

 - you are willing to accept separate tracking and tagging of removable
   media, e.g. for key distribution.

Consider, at least for purposes of learning from the comparison:

 - having the machines netboot only, and provide the netboot
   environment only within the secure locations.

 - having the system disks on the removable media that is handled
   separately, not just the keys.

Both of these share the property that the physical chassis being
transported contains only encrypted disks, leaving you to make other
tradeoffs with respect to risks and handling of the bootstrapping data
(including keys).

My primary interest in "encrypted zfs boot" for the OS is more around
the integrity of the boot media, for devices that may be exposed to
tampering of various kinds.  This is a complex issue that can only be
partly addressed by ZFS, even with such additional features.

Do these sorts of concerns apply to your environment?  If someone was
to intercept one of these machines in transit, and tamper with OS and
system executables in such a way as to disclose information/keys or
otherwise alter their operation when next booted in the "secure"
environment, would that be a concern?

--
Dan.

pgprO3IdicpgH.pgp
Description: PGP signature
___
zfs-crypto-discuss mailing list
zfs-crypto-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-crypto-discuss


Re: Booting from encrypted ZFS WAS: RE: How to mount encrypted file system at boot? Why no pass phraserequesed

2011-04-27 Thread Troels Nørgaard Nielsen
Hi Rob,

Wouldn't the use of Solaris Trusted Extensions by placing all 'secure' 
operations inside a label that can only write to the filesystem (that is 
encrypted) with the same label, do for you what the auditors are seeking? The 
base idea of Trusted Extensions is that no data can escape it's label (guarded 
by syscall checks), to ensure traffic to the label, one can use IPSec with 
labeling, etc.

I think Darren is dragging along here, because implementing zfs-crypto on rpool 
requires grub to be aware of zfs-crypto, which is kinda hard (e.g. grub doesn't 
support multiple vdev or raidz-n yet).

Best regards
Troels Nørgaard
Nørgaard Consultancy

Den 27/04/2011 kl. 09.54 skrev Rob O'Leary:

> 
> Requirements
> The main requirement is to convince our security auditors that all the data
> on our systems is encrypted. The systems are moved between multiple trusted
> locations and the principle need is to ensure that, if lost or stolen while
> on the move, no data can be accessed. The systems are not required to
> operate except in a trusted location.
> 
> Storing the data on encrypted zfs filesystems seems like it should be
> sufficient for this. But the counter argument is that you cannot _guarentee_
> that no data will be accidentally copied onto un-encrypted parts of the
> system, say as part of the print spooling of a data report (by the system)
> or by a user for some other reason. The auditors don't want to rely on
> processes being followed by people to ensure security (and I agree with
> them). They like a nice straight-forward story - "the whole system is
> encrypted".
> 
> So, answering your question, I don't want the OS encrypted, I want all
> writable media encrypted.
> 
> In terms of the two factors, I think I should: 1) need a physical thing
> (e.g. a usb stick with a particular file on it) and, 2) know a
> password/passphrase, in order to be able to boot the system. (The usb stick
> can be removed once authentication is completed.)
> 
> Although the mobility of the usage sounds rather more "laptop" than "data
> centre", the systems are used for collecting and storing terabytes of data
> (at rates up to 10 Gb/s), so the scale quickly becomes more like data
> centre. And back to the earlier point, the data storage can be on zfs
> encrypted fs's, it's just a case of closing the last loophole. Additionally,
> some of the data reports generated can be quite small (easily fit on the
> system disk) and still require protection in the event of lost disks.
> 
> In a lights out situation, presuming the trusted location, the usb stick
> could be left in the machine and passphrases supplied at boot time. It might
> also be possible to arrange a passphrase server with ssh/asymmetric
> encryption to supply the passphrase during boot, using the booting system's
> public key and including replay prevention. This approach might address the
> high availability (HA) scenario, but I'm afraid I don't have any experience
> of HA systems.
> 
> I appreciate that this type of two factor booting will require some
> management overhead, usb sticks will need labels and tracking, and keys and
> passphrases will need storing/backing up. These will add cost but, "security
> costs".
> 
> I hope this gives you a better idea of what I need.
> 
> Regards,
> Rob
> 
> 
> PSs
> 
> Writable media and the OS - Booting and operating from a read-only DVD and
> using memory backed caching for everything, sounds good in theory. However,
> this would be a total pain whenever you need to make a permanent change to a
> system setting, as you then need to burn another DVD and reboot the system.
> Unless you were going into mass production with 10s of identical systems, I
> don't think this would be a usable solution.
> 
> Limiting authentication attempts - It might be a good thing to obliterate,
> after say 20 attempts, the on-system data which is used to release the key,
> forcing the need to access a backup of that data. I think this would slow
> down a good-guesses/dictionary style attack by a person at the keyboard but
> may not be effective against a determined attacker who makes images of the
> disk before starting... I'm sure you know more about this than I do.
> 
> -Original Message-
> From: Darren J Moffat [mailto:darr...@opensolaris.org]
> Sent: 26 April 2011 09:47
> To: Rob O'Leary
> Cc: zfs-crypto-discuss@opensolaris.org
> Subject: Re: Booting from encrypted ZFS WAS: RE: How to mount encrypted
> file system at boot? Why no pass phraserequesed
> 
> 
> On 24/04/2011 18:49, Rob O'Leary wrote:
>> Reading this reminded me that the feature I'm really waitin

RE: Booting from encrypted ZFS WAS: RE: How to mount encrypted file system at boot? Why no pass phraserequesed

2011-04-27 Thread Rob O'Leary
Hi Troels,

There are two things here. First, I don't want to learn another set of
administration tasks (I've just had a quick look at Trusted Extensions and
am shuddering at the thought) and second, the problem isn't when the system
is running but when it is stopped. I believe the problem is called "data at
rest". Also, notice the line where I said the auditors like a simple story.
They really do.

I still want to be able to print and use the network without incurring lots
of admin, re-programming or performance overhead. (Our applications are very
network heavy.) But, when I shutdown I want the data on the disks to be
un-intelligible.

In terms of management/learning overhead, we are very familiar with tracking
and accounting for documents and keys, so having a few extra keys and usb
sticks to look after is no problem.

Unfortunately, I don't know enough about grub and zfs booting. So, I shall
resist the temptation of "can't it just...". Almost. I'm sure there's a way.
Chain from authentication phase and getting key to main boot...? (Sorry, I
had to.)

Best regards,
Rob

-Original Message-
From: Troels Nørgaard Nielsen [mailto:tro...@norgaard.co]
Sent: 27 April 2011 11:13
To: Rob O'Leary
Cc: zfs-crypto-discuss@opensolaris.org
Subject: Re: Booting from encrypted ZFS WAS: RE: How to mount encrypted
file system at boot? Why no pass phraserequesed


Hi Rob,

Wouldn't the use of Solaris Trusted Extensions by placing all 'secure'
operations inside a label that can only write to the filesystem (that is
encrypted) with the same label, do for you what the auditors are seeking?
The base idea of Trusted Extensions is that no data can escape it's label
(guarded by syscall checks), to ensure traffic to the label, one can use
IPSec with labeling, etc.

I think Darren is dragging along here, because implementing zfs-crypto on
rpool requires grub to be aware of zfs-crypto, which is kinda hard (e.g.
grub doesn't support multiple vdev or raidz-n yet).

Best regards
Troels Nørgaard
Nørgaard Consultancy

Den 27/04/2011 kl. 09.54 skrev Rob O'Leary:

>
> Requirements
> The main requirement is to convince our security auditors that all the
data
> on our systems is encrypted. The systems are moved between multiple
trusted
> locations and the principle need is to ensure that, if lost or stolen
while
> on the move, no data can be accessed. The systems are not required to
> operate except in a trusted location.
>
> Storing the data on encrypted zfs filesystems seems like it should be
> sufficient for this. But the counter argument is that you cannot
_guarentee_
> that no data will be accidentally copied onto un-encrypted parts of the
> system, say as part of the print spooling of a data report (by the system)
> or by a user for some other reason. The auditors don't want to rely on
> processes being followed by people to ensure security (and I agree with
> them). They like a nice straight-forward story - "the whole system is
> encrypted".
>
> So, answering your question, I don't want the OS encrypted, I want all
> writable media encrypted.
>
> In terms of the two factors, I think I should: 1) need a physical thing
> (e.g. a usb stick with a particular file on it) and, 2) know a
> password/passphrase, in order to be able to boot the system. (The usb
stick
> can be removed once authentication is completed.)
>
> Although the mobility of the usage sounds rather more "laptop" than "data
> centre", the systems are used for collecting and storing terabytes of data
> (at rates up to 10 Gb/s), so the scale quickly becomes more like data
> centre. And back to the earlier point, the data storage can be on zfs
> encrypted fs's, it's just a case of closing the last loophole.
Additionally,
> some of the data reports generated can be quite small (easily fit on the
> system disk) and still require protection in the event of lost disks.
>
> In a lights out situation, presuming the trusted location, the usb stick
> could be left in the machine and passphrases supplied at boot time. It
might
> also be possible to arrange a passphrase server with ssh/asymmetric
> encryption to supply the passphrase during boot, using the booting
system's
> public key and including replay prevention. This approach might address
the
> high availability (HA) scenario, but I'm afraid I don't have any
experience
> of HA systems.
>
> I appreciate that this type of two factor booting will require some
> management overhead, usb sticks will need labels and tracking, and keys
and
> passphrases will need storing/backing up. These will add cost but,
"security
> costs".
>
> I hope this gives you a better idea of what I need.
>
> Regards,
> Rob
>
>
> PS

RE: Booting from encrypted ZFS WAS: RE: How to mount encrypted file system at boot? Why no pass phraserequesed

2011-04-27 Thread Rob O'Leary

Requirements
The main requirement is to convince our security auditors that all the data
on our systems is encrypted. The systems are moved between multiple trusted
locations and the principle need is to ensure that, if lost or stolen while
on the move, no data can be accessed. The systems are not required to
operate except in a trusted location.

Storing the data on encrypted zfs filesystems seems like it should be
sufficient for this. But the counter argument is that you cannot _guarentee_
that no data will be accidentally copied onto un-encrypted parts of the
system, say as part of the print spooling of a data report (by the system)
or by a user for some other reason. The auditors don't want to rely on
processes being followed by people to ensure security (and I agree with
them). They like a nice straight-forward story - "the whole system is
encrypted".

So, answering your question, I don't want the OS encrypted, I want all
writable media encrypted.

In terms of the two factors, I think I should: 1) need a physical thing
(e.g. a usb stick with a particular file on it) and, 2) know a
password/passphrase, in order to be able to boot the system. (The usb stick
can be removed once authentication is completed.)

Although the mobility of the usage sounds rather more "laptop" than "data
centre", the systems are used for collecting and storing terabytes of data
(at rates up to 10 Gb/s), so the scale quickly becomes more like data
centre. And back to the earlier point, the data storage can be on zfs
encrypted fs's, it's just a case of closing the last loophole. Additionally,
some of the data reports generated can be quite small (easily fit on the
system disk) and still require protection in the event of lost disks.

In a lights out situation, presuming the trusted location, the usb stick
could be left in the machine and passphrases supplied at boot time. It might
also be possible to arrange a passphrase server with ssh/asymmetric
encryption to supply the passphrase during boot, using the booting system's
public key and including replay prevention. This approach might address the
high availability (HA) scenario, but I'm afraid I don't have any experience
of HA systems.

I appreciate that this type of two factor booting will require some
management overhead, usb sticks will need labels and tracking, and keys and
passphrases will need storing/backing up. These will add cost but, "security
costs".

I hope this gives you a better idea of what I need.

Regards,
Rob


PSs

Writable media and the OS - Booting and operating from a read-only DVD and
using memory backed caching for everything, sounds good in theory. However,
this would be a total pain whenever you need to make a permanent change to a
system setting, as you then need to burn another DVD and reboot the system.
Unless you were going into mass production with 10s of identical systems, I
don't think this would be a usable solution.

Limiting authentication attempts - It might be a good thing to obliterate,
after say 20 attempts, the on-system data which is used to release the key,
forcing the need to access a backup of that data. I think this would slow
down a good-guesses/dictionary style attack by a person at the keyboard but
may not be effective against a determined attacker who makes images of the
disk before starting... I'm sure you know more about this than I do.

-Original Message-
From: Darren J Moffat [mailto:darr...@opensolaris.org]
Sent: 26 April 2011 09:47
To: Rob O'Leary
Cc: zfs-crypto-discuss@opensolaris.org
Subject: Re: Booting from encrypted ZFS WAS: RE: How to mount encrypted
file system at boot? Why no pass phraserequesed


On 24/04/2011 18:49, Rob O'Leary wrote:
> Reading this reminded me that the feature I'm really waiting for is
> two-factor boot time authentication from encrpyted zfs boot...

Can you explain more about your requirements and use case ?

Is this "laptop" or "data centre" ? or some thing else ?
What "two factors" do you want ?
How will this work in a lights out and/or high availability deployment ?

Why do you want the operating system itself encrypted rather than just
the data stored on the system ?  ie What is threat you are trying to
protect against ?

> Is this likely to be seen in the near-ish future?

I need to know more about what you mean before I can determine that.

--
Darren J Moffat

___
zfs-crypto-discuss mailing list
zfs-crypto-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-crypto-discuss


Re: Booting from encrypted ZFS WAS: RE: How to mount encrypted file system at boot? Why no pass phraserequesed

2011-04-26 Thread Darren J Moffat

On 24/04/2011 18:49, Rob O'Leary wrote:

Reading this reminded me that the feature I'm really waiting for is
two-factor boot time authentication from encrpyted zfs boot...


Can you explain more about your requirements and use case ?

Is this "laptop" or "data centre" ? or some thing else ?
What "two factors" do you want ?
How will this work in a lights out and/or high availability deployment ?

Why do you want the operating system itself encrypted rather than just 
the data stored on the system ?  ie What is threat you are trying to 
protect against ?



Is this likely to be seen in the near-ish future?


I need to know more about what you mean before I can determine that.

--
Darren J Moffat
___
zfs-crypto-discuss mailing list
zfs-crypto-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-crypto-discuss


Booting from encrypted ZFS WAS: RE: How to mount encrypted file system at boot? Why no pass phraserequesed

2011-04-24 Thread Rob O'Leary
Reading this reminded me that the feature I'm really waiting for is
two-factor boot time authentication from encrpyted zfs boot...

Is this likely to be seen in the near-ish future?

Regards
Rob

-Original Message-
From: zfs-crypto-discuss-boun...@opensolaris.org
[mailto:zfs-crypto-discuss-boun...@opensolaris.org]On Behalf Of Darren J
Moffat
Sent: 21 April 2011 13:32
To: Dr. David Kirkby
Cc: zfs-crypto-discuss@opensolaris.org
Subject: Re: How to mount encrypted file system at boot? Why no pass
phraserequesed


On 21/04/2011 11:05, Dr. David Kirkby wrote:
> I went to a talk last night at the London Open Solaris User Group (LOSUG)
by Darren Moffat - an Oracle engineer who had a major role in the ZFS
encryption implementation in Solaris. I was particularly interested in
this,as for a long time I've been concerned about security of data on my
laptop.
>
> I decided to try to secure my laptop, which is running Solaris 11 Express.
I want to set the machine up so that during the boot process I get asked to
enter the pass phrase to mount file system with my home directory on.
>
> But I am having problems.
>
> First I create the file system. As expected, Solaris asks for a pass
phrase:
>
> drkirkby@laptop:~# zfs create -o compression=on -o encryption=on -o
> mountpoint=/export/home/davek rpool/export/home/davek
> Enter passphrase for 'rpool/export/home/davek': ***
> Enter again: **
>
> Next I create a file on the file system and check it exists.
>
> drkirkby@laptop:~# touch /export/home/davek/foo
> drkirkby@laptop:~# ls /export/home/davek/foo
> /export/home/davek/foo
>
> Unmount the encrypted file system
>
> drkirkby@laptop:~# zfs umount rpool/export/home/davek
>
> Check  the file I created is no longer available
>
> drkirkby@laptop:~# ls /export/home/davek/foo
> /export/home/davek/foo: No such file or directory

> Now I get a problem. I was expecting to have to enter the pass
> phrase  again when attempting to mount the file system, but this is not
being
> requested. As you can see, I can mount the file system without the pass
> phrase and read the data on the file system.

I covered that in the talk last night - in fact we had about a 5 minute
discussion about why it is this way.

If you want the key to go away you need to run:

# zfs key -u rpool/export/home/davek

> drkirkby@laptop:~# zfs mount rpool/export/home/davek
> drkirkby@laptop:~# ls /export/home/davek/foo
> /export/home/davek/foo
> drkirkby@laptop:~#
>
> This looks wrong to me, but I've no idea how to solve it.

No it is correct by design.

As I mentioned last night the reason for this is so that delegated
administration of certain properties can work for users that don't have
the 'key' delegation and don't have access to the wrapping keys.

For example changing a mountpoint causes an umount followed by a mount.
  There are other changes that under the covers can cause a filesystem
to be temporarily unmounted and remounted.

> The next issue is how do I get the file system to mount when the
 > machine is booted? I want to supply the pass phrase by typing it in,
 > rather than from storing it in USB stick or other similar method.

Since this is your user home directory the ideal way would be a PAM
module that ran during user login and requested the passphrase for the
ZFS encrypted home dir.

There isn't one in Solaris 11 Express (snv_151a) at this time.

> Any  ideas what I need to do to get this file system to request the
> pass phrase before mountin g the file system?

There is source for a prototype PAM module in the old opensolaris.org
zfs-crypto repository:

http://src.opensolaris.org/source/history/zfs-crypto/phase2/usr/src/lib/pam_
modules/

You would need to take a clone of that repository and check out
changeset  6749:6dded109490e  and see if that old PAM module could be
hacked into submission.  Note that it uses private interfaces and doing
so is not supported by any Oracle support contract you have.

--
Darren J Moffat
___
zfs-crypto-discuss mailing list
zfs-crypto-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-crypto-discuss

___
zfs-crypto-discuss mailing list
zfs-crypto-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-crypto-discuss