Re: [Lurk] keeping private key private

2016-10-14 Thread Daniel Migault
Hi Daniel,

Thank you very much for the feed backs. I will try to clarify the problem
we are solving, expose why LURK in my opinion address this problem in a
"wise" way and expose why short term certificate (STC) does not solve this
problem.

Note that I am not opposed to STC, I think this is something good to be
done, however, it is complementary to LURK and not an alternative to.

The mail may be long, but feel free to split it into different threads. I
will be more than happy to clarify any aspects.

I agree with you that information delivered by a web site is what we must
be focused on and this is actually the goal of LURK* (in a TLS context).
Although the secret key material (SKM) and the information of a web site
are two different assets, they are not independent and protecting the
information requires the protection of the SKM. Information is
characterized at least by a content and an origin. An un-authenticated
content such as a software for example, does not have the same value if it
is being downloaded from the editing company or from public content sharing
site. The motivation of LURK is to provide the user the means to trust the
origin and as such the information delivered by the web site.

As a result, SKM must be protected as long as the information is delivered,
independently of the SKM characteristics which includes its life time.

I also clearly agree with you that protection of the SKM should be
performed with limited cost and as simple as possible.

It seems to me that LURK meet these criteria, which is the reason we would
like it to be standardized. As an observation, LURK like solution have been
deployed by CDN for example, and I believe their goals are not to consider
the most expensive and most complex solution. That said they might be other
and better solutions.
There has been some discussions on whether short term certificates (STC)
address the problem we want to solve that is either preventing the leak of
the SKM or in a TLS context providing means to trust the origin of the
information. In addition, there were also discussions on whether STC are
also less expensive and more salable than LURK. I disagree that STC is an
alternative to LURK.

a) First STC does not address problem we are trying to solve, i.e
"ensuring the origin of the information". In that context, STC limits the
use of a SKM that leaks to a short period of time. The improvement over
long term certificate is only valid if leakage of the SKM only happen
accidentally - that is one time or when retrieving the SKM takes
significantly longer than the life time of the SKM. Such limitation to the
protections of the SKM are ways too narrow. SKM does not address for
example any attacks that can provide access to the SKM in an timely manner.
Such attacks simply needs to be re-done after any SKM renewal. Such attacks
includes for example privilege escalation vulnerabilities which there is
little ways to insure they will not happen. Heartbleed is typically an
existing attacks that only took an RTT to retrieve the SKM. STC does not
either address this attack - which we know exists - and may take years to
be disclosed. I see LURK ways more powerful as it address the root cause of
the problem instead of limiting the consequences of a leak. .

b) Second, STC are really not inexpensive at all.
b. 1) I might agree that generating a key is inexpensive. However
we should also consider that generating keys with a high randomness
frequently might not be as inexpensive as expected.
b .2) That said certificates are not limited to key generation and
includes signing by the CA as well as revocation when needed. Even though
the cost of signing by the CA decreases, if the number of signing
operations increases in several order of magnitude, the overall cost may
not decrease. Especially the cost may remain significantly high for EV
certificates and for these certificates STC may happen to be very expensive.
b. 3) STC as any certificate based solution does not provide
appropriated delegation mechanisms. As result, in a context of CDN, any
time the content owner changes the CDN a complex revocation procedure might
be required. Complexity may be due to the use of EV certificates as well as
the interrelations between the CDN and the content owner.

c) Third, STC as certificate based solution considerably weaken the
security.
c. 1) As certificates does not provide delegation mechanisms, the
delegation to a CDN often result in providing the SKM to a thrid party.
This goes against the principles of public cryptography, resulting in a
authentication that provides little benefit over self signed certificates.
c. 2) EV may present delays that are non compatible with STC, as a
result, the use of STC in our context may be limited to DV certificates
which is the weakest certification level.

LURK instead
a) solves the problem we are trying to solve as it prevents the leakage
of the key.
b) is inexp

Re: [Lurk] keeping private key private

2016-10-12 Thread Daniel Kahn Gillmor
Hi Daniel--

On Wed 2016-10-12 13:10:04 -0400, Daniel Migault wrote:

> Currently delegating a TLS service to a third party or multiple edge nodes
> is mostly based on distributing the full private key to multiple edge nodes
> that may even be in a different domain. Such a distribution prevents the
> key owner to keep the control of the private key as well as to prevent the
> key to leak. For example, with LURK, the Heartbleed attack would have had
> very limited impact as the private key would not have been hosted on the
> edge server. By design, LURK would have prevented the key to leak.

What's more important -- the secret key material, or the traffic and
information on your website that it protects?

When the certificate is long-lived, there are good arguments for the
secret key being more valuable, because it can be misused in the future
when we don't yet know what the value of of the traffic and information
will be.

It's also conceivable that a single cert (e.g. *.example.biz) could be
more valuable than any one site it applies to.

But when the certificate is short-lived and narrowly-scoped, the things
the cert is trying to protect are proportionally more valuable, though,
right?

secret keys are cheap!  certificates are (increasingly) cheap!  Making
cheap things less powerful and using them freely seems like a much
simpler approach than trying to invest certificates with lots of power
and then trying to find ways to avoid the misuse of that power.

> My understanding is that there are currently no mechanisms that prevent the
> keys to leak in the case of TLS. There is a huge demand from the industry
> to provide mechanisms that protects the private key from leakage. The
> reason we focused on TLS is that by limiting the use of a single protocol
> it provides more control on the usage of the key. However, the protection
> of the private key can also be handled in a more generic way outside the
> scope of TLS.  I would like to understand whether mechanisms to prevent
> leakage of the private key should not be handled in the context of TLS and
> instead being handled in a more generic way.

we have (a few) generic mechanisms already.  PKCS#11, as horrible as it
is, provides for secret key isolation.  "PKCS#11-RPC" was floated as one
idea in the LURK BoF, iirc, but i think it was (mostly) dismissed,
though i don't remember why.

But remote use of secret key material is also high-latency and prone to
bottlenecks -- are these engineering costs worth the benefits?

some people might amortize the costs of the high-latency handshake by
establishing and encouraging the use of TLS sessions; this is in effect
asking users to remember short-lived certs -- those sessions are going
to still be valid authenticators (to those end users) even after the
keyholder decides to rescind her grant of use of her secret key.

So there are a set of tradeoffs involved, and it's not clear to me that
the thing you're trying to protect is worth the energy and cost that
would be invested here.  can you explain how you see those tradeoffs?

All the best,

  --dkg


signature.asc
Description: PGP signature
___
Lurk mailing list
Lurk@ietf.org
https://www.ietf.org/mailman/listinfo/lurk