On Wed, Sep 7, 2016 at 12:41 AM, Diane Hosfelt <[email protected]> wrote:
> I 100% understand the desire to use a pure Rust TLS library for Servo, but
> I think we need to not ignore the fact that there isn't one right now. Ring
> implements the crypto primitives, not the protocols. Rustls is promising,
> but it's brand new and lacks a number of features required to be a full TLS
> library (and that's if the owner/community decide to allow insecure
> algorithms for the sake of web compatibility).

I disagree with your statement that there "isn't one right now", as
you refer to a pure Rust TLS library. rustls implements full TLS, but
not old TLS, which would be needed to talk to a long tail of the web
today. As Servo matures, the long tail will become more important,
just as it will be in DOM or layout work, but for now, Servo can
probably do without it. Also, brand new-ness is not just a bad thing;
it also means that rustls can take advantage of modern knowledge on
what areas of TLS are more or less important and more or less
vulnerable.

> I don't think that Servo has
> the resources to majorly contribute to a new TLS library in Rust. This
> leaves a few options:
>
> 1. Continue with OpenSSL bindings until there's a more mature rust TLS
> implementation
> 2. Create bindings for another library
>
> From this point, I think we should look at the resource problem. How much
> work will it take to maintain/improve the OpenSSL bindings? Who can do
> this? Ditto for the bindings for another library.

Creating NSS bindings now is skating to where the puck currently is,
not to where it's going to be. Creating the bindings will involve
significant work. You may discount the work because the resources
don't have any cost to you, but it's still work that, in the bigger
picture, there is not much of a need for in the longer term. As the
NSS bindings work is going on, the alternatives will move forward as
well, and might even do so at a faster pace. Instead, Servo could
start skating now to where the puck will be, i.e. pure-Rust crypto.

To explain it in another way, I think you're implicitly dismissing one
factor, which is the rest of the Rust community. Notice that rustls
already exists, in a fairly usable form, without Servo or other MoCo
teams investments. As more people start using rustls, it will grow the
features that Servo needs, to some extent even without investments
from the Servo team itself. As one example, I myself have contributed
to both Servo and *ring*, and would be happy to work on rustls to
advance the cause of Rust crypto and Servo, in tandem.

It would be much harder to find volunteer contributors for NSS
bindings; I don't think the argument that significant amounts of Rust
users are interested in using NSS holds water, even if they care about
age -- they will probably go to OpenSSL instead, which has the virtue
of being more established now in the Rust community. (Also, will
people who care about the age of the crypto code magically not care
about the age of the bindings code?)

Cheers,

Dirkjan
_______________________________________________
dev-servo mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to