[jdev] https://github.com/stpeter/manifesto and additional ideas

Ralf Skyper Kaiser skyper at thc.org
Thu Nov 14 15:33:10 UTC 2013

On Thu, Nov 14, 2013 at 1:01 PM, Dave Cridland <dave at cridland.net> wrote:

> On Thu, Nov 14, 2013 at 12:53 PM, Ralf Skyper Kaiser <skyper at thc.org>wrote:
>> Hi,
>> Ideas, comments and an open discussion are welcome to include the
>> following ideas in the manifesto.
>> - Client-support for certificate pinning (including pinning of
>> self-signed certificates).
>>   https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning
>>   http://tools.ietf.org/html/draft-ietf-websec-key-pinning-08
> I'm waiting to see how that one stabilizes before commenting. Ultimately,
> I think such techniques will be handled much better by DANE.

DANE requires an upgrade in infrastructure and wont happen in the immediate
future (it might not happen at all).

DANE again relies on sort-off 'CA-style' trust model ...which was the
problem to start with.

Pinning puts the trust into the hand of the server-admin, without third
parties. Secure.

>> - Client Lockdown feature: Automatically sets a variety of security
>> preferences
>>   to "known good" settings. Once lockdown option is set the user should
>> not be
>>   able to change any of the 'locked' security preferences until lockdown
>> is disabled
>>   again (e.g. gray out the option). Lockdown includes: Do not permit
>> non-OTR
>>   messages, require TLS, do not permit message logging)
> You want the client to somehow make its options read-only? What if they
> got locked down in a less than optimal manner? What if they were locked
> down such that when a new security feature was available, the user couldn't
> then take advantage of it.
> This also requires us to standardize the meaning of lockdown, and also
> standardize the options we want to be included. I really don't think this
> one will fly.

This is a feature in the client/UI software. Sorry if this was not clear.

The developer of the software can freely decide to include the new security
feature as a lockdown-default or not.

The lockdown feature is helpful for the normal user to configure the client
securely at a time of social unrest, when used from a public terminal or
when a novice user (who does not understand security, e.g. 99% of all
users) wants to communicate securely.

Configuring any jabber client securely requires some skills and
understanding of security. It also requires a certain amount of patient to
navigate through and almost endless number of menus and sub-menus to enable
all the security relevant features and disable the bad ones.

The average citizen on the other hand would be able to select 'LockDown'
and trusting the software to turn on maximum security features. ("Lockdown"
is more easily understood than "Do you want SSL 3.0 or TLS 1.2?").

>> - Client to notify server which method the client used to authenticate
>> the server's
>>   identity and if client is in Lockdown.
> How does the server know if the client is lying or not?

The server does not (and that's not what this feature is about).

This feature prevents accidental misconfiguration or laziness of the user.

Example: I'm running a private jabber server with around 200 users. I have
strict a security guideline and currently have to trust my users to follow
it. I trust the users to verify the server certificate against our own ROOT
CA certificate.

Users are lazy (quote). I ran a test and invalidated our server's
certificate. No user should connect if he follows the security guidelines.
Yet more than half of them connected instantaneously (auto-reconnect).

Those users configured their client not to verify the server certificate at
all. Because configuring the client this way is easier than importing the
ROOT CA certificate.

The lazy option is to not verify the server's certificate. The lazy option
is the insecure option

Yes, the user can hack the client and lie about if the client has correctly
verified the server cert. This would take more time and work than importing
the ROOT CA certificate.

The lazy option becomes importing the ROOT CA certificate. Now the lazy
option is the secure option.

It's the same argument why the car beeps when the driver does not put on
his seat belt. Yes, the drive can hack his car and disable the beeper. But
the lazy option is to put on the seat belt.

> As an aside, channel binding obviates the need for at least the former,
> since it ties in authentication with the TLS channel in such a ways that
> there can't be a MITM between the client and server without the
> authentication being broken anyway.

Do you have more details on 'channel binding' for clients? This sounds


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.jabber.org/pipermail/jdev/attachments/20131114/7fd3b017/attachment.html>

More information about the JDev mailing list