- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Thu, 01 Dec 2011 12:51:43 -0500
- To: Henry Story <henry.story@bblfish.net>
- CC: public-xg-webid@w3.org
- Message-ID: <4ED7BEAF.7010502@openlinksw.com>
On 12/1/11 12:46 PM, Henry Story wrote: > > On 1 Dec 2011, at 18:24, Kingsley Idehen wrote: > >> On 12/1/11 11:53 AM, Henry Story wrote: >>> Ok so simply put the problem is the following (as I understand it): >>> Windows is passing certificates around, and it assumes that once >>> they have passed the Certificate verifier the Certificate is >>> trusted. They don't have a way to have untrusted Certificates. What >>> they need is a way to have have Certificates be passed in objects >>> called Claims >> >> No, it means the Certificates must be signed by a Root CA for the >> Windows Keystore(s) in question. If you perform a simple test with IE >> you'll see the issue. The solution is to generate a Root CA cert, >> register with the target keystore, then make Certs with WebID >> watermarks signed using the Root CA cert. This is how Windows works >> for reasons already explained by Peter. >> >> Windows is military grade security. It's actually very very secure. >> WebID works under Windows if implementers follow the rules. This >> means Cert Generators have to be able to make Root Certs and persist >> to the Windows keystore. That's what we've always offered via our >> native Cert. Generator Wizard for Windows (a one-click app. sorta >> like the Java equivalent re. app. deployment). >> >> My old demo: http://youtu.be/gzqHVUb3qrw . >> >> Note, at the very beginning I indicate the need for CA Root cert. >> I'll soon make a new set of demos with a much more end-user friendly >> narrative. > > Are you and Peter speaking of two different issues? Same issues in different voices. > > (a)- I think you are speaking of generating your own client > certificates locally, signed by your own CA. No, it includes registering the Cert (a CA Cert) as a Root Cert. with the Window native OS keystore. This is the key to it all. > (b)- Peter is speaking of a windows server accepting a connection > from a remote client identifying itself with a Certificate that is > signed by a CA it does not know about, i.e. the certificate you > generated above in (a). Because the Cert. isn't a recognized Root Cert. in the eyes of the system until registered in the OS keystore. > > Peter is saying that unless he knows ahead of time about the CA that > signed your certificate in (a) then the IIS server will not accept the > client certificate in (b). He could use Apache, but he wishes to use > IIS for some reason. No, IIS and Apache are the same. The issue is the Windows kernel and its coupling to the keystore. > > > Henry > > PS.In any case I have found that one can create client certificates > for Windows as you do in (a) by making a request to a WebID key > generation server with the windows equivalent of keygen, without > needing to use all these heavy tools you are using. This isn't about "heavy duty" anything. Its about understanding how you deploy this system on Windows. How is a one-click application heavy duty? Its about the code for actually achieving these tasks in line with how Windows works. > the user experience there is 1 click cert creation Yes, but do you have a solution that then works with IE? Let's not speculate here. If the system in question works, just test WebID from IE. Kingsley > > > > >> >> Kingsley >>> >>> >>> On 1 Dec 2011, at 17:24, Peter Williams wrote: >>> >>>> >>>> In windows think, a DNS zone can be a "certificate store". Its a >>>> place were certs are stored. Having a replicated zone of DNS RRs >>>> servered from the local DNS endpoint supporting IIS now act as a >>>> cert store is no different to what happens today when a domain >>>> within the data partion of the very same activedireectory is a >>>> certificate store (remember, in windows DNS endpoints are serviced >>>> by the activeDirectory product). Files on the web can be cert >>>> stores (there is even a .tla for one). There is no reason why a >>>> webid profile cannot be a cert store, too, being a "file on the >>>> web" in some other format. In any cert store, one can already store >>>> self-signed certs. cert stores and file formats, or where records >>>> are stored in some name server, is not the issue. >>>> >>>> The issue is that IIS natively only uses certain cert stores for >>>> SSL client certs, and until a client cert is in one of them, the >>>> kernel will not complete the ssl handshake. >>> >>> Does IIS not have an API which it uses to ask if a client cert is in >>> a keystone? I would have thought with the desire to do lookups in >>> one of Microsofts other products, there would be something like that >>> - so that managers can have an ldap based client keystone somewhere, >>> and not on every machine. In that case it's just a case of >>> intercepting that request and running the WEbID Protocol on the sent >>> certificate. >>> >>> >>>> >>>> DANE is irrelevant to the argument. DANE specifies the use of >>>> self-signed certs in RRs of a DNS zone that COULD already be deemed >>>> as cert store (once replicated). It is already covered, and does >>>> not address the requirement. >>>> >>>> The requirement that windows cannot address (natively) is that a >>>> client presents a self-signed client authn cert to a server in the >>>> (native) SSL handshake, and webid expects the handshake to not only >>>> complete but deliver said handshake to code ..tied to the server >>>> endpoint ..preregistered on an TCP or other type of network port >>>> over which SSL messages are being communiated (e.g. UDP for >>>> SSLVPN). This must happen when no cert store used by Windows >>>> kernel lists the (self-signed) cert. >>>> >>>> Because the requirement does not satisfy this requirement, under >>>> the assurance objective Windows doesnt complete the handshake, and >>>> doesn't deliver it. This is correct (military) crypto. If one >>>> thinks about a DH cert used for client auth, it should be more >>>> apparent why the rule is present, since the keying material is >>>> contributing entropy to a key agreement process (unlike RSA >>>> client certs). The cert also bears a label, which constrains when >>>> its key can or cannot contribute said entropy, so certain lattice >>>> structures are enforced within the security policy. >>>> >>>> If the spec said (a) register a (self-signed) cert over https and >>>> then (b) starting using the webid validation protocol, THEN I could >>>> easily stick said self-signed cert in a cert store TODAY in step >>>> (a). Windows would then conform, natively. But, that is not what >>>> the spec says, and its not true to what the spec is about. The spec >>>> does not REQUIRE pre-registration (which would be a cryptopolitical >>>> nightmare.). You can hear the headline now: "W3C wants to oversee >>>> network for worldwide registration for user certs." Austrailian and >>>> UIK govt folks would love it though (since they always hated free >>>> certs). >>> >>> >>> >>>> >>>> If you want to run tomcat on windows sitting on a TCP/IP, of >>>> course, you can do webid today ON windows - as specified. But, >>>> thats not "native" windows. >>>> >>>> >>>> ------------------------------------------------------------------------ >>>> From: henry.story@bblfish.net <mailto:henry.story@bblfish.net> >>>> Date: Thu, 1 Dec 2011 15:41:40 +0100 >>>> CC: public-xg-webid@w3.org <mailto:public-xg-webid@w3.org> >>>> To: home_pw@msn.com <mailto:home_pw@msn.com> >>>> Subject: Re: TLS-Light >>>> >>>> As I see it when DANE comes out it is going to be very easy for >>>> every server/service to get a self signed certificate into the DNS, >>>> which can then be used to sign the certificates. Clearly at that >>>> point Windows will need to change to allow certificates signed by >>>> DNS backed signatures as being acceptable. They will have to do >>>> that because DANE is clearly going to increase security. >>>> >>>> Now of course if one does have client certificates backed by DANE >>>> signed clients, then one can wonder: what is the role of the >>>> subject alternative name? Well it still has two roles: >>>> >>>> - it can be used to fetch attributed RESTfully about the Subject >>>> - it can be used to check the validity of the certificate - is >>>> the public key still in the remote profile? >>>> >>>> Having a certificate signed by a service backed by Dane has >>>> advantages that the server need not verify the public key at the >>>> WebID profile - this is the arguments given by the BrowserId folks. >>>> It looks like it will have the advantage of also fitting into a >>>> more traditional Windows PKI model - even if they have to change >>>> their implementations then. >>>> >>>> The disadvantage of that way of doing things is that you still have >>>> what seems like an unnecessary company or organisational level >>>> signing process - i.e.: someone controlling the DNS needs to be >>>> asked to place a public key in there for the publication of >>>> identities, when we can in fact do quite a lot without asking that >>>> person. Since you could otherwise publish your keys yourself on an >>>> https web server. Giving someone access to writing something to a >>>> part of the domain of a web server is to make that person >>>> responsible for making claims. It seems simpler to give him access >>>> to a web server and less dangerous, then to also give him access to >>>> the private key of something published in DNS which then gives that >>>> person much wider access to make claims. >>>> >>>> Perhaps there are other ways of getting Windows to act >>>> intelligently and securely with certificates that require a WebID >>>> verification? Perhaps one would need to add something that is MUST >>>> understand to the signing certificate, which would be MUST >>>> UNERSTAND WEbID. Then Windows would not that certificate signed by >>>> such CAs need to be treated differently.... >>>> Henry >>>> >>>> >>>> On 1 Dec 2011, at 13:59, Peter Williams wrote: >>>> >>>> Ive come to the conclusion that the current and likely all >>>> future versions of windows, natively, cannot be a platform for >>>> the webid validation protocol - as conceived. Any native >>>> implementation cannot be complete (and stay consistent with how >>>> windows natively is supposed to be used). Windows will support >>>> many of the cases, but not all. Per the threads title, the >>>> topic is indeed SSL (where I have lots of expertise), and certs >>>> (where I have probably have the most continuous years >>>> experience of anyone on the planet). Its a specialized area in >>>> which handshakes, crypto and certs combine, to enforce security >>>> policy in an trusted computing base. From what I can tell, few >>>> folks here have any knowhow in this topic area - which is quite >>>> normal - and its not driving the standard. Folks here are >>>> mostly app programmers, working outside the a distributed >>>> kernel - and are not too concerned with distributed operating >>>> system design. >>>> >>>> Windows and IIS 7 cannot naturally take a self-signed client >>>> cert on an ssl handshake and work with it. The cert must be >>>> rooted, somehow, beforehand. There are lots of ways to root it >>>> (including cross-certs), but rooted it must be. This is becuase >>>> windows is a B3-equivalent platform (see Orange book for what >>>> that means), and information is labelled (essentially) within >>>> the kernel (B1), with processes and threads being similarly >>>> compartmentalized as a result (B3). Doing professional crypto >>>> and information security, the kernel uses certs and keys and >>>> handshakes and decipherment to enforce the rules of a trusted >>>> computing based designed to impose and enforce label based >>>> integrity and access controls. These are the things that harden >>>> an OS, and protect one user from another in the assumed world >>>> of attacks on the TCB's own code. once crypto for >>>> communications enters a kernel, it hardends a network OS (or >>>> NOS). Today, the state of the art is NOS at the scale of a >>>> active directory federation ("enterprise class" windows). This >>>> means.. MAN scale, but not national or web scale. >>>> >>>> now none of that is a criticism of windows or the webid >>>> project. Im doing actually what Im supposed to be doing - >>>> evaluating a security standard core claims and design, as a >>>> engineer (vs an app programmer writing scripts). >>>> >>>> There are two main impacts. First, the typical open source 15 >>>> year old with the usual rancour will start bleating about how >>>> awful windows therefore is, without understaning the >>>> engineering rationale for why a properly engineered trusted >>>> computing base imposes such hard limits on certs and key >>>> management. This will probably have the consequence that folks >>>> will go back and put user mode SSL onto windows (using some >>>> openssl class library) to "solve the problem" (and just undo >>>> the hardening, for that class of app, for that account). >>>> Second, webid as a standard has mandatory modes (self-signed >>>> certs etc) that mean *any* complete implementation will always >>>> need a waiver, from assurance standards. Its going to be rather >>>> hard to even formulate a webid assurance standard, as webid is >>>> using keying and crypto in a way that undermines conventional >>>> theories of assured crypto. >>>> >>>> The conclusion is that webid needs to stay doing what its >>>> doing; and i do NOT want to see it cede its user centricity or >>>> fail to require that unregistered, self-signed certs MUST be >>>> usable. Digital certs on the open internet failed, and we can >>>> ultimately blame the very requirements of and the concepts of >>>> TCB-based assurance for that. A Webid profile is NOT a cert, >>>> and we are not doing old https client authn. Webid must not be >>>> seen as being limited to what client certs are limited to doing >>>> (when done correctly, as Microsoft did it). >>>> >>>> I found the webid project fun. I learned lots about semantic >>>> web technologies, met someone in Kingsely who I think will >>>> revolutionize the web, and learned lots more more about the >>>> state of modern windows (which can can help US real estate, >>>> still catching up with the web of 5 years ago). I'm not sure >>>> there is anything left for me to do, here, though. What >>>> expertise and experience I have, I think I've already shared. >>>> >>>> >>>> Social Web Architect >>>> http://bblfish.net/ >>> >>> Social Web Architect >>> http://bblfish.net/ >>> >> >> >> -- >> >> Regards, >> >> Kingsley Idehen >> Founder& CEO >> OpenLink Software >> Company Web:http://www.openlinksw.com >> Personal Weblog:http://www.openlinksw.com/blog/~kidehen >> Twitter/Identi.ca handle: @kidehen >> Google+ Profile:https://plus.google.com/112399767740508618350/about >> LinkedIn Profile:http://www.linkedin.com/in/kidehen >> >> >> >> > > Social Web Architect > http://bblfish.net/ > -- Regards, Kingsley Idehen Founder& CEO OpenLink Software Company Web: http://www.openlinksw.com Personal Weblog: http://www.openlinksw.com/blog/~kidehen Twitter/Identi.ca handle: @kidehen Google+ Profile: https://plus.google.com/112399767740508618350/about LinkedIn Profile: http://www.linkedin.com/in/kidehen
Attachments
- application/pkcs7-signature attachment: S/MIME Cryptographic Signature
Received on Thursday, 1 December 2011 17:52:11 UTC