- From: Henry Story <henry.story@bblfish.net>
- Date: Wed, 4 Jan 2012 14:34:55 +0100
- To: Mo McRoberts <mo.mcroberts@bbc.co.uk>
- Cc: Jürgen Jakobitsch <j.jakobitsch@semantic-web.at>, public-xg-webid@w3.org
On 4 Jan 2012, at 14:10, Mo McRoberts wrote:
>
> On 4 Jan 2012, at 11:44, Jürgen Jakobitsch wrote:
>
>> hi,
>>
>> the topic of using CN from the certificate came up quite often lately.
>> wouldn't it be a good idea to extend the cert ontology [1] somehow to provide
>> official classes and predicates for the contents of a certificate besides the keys.
>>
>> since a WebIDPrincipal [2] is more or less a graph, i could add these certificate-triples
>> to the WebID and users of the WebIDRealm can display whatever they want to display :
>> foaf:names, cert:issuedTo ?x => ?x cert:commonName...
>
> As I understand it, the intention is for the cert ontology to eventually be able to express a complete certificate, not just the keys from it — it’s just that the means of doing this hasn’t yet been defined.
yes, that is an interesting topic.
>
> It would be nice if when it does, the vocabulary for DN attributes joins the dots somehow with the OIDs for those attributes (perhaps via owl:sameAs <oid:x.y.z> ? [3])
>
> Technically a DN is an ordered list, so there are probably some *minor* headaches involved there.
>
> Probably the biggest headache is that you can take an cert:RSAPublicKey instance and construct a PKCS#1 RSA key structure from the values it contains, and you'd want to be able to do the same (with original signature intact and still verifiable) with a cert.
>
> In a pinch, you'd want something like…
>
> Classes:
>
> cert:Certificate
> cert:DistinguishedName
> cert:Extension
>
> Properties on cert:Certificate:
>
> cert:subject (cert:DistinguishedName)
> cert:issuer (a resource, pointing at a cert:Certificate instance containing at a minimum a cert:subject, but also a cert:key if you want to be able to verify the signature)
> cert:key (as already defined)
> cert:serialNumber (literal, datatype xsd:integer)
> cert:notBefore (literal, datatype xsd:dateTime)
> cert:notAfter (literal, datatype xsd:dateTime)
> cert:issuerUniqueID (literal, datatype xsd:hexBinary)
> cert:subjectUniqueID (literal, datatype xsd:hexBinary)
> cert:signatureAlgorithm (resource, hopefully with some reference to signature algorithm OIDs)
> cert:signature (literal, datatype xsd:hexBinary)
> cert:extension (any instance of cert:Extension)
> cert:extensionValue (any value)
>
> Then RDN (literal) properties, presumably in a different namespace?, e.g.:
>
> x520:countryName, x520:localityName, x520:stateOrProvinceName, x520:organizationName, x520:organizationalUnitName, x520:commonName
>
> e.g (some extra extension stuff thrown in for good measure):
> http://example.com/me#myCert a cert:Certificate ;
> cert:subject [
> a cert:DistinguishedName ;
> x520:countryName "GB" ;
> x520:localityName "London" ;
> x520:organizationName "British Broadcasting Corporation" ;
> x520:organizationalUnitName "Research and Development" ;
> x520:commonName "Test Certificate" ;
> ] ;
> cert:issuer <http://example.com/ca#cert> ;
> cert:key [
> a cert:RSAPublicKey ;
> …
> ] ;
> cert:serialNumber 1 ;
> cert:notBefore "2012-01-01T14:00:00Z"^^xsd:dateTime ;
> cert:notAfter "2012-12-31T13:59:59Z"^^xsd:dateTime ;
> cert:extension [
> a cert:subjectAlternativeName ;
> cert:extensionValue <http://example.com/me#person> ;
> ] ;
> cert:extension [
> a cert:basicConstraints ;
> cert:extensionValue [
> cert:ca "false"^^xsd:boolean ;
> cert:pathLengthConstraint 0 ;
> ] ;
> ] ;
> cert:signatureAlgorithm cert:sha1WithRSAEncryption ;
> cert:signature "00010203040506070809...."^^xsd:hexBinary .
Notice how cert:Certificate is defined as a foaf:Document?
Then you will see that cert:subject is the same as foaf:primaryTopic. Having noticed that you will see that
cert:key relates a foaf:Agent to a key, not a document to a key, so that the way to write this would be then.
One can then wonder if cert:extension for the alternative name is really needed. All it is making a claim is for owl:sameAs
I think those mappings are interesting. Worth putting up a wiki page with these ideas too.
<http://example.com/me> a cert:Certificate ;
foaf:primaryTopic _:agent ;
cert:issuer <http://example.com/ca#cert> ;
cert:serialNumber 1 ;
cert:notBefore "2012-01-01T14:00:00Z"^^xsd:dateTime ;
cert:notAfter "2012-12-31T13:59:59Z"^^xsd:dateTime ;
cert:extension [
a cert:basicConstraints ;
cert:extensionValue [
cert:ca "false"^^xsd:boolean ;
cert:pathLengthConstraint 0 ;
] ;
] ;
cert:signatureAlgorithm cert:sha1WithRSAEncryption ;
cert:signature "00010203040506070809...."^^xsd:hexBinary .
_:agent cert:distinguishedName [
a cert:DistinguishedName ;
x520:countryName "GB" ;
x520:localityName "London" ;
x520:organizationName "British Broadcasting Corporation" ;
x520:organizationalUnitName "Research and Development" ;
x520:commonName "Test Certificate" ;
] ;
cert:key [ a cert:RSAPublicKey ;
…
] ;
owl:sameAs <http://example.com/me#person> .
once you do this mapping you see that foaf and the cert ontology together provide a lot of what is
needed. It is just a matter of separating properties of the certficate/document, and properties of things the
document describes (the user)
It is then interesting to see what is missing. Notice also that there are issues about what
MUST-Understand extensions mean at all. In RDF there is no such concept as it is designed to be
monotonic.
This is an interesting subject to explore.
Henry
>
>
>
>>
>> [1] http://www.w3.org/ns/auth/cert#
>> [2] http://docs.turnguard.com/webid/2.0/com/turnguard/webid/tomcat/security/WebIDPrincipal.html
>
> [3] http://tools.ietf.org/id/draft-larmouth-oid-iri-04.txt
>
>>
>> --
>> | Jürgen Jakobitsch,
>> | Software Developer
>> | Semantic Web Company GmbH
>> | Mariahilfer Straße 70 / Neubaugasse 1, Top 8
>> | A - 1070 Wien, Austria
>> | Mob +43 676 62 12 710 | Fax +43.1.402 12 35 - 22
>>
>> COMPANY INFORMATION
>> | http://www.semantic-web.at/
>>
>> PERSONAL INFORMATION
>> | web : http://www.turnguard.com
>> | foaf : http://www.turnguard.com/turnguard
>> | skype : jakobitsch-punkt
>>
>
>
> --
> Mo McRoberts - Technical Lead - The Space,
> 0141 422 6036 (Internal: 01-26036) - PGP key CEBCF03E,
> Project Office: Room 7083, BBC Television Centre, London W12 7RJ
>
>
>
> http://www.bbc.co.uk/
> This e-mail (and any attachments) is confidential and may contain personal views which are not the views of the BBC unless specifically stated.
> If you have received it in error, please delete it from your system.
> Do not use, copy or disclose the information in any way nor act in reliance on it and notify the sender immediately.
> Please note that the BBC monitors e-mails sent or received.
> Further communication will signify your consent to this.
>
>
Social Web Architect
http://bblfish.net/
Received on Wednesday, 4 January 2012 13:58:39 UTC