Note: For comprehensive information on the FORTEZZA cryptographic system -- its history and purpose, documentation and standards, military and governmental users, testing and trouble-shooting, and product manufacturers -- see the National Security Agency's FORTEZZA site at: http://www.armadillo.huntsville.al.us/.
The documents below present a sample range of Fortezza documentation and crypto products from Rainbow Technologies (parent organization of the famous Mykotronx), which demonstrate compliance with NSA specifications. Reference documents cited are available at the NSA site: http://www.armadillo.huntsville.al.us/Fortezza_docs/index.html.
From: http://www.rnbo.com/PROD/CRYPTO.HTM
Rainbow Technologies offers FORTEZZA Crypto products to provide privacy, authenticity, and tamper-proofing to commercial and Government applications. These applications include:
In addition to the FORTEZZA hardware token, Rainbow offers a number of CryptoSecurity Integrated Circuits. These ICs are crypto building blocks that developers can use to build other forms of cryptographic products.
FORTEZZA hardware tokens are available in two formats:
[See below for] FORTEZZA Crypto Documents
CryptoSecurity Integrated Circuits
For more information about these products, you can send email to
fortezza@rnbo.com
Last Modified October 30, 1996
From: http://www.rnbo.com/PROD/fortezza.htm
Revolutionary Breakthrough in PCMCIA Technology
The Rainbow Fortezza Crypto Card is NSA Fortezza certified and implements the most advanced cryptographic security and authorization methods commercially available in a PC CARD (PCMCIA) hardware token.
The Fortezza Crypto Card provides:
Developed by Mykotronx, Inc., a subsidiary of Rainbow Technologies, in conjunction with a government program, the Fortezza Crypto Card provides security for Sensitive but Unclassified (SBU) U.S. Government data and is ideally suited for securing commercial or private e-mail, voice communications and files. The card performs a number of cryptographic functions as described below and is the hardware crypto token chosen to secure the Defense Messaging System (DMS), including the MILNET and the INTERNET.
The Fortezza Crypto Card is a self-contained, standardized, easy-to-integrate hardware crypto token that utilizes the CAPSTONE RISC-based cryptographic processor. The card provides the ultimate in portable security with on-board storage of user credentials, keys, and digital certificates.
Crypto Function | Name | Description | Length | Standard |
---|---|---|---|---|
Public Key Exchange | KEA | Key Exchange Algorithm | 160-Bit Priv Key |
Fortezza Diffie-Helman variant |
Message Encryption | SKIPJACK | Type II Algorithm | 80-Bit Key | NSA / FIPS 185 |
Digital Signature | DSA | Digital Signature Algorithm | 1024-Bit Modulus | NIST FIPS 186 |
Hashing | SHA-1 | Secure Hash Algorithm - Rev 1 | 160-Bit | NIST FIPS 180-1 |
Timestamp | n/a | Uses Secure Hash Algorithm and DSA | 160-Bit | FORTEZZA |
Password | PIN | User Personal Identification Number | 4-12 Bytes | FORTEZZA |
Certificate | n/a | Fortezza | 2820 Bytes | Contains CCITT X.509 |
The Rainbow Fortezza Crypto Card incorporates a unique card design with power-saving modes that make it ideal for low power applications such as notebook computers. The card also has sophisticated security mechanisms.
Developer kits (SDK) are available to OEM's to provide Fortezza Cryptographic Interface Libraries (C compiler language) for the following computer platforms:
Please contact our U.S. Sales office or email to fortezza@rnbo.com for more information.
Interface | PCMCIA 2.1 Type 1 PC card |
Size | 85.6 mm long x 54.0 mm wide x 3.3 mm thick |
Voltage | +5V |
Power |
605 mW (peak), 62.5 mW (standby) Power saving modes for notebook, laptop and PDA applications |
Rates |
>1.1 Mbytes/sec processing rate Digital Signature rate of 67 msec |
Misc. |
Windows, DOS and Mac compatible Ultrasonically welded package Exportable with U.S. State Department approval |
Data Privacy
Provides privacy protection for sensitive corporate data (such as: email,
notebook data files, or voice communications) by the use of strong encryption.
The data is encrypted using a secure and fast symmetrical algorithm (FIPS
185). The secret key used to encrypt the protected data is accessible only
by the intended recipient(s).
User ID Authentication
Provides the ability to validate the identity of a message originator by
use of a Digital Signature. Digital Signatures can not be forged. Usually
the "public certificate" used to verify the Digital Signature of an author
is provided to the recipient by a trusted Certificate Authority (similar
to a notary or a bank).
Data Integrity
The integrity of recieved data can be assured by using cryptographic "hashing".
A hash is a small mathematical summary (digest) of an original clear-text
data file or message. The Secure Hash Algorithm (FIPS 180-1) allows detection
of changes to data by communication errors or tampering. By combining the
hash and Digital Signature, an altered message can not be forged.
Non-Repudiation
Combining Digital Signatures with Hashing prevents an originator from denying
ownership. By "signing" the hash of the document, ownership of an unchanged
document can be proven to a third party.
Timestamping
A real-time tamper-resistant clock within the Fortezza Crypto Card allows
application developers to timestamp a document, certificate, message or
transaction and thereby preventing a party from changing the time/date of
a clock within the PC to alter time information.
These documents are provided courtesy of the United States Government
This information is correct to the best knowledge of the U.S. Government. Use of the enclosed information is exclusively at your own risk. Reproduction and or distribution is per the agreement by which you received this document. See details of conditions of use.
The documents are grouped by topic. Within a topic they are listed in the suggested order for reading. The reader new to FORTEZZA concepts is recommended to select from all of the topics in the following order:
Readers already familiar with FORTEZZA will find the following references to contain the most detailed information:
Conditions from: http://www.rnbo.com/PROD/rmadillo/warnings.htm
The information, source code, and executeable programs on this disc are provided
for informational purposes only. The
National Security Agency makes no
warranties of any kind concerning the documentation or software and shall
incur no liability, pecuniary, or otherwise, for loss or damage or personal
injury suffered by the user, its agents, employees, and assigns or by any
third party arising either directly or indirectly from the use of the
documentation, source code,or executeable programs contained on this disc.
The National Security Agency has taken steps to verify that
the files contained on this disc are computer
virus free. Users are advised to scan the disc or any software removed from
the disc with an updated virus scan program.
Program Overview from: http://www.rnbo.com/PROD/rmadillo/b/btoc.htm
This document provides the reader with a broad overview of the Fortezza program. It introduces the Fortezza Crypto Card, the enabling technologies, common messaging protocols, important technical terms, and various application possibilities. Greater detail on all the topics can be found in other Fortezza documents noted in the Reference appendix.
1.1 In The Beginning
1.2 What's In A Name
2.0 Data Security And Fortezza
2.1 Data Security And Fortezza: Why We Need Them
2.2 Security Services For Electronic Data: What We Need
2.2.1 Data Integrity
2.2.2 User Authentication
2.2.3 User Non-repudiation
2.2.4 Data Confidentiality
2.3 Fortezza Cryptographic Functions: What The Card Can Do
2.3.1 Hash
2.3.2 Digital Signature
2.3.3 Confidentiality
2.3.4 Key Exchange
2.4 Fortezza Cryptography Architecture: How The Card's Algorithms Work
2.4.1 Asymmetric Cryptography
2.4.1.1 Hash And Digital Signature
2.4.1.2 Timestamp
2.4.1.3 Key Exchange
2.4.2 Symmetric Cryptography
2.4.2.1 Encryption and Decryption
2.4.2.2 Archive Data
3.0 Common Messaging Protocols and Fortezza
3.1 Simple Mail Transport Protocol (SMTP)
3.2 Multipurpose Internet Mail Extension (MIME)
3.3 X.400
3.4 Allied Communications Protocol 123 (ACP 123)
3.5 X.500
3.6 Abstract Syntax Notation.1 (ASN.1)
3.7 Secure Data Network System (SDNS)
3.7.1 SDN.701: Message Security Protocol (MSP)
3.7.2 SDN.702: SDNS Directory Specifications
3.7.3 SDN.704: MIME/SMTP with MSP
4.1 Key Management Components
4.1.1 Certificates
4.1.2 Certificate Revocation List (CRL)
4.1.3 Compromised Key List (CKL)
4.2 Certificate Authentication Hierarchy
4.2.1 Issuer
4.2.2 Certificate Authority (CA)
4.2.3 Policy Creation Authority (PCA)
4.2.4 Policy Approval Authority (PAA)
4.2.5 User
4.2.6 Organizational Registration Authority (ORA)
4.2.7 How the Authentication Hierarchy Works.
4.3 System Modules
4.3.1 User Agent (Ring 1)
4.3.2 User Agent/Security Protocol Interface (MSP ICD)
4.3.3 Security Protocol (Ring 2)
4.3.4 Security Protocol /Crypto Card Interface (CI Library)
4.3.5 Crypto Card (Ring 3)
4.4 Personal Computer Memory Card International Association (PCMCIA)
4.4.1 Device Driver
4.4.2 Card Services (CS)
4.4.3 Socket Services (SS)
4.4.4 Adaptor
4.4.5 PC Card Reader
4.4.6 PC Card (Fortezza Crypto Card)
5.1 File and Media Encryption
5.2 Access Control/Strong Authentication
5.3 Remote Network Services
5.4 Directory Service
5.5 World Wide Web (WWW)
5.6 Firewalls
5.7 Client /Server
5.8 Electronic Messaging
(Not provided here; see original URLs.)
Figure 2: Encryption, Decryption and Key Exchange
Figure 3: X.400 Message Handling System
Figure 4: X.500 Directory
Figure 5: MSP Architecture
Figure 6: Authentication Hierarchy
Figure 7: Architecture Overview
Figure 8: Fortezza Crypto Card Interface
Businesses today demand accurate and secure handling of electronic information. The National Security Agency's Fortezza program addresses this demand by providing the technology to enable value-added security services for Unclassified but Sensitive information. Fortezza technology provides data integrity, originator authentication, non-repudiation (undeniable proof of one's identity), and confidentiality (data privacy). Fortezza personalizes security through an individualized cryptographic device, a PC Card called the Fortezza Crypto Card (the Card). The Card contains the user's unique cryptographic key material and related information, and executes the cryptologic algorithms. A sophisticated infrastructure has been designed to generate, distribute, and control the cryptographic keys, control the integrity of the data on the Card, and disseminate required cryptographic and system information. Fortezza interfaces and specifications are designed with an "open system" philosophy. This permits seamless integration of the Fortezza technology into most data communication hardware platforms, operating systems, software application packages, and computer network configurations and protocols.
The National Security Agency (NSA) developed the Fortezza program for the Department of Defense (DoD) in response to the growing need for economical and secure electronic messaging. The DoD is incorporating the Fortezza technology into its Defense Message System (DMS) to secure its Unclassified but Sensitive information. The Fortezza technology satisfies the DMS security architecture with a user friendly, inexpensive, cryptographic mechanism that provides writer to reader message confidentiality, integrity, authentication, non-repudiation, and access control to messages, components, and systems. While the DMS exposed the DoD to the need for the Fortezza technology, the same security requirements are valid today for civilian agencies, commercial businesses, and private citizens.
Fortezza has had several name changes through the years. The original name, circa 1991, for the Fortezza program was the Pre Message Security Protocol (PMSP). The cryptographic device was a "smart card." In 1993, the name was changed to "MOSAIC," and the cryptographic device changed to a PC Card and named the "Tessera Crypto Card." The program was then incorporated into a larger NSA program, Multi-Level Information Systems Security Initiative (MISSI), in 1994. The program name was changed again to "Fortezza" and the PC Card renamed the "Fortezza Crypto Card."
The increasing availably and use of electronic data presents new problems for individuals and businesses. The parties involved in the exchange of information can no longer use a persons voice, handwriting, or face to recognize the other party. However, the recipient must still have confidence in the integrity of the information and the identity its originator. Developers of electronic messaging and data handling products must provide security services so parties can have confidence in the information. These services must be resolutely enforced yet unobtrusively performed. Fortezza, with the Card and the supporting software, provides the developer with a flexible, modular, security "tool-kit."
Accurate and secure data must have four security attributes:
The data integrity attribute indicates the data has been processed by both the originator and the recipient, through a "Hash" function. The data in the message are read through a mathematical algorithm which uses every bit in the message to form a uniformly sized string of bits unique to that message. Any change in the message, even a single bit, will cause the recipient's Hash value to differ from the sender's Hash value. To provide integrity over the Hash value, a method to secure the value and verify the originator of the Hash function is required. This requires the message to have the user authentication attribute.
User Authentication assures the recipient of the originator's identity by cryptographically processing the data with an algorithm which incorporates parameters unique to the originator. The mechanism to perform this check must assure that the data could only be sent from the declared author (the author's identity has not been forged). The algorithm must produce a result that is easy to verify yet difficult to forge. Authenticating the originator of a message is performed by the hash and digital signature functions.
Non-repudiation is a condition whereby the author of the data (i.e., a message) cannot repudiate (disavow) the validity of the result used to authenticate the identity of that user. The technique used to identify the author must be strong enough so the authenticity of the message originator can be proven to a third party (someone other than the recipient). Non- repudiation is accomplished by digital signatures.
Confidentiality provides data privacy by encrypting and decrypting data, whereby only the intended recipient can read a message. Encrypted data renders the sensitive data, nonsensitive. Thus, encrypted data needs less physical data protection. To provide confidentiality, a technique must be established to provide a unique "key" for encryption of the data and the capability to transmit the key and other necessary information to the recipient to decrypt the data. The key provides a variable for each encryption session. This means that multiple encryption of the same plaintext will result in different cipher (encrypted) text. Some algorithms also require an Initialization Vector (IV), for added variability.
The Hash function provides a check for data integrity. The Card performs a mathematical Hash algorithm on the data, producing a 160 bit (20 byte) Hash value. This Hash value will be unique for any given message because any change in the data, even a single bit, will change the Hash Value. The Card uses the SHA-1 (Federal Information Processing Standard) (FIPS 180-1) Hash algorithm.
The digital signature allows a message originator to sign (cover) data (e.g., the Hash value). This provides the recipient with the means to verify the identity of the originator (user authentication and non-repudiation). The digital signature is somewhat analogous to superimposing a user's thumbprint over some data. Any change in the data will cause a change in the "thumbprint." A recipient can then use the cryptography to verify the originator's digital signature. This verifies the originator's identity. It also may allow the recipient to verify the integrity of the message if the signature covers the Hash value. The Card uses the Digital Signature Standard (DSS) (FIPS-186), Digital Signature Algorithm (DSA).
Encryption and decryption is implemented using a single, shared "key" between the originator and the recipient. The "key" is a random number generated by the Card and provided as an input, along with the message data and an IV for encryption and decryption. The Card uses the SKIPJACK algorithm (FIPS-185). The "key" is securely transmitted to the recipient by a secure Key Exchange.
The Key Exchange process wraps (similar to encrypt) the key necessary to implement the encryption algorithm. The wrapped key can then be safely transmitted to the recipient. The key exchange process allows only the intended recipient to unwrap the needed key to decrypt data. The Card uses the Key Exchange Algorithm (KEA).
Asymmetric cryptography is often referred to as "Public Key Cryptography." Each participant has a pair of keys, a public key, "y", and a private key, "x." The y value is mathematically derived from the x value. The strength of the cryptography is the mathematical infeasibility of deriving a private key, or unknown x from a public key, or known y. Asymmetric cryptography is used in the Card for digital signatures and key exchanges. The following examples should shed some light on public key cryptography and how the technique is used in Fortezza.
While an entire message can be signed, the user should first hash the message and then sign that Hash value, since processing time is smaller for 160 bits. The signature is calculated on the data and a random number generated on the Card. The random value assures that signatures on the same data will be different.
This process assures the recipient of the integrity of the data and originator. The Hash provides the data integrity. The digital signature over the Hash value authenticates the originator (signer) and provides integrity over the Hash value.
Figure 1 shows how Fortezza implements this principle. UserA desires data
integrity and user authentication security services for a message. UserA
executes the Hash function on the message. UserA then executes the digital
signature algorithm over the Hash value. The digital signature requires the
Hash value, UserA's private key x for the DSA, UserA(x,DSA), and a random
number (generated internally by the Card). The resulting signature value
is two cascaded 20 byte parameters, "r" and "s." This value is sent with
the message to the recipient, UserB. UserB receives the message and independently
performs the Hash function on the message. UserB uses that Hash value, the
digital signature value, and UserA's public key, UserA(y,DSA) to verify that
the message was signed by the expected originator and the data was not altered.
The Fortezza user's private value, x(DSA), is stored on the user's card and
is not user readable. The user's public value, y(DSA), should be publicly
available (discussed in the Key Management section).
The Card uses the hash and sign functionality to provide an application a
timestamp function. This function uses the real time clock on the Card to
provide a secure method of determining when a message was processed by the
originator (at least when the timestamp was applied). The process concatenates
the original message Hash value with the Card's internal time (so the recipient
knows it was "this data at this time"). The Card then performs a hash on
that value, and signs that Hash value with a private x(DSA) that is embedded
in all Fortezza Crypto Cards (Using an internal DSA key prevents the originator
from modifying the timestamp). The result can be verified by the recipient.
Asymmetric cryptography is used to secure the transmission of the Message
Encryption Key (MEK), which is the key used by the originator to encrypt
a message and by the recipient to decrypt that message (symmetric cryptography
will be discussed in the next section). Figure 2 shows how the originator
securely sends the MEK to the recipient by generating a Token Encryption
Key (TEK). The TEK is produced by the KEA, which uses the
sender's x(KEA), the recipient's y(KEA), and
two random numbers as input. The TEK wraps ("encrypts") the MEK. The recipient
unwraps ("decrypts") the MEK after generating the same TEK, by using its
x(KEA) and the originator's y(KEA). This exchange permits only the recipient
to recover the MEK, verify the sender of the MEK, and decrypt the message.
The procedure is significant because the time-consuming process of encrypting
a large message or file is performed just once per session, regardless of
the number of recipients. The faster TEK generation and MEK wrap procedure
will be performed for each recipient.
The right side of Figure 2 shows a typical key exchange. UserA desires data
confidentiality (i.e., encryption of the message). UserA generates the MEK,
then generates a TEK using UserA(x,KEA), the recipient's (UserB), UserB(y,KEA)
and two random numbers (Ra and Rb). UserA then wraps the MEK with the TEK
and transmits it, the message, and the random numbers to UserB. UserB regenerates
the TEK with its private value, UserB(x,KEA), the originator's public value,
UserA(y,KEA), and the random numbers. UserB then unwraps the MEK and uses
that value to perform the symmetric decryption of the data.
The Fortezza user's private value, x(KEA), is stored on the user's card and
is not user readable. The user's public value, y(KEA), should be publicly
available (discussed in the key management section).
Symmetric cryptography uses one key to encrypt and decrypt data. The originator
must ensure that the recipient has the same key for decryption. This key
must remain secure between the intended parties or the security of the message
will be compromised. The Card handles several encryption modes and requires
an IV for each mode.
The left side of Figure 2 shows the process of symmetric encryption. The
originator generates an MEK and an IV on the Card. These parameters are used
with the SKIPJACK algorithm to synchronize with the eventual decryption process
and add some randomness to the encryption process. The originator then wraps
the MEK with the TEK and transmits the wrapped MEK and the IV to the recipient.
Fortezza provides several methods to archive data (such as e-mail). One technique
is similar to the aforementioned process, whereby the user generates and
uses an MEK. In another method, the user encrypts and decrypts the data using
a special key called the Storage Key (Ks), stored internally in the user's
card. Each card has a Ks unique to that card. This feature relieves the user
from the key management and the security processing required in asymmetric
cryptography.
The Card is not a stand-alone message processor, it simply performs cryptologic
processes on the given data. This architecture allows the Card to be used
in most computer and network environments. But, for the Card to be useful,
it must be integrated into an application. The software developer must understand
how to implement the Card's functions and the appropriate standards and protocols
to provide secure electronic messages. These standards and protocols address
the messaging formats, security concerns, and infrastructure requirements
(such as a directory to help "find" people). Below are some, though not all,
messaging protocols commonly associated with the Fortezza program.
SMTP is an e-mail protocol defined by the Request For Comment (RFC) 821.
It evolved over the years from earlier mail standards. SMTP is limited because
the character set is limited to a subset of ASCII characters, the lines are
restricted to no greater than 1000 characters, and the body length is limited.
Users must convert non-ASCII data such as facsimile, digitized voice, and
pictures into standard ASCII using such common methods as "base 64 bit encoding"
and "uuencoding." SMTP usually relies on the Transport Control Protocol /Internet
Protocol (TCP/IP) stack. This limited protocol still dominates the e-mail
market. However, many e-mail developers are moving toward two more flexible
messaging formats.
MIME provides a mechanism to allow the transmission of non-ASCII data using
the SMTP RFC 821 protocol. RFC 1521 defines the MIME specification. SMTP
developers are migrating to the MIME specification because it improves the
reliability and interoperability of e-mail. The format will also support
new, non-e-mail applications. MIME provides Fortezza compliant applications,
such as e-mail, with the required flexibility to transmit encrypted data
through SMTP or X.400 message systems, and the ability to send cryptographically
altered messages across computer platforms, and to define the content (message)
as a Fortezza compliant message.
X.400 represents a set of protocol recommendations, established by the
International Telecommunications Union- Telecommunications Standardizations
Section (ITU-T) (formerly the Consultive Committee on International Telephone
and Telegraph (CCITT)), which define how messages comprising many types of
data besides text are communicated between different computer systems. It
does not describe how an application is to appear to a user nor does it define
the transport mechanism. The X.400 environment is encompassed in the Message
Handling System (MHS). The MHS (see Figure 3) consists of: the User Agent
(UA), which processes messages; the Message Store (MS), which can store,
list, summarize, delete, retrieve, and manage messages for the UA; the Message
Transfer Agent (MTA), which routes the messages; and the Message Transfer
System (MTS), which is the MTA backbone. Although the X.400 specifies an
entire transport system, the components noted handle how the messages are
formatted by an application, not how the actual bits are transmitted. An
X.400 message is designated as P2 or P22 if it complies with the 1984 or
1988 recommendations, respectively. The ITU-T releases new specifications
as needed.
ACP 123 is a superset of the 1988 X.400 interpersonal message type P22. It
defines increased options and the policies and procedures required in military
messaging. ACP 123 also identifies the services and protocols necessary to
ensure interoperability between the Military MHS and the commercial X.400
MHS. DMS e-mail will comply with ACP 123. An ACP 123 body part is being
designated as P772, although this designation has not been approved by the
ITU-T.
X.500 is the ITU-T recommendation for directory service. The X.500 Directory
(the Directory) can be conceptualized as a telephone book for computer networks.
The Directory stores, and makes available many "attributes" of an entity
(the entity can be a person or a machine). These attributes may include the
entity's e-mail address, Fortezza related information, and other information
the user wishes to make available. Figure 4 shows how architecture of the
Directory is a distributed database (over multiple physical locations). The
arrangement of the database is called the Directory Information Tree (DIT).
Together the entire database is referred to as the Directory Information
Base (DIB). The component that handles all requests to the Directory from
users is the Directory System Agent (DSA). The DSA may handle a request for
information itself, ask another DSA, or advise the requester to contact another
DSA. The Directory User Agent (DUA) formulates, formats, and sends requests
to the DSA, then presents the results to the user. The user's interface to
the DUA is vendor dependent. The X.500 recommendation does not specify the
relationship between an X.400 UA and the DUA. This is consistent with the
ITU-T recommendations in that the implementation of the recommendations are
not specified. Fortezza certificates (explained later) use the ITU-T X.509
Recommendation for the implementation of security services for the Directory
and its users.
While not a message protocol, ASN.1 is critical to ITU-T and Fortezza
applications. ASN.1 is a data encoding (not encryption) scheme that allows
data to be transferred to a wide variety of applications. The ASN.1 encoding
rules provide applications with standardized "tags" which identify the data
structure or object (e.g., a bit map, a message's header information, or
a directory request). Messaging protocols and the Fortezza program require
a number of these data structures and objects. Fortezza also requires the
use of an extremely structured enforcement of ASN.1 called Distinguished
Encoding Rules (DER), since any variance to the data bits caused by an
implementation of ASN.1 would ruin the data integrity. Special ASN.1 compilers
(e.g., DSET) relieve developers of the often complex encoding and decoding
rules.
The SDNS is a set of protocols developed jointly by commercial vendors and
the NSA, and managed within the NSA's MISSI program. The combined effort
provides the basis for improved security technology, interoperable security
standards, and cost-effective security components for computers and
telecommunications networks and messaging systems. The most relevant documents
for implementing Fortezza are the SDN.701, SDN. 702, and SDN.704.
The MSP specifies how the required message security services (defined earlier)
are integrated into messages. This protocol, while not specifically designed
for Fortezza, does handle the Fortezza cryptography and key management
architecture. Figure 5 shows the path of a message as it evolves from a plain
message to an MSP formatted and secured final message, complete with header
information. The MSP specification is applicable for many messaging environments,
including, though not limited to: the X.400 MHS, MIME, Electronic Data
interchange (EDI), and file transfer. A message using the MSP is being referenced
as P42 (formerly it was P48), though the ITU-T has not approved the designation.
SDN.702 defines how the MSP is integrated into the Directory. The MSP (SDN.701)
and the Fortezza key management implementation requires public access to
many objects and attributes. SDN.702 specifies the format of such objects,
attributes, and features as the user's public cryptographic information,
Fortezza infrastructure objects, and Fortezza key management control information.
This specification defines the message format for an MSP protected SMTP/MIME
message. The format details how the MSP processes the MIME message, the resulting
format of the message, and how the recipient is notified that the message
has been processed by the MSP. Fortezza enhanced products must use this
specification to ensure e-mail interoperability.
A practical implementation of a cryptographic system requires an efficient
infrastructure. This is the behind-the-scenes processing that makes the entire
system function and enforces trust between participants. The key management
concept employed in Fortezza provides a robust yet practical solution. It
incorporates cryptographic key generation, distribution, verification,
revocation, expiration, notification, and authentication. The principle component
in the key management architecture is the user's certificate.
Public cryptographic information is passed among users through a data structure
called a certificate. The Fortezza certificate structure is based on the
certificate defined by the ITU-T X.509 Recommendation. The ASN.1 encoded
"Fortezza"/X.509 certificate contains, at a minimum, the user's unique identifier
and public key information, bound together by a cryptographic mechanism that
can be authenticated. The certificate is then digitally signed by its Issuer.
Fortezza uses two lists to control the revocation of certificates.
The CRL is a record of all revoked certificates produced by a common Issuer
(an Issuer is defined in the Certificate Authority section). It is based
on the CRL described in the ITU-T X.509 Recommendation of 1988. A certificate
is revoked and placed on a CRL by its Issuer. A certificate is revoked when
any data in it changes before it expires, such as when a user moves and changes
address, accidentally destroys the Card (this must be verified), or the
certificate is no longer needed. CRL's are available from the Directory,
are ASN.1 encoded, and are updated as local policy warrants.
The CKL is a list with the Key Material Identifier (KMID) of every user with
compromised key material. Key material is compromised when a card and its
PIN are uncontrolled or the user has become a threat to the security of the
system. All certificates on a CKL are also placed on a CRL. CKL's are distributed
by the Policy Creation Authority (the Policy Creation Authority is explained
in the section 4.2.3), are ASN.1 encoded, and are updated as local policy
warrants.
The Fortezza key management concept is based on the multi-level hierarchy
recommended in X.509. Figure 6 summarizes these levels. After defining an
Issuer, the discussion will proceed with the Certificate Authority, then
the Policy Creation Authority, the Policy Approval Authority, the User, and
finally, the Organizational Registration Authority. While this seems out
of order from Figure 6, the discussions build on each preceding section.
An Issuer is an entity which provides certificates to subordinates. An Issuer
is responsible for validating the identity of the entity receiving the
certificate. The Issuer then signs the certificate, binding the user to itself.
A number of entities in the Fortezza system are Issuers, as we'll see below.
The CA is responsible for establishing, authenticating, maintaining, and
possibly revoking each immediate subordinate user's key material, certificate,
and hardware. The CA is an Issuer because of its responsibility to authorize
new users to the system. Upon an authorized request from a potential user,
a CA generates the cryptographic material, creates and signs a certificate,
posts the certificate to the Directory, loads the personality and cryptographic
data onto the user's card, and gives the Card to the user. The CA will provide
maintenance for its users by rekeying the device periodically, posting new
certificates to the Directory, maintaining a database of user information,
maintaining CRL's, and distributing CKL's to its users. There can be multiple
CA layers in the hierarchy. The CA was previously called a Local Authority
(LA). The workstation used by the CA is known as the Certificate Authority
Workstation (CAW), which was previously called the Local Authority Workstation
(LAW).
The PCA is the highest layer in the hierarchy with revocation authority.
All entities under the PCA are part of its "domain." The PCA is also an Issuer.
It is responsible for creating, authenticating, rekeying, and revoking CAs
in its domain (i.e., those CAs it issued). The PCA will maintain and post
an X.509 CRL containing revoked CA's, and maintain and distribute the CKL's
to the CA's. The PCA was previously called the Root.
Although the PAA is above the PCA in the hierarchy its functions are limited
to creating PCAs and assuring each PCA's uniqueness. The PAA will not maintain
a CRL or CKL, and cannot revoke any certificates. The PAA was previously
called the Root Registry. Future responsibilities for the PAA include Cross
Certification, whereby Users under different PAA's can securely communicate.
The bottom layer is the User. A User is provided with the Card, which has
been loaded with keying material from the CA. The User is responsible for
properly handling its card and notifying its CA when its card or certificate
needs to be revoked. The UA must have access to the latest CRL and CKL list.
This may be accomplished via directory inquiries or local caching (storing)
of these lists.
The ORA is an appointed intermediary between an CA and a subset of its users.
The ORA will assist the CA in requesting and distributing keys and cards.
The ORA does not sign User certificates. The ORA was previously called the
Organizational Notary (ON).
The architecture gives a recipient the ability to authenticate the validity
of the information in an originator's certificate. This is accomplished when
the recipient validates the originator's certificate by verifying certificate
Issuer's signature, then checks the validity of the Issuer's certificate
by verifying the signature of its certificate Issuer. The recipient continues
verifying Issurers until the recipient reaches the trusted Issuer for the
recipient's hierarchy (e.g., PAA certificate). At that point the recipient
has complete trust in the validity of the originator's certificate. The path
of a User's Issuers is called the User's Certification Path.
The Fortezza program can be conceptualized as three intersecting rings (see
Figure 7). The rings provide a graphical representation of the various modules
in a Fortezza compliant application.Linking the modules are software interfaces
specified in Interface Control Documents (ICDs) and programmer's guides.
Supporting the three rings are a number of interdependent entities which
were discussed earlier: the key management protocols and procedures, the
CAW, and the Directory.
The first ring represents the UA. The UA is the message preparation system
(e.g., e-mail) and is usually defined by protocols. The system integrator
must decide on which security services will be available to the user and
how these services will be presented. The UA has the responsibility for handling
the lower transmission layers, which can be based on the Open Systems Interface
(OSI) or TCP/IP, if necessary. The security interface to the Security Process
is specified in an ICD (e.g., the MSP ICD). The UA should have the capability
to load, maintain, and verify certificates, and to check a certificate against
revocation lists.
The interface between the UA and the Security Protocol software abstracts
the security protocol from the UA. The Government has developed, and will
provide to developers, an MSP ICD, as Government Furnished Information (GFI),
for integrating applications with a Government-developed implementation of
MSP.
The second ring represents the Security Protocol. This ring provides a logical
(and often physical) distinction between the generic UA and the implementation
of security services. This ring isolates the UA from the details of the security
software. The security protocol software must process UA messages, and header
information, and invoke the requested security services.The Government will
provide to developers an implementation of MSP, as GFI.
The "Cryptologic Interface Programmers Guide For The Fortezza Crypto Card
(CIPG)" specifies the logical interface to the Card. This describes the function
set used by the Cryptographic Interface (CI) Library to interface with the
Card. The CI Library provides the application with a software interface to
the Card's functions while abstracting the specific data formats, protocols,
and PCMCIA interfacing requirements (as defined in the Fortezza ICD and PC
Card specifications, respectively). The CIPG document and CI Library software
(for a number of operating systems) are available as GFI.
The third ring represents the physical cryptographic device, the Fortezza
Crypto Card. The Card fulfills the security services specified
for the Fortezza system. It stores the private
key information for each user personality, the certificates of its Issuers,
and the public keys needed for cryptography. It performs the digital signature
and hash algorithms, public/private key exchange functions, encryption, and
decryption. The interface to the external device depends on the hardware
platform and its configuration, and the operating system. Figure 8 illustrates
the software necessary to integrate the card to multiple platforms. The proper
CI Library, device driver, Card Services, Socket Services (if applicable)
software, and hardware must all be correctly configured for proper operation.
The Card's adherence to the PC Card standards, as developed by the PCMCIA,
allows the Card to be integrated into different hardware platforms and operating
systems with relative ease. To enable the Card, the host (workstation) must
have its hardware and software configured properly to handle PC Cards. Since
PC Cards are a relatively new technology, this is often a concern. Note in
Figure 8 the required components and the differences in the various operating
systems. The shaded area highlights a fully standardized PC Card stack.
The device driver provides the CI Library an interface to the lower layer
components in the stack. The device driver is operating system dependent.
In environments that do not yet support the PC Card stack (e.g., UNIX), the
device driver provides much of the functionality of the equivalent lower
layers in the PC Card stack. As more operating systems adopt the PC Card
stack, the architecture for the CI Library and device drivers will need to
change. The Government will provide to developers the appropriate device
driver and the CI Library software for a number of operating systems, as
GFI.
CS allocates and controls operating system and hardware resources for the
PC Card. CS requires an application to register as a client with CS. This
allows the CS to handle multiple applications and to notify each application
of any changes to the PC Card or its status (ex., the card is inserted or
removed). CS functions include directing power requirements, resetting the
socket (the socket is the hardware device that connects to the PC Card),
mapping available host memory to the PC Card, assigning interrupts, reading
card configuration information (called Tuples), and performing the reads
and writes with the card's memory.
SS is the lowest level access to a PC Card. It is the software interface
between the host and the hardware used to manage PC Card sockets (readers).
Its responsibilities include detecting interrupts from the PC Card, setting
power levels, and mapping the PC Card memory to a specific area of available
memory in the host. PC Card Readers that do not fully use the PCMCIA stack,
such as SCSI or parallel (Centronix) readers, require each reader manufacturer
to supply its own SS. It is important that integrators match the proper SS
with the appropriate reader in these cases.
The adaptor is the hardware, usually a Large Scale Integrated Circuit, that
communicates with the PC Card. It performs the access timing, power control,
interrupt routing, and memory allocation in the PC Card. This hardware can
be found on the host motherboard or the PC Card reader.
The PC Card reader is the component that transmits the data to and from the
PC Card. Its characteristics are controlled by SS (since it is the PC Card
"socket"). Card readers exist for several interface protocols, such as serial,
parallel, internal PCMCIA, or SCSI.
PC Cards are designed as either memory or Input/Output (I/O) based. I/O based
cards rely on interrupts, which cannot be supported on all configurations
(namely SCSI readers). Memory based PCMCIA cards basically just read in and
write out data. The Card is a memory-based PC Card: it reads data from the
host, processes it, then makes the data available to the host. The physical
forms for PC Cards are designated Type 1, Type 2, and Type 3, with the difference
being the thickness of the card. The Fortezza program places no restrictions
on the form type, unless it affects the security functionality.
The utility of Fortezza can be appreciated from the number of possible
applications which can use its services. The number of applications is limited
only by one's imagination.
Applications can be written to allow the Card to secure user files or storage
mediums. A file can be secured through encryption using the users local storage
key, or via the standard MEK generation. Applications can also be written
to allow the Card to secure entire media storage equipment. It can secure
a computer hard drive, floppy Disk, CD-ROM, and any other media storage device.
The security service can test the integrity of the data with a hash and sign
service or full data encryption.
One application for Fortezza is access control. Access control is a policy
set to control who or what can gain access to something, such as data in
a database, use of a computer network, or entry to a building. Identification
and Authentication (I&A) are elements of the supporting policy required
for the integrity of that policy. In order to be effective, I&A mechanisms
must uniquely identify the subject and resolutely prevent forgery. Traditionally,
user I&A has been based on the use of "something you know" (knowledge-
e.g., a password), "something you are" (characteristic- e.g., a thumbprint),
and "something you have" (ownership- e.g., a card). Fortezza satisfies the
"something you have," with the Card, and "something you know," with the user's
Personal Identification Number (PIN). This approach is stronger than just
a traditional, simple password mechanism, which is only "something you know."
This I&A technique is known as "Strong Authentication."
Applications can be written to allow the Card to secure Telnet, File Transport
Protocol (FTP), and File Transfer, Access, and Management (FTAM), or even
network layer communications. Fortezza can be incorporated into these protocols
if an application is developed. The Card can provide strong authentication
and data confidentiality.
Fortezza can be used to provide strong authentication capability for the
Directory. This process will consist of the DUA initiating a session (a DUA
always initiates a session) and sending a signed value to the DSA. The DSA
verifies the signature and determines access privilege to the Directory.
The exact process of authentication can be designed to meet a local policy.
The popularity of the WWW, along with increased security concerns, is creating
a need for secure browsing. The Card can be used to secure access to Web
sites and provide confidentiality for financial transactions. Products could
include secure Hyper Text Transport Protocol (HTTP).
A Firewall is a collection of components placed between two networks that
collectively have the following properties: all traffic from inside to outside
(and vice-versa) must pass through the firewall; and, only authorized traffic
(as defined by the local security policy) will be allowed to pass. The firewall
must be tamperproof, and not bypassable. Typically, Firewalls will provide
the following capabilities: access control (through packet filtering), network
service restrictions, user authentication, and audit logging. The Card can
be used to support the I&A requirements and to assure that required messages
are properly cryptographically processed.
Fortezza can be used in a client/server environment. However, to truly provide
writer-to-reader security, the process must be invoked by the end user. If
the end user cannot operate the Card because the terminal does not have
processing capabilities, writer-to-reader security cannot be achieved without
additional network security devices and a trusted operating system at the
host.
Applications can be written to allow the Card to secure electronic mail (e-mail,
EDI, Electronic Commerce (EC), and FAX). These applications can take advantage
of all of Fortezza's capabilities.
References from:
http://www.rnbo.com/PROD/rmadillo/b/b4refs.htm
Cryptologic Interface Programmers Guide for the Fortezza Crypto Card,
Revision 1.52, NSA, November, 1995
Data Communication Networks Message Handling Systems, Recommendations
X.400-X.420, Volume VIII, CCITT, Geneva 1989
Data Communication Networks Message Handling Systems, Recommendations
X.500-X.521, Volume VIII, CCITT, Geneva 1989
Defense Message System (DMS) Concept of Operations (CONOPS), DISA,
April 2, 1993
Fortezza Message Security Protocol Software Interface Control Document,
Version 3.01, NSA, November 28, 1995
Interface Control Document for the Fortezza Crypto Card, Revision P1.5,
NSA, December 22, 1994
The ISO Development Environment: User's Manual Volume 5: QUIPU, Version
7.0, ISODE, July 19, 1991
(MISSI) Key, Privilege, and Certificate Management Plan, Version 3.1
Draft, NSA, September 11, 1995
PCMCIA Standards, Version 2.1, PCMCIA, November 1992
SDN.701, Message Security Protocol (MSP), Revision 3.0, NSA, March
23, 1994
SDN.702, SDNS Directory Specifications for Utilization with SDNS Message
Security Protocol, Revision 2.7, NSA, August 8, 1995
SDN.704, MIME/SMTP With MSP, Draft, NSA
Tannenbaum, Andrew S.: Computer Networks, Englewood Cliffs, NJ: Prentice
Hall, 1988
Acronyms from:
http://www.rnbo.com/PROD/rmadillo/b/b4acron.htm
ACP - Allied Communications Publication
2.4.1.2 Timestamp
2.4.1.3 Key Exchange
2.4.2 Symmetric Cryptography
2.4.2.1 Encryption and Decryption
2.4.2.2 Archive Data
3.0 Common Messaging Protocols and Fortezza
3.1 Simple Mail Transport Protocol (SMTP)
3.2 Multipurpose Internet Mail Extension (MIME)
3.3 X.400
3.4 Allied Communications Protocol 123 (ACP 123)
3.5 X.500
3.6 Abstract Syntax Notation.1 (ASN.1)
3.7 Secure Data Network System (SDNS)
3.7.1 SDN.701: Message Security Protocol (MSP)
3.7.2 SDN.702: SDNS Directory Specifications
3.7.3 SDN.704: MIME/SMTP with MSP
4.0 The Fortezza System
4.1 Key Management Components
4.1.1 Certificates
4.1.2 Certificate Revocation List (CRL)
4.1.3 Compromised Key List (CKL)
4.2 Certificate Authentication Hierarchy
4.2.1 Issuer
4.2.2 Certificate Authority (CA)
4.2.3 Policy Creation Authority (PCA)
4.2.4 Policy Approval Authority (PAA)
4.2.5 User
4.2.6 Organizational Registration Authority (ORA)
4.2.7 How the Authentication Hierarchy Works.
4.3 System Modules
4.3.1 User Agent (Ring 1)
4.3.2 User Agent/Security Protocol Interface (MSP ICD)
4.3.3 Security Protocol (Ring 2)
4.3.4 Security Protocol /Crypto Card Interface (CI Library)
4.3.5 Crypto Card (Ring 3)
4.4 Personal Computer Memory Card International Association (PCMCIA)
4.4.1 Device Driver
4.4.2 Card Services (CS)
4.4.3 Socket Services (SS)
4.4.4 Adaptor
4.4.5 PC Card Reader
4.4.6 PC Card (Fortezza Crypto Card)
5.0 Applications
5.1 File and Media Encryption
5.2 Access Control/Strong Authentication
5.3 Remote Network Services
5.4 Directory Service
5.5 World Wide Web (WWW)
5.6 Firewalls
5.7 Client /Server
5.8 Electronic Messaging
References
Acronyms
API - Application Programming Interface
ASN.1 - Abstract Syntax Notation 1
CA - Certificate Authority
CAW - Certificate Authority Workstation
CCITT - Consultive Committee on International Telephone and Telegraph
CI - Cryptologic Interface
CIPG - Cryptologic Interface Programmers Guide
CKL - Compromised Key List
CRL - Certificate Revocation List
CS - Card Services
DER - Distinguished Encoding Rules
DIB - Directory Information Base
DISA - Defense Information System Agency
DISN - Defense Information System Network
DIT - Directory Information Tree
DMS - Defense Message System
DoD - Department of Defense
DSA - Digital Signiture Algorithm
DSA - Directory System Agent
DSS - Digital Signature Standard
DUA - Directory User Agent
EC - Electronic Commerce
EDI - Electronic Data Interchange
FIPS - Federal Information Processing Standard
FTP - File Transfer Protocol
FTAM - File Transfer, Access, and Management
GFI - Government Furnished Information
HTTP - Hyper Text Transport Protocol
I&A - Identification and Authentication
ICD - Interface Control Document
ISO - International Standards Organization
ITU-T - International Telecommunications Union- Telecommunications
Standardizations Section
IV - Initialization Vector
KEA - Key Exchange Algorithm
KMID - Key Material Identifier
KMS - Key Management System
Ks - Storage Key
LA - Local Authority
LAW - Local Authority Workstation
MEK - Message Encryption Key
MHS - Message Handling System
MIME - Multipurpose Internet Mail Extension
MISSI - Multi- level Information System Security Initiative
MLA - Mail List Agent
MSP - Message Security Protocol
MTA - Message Transport Agent
MTS - Message Transport System
NSA - National Security Agency
NIST - National Institute of Standards and Technology
ON - Organizational Notary
ORA - Organizational Registration Authority
OSI - Open Systems Interface
OUA - Organizational User Agent
P2 - Interpersonal Message Content Type, X.400, 1984
P22 - Interpersonal Message Content Type, X.400, 1988
P48, P42 - Message Security Protocol
P772 - Military Messaging Type
PAA - Policy Approval Authority
PC - Personal Computer
PCA - Policy Creation Authority
PCMCIA - Personal Computer Memory Card International Association
PIN - Personal Identification Number
PMSP - Pre Message Security Protocol
RFC - Request For Comment
SDNS - Secure Data Network System
SHA - Secure Hash Algorithm
SMTP - Simple Mail Transport Protocol
SS - Socket Services
TCP/IP - Transport Control Protocol /Internet Protocol
TEK - Token Encryption Key
UA - User Agent
WWW - World Wide Web
Thanks to Rainbow Technologies and
The National Security Agency.