I watched the video (and read the slides offline).
We have conventional cert enrollment, using the RFC822 naming option. The cert has a digsig bit, enabling the UA to sign blobs that are posted off to relying party sites (just like in ws-security soap proof tokens, in silverlight clients today). This is almost identical to what IE folks have had for years (having downloaded the CryptoAPI activeX control, which exposes the javascript API).
Assume the signed blob is a PKCS#7 formatted blob with cert chain (or its an xml/dsig blob, similarly). Recipient verifies then validates cert chain, and thence signature on blob, at which point the network has delivered an (unassured) digital signature service between two mutually suspicious parties. To assess the assurnace level of the signature, one evaluates the authority of the cert chain (as normal) and one determines is the certification authority is entitled to speak for the (RFC822) naming authority. To do this, the verifier considers the name of the issuer of the root cert to be a URI, and the verifier tests whether the self-signed root cert exists on the https resource in the public net. The SSL certs of said resource chain to a root cert in the server vendors trust store (as normal), or not; accomplish the usual one process of one act of reliance boostrapping another.
This is classical policy authority resolution using cert chains, with the https SSL endpoint playing the role of LDAP endpoints. In the windows world, of course kerberos turst authenticate the ldap endpoint, which authenticates the binding between its ldap container name and the cert. Typically, the ldap name is a domain - in funky form: dc=adida,dc=com, for historical reasons.
There is the option to invite a third party webservice, again authenticated using public CA https, to remotely verify and validate PKCS7 or xml/dsig blobs
To do delegation today, there seems no reason why the
browserid.org can not have its (public) CA issue browserid a CA-cert, rather than a server cert. browserid (as policy CA) can mint a cert to my "enterprise-scoped" Microsoft CA, and I can be a subordinate/delegate/flunky. I already have my IE users auto-enrolling for certs, and they contain UPNs in the form
pe...@verisign.com (and UPN domain-level validation can be used, in the windows world). if the user has an RFC822 address in their directory entry, its trivial to have my CA populate the certs subject name with the RFC822 address, in either the subkect DN or in the more correct RFC 822 SAN.
Im wililing to run a browserid validator using
ASP.NET (recently discussed), if I can be an autonmous issuer, using the microsoft CA. Ive no object to being crosscertified by
browserid.org, and be therefore "under" its policy management authority for email validation assurance.
> Date: Tue, 27 Dec 2011 06:59:19 -0800
> From:
b...@adida.net
> To:
dev-id...@lists.mozilla.org
> Subject: Re: Self-hosted BrowserId / browser integration
>
>
> Adding a few things to Burak's very useful guidance.
>
> > 1. You're saying that BrowserID is decentralized[1]. However, I need to
> > load a javascript from
browserid.org, which is absolutely not
> > decentralized and a single point of failure.
> > This will change soon. The reason you should inclode it from
browserid.org *for
> > now* is because the specs and thus the file is under heavy change in the
> > mean time. Also, when te browsers support this natively, you won't have to
> > include it.
>
> That's exactly right. It's decentralized by design, but currently has
> some centralized scaffolding, including
browserid.org. If you have the
> time, watch this talk that explains the design, the scaffolding, and how
> we plan to have the scaffolding melt away:
>
>
http://identity.mozilla.com/post/11145921163/browserid-design-for-privacy
>
> > 2. Which browsers support browserid natively?
> > No browser again *for now* AFAIK. (yes not even Firefox)
>
> Correct. There's no reason for browsers to rush to support BrowserID
> right now as we are finalizing the spec for primary support.
>
> > 3. Is it possible to host the
browserid.org javascript myself (with my
> > application)? Does ist still work then?
> > Yes, it should work.
>
> Yes, but since we're still changing things around to make it faster,
> more cross-browser compatible, you may find yourself in a broken state
> if you do that. We would recommend you hold off on that for a bit.
>
> We have set up the
browserid.org server infrastructure to be quite
> robust. You can depend on us.
>
> > 4. Where can I find instructions to setup a self-hosted
browserid.org
> > page?
>
> You don't want to do that, it won't work for a few reasons. The most
> important one is: who's certifying email address ownership? Eventually,
> we want it to be primary identity providers, i.e. the domains that
> actually issue email addresses. For those domains that don't support it,
> you need to trust someone to verify those email addresses. We suggest
> you let Mozilla do this for now. Again, this is scaffolding. We don't
> want to be in this certification position for very long. But we have to
> be to get the ball rolling.
>
> If you set up your own
browserid.org instance, then the only way that
> works is if the web sites you visit specifically trust that instance of
> BrowserID to verify email addresses. That's unlikely to scale, because
> it's not discoverable.
>
> The point of scale is when individual domains certify their own email
> addresses, as follows:
>
>
http://lloyd.io/primary-identity-authorities-in-browserid
>
> > 5. (Maybe I'm misunderstanding it here) How does BrowserId distinguish
> > between implementation providers? Is it possible for me to host my
> > own implementation provider for my own domain?
> > I guess you can since it is bound to the domain that the e-mail address is
> > defined on, again AFAIK.
>
> It's technically possible for you to bundle an implementation provider
> with your primary IdP, as long as that implementation provider doesn't
> also play the role of a secondary provider.
>
> But let's take a step back: what are you trying to accomplish? You're
> getting buried in the details of temporary scaffolding of BrowserID, and
> maybe the problem you're trying to solve is simpler.
>
> -Ben