[Top] [Prev] [Next]

Summary of security modules, utilities, commands, daemons, and abstract data types

Implementing security in Inferno involves a number of different components. Application programs load modules to access security functions; commands are used to set up servers for security purposes, and daemons are initialized to listen for security-related communications.

Modules

Table 9-1 summarize the security modules covered in this chapter. The keyring module is defined by keyring.m. Other security modules are defined in security.m.

Summary of security modules

Keyring auth performs authentication
readauthinfo reads the authinfo adt
writeauthinfo writes the authinfo adt
iptob64 converts integer to base 64 string
b64toip converts base 64 string to integer
random generate large, random numbers
bits returns number of bits of precision
expmod returns base**exp mod (mod)
eq compares two IPint adts
iptobytes converts integer to array of bytes
certtostr convert ref Certificate to a string
pktostr convert ref PK to a string
sktostr convert ref SK to a string
strtocert convert string to ref Certificate
strtopk convert string to ref PK
strtosk convert string to ref SK
sign create a signed certificate
verify verify a signed certificate
genSK generate private, public keys
genSKfromPK generate SK based on PK parameters
sktopk extracts PK from SK/PK pair
sha produce a message digest with sha
md5 produce a message digest with md5
dhparams creates Diffie-Hellman parameters
getstring reads a string from a file descriptor
putstring writes a string to a file descriptor
getbytearray reads a byte array from a file descriptor
putbytearray writes a byte array to a file descriptor
puterror writes an error string to a file descriptor
SSL connect connect to ssl device
secret provide secrets to ssl connection
Login login obtain a certificate
getauthinfo Tk user interface to login
Password get read a password from a password file
put write a password to a password file
Random randomint generate a random number
randombuf generate an array of random bytes

Commands

Table 9-2 summarizes the commands that are used for security with servers and set-top boxes:

Summary of security-related commands

changelogin create/update the password file on server
createsignerkey create the key for the signer server
getauthinfo create/obtain a certificate for authentication
manufacture emulate the set-top box ID in ROM
register register set-top box with signer
verify authenticate receiver of blinded certificate

Daemons

Table 9-3 summarizes the daemons that run on a server:

Summary of security-related server daemons

countersigner `unblinds' a certificate for a client
logind provide a certificate to a client
signer sends a blinded certificate to a client

Abstract Data Types

The following abstract data types (adts) are defined in the Keyring module:

SigAlg

The SigAlg adt contains a single string that specifies the algorithm used for digital signatures. The allowable values are MD5 and SHA, which specify which one-way hash function is used to produce a digital signature, or message digest. In general, a one-way hash function converts an arbitrary length message to a unique fixed-length message digest. MD5 produces a 128-bit; SHA produces a 160-bit hash.

PK and SK

The PK adt contains the data necessary to construct a public key; the SK adt contains the data necessary to construct a secret key. Both keys are built from the combination of a specified signature algorithm and a string representing the name of owner of the key.

Certificate

The Certificate adt contains a digital signature with the certification of the trusted authority (CA), the hash algorithm that is used, the name of the signer and a message expiration date.

DigestState

The DigestState adt contains the state of partially completed hash functions during processing.

Authinfo

The Authinfo adt contains an individual user's private and public key, the signer's certificate and the signer's public key, and the Diffie-Hellman parameters. Authinfo is normally created during login or registration (See login, getauthinfo - get an Authinfo adt from a certificate authority and register - command to register set-top-box identity with signer).

IPint

The IPint adt provides certain cryptographic functions so that various popular public key algorithms can be implemented directly in Limbo. The current implementation limits the maximum integer to 23192-1.

An IPint can be converted into two external formats:



[Top] [Prev] [Next]

infernosupport@lucent.com
Copyright © 1996,Lucent Technologies, Inc. All rights reserved.