Two types of applications can be developed to use CDSA integrity
checking:
An application that calls into CDSA
to use one or more of the services that it provides.
CDSA applications developed on OpenVMS can optionally participate
with CDSA in bilateral authentication.
A service provider module that “plugs-in” or “adds-in” to
CDSA to provide a set of security related functions that an application
program can in turn use. On OpenVMS, service provider modules are implemented
as shareable images.
All CDSA add-in modules developed on OpenVMS must participate
in bilateral authentication (see “Bilateral Authentication”) and pointer validation checking (see “Pointer Validation Checking”).
The Intel Common Data Security Architecture Application
Developer's Guide and the bIntel Common Data Security
Architecture Service Provider Developer’s Guide have
in-depth information about developing applications and add-in modules
for CDSA.
The development process includes generating certificates and
key pairs to be used in the signing process and later in the integrity
checking process. The public keys are extracted from the certificate
into a code module that is included in the application. The private
keys remain on the signing system. After the code is built, the certificate
is used to “sign” the application or service provider
module. The product of the signing is a manifest, which is typically
kept with the executable.
The following sections summarize the steps for building a
signed CDSA application or add-in module on OpenVMS.
The Signing
Environment |
|
To create manifests used for authentication of CDSA modules,
you must have a working version of CDSA and the signing tools installed
on a machine. It is good practice to dedicate a specific machine
or set of machines to be the signing center. Certificates for signing
should be generated on the signing machine, and the signing of generated
modules must be done there. The tools, applications, CDSA stack,
and private keys used to generate certificates should not be modified
or reinstalled after the certificate generation process has completed.
Doing so will invalidate the keys used to make the certificates
and will cause any modules signed to fail integrity checking.
Development and testing of modules should be conducted on
other machines so as not to disrupt the signing environment.
The signing directory on an OpenVMS system is CDSA_SYSDIR:[SIGN].
On OpenVMS, the account that is used to create certificates
must be the same account that is used for signing developed applications
and service-provider modules. This is required because the private
keys are stored in the namespace of that user account and must be
accessible by the code performing those functions. Note that this
account requires the SYSPRV privilege to access the signing directory.
The Signing
Tools |
|
The following programs are used in developing CDSA applications
or add-ins:
Program Name | Description |
---|
SYS$SYSTEM:CDSA$CERTGEN.EXE | Certificate creation tool |
SYS$SYSTEM:CDSA$ISSUER.EXE | Public key extraction tool |
SYS$SYSTEM:CDSA$SIGN.EXE | Signing tool |
The following files in CDSA_SYSDIR:[SIGN] are named according
to Intel naming conventions. Their names can be changed to suit
any other development conventions. If the names introot.cer or intmanf.cer
are changed, intchain must be updated to reflect the new names.
The new certificate names will also be used as parameters to cdsa_sign.
File Name | Description |
---|
introot.cer | The CDSA Integrity Root certificate containing
the public key of the root of the integrity chain. |
intmanf.cer | The CDSA Integrity Manufacturing certificate
containing the public key of the manufacturer. |
ssintapps.run | The run file that is input to the certificate
creation tool (CDSA$CERTGEN.EXE) to create a self-signed application
certificate. |
|