Template Version: @(#)sac_nextcase %I% %G% SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         Seahorse for OpenSolaris
    1.2. Name of Document Author/Supplier:
         Author:  Jeff Cai
    1.3  Date of This Document:
        30 October, 2008
4. Technical Description
1. Introduction
   1.1. Project/Component Working Name:

        Seahorse

   1.2. Name of Document Author/Supplier:
        
        Author:         Jeff Cai
        Sponsor:        Irene Huang

   1.3. Date of This Document:

        10/28/2008

   1.4. Name of Major Document Customer(s)/Consumer(s):

        1.4.1. The PAC or CPT you expect to review your project:

                Solaris PAC

        1.4.2. The ARC(s) you expect to review your project:

                LSARC

        1.4.3. The Director/VP who is "Sponsoring" this project:

                Robert O'Dea

        1.4.4. The name of your business unit:

                Software - OPG

   1.5. Email Aliases:
            1.5.1. Responsible Manager:  harry.lu at sun.com
            1.5.2. Responsible Engineer: jeff.cai at sun.com
            1.5.3. Marketing Manager:    
            1.5.4. Interest List:        brian.cameron at sun.com
                                         darren.moffat at sun.com
                                         wyllys.ingersoll at sun.com

2. Project Summary
   2.1. Project Description:

   Seahorse is a GNOME application for managing SSH keys and GNOME 
   keyrings. 

   It is a standard component of GNOME since 2.24.

   With Seahorse you can 
   - Create and manage SSH keys.
   - Manage your keyrings.

4. Technical Description:

    4.1 Create and Manage SSH keys

    Secure Shell (SSH) is a way of logging into a remote computer
    to execute commands on that machine. SSH keys are used in a key-based 
    authentication system, as an alternative to the default password 
    authentication system.

    To create a SSH key using seahorse, the user needs to give a description of 
    what the key is to be used for. The user needs to specify the encryption 
    type (RSA or DSA), the key strength (1024-4096) and the passphrase for the 
    key. The newly created key is stored at ~/.ssh.

    Users can list or delete SSH keys under ~/.ssh. The user can also change 
    the passphrase for them.

    Seahorse uses 'ssh-keygen' to produce these keys.

    - change the passphrase
    ssh-keygen -p -f input_keyfile

    - generate the key
    ssh-keygen -b bits -t type -C comment -f output_keyfile


    4.2 Exporting and Importing Keys

    Seahorse can import SSH keys from the clipboard or a key file. 

    Seahorse allows users to specify a SSH key file. Seahorse does not change 
    the content of imported files, instead, Seahorse copies the imported files 
    to ~/.ssh with non-duplicated file names.

    Users can also export SSH private or public keys to files. In fact, Seahorse
    just copies the content of files under ~/.ssh to new files. This is for
    convenience to some junior users. They may want to save or put their keys 
    to other machines. For example, some developers need to upload their public 
keys 
    to www.opensolaris.org. They don't need to know where SSH keys are usually 
    stored since Seahorse shows them keys. They can export those keys into 
files 
    via Seahorse directly.

    Seahorse can copy public key info to the clipboard.

    4.3 Manage keyrings

    Users can create and delete keyrings. Users can also change the password
    of a keyring. Seahorse does this via interfaces provided by GNOME 
    keyring (LSARC/2008/430).

    The created keyring files are stored in ~/.gnome2/keyrings/

    4.4 Trusted keys.

    Users can set ssh public keys as trusted keys. The trusted keys will be put
    into the file ~/.ssh/authorized_keys.

    4.5 Seahorse D-BUS API

    The Seahorse D-BUS API allows other programs to:

    - Query information about the user's keys, and watch for changes.
    - Perform import/export and other basic operations on the user's keys.

    The Seahorse D-BUS service name is:
      org.gnome.seahorse
    It is implemented by the seahorse-daemon process, which will be started
    automatically as needed (using D-BUS activation)

    org.gnome.seahorse.KeyService
    Import and exporting of keys, as well as some other misc stuff.

    Path  /org/gnome/seahorse/keys
    Interface: org.gnome.seahorse.KeyService
               GetKeyTypes(out STRING[] keytypes)
               GetKeySet
               ImportKeys
               ExportKeys
               DisplayNotification
    Interface: org.gnome.seahorse.Keys
               ListKeys
               GetKeyField
               GetKeyFields
               MatchKeys

               KeyAdded
               KeyRemoved
               KeyChanged

    4.6 Interfaces:
         Exported Interfaces
           Interface                        Classification      Comments
         ---------------                    -------------- ------------------
         SUNWseahorse                        Uncommitted    Package name 
         SUNWseahorse-root                   Uncommitted    Package name 
         SUNWseahorse-devel                  Uncommitted    Package name

         /usr/bin/seahorse                   Volatile       GUI application
         /usr/lib/seahorse-daemon            Volatile       D-BUS daemon 

         /usr/lib/seahorse/  \               Project        A program helps 
input
         seahorse-ssh-askpass                Private        a password.

         /usr/lib/libcryptui.so.0            Volatile       A library helps to 
access
                                                            D-BUS service.
         /usr/share/applications \           Volatile
            seahorse.desktop

         /usr/share/dbus-1/services/ \       Volatile       D-BUS service file.
            org.gnome.seahorse.service

         /usr/share/seahorse/glade           Project        The directory which 
                                             Private        contatins glade 
files.

         /etc/gconf/schemas/ \               Volatile       GCONF keys schemas 
that 
             seahorse.schemas                               defines the 
preferences.

         /usr/lib/pkgconfig/cryptui-0.0.pc   Uncommitted
         /usr/include/libcryptui/*           Volatile       Header files
                        
         org.gnome.seahorse.KeyService       Volatile       D-BUS interface 
                                                            (session interface)
         org.gnome.seahorse.Keys             Volatile       D-BUS interface
                                                            (session interface)

         ~/.gconf/apps/seahorse              Volatile       Config file for 
seahorse.

         Imported Interfaces
           Interface              Classification     Comments
         ---------------        --------------- -----------------------
           GNOME keyring           Volatile          LSARC/2008/430
           GTK+                    Committed         LSARC/2008/207     
           D-BUS                   Volatile          LSARC/2006/368     
           libnotify               Volatile          LSARC/2007/137
           SUNWsshcu               Committed         PSARC/2001/212
           ssh-keygen              Committed         PSARC/2001/212
           $HOME/.ssh              Committed         PSARC/2001/212
           $HOME/.gnome2/keyrings  Volatile          LSARC/2008/430
           
    4.7 Packaging & Delivery:
        
         Three new packages are delivered. 
         SUNWseahorse (base package)                - base package for binaries
         SUNWseahorse-root
         SUNWseahorse-devel (development package)   - development package

    4.8 Security Impact:
        
        Seahorse is just a GUI front-end of ssh and GNOME keyring, its security 
        can be ensured by ssh and GNOME keyring.

        Seahorse provides a session daemon named seahorse-daemon. It provides a
        D-BUS interface. The D-BUS architecture ensures that only the 
applications 
        running as the same user can access the daemon to get the key services.
        You can refer to [1] get the interface description.

    4.9 Dependencies:
        
        Seahorse makes use of ssh-keygen to generate keys and change the 
passphrase. 
        So it depends on the package SUNWsshcu.
         
5. References
        [1] Seahorse DBus Interfaces:
            http://live.gnome.org/Seahorse/DBus
        [2] Project page:
            http://www.gnome.org/projects/seahorse


6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                Desktop
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open


Reply via email to