On 01/27/2011 04:51 AM, Robert Ancell wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi FreeRDPers!
>
> I'm currently trying to get Remmina/FreeRDP as the default on the
> Ubuntu 11.04 CD, but our pesky security team wants the certificate
> checking to work:
>
> RD_BOOL
> crypto_cert_verify(CryptoCert server_cert, CryptoCert cacert)
> {
>      /* FIXME: do the actual verification */
>      return True;
> }

I assume this is from crypto_openssl.c and that you don't care about 
other crypto backends. Ok.

This function is only used to verify the individual links in the x509 
certificate chain is correct. That alone is far from enough. Note 
however that this part works with the gnutls backend.

Finally (so far) there is the tls option. libfreerdp/tls.c (which so far 
only works with openssl) is far more complete but still not completely 
finished.

> So the question is:
> - - Any chance of this working by the end of February?
> - - Any plans for this?
> - - If you guys haven't got plans, I'll work on a patch.  I'm not an
> expert at certificate, do I just need to pass the information to the
> GUI and let the user ACK/NACK it?

AFAIK there are no specific plans and no chance unless somebody do 
something.

I think FreeRDP is quite stable and reliable on local trusted networks, 
but I wouldn't recommend using it on untrusted networks or when 
connecting to untrusted servers. FreeRDP security in these (and other) 
areas is definitely not worse than rdesktop (which I assume is the only 
alternative).

It would be great if you could work on improvements in this area.

A brief description of some aspects of a good solution could be:
* options for warning/accepting/failing on "Proprietary Certificate"
* more common handling of certificates for tls and non-tls
* support more crypto backends for tls (and nla) (but focusing on 
openssl first is fine)
* checking that the server certificate matches the request hostname
* functionality for checking that the x509 chain can be validated with 
the systems CA certificates (probably only useful in very few setups)
* functionality for using other CA certificates (so you can add your 
local AD CA and automatically trust all servers on the domain regarding 
rdp without adding it to the global configuration)
* ssh-like "known host" functionality, asking "unknown host X shows 
certificate Y - trust it and store it to next time?", adding it to some 
"known_hosts" file and using it next time and failing/prompting if it 
doesn't match next time

It will require changes to both libfreerdp and xfreerdp and will thus 
also require a so version bump.

Not a trivial task ... It might make sense to focus on "known host" and 
ignore the PKI mess. That might bring you most of the way to what you want.

/Mads

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Freerdp-devel mailing list
Freerdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to