Implementing Keychain Management
This module describes how to implement keychain management on. Keychain management is a common method of authentication to configure shared secrets on all entities that exchange secrets such as keys, before establishing trust with each other. Routing protocols and network management applications on Cisco IOS XR software often use authentication to enhance security while communicating with peers.
Restrictions for Implementing Keychain Management
You must be aware that changing the system clock impacts the validity of the keys in the existing configuration.
Configure Keychain
This task configures a name for the keychain.
You can create or modify the name of the keychain.
SUMMARY STEPS
- configure
- key chain key-chain-name
- Use the commit or end command.
- show key chain key-chain-name
DETAILED STEPS
Step 1 |
configure Example:
Enters global configuration mode. |
||
Step 2 |
key chain key-chain-name Example:
Creates a name for the keychain.
|
||
Step 3 |
Use the commit or end command. commit —Saves the configuration changes and remains within the configuration session.
|
||
Step 4 |
show key chain key-chain-name Example:
(Optional) Displays the name of the keychain.
|
Example
The following example shows how to configure keychain management:
configure
key chain isis-keys
accept-tolerance infinite
key 8
key-string mykey91abcd
cryptographic-algorithm MD5
send-lifetime 1:00:00 june 29 2006 infinite
accept-lifetime 1:00:00 june 29 2006 infinite
end
Uncommitted changes found, commit them? [yes]: yes
show key chain isis-keys
Key-chain: isis-keys/ -
accept-tolerance -- infinite
Key 8 -- text "1104000E120B520005282820"
cryptographic-algorithm -- MD5
Send lifetime: 01:00:00, 29 Jun 2006 - Always valid [Valid now]
Accept lifetime: 01:00:00, 29 Jun 2006 - Always valid [Valid now]
Configure Tolerance Specification to Accept Keys
This task configures the tolerance specification to accept keys for a keychain to facilitate a hitless key rollover for applications, such as routing and management protocols.
SUMMARY STEPS
- configure
- key chain key-chain-name
- accept-tolerance value [infinite]
- Use the commit or end command.
DETAILED STEPS
Step 1 |
configure Example:
Enters global configuration mode. |
Step 2 |
key chain key-chain-name Example:
Creates a name for the keychain. |
Step 3 |
accept-tolerance value [infinite] Example:
Configures a tolerance value to accept keys for the keychain.
|
Step 4 |
Use the commit or end command. commit —Saves the configuration changes and remains within the configuration session.
|
Configure Key Identifier for Keychain
This task configures a key identifier for the keychain.
You can create or modify the key for the keychain.
SUMMARY STEPS
- configure
- key chain key-chain-name
- key key-id
- Use the commit or end command.
DETAILED STEPS
Step 1 |
configure Example:
Enters global configuration mode. |
Step 2 |
key chain key-chain-name Example:
Creates a name for the keychain. |
Step 3 |
key key-id Example:
Creates a key for the keychain. The key ID number is translated from decimal to hexadecimal to create the command mode subprompt.
|
Step 4 |
Use the commit or end command. commit —Saves the configuration changes and remains within the configuration session.
|
Configure Text for Key String
This task configures the text for the key string.
SUMMARY STEPS
- configure
- key chain key-chain-name
- key key-id
- key-string [clear | password] key-string-text
- Use the commit or end command.
DETAILED STEPS
Step 1 |
configure Example:
Enters global configuration mode. |
Step 2 |
key chain key-chain-name Example:
Creates a name for the keychain. |
Step 3 |
key key-id Example:
Creates a key for the keychain. |
Step 4 |
key-string [clear | password] key-string-text Example:
Specifies the text string for the key.
|
Step 5 |
Use the commit or end command. commit —Saves the configuration changes and remains within the configuration session.
|
Determine Valid Keys
This task determines the valid keys for local applications to authenticate the remote peers.
SUMMARY STEPS
- configure
- key chain key-chain-name
- key key-id
- accept-lifetime start-time [duration duration-value | infinite | end-time]
- Use the commit or end command.
DETAILED STEPS
Step 1 |
configure Example:
Enters global configuration mode. |
Step 2 |
key chain key-chain-name Example:
Creates a a name for the keychain. |
Step 3 |
key key-id Example:
Creates a key for the keychain. |
Step 4 |
accept-lifetime start-time [duration duration-value | infinite | end-time] Example:
(Optional) Specifies the validity of the key lifetime in terms of clock time. |
Step 5 |
Use the commit or end command. commit —Saves the configuration changes and remains within the configuration session.
|
Configure Keys to Generate Authentication Digest for Outbound Application Traffic
This task configures the keys to generate authentication digest for the outbound application traffic.
SUMMARY STEPS
- configure
- key chain key-chain-name
- key key-id
- send-lifetime start-time [duration duration-value | infinite | end-time]
- Use the commit or end command.
DETAILED STEPS
Step 1 |
configure Example:
Enters global configuration mode. |
Step 2 |
key chain key-chain-name Example:
Creates a name for the keychain. |
Step 3 |
key key-id Example:
Creates a key for the keychain. |
Step 4 |
send-lifetime start-time [duration duration-value | infinite | end-time] Example:
(Optional) Specifies the set time period during which an authentication key on a keychain is valid to be sent. You can specify the validity of the key lifetime in terms of clock time. In addition, you can specify a start-time value and one of the following values:
If you intend to set lifetimes on keys, Network Time Protocol (NTP) or some other time synchronization method is recommended. |
Step 5 |
Use the commit or end command. commit —Saves the configuration changes and remains within the configuration session.
|
Configure Cryptographic Algorithm
This task allows the keychain configuration to accept the choice of the cryptographic algorithm.
SUMMARY STEPS
- configure
- key chain key-chain-name
- key key-id
- cryptographic-algorithm [HMAC-MD5 | HMAC-SHA1-12 | HMAC-SHA1-20 | MD5 | SHA-1 | AES-128-CMAC-96 | HMAC-SHA-256 | HMAC-SHA1-96]
- Use the commit or end command.
DETAILED STEPS
Step 1 |
configure Example:
Enters global configuration mode. |
Step 2 |
key chain key-chain-name Example:
Creates a name for the keychain. |
Step 3 |
key key-id Example:
Creates a key for the keychain. |
Step 4 |
cryptographic-algorithm [HMAC-MD5 | HMAC-SHA1-12 | HMAC-SHA1-20 | MD5 | SHA-1 | AES-128-CMAC-96 | HMAC-SHA-256 | HMAC-SHA1-96] Example:
Specifies the choice of the cryptographic algorithm. You can choose from the following list of algorithms:
The routing protocols each support a different set of cryptographic algorithms:
|
Step 5 |
Use the commit or end command. commit —Saves the configuration changes and remains within the configuration session.
|
Lifetime of Key
If you are using keys as the security method, you must specify the lifetime for the keys and change the keys on a regular basis when they expire. To maintain stability, each party must be able to store and use more than one key for an application at the same time. A keychain is a sequence of keys that are collectively managed for authenticating the same peer, peer group, or both.
Keychain management groups a sequence of keys together under a keychain and associates each key in the keychain with a lifetime.
Note |
Any key that is configured without a lifetime is considered invalid; therefore, the key is rejected during configuration. |
The lifetime of a key is defined by the following options:
-
Start-time—Specifies the absolute time.
-
End-time—Specifies the absolute time that is relative to the start-time or infinite time.
Each key definition within the keychain must specify a time interval for which that key is activated; for example, lifetime. Then, during a given key's lifetime, routing update packets are sent with this activated key. Keys cannot be used during time periods for which they are not activated. Therefore, we recommend that for a given keychain, key activation times overlap to avoid any period of time for which no key is activated. If a time period occurs during which no key is activated, neighbor authentication cannot occur; therefore, routing updates can fail.
Multiple keychains can be specified.