Re: [Evolution-hackers] Backend requesting arbitrary user input from frontend

2011-03-30 Thread Christian Hilberg
Hi Milan,

On Wed 30 March 2011 Milan Crha wrote:
 On Wed, 2011-03-23 at 19:04 +0100, Christian Hilberg wrote:
  Of course, this is going to be fun - how to tell which of the possibly
  multiple EDS-frontends should receive the request? Ideally, the backends
  should be unaware of EDS-frontends... trouble galore! :)
 
   Hi,
 Matt suggested in his Account management that the server will ask for
 credentials with an information for which source this request is made,
 so the auth_required signal may contain this information. I'll add a
 strv parameter to that, just for being ready even for more expansion.
 
 What kind of information will be known in this parameter depends on the
 receiver for the signal. Let's have it opened for now, but I believe
 this may cover your issue too.

As long as there is *any* sensible way to pass some data (a PIN string in our 
case) to the backend if the backend so requests, that will help us much. 
Thanks in advance for taking this into account.

(Bye)^2,
Christian

-- 
kernel concepts GbRTel: +49-271-771091-14
Sieghuetter Hauptweg 48
D-57072 Siegen
http://www.kernelconcepts.de/


signature.asc
Description: This is a digitally signed message part.
___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Backend requesting arbitrary user input from frontend

2011-03-29 Thread Milan Crha
On Wed, 2011-03-23 at 19:04 +0100, Christian Hilberg wrote:
 Of course, this is going to be fun - how to tell which of the possibly 
 multiple EDS-frontends should receive the request? Ideally, the backends 
 should be unaware of EDS-frontends... trouble galore! :)

Hi,
Matt suggested in his Account management that the server will ask for
credentials with an information for which source this request is made,
so the auth_required signal may contain this information. I'll add a
strv parameter to that, just for being ready even for more expansion.

What kind of information will be known in this parameter depends on the
receiver for the signal. Let's have it opened for now, but I believe
this may cover your issue too.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Backend requesting arbitrary user input from frontend

2011-03-23 Thread Christian Hilberg
Hi all.

Part of the overall evolution-kolab project is to make it possible for 
Evolution (as a Kolab client) to use TPM [1] infrastructure. In short, it's 
all about certificate based client authentication, where clients can be forced 
to authenticate themselves against a server when establishing an SSL 
connection. It's the SSL server certificate based auth the other way around - 
first, the server will identify itself by sending a signed (and therefore, 
hopefully, trusted server certificate), then, the client will authenticate 
itself to the server by sending a signed client certificate. Only after the 
client sent a known, signed and trusted certificate, the server will ask for 
service authentication (username/password). If the client cannot authenticate, 
the server will terminate the SSL connection.

Using a TPM means that the client certificate is stored within a hardware 
crypto token, the Trusted Platform Module. To open and use the crypto token, 
the user needs to supply a user PIN (much like a password). Then only the 
crypto token will be accessible and will reveal the client certificate (or 
other data) it was asked for.

Via the PKCS#11 stack (implemented through opencryptoki [2] and trousers [3]), 
it is possible to use this under Linux. It is working for Camel (via NSS) 
already. Given the proper setup, the Evolution frontend will pop up a PIN 
requester where the user can enter his/her crypto token PIN, and the crypto 
token reveals the client certificate to NSS for use in certificate-based 
client auth. This means that Camel can also use it. It works for us, there is 
a draft installation and setup guide available in the evolution-kolab project 
on SourceForge [4], namely 
Usage_of_software_security_devices_for_client_authentication.pdf (check out 
the Files section). We can secure e.g. an Evo IMAP connection that way.

Now, we're using Camel (to be more specific: IMAPX) in our evolution-kolab 
backend, since all Kolab PIM data is stored in emails accessible via IMAP. We 
would like to use the TPM crypto device there as well, but we're lacking a 
possibility how we can request a user PIN from within the backend process 
through the frontend, since there is no API which would allow us to open a 
requester in the frontend (like, displaying some explanatory text, and having 
a field to enter some text, and an ok/cancel button, the entered text being 
handed back to the backend). This lack is there at least in 2.30, for which  
evolution-kolab is currently being developed (porting to newer versions is in 
the plannings, once we're done with the initial 2.30 release).

Maybe this is a more general thing than just having a backend requesting a 
user PIN. I can imagine other scenarios where a backend might need to request 
any user interaction, input, whatsoever, which is specific to this backend and 
cannot be taken care of in the existing general EDS API (which is limited to 
the typical things all backends need to do).

I'd like to know your thoughts on this, and maybe other backend implementors 
already had a similar need to request some user data which is not readily 
available through the standard EDS backend API.


Kind regards,

Christian


[1] http://en.wikipedia.org/wiki/Trusted_Platform_Module
[2] http://sourceforge.net/projects/opencryptoki/
[3] http://trousers.sourceforge.net/
[4] https://sourceforge.net/projects/evolution-kolab/

-- 
kernel concepts GbRTel: +49-271-771091-14
Sieghuetter Hauptweg 48
D-57072 Siegen
http://www.kernelconcepts.de/


signature.asc
Description: This is a digitally signed message part.
___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Backend requesting arbitrary user input from frontend

2011-03-23 Thread Christian Hilberg
Hi again,

Am Mittwoch 23 März 2011, um 18:03:32 schrieb Christian Hilberg:
 Hi all.
 [...]
 Maybe this is a more general thing than just having a backend requesting a
 user PIN. I can imagine other scenarios where a backend might need to
 request any user interaction, input, whatsoever, which is specific to this
 backend and cannot be taken care of in the existing general EDS API (which
 is limited to the typical things all backends need to do).
 [...]

Of course, this is going to be fun - how to tell which of the possibly 
multiple EDS-frontends should receive the request? Ideally, the backends 
should be unaware of EDS-frontends... trouble galore! :)

(Bye)^2,
Christian

-- 
kernel concepts GbRTel: +49-271-771091-14
Sieghuetter Hauptweg 48
D-57072 Siegen
http://www.kernelconcepts.de/


signature.asc
Description: This is a digitally signed message part.
___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers