📄 ejbca-design.txt
字号:
This is an initial design document from the early days of ejbca, the very start...IMPORTANT DESIGPARAMETERS=========================Modular to be able to change (through configuration) authentication machanism when certs are created, create certs in different ways (RSA, DSA), etc.Modular for different signers, several CAs should be able to run on ONE server, with separate user databases, etc.Flexible user interface for clients, browsers, PKIX, general PKCS10, own (EJB)API, batch-creating or one at a time.Flexible formats that an application results in, PKCS7-certificate (ie), PEM, DER, PKCS12 etc.Easy to install (right defaults).Easy to setup and adminstrate (right defaults).ROLES=====Sysadmin: installs and configures SW so that CA-admin can take over and configure CACA-admin: administrates rootCAs, CAs, subCAs, RAs, CA-admins, RA-adminsRA-admin: administrates end-entities, approves cert requests, generates end-entity keys/certUSECASES========End-entity:----------1. End-entity registers with RA2. End-entity authentizates to RA With nothing With password With previously issued certificate3. End-entity gets cert through java-API. End-entity sends cert request End-entity receives cert reply End-entity does all in one step4. End-entity gets cert from browser End-entity sends cert request Netscape4 Netscape6 IE5 End-entity receives cert reply Netscape4 Netscape6 IE5 End-entity does all in one step Netscape4 Netscape6 IE55. End-entity gets cert externally delivered PKCS12CA:---( Certificate Management Protocols, draft-ietf-pkix-rfc2510bis-04.txt)1. CA generates keys (for self)2. CA creates cert-request (for self)3. CA sends cert-request4. CA receives cert-reply (for self) 5. CA receives cert-request6. CA creates new certificate 7. CA signs new certificate8. CA sends cert-reply9. CA publishes certificate10. CA creates CRL (at scheduled time, sets new schedule, must be made before certs are issued)11. CA publishes CRL (at URL, PKIX)(Certificate and CRL Profile <draft-ietf-pkix-new-part1-08.txt>If the distributionPoint field is present and contains a URI, thefollowing semantics MUST be assumed: the object is a pointer to themost current CRL issued by this CRL issuer. The URI schemes ftp,http, mailto [RFC1738] and ldap [RFC1778] are defined for thispurpose. The URI MUST be an absolute pathname, not a relativepathname, and MUST specify the host.)RFC2485: Internet X.509 Public Key InfrastructureOperational Protocols: FTP and HTTPHTTP ConventionsWithin certificate extensions and CRL extensions, the URI form ofGeneralName is used to specify the location where issuer certificatesand CRLs may be obtained. For instance, a URI identifying thesubject of a certificate may be carried in subjectAltName certificateextension. An IA5String describes the use of HTTP to fetchcertificate or CRL information. For example:http://www.netcom.com/sp/spyrus/housley.cerhttp://www.your.org/pki/id48.cerhttp://www.your.org/pki/id48.no42.crlFor convenience, the names of files that contain certificates shouldhave a suffix of ".cer". Each ".cer" file contains exactly onecertificate, encoded in DER format. Likewise, the names of filesthat contain CRLs should have a suffix of ".crl". Each ".crl" filecontains exactly one CRL, encoded in DER format. Transport Protocols for CMP <draft-ietf-pkix-cmp-transport-protocols-04.txt>RA:---1. RA authorizes cert-request (for end-entity)2. RA sends cert-reply (to end-entity)3. RA generates keys (for end-entity)4. RA creates cert-request (for end-entity)5. RA sends cert-request (for end-entity)6. RA receives cert-reply (for end-entity)CA-admin:---------1. CA-admin creates new rootCA sets policy Generate keys and cert2. CA-admin creates RA Assigns rights Which CA the RA is for Naming restrictions? Generate keys and cert alt. assign already existing cert (created as existing user).3. CA-admin creates new CAs sets policy Generate keys and cert4. CA-admin assigns new CA-admins Assigns right Which CA(s) the admin is for Assign new admins?/Create CAs/Create RAs?/Create new rootCAs? Assign already existing cert (created as existing user through RA). 5. CA-admin gets list of existing certs and keys for adminRA-admin:---------1. RA-admin registers end-entity RA-admin does the job User does the job himself 2. RA-admin approves cert request Manually approves Automatically approves3. RA-admin creates keys and certs for external delivery PKCS12 PKCS8/PEM 4. RA-admin lists certs and keys for end-entitySysadmin:---------Sysadm installs SWSysadm creates SSL-keys/cert for serverSysadm installs SSL-keys/cert for serverSysadm assigns master CA-admin Generate keysInstall:--------Install general SW (appservers)Install CA-SW in appserversInstall client-SW for CA- and RA-admins (if not web)SW-DESIGN=========Nouns: certificate, keys (cert + nycklar = keystore?), rootCA, CA, RA, CA-admin, RA-admin, end-entity, policy, cert-request, cert-reply, rightsVerbs: approve, sign, generate keys, create cert-request, create certificate, sign certificate, create cert-reply, send, receive, install, authorize, findSome objects and types:------------------------EntityNameEntityTypePolicyKeysCert-requestCert-replyRightsAuthenticationTypeAuthorizationTypeCRLImportant mappings and operations:----------------------------------Mapping from Entity to certificate (one-to-many)Mapping from Entity to keys (one-to-many)e.g. Mapping from Entity to Keystore (one-to-many)Mapping from certificate to Entity (many-to-one)Mapping from cert-request to Entity (one-to-one)Mapping from authentication to Entity (one-to-one)Mapping from Entity to rights (one-to-many)--Mapping from Entity to keystore: Certificate and Entity contains DN -> DN = primary keyDN not unique since mapping is one-to-many -> DN + fingerprint of cert = primary key-> Keystore must contain certfindByDN must be possiblefindByFingerprint must be possibleMapping from certificate and cert-request to Entity: Certificate and cert-request contains DN, Entity contains DN -> DN = primaryKey for EntityMapping from authentication to Entity: authentication contains userID/pwd or DN -> userID or DN = primaryKey for EntityMapping from Entity to rights: entity contains DN/userID -> DN or userID = primaryKey for Rights (alt. Entity contains rights, but this makes one-to-many hard)Finding latest CRL efficiently must be possible.Finding older CRLs (by date?) must be possible.Finding next CRL issue time efficiently must be possible.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -