On Tue, Jun 27, 2017 at 3:52 PM, Gervase Markham via dev-security-policy <
dev-security-policy@lists.mozilla.org> wrote:

> On 27/06/17 12:17, Ryan Sleevi wrote:
> > This was something the NSS developers explicitly moved away from with
> > respect to certdata.c
>
> It would be interesting to know the history of that; but we are in a
> different place now in terms of the SCM system we use and the CI tools
> available, versus what we were a few years ago.
>

Not really, at least from the NSS perspective. There's been the CVS ->
Mercurial -> Git(ish) transitions, but otherwise, the tools and
dependencies have largely remained the same.


> If you were able to elaborate on the relevant history here, as you
> obviously know it, that would be helpful.
>

Well, the obvious issue remains cross-compiling and what dependencies are
acceptable. So the minimal set was - in order to maintain compatibility
with NSS consumers like Red Hat and Oracle - the set of tools already
integrated into the build system. Even the transition to GTests has not
been without controversy, and not all GTests are run by all NSS consumers,
due to the dependency on (modern) C++.

I highlight this because the "Mozilla build environment" is not necessarily
aligned with the "NSS Build environment"


> >> That's one option. I would prefer something which is both human and
> >> computer-readable, as certdata.txt (just about) is.
> >
> > Why? Opinions without justification aren't as useful ;)
>
> :-) Because human-readable only is clearly silly, and computer-readable
> only is harder to maintain (requires tools other than a text editor). I
> want it to be easily maintainable, easily browseable and also
> unambiguously consumable by tools.
>

Put differently: If a human-readable version could be generated from a
machine-readable file, is the objective met or not?

You've put a very particular constraint here (both human and machine
readable), which is very much a subjective question (as to whether it's
human readable), and which arguably can be produced from anything that
meets a machine readable format.

For example, you highlight that computer-readable only requires other tools
to maintain, but that's not intrinsically true (you can have
machine-readable text files, for example), and one in which you're just
shifting the tooling concern from "NSS maintainers" to "NSS consumers"
(which is worth calling out here; it's increasing the scale and scope of
impact).

I can understand the preference, but I'm trying to suss out what the actual
hard requirements and goals are, since as exciting as the prospect is, not
only does it require work (to define said schema), but it requires work to
integrate that schema, and wanting to understand what the long-term payout
is.


> > Apple suggested they'd like to make this data available; my hope would
> >> be that if a format could be defined, they might be persuaded to adopt
> it.
> >
> > And if they can't, is that justified?
> >
> > That is, it sounds like you're less concerned about cross-vendor
> > interoperability, and only concerned with Apple interoperability. Is that
> > correct?
>
> I'm after interoperability with whoever wants to interoperate.


That doesn't really helpfully answer the question, but apologies for not
making it explicit.

You've proposed solutions and goals that appear to align with "We want
Apple to use our format", and are explicitly rejecting "We will
interoperate with Microsoft using their format", while presenting it as "We
want interoperability"

1) Is it correct that you value Apple interoperability (because they've
privately expressed some interest, or which you hope to convince them to,
given their public statements)
2) Is it correct that you do not value Microsoft interoperability (because
you're explicitly defining criteria that would reject that interoperability)
3) If neither party arrives at an interoperable solution, are your goals
met and is the work justified?


> The other
> benefits I see for Mozilla are being able to better (if not perfectly)
> express our root store's opinions on our level of trust for roots in a
> single computer-readable file, rather than the combination of a text
> file, a C++ file and a wiki page.
>

Well, regardless, you need the C file, unless you're also supposing that
NSS directly consume the computer-readable file (adding both performance
and security implications).

The wiki page you mention is already automatically generated (by virtue of
Salesforce), and you're certainly not eliminating that burden of
maintenance, so it seems like you still have three files - the 'source in
tree', the generated code, and the Salesforce-driven output. Can you
explain to me the benefit there?


> Given that the plan is to auto-generate the old formats when necessary,
> I didn't think that maintaining the data in a different format would
> cause anyone significant difficulty or hardship.
>

Transitioning to txt caused hardship for downstream NSS consumers, some of
which had to integrate manually regenerating the C file as part of their
workflows (of which, Google was one). Was that justified by the transition?


> >> Like, really? Developing a set of JSON name-value pairs to encode some
> >> fairly simple structured data has potential IP issues? What kind of mad
> >> world do we live in?
> >
> > It doesn't matter the format - it matters how and where it was developed.
>
> As in, if I just make it up and start using it, people will be scared
> I'm going to sue them over its use?


Yes. This is why, for example, certain large vendors working in the
CA/Browser Forum found it necessary to establish the IP policy.

Certainly, having worked with Microsoft and Apple in a variety of fora, and
been indirect and incidental party to a number of the discussions related
to choice of venue, I feel confident saying that, whether immediately or
eventually, the need for a strong IP commitment will certainly be necessary
once the lawyers are aware. It's not for lack of interest that certain
members do not publicly comment in certain venues - it's part of the
company policy.

If your goal is to produce a standard - and not just a library that
implements said code (and which would be directly integrated into these
vendors products) - you should seriously consider reaching out to these
parties - and their counsel - and determine an appropriate venue. Even
something like WICG may be able to satisfy the various needs, but I have
incredible difficulty imagining "throw it up on GitHub" would suffice, as
would "hash it out in m.d.s.p"
_______________________________________________
dev-security-policy mailing list
dev-security-policy@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to