All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] PATCH: 0/7: Support SASL authentication in VNC server
Date: Thu, 12 Feb 2009 14:53:02 +0000	[thread overview]
Message-ID: <20090212145302.GO9894@redhat.com> (raw)

Previously I provided patches for QEMU's VNC server to support SSL/TLS
and x509 certificates. This provides good encryption capabilities for
the VNC session. It doesn't really address the authentication problem
though.

I have been working to  create a new authentication type in the RFB
protocol to address this need in a generic, extendable way, by mapping
the SASL API into the RFB protocol. Since SASL is a generic plugin 
based API, this will allow use of a huge range of auth mechanims over 
VNC, without us having to add any more auth code. For example, PAM,
Digest-MD5, GSSAPI/Kerberos, One-time key/password, LDAP password
lookup, SQL db password lookup, and more.

I have got a VNC auth type assigned by the RFB spec maintainers:

  http://realvnc.com/pipermail/vnc-list/2008-December/059463.html

With the full current spec  for the SASL extension currently documented 
here:

  http://realvnc.com/pipermail/vnc-list/2008-December/059462.html


This is the 2nd version of the patches I initially posted here

  http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg00255.html


Changes since last time

 - Re-factor the code to move TLS and SASL methods into separate files,
   vnc-tls.c, vnc-auth-vencrypt.c and vnc-auth-vencrypt.h

 - Added simple access control lists for authorization of client users
   on either SASL username, or x509 distinguished name

 - Added proof of concept external file format for persisting ACLs

 - Extend 'info vnc' to show much more information about clients and
   auth

 - Tested with SASL + Digest-MD5,  SASL + GSSAPI. TLS + SASL + Digest-MD5
   and TLS + SASL + GSSAPI. This gives coverage off all interesting 
   code paths and/or I/O encryption combinations.


The combined diffstat for all 7 patches about to follow, is

 .hgignore             |   16 
 Makefile              |   27 +
 Makefile.target       |    5 
 b/acl.c               |  264 ++++++++++++
 b/acl.h               |   71 +++
 b/keymaps.h           |   60 ++
 b/qemu.sasl           |   34 +
 b/vnc-auth-sasl.c     |  640 +++++++++++++++++++++++++++++
 b/vnc-auth-sasl.h     |   76 +++
 b/vnc-auth-vencrypt.c |  175 +++++++
 b/vnc-auth-vencrypt.h |   33 +
 b/vnc-tls.c           |  456 ++++++++++++++++++++
 b/vnc-tls.h           |   76 +++
 configure             |   34 +
 curses.c              |    3 
 curses_keys.h         |    9 
 keymaps.c             |   45 --
 monitor.c             |   80 +++
 qemu-doc.texi         |  109 ++++
 sdl.c                 |    3 
 sdl_keysym.h          |    7 
 vl.c                  |   12 
 vnc.c                 | 1100 ++++++++++++++++++--------------------------------
 vnc.h                 |  215 +++++++++
 vnc_keysym.h          |    5 
 25 files changed, 2795 insertions(+), 760 deletions(-)


Daniel

-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

             reply	other threads:[~2009-02-12 14:53 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-12 14:53 Daniel P. Berrange [this message]
2009-02-12 15:01 ` [Qemu-devel] PATCH: 1/7: Extend 'info vnc' output to show client Daniel P. Berrange
2009-02-13 18:30   ` Anthony Liguori
2009-02-15 11:43     ` Daniel P. Berrange
2009-02-15 18:22       ` Anthony Liguori
2009-02-18 21:10       ` [Qemu-devel] " Mike Day
2009-02-12 15:02 ` [Qemu-devel] PATCH: 2/7: Push VncState struct into vnc.h Daniel P. Berrange
2009-02-14 22:09   ` Anthony Liguori
2009-02-15 11:43     ` Daniel P. Berrange
2009-02-12 15:02 ` [Qemu-devel] PATCH: 3/7: Split out VNC TLS auth code to separate file Daniel P. Berrange
2009-02-12 15:03 ` [Qemu-devel] PATCH: 4/7: Add SASL authentication extension to VNC Daniel P. Berrange
2009-02-12 15:03 ` [Qemu-devel] PATCH: 5/7: Include auth credentials in 'info vnc' Daniel P. Berrange
2009-02-12 15:04 ` [Qemu-devel] PATCH: 6/7: Support simple ACL for client authorization Daniel P. Berrange
2009-02-14 22:14   ` Anthony Liguori
2009-02-12 15:04 ` [Qemu-devel] PATCH: 7/7: Add external persistent ACL file Daniel P. Berrange
2009-02-14 22:16   ` Anthony Liguori
2009-02-15 11:28     ` Daniel P. Berrange
2009-02-12 15:43 ` [Qemu-devel] PATCH: 0/7: Support SASL authentication in VNC server Daniel P. Berrange
2009-02-14 22:17 ` Anthony Liguori

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=20090212145302.GO9894@redhat.com \
    --to=berrange@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 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.