;;; -*- Lisp -*-
;;; $URL: https://subvert-rpki.hactrn.net/docs/signed-manifests $
;;; $Id: signed-manifests 637 2007-05-29 22:14:47Z sra $
;;;
;;; This file is psuedocode, I just wanted to take advantage of
;;; emacs's built-in support for languages with reasonable syntax.
;;; Final version will likely be either flat text or ASN.1.
;;;
;;; Signed manifests for RPKI repositories. We're using object (as
;;; opposed to channel) security for everything in the repository,
;;; which is the right thing to do for various reasons but leaves us
;;; open to attacks which intercept the rsync connection and drop
;;; valid objects out of an SIA collection. At present this is not
;;; detectable, so we need a mechanism.
;;;
;;; Manifests as described here are modeled on CRLs, because the
;;; issues involved in detecting stale manifests, manifest replays,
;;; etc are similar to those for CRLs. So we want many of the fields
;;; that a CRL has. Syntax will probably differ, though, since RPKI
;;; repositories can contain objects not covered by CRLs (eg, ROAs),
;;; and we may well decide just to sign the manifest with CMS.
;;;
;;; See RFC 3280 section 5 for CRL layout and extensions.
;;;
;;; We're only trying to cover objects in the same SIA collection
;;; (directory) as the manifest. We will probably want to name the
;;; manifest itself with a name derived from the g(ski) of the cert of
;;; which this is the SIA collection. We'll need an EE cert to sign
;;; the manifest; the EE cert should probably just use RFC 3779
;;; inheritance to cover all the resources that its issuer holds. If we
;;; use CMS, we might just want to include the EE cert in the CMS
;;; bag of certs.
;;;
;;; For the moment I assume we're signing with CMS, so the signature
;;; parameters and signature itself are not included below.
(manifest :version 1
:collection-uri "rsync://foo.example/wombat/"
:this-update timestamp
:next-update timestamp
:manifest-serial 17
:hash-algorithm :sha256
(:name foo.cer :hash aabbccdd...)
(:name bar.cer :hash bbccddee...)
(:name foo.roa :hash ccddeeff...)
(:name baz.crl :hash ddeeff00...)
...)
_______________________________________________
Rescert mailing list
Rescert@apnic.net
http://mailman.apnic.net/mailman/listinfo/rescert