Ecryptfs-Desktop-Ui

Differences between revisions 3 and 4
Revision 3 as of 2008-12-10 22:01:44
Size: 3271
Editor: 203
Comment:
Revision 4 as of 2008-12-12 23:07:27
Size: 5664
Editor: 216
Comment: filled out assumptions, design, and implementation
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:
Currently the UI assumes that the user has installed ecryptfs-utils and configured Private. However ideally this will be abstracted to:
 * Detect if there is no encrypted Home/Private, and if not, walk the user through setting up a Private.
 * More ideally, if the UI goes in a place in some other Encryption preferences UI, detect if ecryptfs-utils is installed and if not, offer to do so.
Line 31: Line 35:
You can have subsections that better describe specific parts of the issue. For proper desktop integration, a UI should:
 * Integrate with the file manager for easy and intuitive [un]mounting when in the Private directory.
 * Provide a utility for managing a directory:
  * OUTPUT UNWRAPPED PASSPHRASE. Since the user needs this passphrase should it be lost, it should be easily displayed (after unwrapping with user's password) in some dialog with a print ability, and the importance of this should be explained here.
  * toggle automatic mounting/unmounting at login/logout
  * undo encryption?
 * Ideally, integrate above utility into an existing Encryption settings place.
 * If Home is encrypted via installer, make sure a user understands the incredible importance of storing passphrase, such as via tray icon until they have done so.
Line 35: Line 46:
This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

=== UI Changes ===

Should cover changes required to the UI, or specific UI that is required to implement this
 * API
   * DONE: create Python API so anyone can easily manipulate ecryptfs
   * get private directory location and implement getMounted() via new file in Jaunty
   * ship API with ecryptfs and symlink into site-packages, or otherwise make available to system
 * Gnome
  * Create GTK utility for managing options:
   * DONE: [Un]mounting
   * DONE: Toggling automatic login/logout mounting/unmounting
   * Display unwrapped passphrase for easy copying/printing
   * Setup Private if no encrypted Home/Private exists
   * Integrate into System > Preferences > Encryption and Keyrings as tab "Encrypted Directory"
    * Tab should either always be there or never (otherwise confusing user experience) so if ecryptfs-utils isn't installed, have a button to install it.
   * Ensure UI changes appropriately between states:
    * if a user installs ecryptfs via UI, now show setup private UI
    * if a user sets up private with UI, now show settings
    * perhaps best done with three panels: install, setup, manage, with only the appropriate being enabled. Anything above the enabled one is hidden, and anything below the enabled one is disabled.
  * Integrate "locking" and "unlocking" into nautilus. Mockup: http://launchpadlibrarian.net/17440012/mockup.png
  * Tray icon if Home is encrypted, until the user dismisses via saying they have stored their password.
Line 43: Line 67:
Code changes should include an overview of what needs to change, and in some cases even the specific details.  * Gnome
  * adding UI as tab to Encryption and Keyrings
  * nautilus hook
  * encrypted Home tray icon
Line 46: Line 73:

Include:
 * data migration, if any
 * redirects from old URLs to new ones, if any
 * how users will be pointed to the new way of doing things, if necessary.
  Migrating a Home directory to an encrypted one?
Line 60: Line 84:
This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.
Line 65: Line 88:
  * I think the consequences of losing data are too important to have a Private directory by default, it really needs to be an opt-in scenario. And then following this, file properties will only work to modify existing directories, how do you create one? A properties Tab that contains a button to the Encryption and Keyrings isn't a bad idea, but I do believe Encryption and Keyrings is more intuitive then adding an 8th tab in the file manager properties. -mrooney

Summary

Currently there is no graphical utility to configure ecryptfs-utils once installed, however some experimental work has been done at https://launchpad.net/ecryptfs-gui. Ideally in Jaunty a graphical utility would be included in ecryptfs-utils that allows a user to set up, manage, and configure encrypted directories such as Private and Home.

Release Note

A new entry "Encrypted Directories" now appears in System -> Preferences after installing ecryptfs-utils, allowing users to set up, configure, and manage encrypted directories.

Rationale

Desktop users would benefit from a non-terminal solution to setting up encrypted directories.

Use Cases

  • Kevin is comfortable with installing ecryptfs-utils via Synaptic but is not comfortable with a terminal and would like a graphical application to allow him to set up an encrypted Private directory.
  • Mariya has an encrypted Private directory but needs a way to easily toggle automatic mounting/unmounting at login/logout.
  • Enub would like to unmount and mount his encrypted directory occasionally during his session.
  • Mark would like a utility to guide him through setting up an encrypted home directory.

Assumptions

Currently the UI assumes that the user has installed ecryptfs-utils and configured Private. However ideally this will be abstracted to:

  • Detect if there is no encrypted Home/Private, and if not, walk the user through setting up a Private.
  • More ideally, if the UI goes in a place in some other Encryption preferences UI, detect if ecryptfs-utils is installed and if not, offer to do so.

Design

For proper desktop integration, a UI should:

  • Integrate with the file manager for easy and intuitive [un]mounting when in the Private directory.
  • Provide a utility for managing a directory:
    • OUTPUT UNWRAPPED PASSPHRASE. Since the user needs this passphrase should it be lost, it should be easily displayed (after unwrapping with user's password) in some dialog with a print ability, and the importance of this should be explained here.
    • toggle automatic mounting/unmounting at login/logout
    • undo encryption?
  • Ideally, integrate above utility into an existing Encryption settings place.
  • If Home is encrypted via installer, make sure a user understands the incredible importance of storing passphrase, such as via tray icon until they have done so.

Implementation

  • API
    • DONE: create Python API so anyone can easily manipulate ecryptfs
    • get private directory location and implement getMounted() via new file in Jaunty
    • ship API with ecryptfs and symlink into site-packages, or otherwise make available to system
  • Gnome
    • Create GTK utility for managing options:
      • DONE: [Un]mounting
      • DONE: Toggling automatic login/logout mounting/unmounting
      • Display unwrapped passphrase for easy copying/printing
      • Setup Private if no encrypted Home/Private exists
      • Integrate into System > Preferences > Encryption and Keyrings as tab "Encrypted Directory"

        • Tab should either always be there or never (otherwise confusing user experience) so if ecryptfs-utils isn't installed, have a button to install it.
      • Ensure UI changes appropriately between states:
        • if a user installs ecryptfs via UI, now show setup private UI
        • if a user sets up private with UI, now show settings
        • perhaps best done with three panels: install, setup, manage, with only the appropriate being enabled. Anything above the enabled one is hidden, and anything below the enabled one is disabled.
    • Integrate "locking" and "unlocking" into nautilus. Mockup: http://launchpadlibrarian.net/17440012/mockup.png

    • Tray icon if Home is encrypted, until the user dismisses via saying they have stored their password.

Code Changes

  • Gnome
    • adding UI as tab to Encryption and Keyrings
    • nautilus hook
    • encrypted Home tray icon

Migration

Migrating a Home directory to an encrypted one?

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release.

This need not be added or completed until the specification is nearing beta.

Unresolved issues

BoF agenda and discussion

  • IMHO we'd rather have an encrypted Private directory working out of the box than a tool to configure it. Why do we need to bloat the Preferences menu even more? What the user wants is a ~/Private folder with a little logo to tell him his files are encrypted in it. At most, maybe a Nautilus extension so that some config options appear in the Properties dialog of the Private folder, but nothing more. Nobody wants to mount/unmount the encrypted folder manually, and the tool does automounting in such a great way ATM.
    • I think the consequences of losing data are too important to have a Private directory by default, it really needs to be an opt-in scenario. And then following this, file properties will only work to modify existing directories, how do you create one? A properties Tab that contains a button to the Encryption and Keyrings isn't a bad idea, but I do believe Encryption and Keyrings is more intuitive then adding an 8th tab in the file manager properties. -mrooney


CategorySpec

Specs/Ecryptfs-Desktop-Ui (last edited 2009-11-17 18:50:56 by 63)