[Pidgin] #15308: SSL support appears to have been written by a lobotomy victim
Pidgin
trac at pidgin.im
Wed Sep 5 08:22:07 EDT 2012
#15308: SSL support appears to have been written by a lobotomy victim
--------------------+-------------------------------------------------------
Reporter: athena | Owner:
Type: defect | Status: new
Milestone: | Component: libpurple
Version: 2.10.6 | Resolution:
Keywords: |
--------------------+-------------------------------------------------------
Comment(by datallah):
Replying to [ticket:15308 athena]:
> Allow me to direct your attention to the function ssl_auth_cert() in
libpurple/plugins/ssl/ssl-nss.c:
http://hg.pidgin.im/pidgin/main/file/52cc04429e2c/libpurple/plugins/ssl
/ssl-nss.c#l160
>
> Note the rather ill-chosen preprocessor directives, making the use of
SSL essentially worthless, as MITMing this crawling horror would be no
more difficult than a plain, unencrypted TCP connection.
If you don't look carefully, it may appear that the NSS plugin doesn't do
any validation of the SSL certificates, but that isn't the case; the
validation is done, just not by the `SSL_AuthCertificateHook` hook.
If you look at
[http://hg.pidgin.im/pidgin/main/file/52cc04429e2c/libpurple/plugins/ssl
/ssl-nss.c#l451 ssl-nss.c#l454], you'll see that before the SSL connection
is considered "connected" from libpurple's perspective,
`ssl_nss_handshake_cb` is called to validate the certificate using the
libpurple's `purple_certificate_verify` functionality.
<SNIP>
> Thus, the order of plugin loading and thus whether or not a user with
both SSL plugins built will bother checking any certificates will
ultimately be determined by such factors as the order in which the plugin
binaries were installed and the choice of filesystem.
I think this is accurate. I think the expectation is that there would be
only one SSL plugin, perhaps that should be made more clear. This is
presumably why builds like the ubuntu build you linked to build only one
SSL plugin.
> I strongly advise suggesting distributors prefer GnuTLS over NSS, then
fixing NSS, then reconsidering your lack of OpenSSL support, and exposing
a UI to let the user choose which SSL plugin to use when more than one is
available. Passing a licensing purity test is not worth this absurd
Potemkin village security.
The GnuTLS plugin performs the certificate validation in essentially the
same way as the NSS plugin does.
It's simply not an option to use OpenSSL, our license (which we couldn't
change if we wanted to because several contributers have stated that they
are unwilling to give permission to do so) does not allow for it.
I strongly advise you to reconsider your attitude when reporting tickets;
being intentionally inflammatory doesn't help any sort of interaction.
--
Ticket URL: <http://developer.pidgin.im/ticket/15308#comment:3>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list