This document describes Simple Key-Management for Internet Protocols (SKIP), which is an optional security feature that works with OpenROUTE Networks Virtual Private Networks (VPNs).
This document has the following topics:
Introducing SKIP
How SKIP Works
Exporting Algorithms from the United States
Configuring SKIP
SKIP Commands
Introducing SKIP
This chapter describes the SKIP component of OpenROUTE Networks VPN software. VPNs begin with IP Tunnel interfaces, which are virtual paths to other nodes in the virtual network. SKIP provides security to traffic passing through IP tunnels by authenticating and encrypting the data.
This document explains how SKIP works, how to set up SKIP, and defines the SKIP commands.
Using IP Tunnels describes IP Tunnels, how to set up IP Tunnels, and defines the IP Tunnel commands.
Using IP Tunnels With SKIP gives examples of how to assemble several types of VPNs using IP Tunnels and SKIP.
Using VPNs With NAT gives examples of how to set up VPNs using IP Tunnels with SKIP when Network Address Translation (NAT) is also running.
Figure 1 How SKIP Works with the IP Tunnel Software

Terminology
This document uses the following terminology.
RFCs Supported
The OpenROUTE Networks IP security for VPNs implements the following RFCs:
RFC 1825, The Security Architecture of the Internet (IPSEC).
RFC 1826, IP Authentication Header.
RFC 1827, IP Encapsulating Security Payload (ESP), which defines the packet formats for IP layer authentication and encryption.
RFC 1828, IP Authentication Using Keyed MD5
RFC 1829, The Encapsulating Security Payload (ESP) DES-CBC Transform
RFC 1851, The Encapsulating Security Payload (ESP) Triple DES Transform
RFC 1852, IP Authentication Using Keyed SHA
SKIP is distinct from, and incompatible with, Internet Security Association Key Management Protocol (ISAKMP).
Using Hardware to Perform Compression, Encryption, and Authentication
Some OpenROUTE routers come with hardware that can perform compression, encryption, and authentication. Using hardware rather than software to perform these tasks greatly increases the speed of OpenROUTE VPNs.
The SKIP software provides a command that lets you choose whether the router hardware or software performs compression, encryption, and authentication. See set driver.
How SKIP Works
SKIP uses keys, also called secrets, to authenticate data and to encrypt and decrypt data. In order for two SKIP peers to communicate, each side needs to use the same key, called a master encryption key (a shared secret). SKIP's key exchange mechanism allows SKIP peers to derive shared secrets from public/private key pairs.
SKIP uses a two-level encryption and authentication process. The first level encrypts and authenticates the process of exchanging keys. The second level encrypts and authenticates actual user data.
When SKIP receives a packet, it
Note: If the remote SKIP peer does not support certificates, you can manually set a secret on each peer. See add secret.
No Name. SKIP headers do not include an additional name.
Local/UDH name or MD5/UDH name uses UDH certificate signatures as the name of the packet source and/or destination. Use these names if you are using UDH certificates.
IPv4 addresses. You can assign an IP address that SKIP includes in its headers. The IPv4 address is often used with third-party Certificate Authorities, which this SKIP implementation does not currently support.
Exchanging Public Keys Using UDH Certificates
SKIP uses public/private-key cryptography to create a master encryption key. Each SKIP peer has a private key and a public key. SKIP peers exchange public keys and then each peer uses its private key along with the remote peer's public key to calculate the master key.
To send public keys securely from one SKIP peer to another, this SKIP implementation uses Unsigned Diffie-Hellman (UDH) certificates. Other SKIP implementations use a third-party Certificate Authority (CA) to obtain their public keys. However, UDH certificates allow SKIP to get public keys directly from the other SKIP peer. UDH certificates provide a simple, secure way to exchange public keys without requiring a third party CA.
Key Lengths
In addition to public keys, UDH certificates contain two constants called the modulus, which is the key length, and the base. The base is always `2' but there are three different values of the modulus. These values are prime numbers with lengths of 512, 1024, and 2048 bits. Since there are three values for the modulus, there are three possible certificates you can store in the router. The router uses the same one, two, or three certificates to perform the Diffie-Hellman key exchange with all remote peers. Note:
Not all key lengths are available for export from the United States. See Exporting Algorithms from the United States.
If the result does not match the destination name, the certificate has been compromised and cannot be used.
If the result does match the destination name, SKIP can use it to compute the master encryption key used for subsequent communication.
To securely send the new short-term key to the SKIP peer, SKIP encrypts the new short-term key using the master encryption algorithm along with the master encryption key before sending the new key to the SKIP peer.
The router performs the actual encrypting and signing of IP packets using the short-term key along with the bulk encryption and bulk authentication algorithms.
SKIP Data Flows
SKIP supports one or more simultaneous data flows that represent IP tunnels to different remote tunnel endpoints. You define the number of data flows for an IP Tunnel using the set max-users command. The default is 16. At any time, the number of flows from SKIP clients are the same as the number of flows from SKIP to the IP tunnel. These flows map one-to-one.
Figure 2 How SKIP Works with the IP Tunnel Software

Exporting Algorithms from the United States
OpenROUTE provides several encryption and authentication algorithms to provide different levels of encryption or authentication strength.
United States (U.S.) government encryption export policy limits the key size, and hence the strength, of encryption equipment exported outside of the U.S., with the exception of Canada. OpenROUTE Networks provides different software for domestic, export-controlled, and global use. Export-controlled key lengths are available to overseas offices of U.S. corporations or subsidiaries or for organizations that receive export permission from the United States government.
The following table shows the algorithms and key lengths provided in these three versions of software.
Configuring SKIP
This section covers the following:
Securing Access to the Router
SKIP requires secure access to the router itself. You must enable console login with administrative access and passwords to prevent unauthorized entry into the router. If someone gains administrative access to the router, they can easily subvert SKIP by disabling it.
Use the add user command at the Config> prompt to set up a user with administrative access. Adding a user automatically enables console login.
Setting the Time on the Router
You must set the correct time of day and offset from Greenwich Mean Time (GMT) on the router before you configure SKIP. SKIP headers include a time stamp. SKIP peers do not accept packets that have a time difference of more than one hour from the SKIP peer's own time.
In addition, certificates have a not valid before time, which is the time the certificate was created, and a not valid after time, which is five years from the time the certificate was created. If SKIP peers do not have their time synchronized, a SKIP peer could receive a packet before the not valid time and discard the packet.
The router does not allow you to create certificates if you have not set the time of day. However, since the router cannot know if the set time is correct, you must make sure the time of day in the router is correct before adding certificates.
To check the time set on the router, enter time list at the Config> prompt.
To set the time, enter the following commands at the Config> prompt.
To set the time of day, enter time set.
To set the offset from GMT, enter time offset.
Config> prompt. To set the address of the time server, enter time host followed by the IP address of the server. Remember, the router cannot access an external server over a SKIP tunnel since it is SKIP that needs the time of day.
To set the interval after which the router polls the time server for the current time, enter time sync followed by the number of seconds.
SKIP Config <NET-#> prompt and the SKIP <NET-#> prompt. This section explains the differences between these two prompts and shows how to display the prompts.
SKIP Config <NET-#> prompt, changes you make are saved in the router's configuration memory. These changes do not take effect until you restart the router.
To display the SKIP Config <NET-#> prompt,Config>ADD INTERFACE IP-TUNNEL
Adding IP Tunnel as interface 5.
Config>ENABLE SKIP
Interface number [0]? 5
Config>
Config>NETWORK
What is the network number [0]? 5
Circuit Configuration
Circuit Config <NET-5>
Circuit Config <NET-5>SKIP
SKIP Configuration
SKIP Config <NET-5>
+ prompt.
+network 5
Circuit <NET-5>
Circuit <NET-5> SKIP
SKIP
SKIP <NET-5>
The destination in this command is BOSTON and the algorithm is MD5. You can partially enter a command and then press Space twice to see a list of all configured SKIP destinations.SKIP Config <NET-5> SET AUTHENTICATION BOSTON MD5
You do not have to set all parameters for destinations that you add. If you do not specifically set a parameter, SKIP uses the value set in the default configuration. In other words, SKIP uses the values specified in the default configuration for all destinations unless you specifically configure a value for a destination. If all parameters required for a destination are the same as the default values, you never have to add that destination to SKIP. The router in Figure 2 has three VPN tunnels to Boston, 45.10.20.30, and RoadWarrior. The following commands set the default authentication algorithm for all destinations to MD5 and then specify that the algorithm used specifically for RoadWarrior is SHA.SKIP Config <NET-5> SET AUTHENTICATION Space Space
The choices/prefixes are (a complete list):
50.10.20.30
boston
default
roadwarrior
SKIP Config <NET-5>SET AUTHENTICATION DEFAULT MD5
SKIP Config <NET-5>SET AUTHENTICATION ROADWARRIOR SHA
SKIP Config <NET-5>add certificate 1024
New certificate's MD5/UDH signature is 9C2A-8448-3750-6266-29B8-2B02-3470-7098
When you add a certificate, the software displays the certificate's MD5/UDH signature.
CAUTION:
Do not send the signature over the network. Doing so compromises SKIP's security. Communicate secrets by telephone or paper.
To set up the router to use the MD5/UDH signature as its local name, you must have already added a certificate with the add certificate command. You then enter the set local-name local/udh command followed by the modulus length of the certificate, 1024 in this example.
SKIP Config <NET-5>set local-name local/udh 1024Note: You must set this parameter to local/UDH if you are using a dynamically-assigned IP address as the IP tunnel source address. This lets the receiving router identify the source of the packet even when it does not recognize the address in the outer IP header.
SKIP Config <NET-5> set remote-name jimmy md5/udh
Peer's MD5/UDH Signature? 626F-8EB4-27F4-8A4C-DEB9-DE6F-3FF2-58B3
Preventing the Router from Sending Unencrypted Data Over the Internet
Figure 3 shows a VPN router that is also acting as the gateway to the Internet. In this scenario, if the IP Tunnel with SKIP goes down, the router sends traffic over the next best route. However, if that happens, the router could send traffic over an interface that does not use SKIP, which means the traffic would not be encrypted.
There are two ways to prevent the router from sending unencrypted packets
Set up static routes that cause the router to discard packets addressed to the remote tunnel endpoint if the IP Tunnel goes down. See Setting Up a Discard Route.
Set up IP filters that allow the router to send only SKIP-related traffic to the remote tunnel endpoint and that block all other traffic. See Creating Openings in a Firewall for SKIP Traffic.

IP config>ADD ROUTE
IP destination [0.0.0.0]?128.185.2.2
Address mask [0.0.0.0]? 255.255.255.0
Via gateway at [0.0.0.0]?0.0.0.5
Cost [1]?
Note: Make sure the discard route has a cost that is greater than or equal to the cost of the route through the IP Tunnel. Otherwise, the router will send packets to the discard route instead of to the tunnel.
IP config>ADD ROUTE
IP destination [0.0.0.0]?128.185.2.2
Address mask [0.0.0.0]? 255.255.255.255
Via gateway at [0.0.0.0]?0.0.0.0
Cost [1]?
IP protocol type 57 (SKIP) to and from the Tunnel endpoint router. Type 57 packets contain SKIP encrypted and authenticated data.
UDP packets with port numbers 1639 and 1640. The SKIP Certificate Discovery Protocol uses these port numbers.
UDP packets with port number 9. UDP discard packets use port 9. SKIP uses these packets to test the reachability of the remote tunnel endpoint.
After you create the profile, you need to attach it to an interface. Typically, you would attach the profile to the interface where your firewall is currently configured. The following example attaches the passthru profile to interface 5.IP Filters Config>add profile passthru
IP Filters Config>add filter passthru.skip dir=both da=128.185.2.2 protocol=skip
IP Filters Config>add filter passthru.cdp dir=both da=128.185.2.2 prot=udp dp=1639-1640
IP Filters Config>add filter passthru.discard dir=both da=128.185.2.2 prot=udp dp=9
IP Filters Config>list filter passthru
Listing Filters
Name Dir Address Port Protocol Idle
Action
---------------------------------------------------------------
skip Both ida=128.185.2.2 SKIP Pass Off
cdp Both ida=128.185.2.2 idp=1639-1640 UDP Pass Off
discard Both ida=128.185.2.2 idp=9 UDP Pass Off
Since IP filters block all traffic, except traffic that you specifically allow by adding filters, the three filters just added create openings in the firewall for SKIP-related traffic. The router drops all traffic that does not match any filters.IP Filters Config>set interface 5 profiles = passthru
NAT Config>add service skip
Server's IP address [0.0.0.0]? 10.10.20.1
Server's local port (0 = no port translation) [0]?NAT Config>add service skipcdp
Server's IP address [0.0.0.0]? 10.10.20.1
Server's local port (0 = no port translation) [0]?NAT Config>add service discard
Server's IP address [0.0.0.0]? 10.10.20.1
Server's local port (0 = no port translation) [0]?
Press Space twice after you type a command to display the available parameters for each command. Enter help for information about using the command line interface.
[C] means the command is available at the SKIP Config <NET-#> prompt.
[M] means the command is available at the SKIP <NET-#> prompt.
Add [C]
Adds certificates, remote peers, and secrets to the SKIP configuration.
Syntax: add
CAUTION:
Do not send the signature over the network. Doing so compromises SKIP's security. Communicate secrets by telephone or paper.
Note: The router refuses this command if you have not set the time of day on the router. See Setting the Time on the Router. Example:
add certificate 1024
New certificate's MD5/UDH signature is 9C2A-8448-3750-6266-29B8-2B02-3470-7098
add remote
New remote destination name? jimmy
CAUTION:
Do not send the secret over the network. Doing so compromises SKIP's security. Communicate manually-created secrets by telephone or paper.
Example:
add secret jimmy
Shared Secret? 28763249
delete certificate 1024
delete remote jimmy
delete secret jimmy
disable authentication-required jimmy
enable authentication-required default
list certificate
Mod. Valid Valid Received Signature
Len From To From
512 7/9/97 7/9/02 Local Config 9C6D-229C-20CC-98EB-862A-FB00-5DCC-117
driver
Shows whether you have your router set up to perform encryption, compression, and authentication using hardware or software. This feature is not available on all router platforms. See set driver.
Destination Driver
DEFAULT HARDWARE
gtx1500-37 SOFTWARE
Destination NSID Local Name
DEFAULT None
misty None
skip-466 LOCAL/UDH Local 1024-bit Certificate MD5 Signature
fancy IPv4 Address 1.2.3.4
list parameters
Destination Master Bulk Auth Comp Comp Drop Rekey
Algorithm Algorithm Algorithm Algorithm Perf Unsign Interval
DEFAULT DES-CBC DES-CBC MD5 NONE HIGH NO 30
boston DES-CBC RC4/128 SHA NONE HIGH NO 30
misty DES-CBC ARC4/128 SHA STAC-LZS N/A NO 30
Destination NSID Remote Name
50.10.20.30 None
misty MD5/UDH DB5E-D8C4-BEF1-1BE0-3BA2-13D8-B1F5-63FC
skip-466 MD5/UDH 2D69-840F-D017-32E4-3DB4-FEF5-2722-32F4
fancy IPv4 Address 50.1.1.1
list secrets
Destination Secret
fancy 28763249 87362928 37664364 78929283 76464783 64928762
list certificates
Mod. Valid Valid Received Signature
Len From To From
512 7/9/97 7/9/02 Local Config 9C6D-229C-20CC-98EB-862A-FB00-5DCC-117
1024 9/8/97 9/8/02 Local Config FC56-129A-D8AC-A9BC-09F6-1EFB-CFA9-2131
Destination Driver
DEFAULT HARDWARE
gtx1500-37 SOFTWARE
list local-name
Destination NSID Local Name
misty None
list receive counters
Destination Unrecog Auth Auth Encrypted Decrypt Payload
Packets Packets Errors Packets Errors Bytes
misty 0 22 0 22 0 12877
The router generates Event Logging System (ELS) messages whenever it detects an error.
receive parameters
Lists the SKIP algorithms remote peers selected and included in packets the local router most recently received. The only exception is the Drop Unsigned column. If this value is Yes, the local router discards unsigned packets.
Example: list receive parameters
Received Packet Parameters
Destination Master Bulk Auth Comp Drop
Algorithm Algorithm Algorithm Algorithm Unsigned
misty DES-CBC DES-CBC MD5 STAC-LZS NO
Destination NSID Remote Name
misty MD5/UDH DB5E-D8C4-BEF1-1BE0-3BA2-13D8-B1F5-63FC
list secrets
Destination Secret
misty AFEBE802 1705E74E 17F20A20 7FD6DAEF BC9D04BE 541A0E5A 3D2E860C CEBB48AB
list transmit counters
Destination Auth Encrypted Payload Compress
Packets Packets Bytes Ratio
misty 499 499 148504 1.63:1
transmit parameters
Displays the SKIP parameters the local router uses when it transmits packets to each remote peer.
Example: list transmit parameters
Transmitted Packet Parameters
Destination Master Bulk Auth Comp Comp Rekey
Algorithm Algorithm Algorithm Algorithm Perf Interval
misty DES-CBC DES-CBC MD5 STAC-LZS LOW 60
bentley DES-CBC ARC4/128 MD5 STAC-LZS N/A 60
SKIP <NET-#> prompt, this command restores the saved configuration for the destination that you specify.
Example: revert
destination
SKIP <NET-#> prompt for the destination you specify to permanent memory so they are still present after you restart the router.
Example: save
destination?
set authentication jimmy sha
bulk-encryption
Sets the encryption algorithm SKIP uses to encrypt user data before sending the data to the specified destination. The default is DES-CBC.
The algorithms available for this command varies depending on which software you have purchased and whether you are using hardware or software to run encryption.
This command does not affect the algorithm used to decrypt incoming packets. That algorithm is specified in the incoming packets.
The following example configures SKIP to encrypt packets it sends to jimmy using DES3-CBC.
Example: set bulk-encryption jimmy DES3-CBC
compression
Sets the compression algorithm the router uses to compress user data before sending the data to the specified destination. The default is None.
This command does not affect the algorithm used to decompress incoming packets. That algorithm is specified in the incoming packets.
The following example configures the router to compress packets it sends to jimmy using the STAC-LZS algorithm.
Example: set compression jimmy stac-lzs
|
none
| The router does not compress user data to this destination. |
|
STAC-LZS
| The router uses the STAC-LZS algorithm to compress data to this destination. |
compression performance
This command applies to router platforms that contain hardware that can perform compression.
If your router is set up to run compression using hardware (see set driver), this command lets you set the compression ratio to high, medium, or low for a specified destination. The default is high.
Generally, a higher compression ratio takes more time to process on the router, but results in a smaller amount of data being sent over a link. Therefore, a high compression ratio is preferred for lower-speed links. On high-speed connections, sending a smaller amount of data is not as crucial, so you could use a lower compression ratio, which takes less processing time on the router.
You can set a different compression ratio for different destinations. The following example sets compression performance for the destination jimmy to low.
Example:
set compression performance jimmy low
driver
This command applies to router platforms that provide hardware to assist in running compression, encryption, and authentication. It lets you choose whether the router hardware or software performs these tasks. Performing these tasks using hardware rather than software results in better performance, and the default behavior is to use hardware.
As new algorithms become available, there may be circumstances where software provides support for these new algorithms before hardware supports them. Therefore, you may want the software to perform compression or authentication. You may also need to set this command to software to be compatible with equipment at the other end of some tunnels. Note:
If your router does not contain the hardware that runs compression, encryption, and authentication, the only option available with this command is software.
set driver jimmy software
|
hardware
| Rotuer hardware performs compression, encryption, and authentication. |
|
software
| Router software performs compression, encryption, and authentication. |
local-name
Defines whether SKIP includes a name in the SKIP header to identify itself to remote peers. If SKIP does include a name, this parameter sets the type and value of the name that identifies the local router. SKIP includes this information in packets the router sends to the specified destination. The options are IPv4-address, Local/UDH, or None.
Using the local MD5/UDH signature as the name of the router allows the router to hold one certificate for each length modulus. Each certificate has a different signature, so remote sites can be configured (by specifying the appropriate signature) to request the certificate that matches their own certificate's modulus. Note:
You must set this parameter to local/UDH if you are using a dynamically-assigned IP address as the IP tunnel source address. This lets the receiving router identify the source of the packet even when it does not recognize the address in the outer IP header.
set local-name default IPv4-address
IPv4 Address [0.0.0.0]?
set local-name boston local/udh 512
master-encrypter
Sets the algorithm SKIP uses to encrypt the short-term key before sending the key to the specified destination.
This command does not affect the algorithm used to decrypt the short-term key in inbound packets. That algorithm is specified in the incoming packets.
Press Space twice after you type the destination name and the software displays a list of encryption types available on your router.
Example: set master-encrypter default
The choices/prefixes are (a complete list):
DES-CBC -- Data Encryption Standard with Chaining (RFC-1829)
DES3-CBC -- Triple DES (Data Encryption Standard) with Chaining (RFC-1851)
SKIP Config <NET-5> set master-encrypter default DES3-CBC
|
DES-CBC
| Data Encryption Standard (DES) with Chaining (RFC-1829). |
|
DES3-CBC
| Triple DES with Chaining (RFC-1851). DES3-CBC cannot be exported from the United States. |
rekey-interval
Sets how often, in seconds, the router changes its short-term key for the destination you specify. The default is 60 seconds. The range is 30 to 3600 seconds.
Example: set rekey-interval default
Rekey Interval? 30
The default is None. The following example sets an MD5 signature for the remote SKIP peer called jimmy.
Example:
set remote-name jimmy md5/udh
Peer's MD5/UDH Signature? 9C2A-8448-3750-6266-29B8-2B02-3470-7098