home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / c-kermit / security.txt < prev    next >
Text File  |  2020-01-01  |  246KB  |  5,362 lines

  1.  
  2.                            Kermit Security Reference
  3.                                        
  4.    Authors:
  5.           Jeffrey Altman, Frank da Cruz
  6.           [1]The Kermit Project, [2]Columbia University
  7.           
  8.    Applies to:
  9.           [3]C-Kermit 8.0.200, 12 Dec 2001
  10.           [4]Kermit 95 2.00 (not available yet).
  11.           [5]An earlier version of this document covers [6]C-Kermit 7.0
  12.           and [7]K95 1.1.17-20.
  13.           
  14.    Abstract:
  15.           Security methods explained: Kerberos, SSL/TLS, SRP, SSH. How to
  16.           configure and use them with C-Kermit and Kermit 95.
  17.           
  18.    This page last updated:
  19.           12 December 2001 
  20.           
  21.    [ [8]Kermit Home ] [ [9]C-Kermit ] [ [10]Kermit 95 ]
  22.     ________________________________________________________________________
  23.   
  24.   CONTENTS
  25.   
  26.    1. [11]INTRODUCTION
  27.    2. [12]DISCLAIMERS
  28.    3. [13]KERMIT SECURITY USER GUIDE
  29.    4. [14]INSTALLATION AND CONFIGURATION
  30.    I. [15]WHERE TO FIND SECURE TELNET AND FTP SERVERS
  31.   II. [16]MULTIHOMED HOSTS, FIREWALLS, NATS
  32.  III. [17]INTRODUCTION TO CERTIFICATES
  33.       [18]GLOSSARY
  34.       [19]REFERENCES
  35.       [20]TRADEMARKS
  36.     ________________________________________________________________________
  37.   
  38.   1. INTRODUCTION
  39.   
  40.    [ [21]Top ] [ [22]Contents ] [ [23]Glossary ] [ [24]Next ]
  41.    
  42.    CHAPTER CONTENTS
  43.    
  44.   1.1. [25]Secure Connections
  45.   1.2. [26]Internet Protocols
  46.   1.3. [27]Authentication
  47.   1.4. [28]Encryption
  48.   1.5. [29]Integrity
  49.  
  50.    SECURITY is the hot topic on the Internet. Security systems and
  51.    protocols abound. But it was not always so. In the early days, the
  52.    mere act of putting two computers in touch with each other was quite
  53.    amazing. To connect multiple diverse computers to a common network,
  54.    allowing any pair of them to communicate, was almost inconceivable.
  55.    When the [30]ARPANET (precursor of the Internet) was first operational
  56.    on October 1, 1969, the eager task for many years afterwards was to
  57.    open up more and more sites to it. The architecture of the network and
  58.    its protocols were developed in research laboratories in an atmosphere
  59.    of trust.
  60.    
  61.    Only later, when the ARPANET became the world-wide Internet and was
  62.    opened up to limitless numbers of people, did security become an
  63.    issue: hackers, crackers, script kiddies, terrorists, spies,
  64.    swindlers, saboteurs, blackmailers, pranksters, and pests of every
  65.    sort inundate the network and every computer on it with a constant
  66.    barrage of probes and attacks. It is increasingly necessary to secure
  67.    connections from eavesdropping and malicious tampering (not to mention
  68.    spam, worms, viruses, and denial-of-service attacks, but that's
  69.    [31]another story).
  70.    
  71.    The network itself is not secure. By its very nature and fundamental
  72.    design, it is entirely open[32]*. While it might be possible to insert
  73.    security at the transport and/or network layers, transparent to all
  74.    applications, the approach until now has been to layer security
  75.    protocols over TCP and IP: some of them standard, some not so
  76.    standard. Even among the standard ones, there are many to choose from.
  77.    This approach requires one or more security methods to be programmed
  78.    into each and every client and server application that is to make or
  79.    accept secure Internet connections. The situation should improve in
  80.    the future as security becomes part of the network itself through
  81.    evolving standards such as [33]IPSec, [34]IPv6, and [35]DNSSEC.
  82.    
  83.    Meanwhile, insecure connections remain the norm, in which passwords,
  84.    credit-card information, private correspondence, and so on can be
  85.    captured and/or altered in transit by malicious persons. Security
  86.    remains elusive because we have a 30+ year history of open networks,
  87.    clients, and servers, and because of the many competing security
  88.    methods, the shifting definitions of each one, various legal
  89.    entanglements, and the overall complexity of the entire topic.
  90.    
  91.    Why should I care about security? The reasons are obvious: to prevent
  92.    fraud on your person, theft of your money or identity, hijacking of
  93.    your computer accounts, tampering with your research results; any
  94.    number of malicious acts aimed at you or performed by someone
  95.    masquerading as you. Perhaps an even more compelling reason to care is
  96.    that more and more sites are requiring secure clients for access:
  97.    plain old dialup or insecure Telnet or FTP simply can't be used any
  98.    more.
  99.    
  100.    Kermit software has offered secure connections since 1998. This
  101.    document presents the security methods embodied in [36]C-Kermit 8.0
  102.    and [37]Kermit 95 2.00, which include:
  103.    
  104.      * Kerberos([38]TM) IV and V
  105.      * Secure Remote Password([39]TM)(SRP)
  106.      * Secure Sockets Layer(SSL)/Transport Layer Security(TLS)
  107.      * Secure Shell ([40]TM) (SSH) ([41]TM) v1 and v2 (built into K95,
  108.        external in C-Kermit)
  109.      * Microsoft NT LAN Manager (NTLM, K95 only)
  110.        
  111.    * This is a slight exaggeration; a ever-increasing amount of filtering
  112.    occurs in routers; local networks are increasingly switched rather
  113.    than broadcast, etc.
  114.     ________________________________________________________________________
  115.   
  116.   1.1. Secure Connections
  117.   
  118.    [ [42]Top ] [ [43]Contents ] [ [44]Chapter Contents ] [ [45]Glossary ]
  119.    
  120.    What is a secure connection? A connection is secure if it provides:
  121.    
  122.      * Authentication of the user to the host/service without the
  123.        transmission of the user's password;
  124.      * Authentication of the host to the user;
  125.      * Privacy, through a shared secret that can be used as an end-to-end
  126.        encryption key; and:
  127.      * Integrity: the assurance that the data has not been altered in
  128.        transit.
  129.        
  130.    A secure connection requires two applications, one on each end, that
  131.    support (and can negotiate) a common security method; for example, a
  132.    Telnet client on your desktop and a Telnet server at the remote site,
  133.    both equipped with Kerberos V protocols.
  134.    
  135.    Kermit software supports a variety of connection methods, including
  136.    serial ports, modems, and TCP/IP. Presently, secure connections are
  137.    supported only over TCP/IP connections. Since there are several
  138.    security methods to consider (Kerberos, SSL, ...) and several TCP/IP
  139.    application protocols where they can be used (Telnet, FTP, HTTP, ...),
  140.    and different platforms for the clients and servers (Unix, VMS,
  141.    Windows, OS/2, ...), the possibilities are many.
  142.    
  143.    To complicate matters, every Kermit program can come with or without
  144.    security. Non-secure versions are required by USA export law. Secure
  145.    versions can be built with any combination of the security methods
  146.    listed above: Kerberos IV but not Kerberos V, SRP and SSL/TLS but not
  147.    Kerberos, etc. Kermit 95 has either no security methods built in or
  148.    else all of them. C-Kermit on Unix can have any combination, depending
  149.    on the libraries available on each platform and which ones were
  150.    selected by the builder.
  151.     ________________________________________________________________________
  152.   
  153.   1.2. Internet Protocols
  154.   
  155.    [ [46]Top ] [ [47]Contents ] [ [48]Chapter Contents ] [ [49]Glossary ]
  156.    
  157.    Let's begin by looking at the Internet protocols that Kermit supports
  158.    to see which security options are available for each:
  159.    
  160.    TELNET (Network Virtual Terminal Protocol)
  161.           The Telnet protocol can be used to establish the most secure
  162.           connections with the greatest choice of authentication and
  163.           privacy method. Kermit's Telnet implementation supports
  164.           Kerberos 4, Kerberos 5, Secure Remote Password (SRP), NTLM (K95
  165.           only), and [50]X.509 certificates for client and server
  166.           authentication. Privacy can be accomplished with the Secure
  167.           Sockets Layer (SSL) or Transport Layer Security (TLS) cipher
  168.           suites, or DES, CAST, or 3DES streaming ciphers.
  169.           
  170.    FTP (File Transfer Protocol)
  171.           An FTP client can make secure connections for both the command
  172.           and data channels as described in Internet [51]RFC 2228.
  173.           Kermit's FTP implementation supports Kerberos 4, GSSAPI
  174.           Kerberos 5, SRP, and SSL/TLS.
  175.           
  176.    HTTP (Hyper Text Transfer Protocol)
  177.           HTTP can be used with SSL or TLS to submit requests and receive
  178.           responses in a secure manner as described in [52]RFC 2818.
  179.           
  180.    RLOGIN (Remote Login)
  181.           The Remote Login protocol can be used with Kerberos 4 or 5 to
  182.           make authenticated connections. After authentication the DES
  183.           streaming cipher can be used for privacy.
  184.           
  185.    SSL (Secure Socket Layer) / TLS (Transport Layer Security
  186.           The SSL and TLS protocols can be used by themselves to
  187.           establish a private connection to a host. Authentication of the
  188.           server (and perhaps the client) is performed via exchange and
  189.           verification of [53]X.509 certificates or Kerberos 5
  190.           credentials. Kermit also can make Telnet connections over a
  191.           secure SSL or TLS tunnel.
  192.           
  193.    Kerberos 5 User-to-User
  194.           The Kerberos 5 user-to-user protocol can make authenticated and
  195.           private connections between two end-user operated copies of
  196.           Kermit.
  197.           
  198.    The table below summarizes which security methods Kermit can support
  199.    for each Internet service if those security methods are built in to
  200.    Kermit. If your copy of Kermit supports a particular security method
  201.    for a particular service, you can use it if the server supports the
  202.    same method. You see out which security methods your Kermit program
  203.    supports by giving it the SHOW FEATURES command.
  204.      _________________________________________________________________
  205.    
  206.      Protocol Krb4 Krb5 SSL/TLS SRP SSH NTLM
  207.      Telnet Yes Yes Yes Yes Yes K95
  208.      Rlogin Yes Yes No No No No
  209.      SSL/TLS No Yes Yes No No No
  210.      K5 User-User No Yes No No No No
  211.      FTP Yes Yes Yes Yes No No
  212.      HTTP No No Yes No No No
  213.      Kermit Yes Yes Yes Yes No K95
  214.      SSH No ?? No ?? Yes No
  215.     ________________________________________________________________________
  216.   
  217.   1.3. Authentication
  218.   
  219.    [ [54]Top ] [ [55]Contents ] [ [56]Chapter Contents ] [ [57]Glossary ]
  220.    
  221.    SECTION CONTENTS
  222.  
  223.   1.3.1. [58]Kerberos
  224.   1.3.2. [59]SRP
  225.   1.3.3. [60]NTLM
  226.   1.3.4. [61]X.509 Certificates
  227.  
  228.    AUTHENTICATION is the means by which one party proves its identity to
  229.    to another. The most common authentication method is the familiar
  230.    process of logging in with a username and password. When you do this
  231.    on an insecure network connection, your identity and password are
  232.    transmitted in clear text and can be "sniffed" by anybody who has
  233.    access to any of the components of the network path; for example, by
  234.    anybody who has a PC on a (non-switched) Ethernet network over which
  235.    your information passes.
  236.    
  237.    Furthermore, when you make (say) a Telnet connection to a network, you
  238.    accept the fact the you must authenticate yourself to it, but how do
  239.    you know that the host itself is genuine? In the normal course of
  240.    events, there is no requirement that it authenticate itself to you.
  241.    
  242.    Enter secure authentication. Any secure authentication scheme requires
  243.    central management of identities, as in the Kerberos authentication
  244.    system ([62]Section 1.3.1), X.509 certificates ([63]Appendix III), or
  245.    Secure Remote Password ([64]Section 1.3.2). This type of security is
  246.    best suited for large organizations -- universities, government
  247.    agencies, corporations, hospitals -- that have a full-time
  248.    professional network / security administration staff. The learning
  249.    curve and startup time are significant, but worth the effort. Any
  250.    security method can be breached, so the true measure of its
  251.    effectiveness is its manageability: can breaches be repaired, can
  252.    compromised identities be reclaimed? It is for these reasons that
  253.    Microsoft, Sun, Apple, HP, IBM, and many Linux or BSD vendors are
  254.    increasingly distributing Kerberos 5 as a core part of their operating
  255.    systems.
  256.    
  257.    Unfortunately, the startup costs of a secure authentication system are
  258.    sometimes so daunting that some organizations simply don't bother, and
  259.    instead let users fend for themselves with unsigned public/private key
  260.    pair schemes, such as SSH public key authentication and PGP. The only
  261.    administrative tasks required up front are the installation and/or
  262.    distribution of the required client and server software. This is not a
  263.    secure authentication system; quite the opposite: it bypasses any
  264.    secure authentication / authorization system that might be in place.
  265.    And keys, once compromised, can not be revoked by those responsible
  266.    for the security of the host: a serious consideration since so many
  267.    security keys are stored on insecure disks (e.g. in Windows 9x/ME)
  268.    ripe for picking.
  269.    
  270.     1.3.1. Kerberos
  271.     
  272.    [ [65]Top ] [ [66]Contents ] [ [67]Chapter Contents ] [ [68]Section
  273.    Contents ] [ [69]Glossary ]
  274.    
  275.    Kerberos is a method, developed at Massachusetts Institute of
  276.    Technology (MIT), by which two parties communicating over a TCP/IP
  277.    connection can authenticate each other through a trusted, centrally
  278.    managed third party without sending passwords across the network. The
  279.    Kerberos protocols are defined in Internet RFCs [70]1510, [71]1964,
  280.    and others. You can read more about Kerberos at the following
  281.    websites:
  282.    
  283.      * [72]http://web.mit.edu/kerberos/www/
  284.      * [73]http://nii.isi.edu/info/kerberos/
  285.      * [74]http://nii.isi.edu/publications/kerberos-neuman-tso.html
  286.        
  287.    There are, in fact, two Kerberos protocols: Kerberos IV (4) and
  288.    Kerberos V (5), the latter being the more flexible and secure
  289.    protocol. The two are totally separate and incompatible. Any given
  290.    site might support neither, either one, or both. One of the unique
  291.    benefits associated with the use of Kerberos 5 authentication is its
  292.    Single Sign-On (SSO) capability. This allows a user to enter their
  293.    password once on the local machine, establish a secure connection to a
  294.    second machine and from there establish additional connections without
  295.    requiring the user to enter their password a second time.
  296.    
  297.    When both the client and server support the same version of Kerberos
  298.    (4 or 5), Kerberos authentication with or without encryption can be
  299.    negotiated. A "Kerberized" version of Kermit can make a connection to
  300.    a non-Kerberized host, and a non-Kerberized host can accept a
  301.    connection from a Kerberized version of Kermit, as long as neither
  302.    side is configured to require Kerberos authentication.
  303.    
  304.    Kerberos authentication has been integrated into Telnet, Rlogin, FTP,
  305.    and SSL/TLS as well as many other protocols not supported by Kermit.
  306.    As part of the authentication process a session key is shared by the
  307.    client and server that can be used to encrypt the current session.
  308.    
  309.     1.3.2. SRP
  310.     
  311.    [ [75]Top ] [ [76]Contents ] [ [77]Chapter Contents ] [ [78]Section
  312.    Contents ] [ [79]Glossary ]
  313.    
  314.    Stanford University's Secure Remote Password (SRP) protocol is a
  315.    method by which two parties can mutually authenticate each other in a
  316.    secure manner through a Zero Knowledge Identification system. SRP is
  317.    defined in Internet [80]RFC 2945. You can read more about SRP at the
  318.    following website:
  319.    
  320.   [81]http://www-cs-students.stanford.edu/~tjw/srp/
  321.  
  322.    SRP authentication has been integrated into the Telnet and FTP
  323.    protocol definitions (if not yet into all Telnet and FTP clients and
  324.    servers). As a result of the authentication, a shared secret is
  325.    produced that can be used to encrypt the authenticated session.
  326.    
  327.     1.3.3. NTLM
  328.     
  329.    [ [82]Top ] [ [83]Contents ] [ [84]Chapter Contents ] [ [85]Section
  330.    Contents ] [ [86]Glossary ]
  331.    
  332.    Microsoft NT Lan Manager (NTLM) authentication is implemented in
  333.    Kermit 95 only. Its only use is to authenticate Kermit 95 to Microsoft
  334.    Windows based Telnet services distributed as part of Windows 2000,
  335.    Windows XP Professional, and the NT Services for Unix products. Kermit
  336.    95 can also use NTLM to authenticate incoming Telnet sessions when it
  337.    is running under Windows NT/2000/XP. When running under Windows
  338.    95/98/98SE/ME, Kermit 95 can only be an authenticating client.
  339.    
  340.    NTLM does not negotiate a shared secret and cannot be used to
  341.    establish encrypted sessions. Therefore, connections made with NTLM
  342.    are not considered secure although it is definitely better to use NTLM
  343.    authentication than it is to transmit a password in clear text. NTLM
  344.    is a proprietary protocol considered to be a trade secret by
  345.    Microsoft. When establishing connections with another Kermit 95
  346.    configured to accept incoming connections, Kermit 95 can negotiate
  347.    NTLM over a SSL/TLS session. Security is then provided by SSL/TLS
  348.    while authentication is performed with NTLM.
  349.    
  350.     1.3.4. X.509 Certificates
  351.     
  352.    [ [87]Top ] [ [88]Contents ] [ [89]Chapter Contents ] [ [90]Section
  353.    Contents ] [ [91]Glossary ]
  354.    
  355.    When SSL/TLS is used to provide security, authentication of the server
  356.    and optionally the client can be performed using [92]X.509 Public Key
  357.    Certificates. Certificates are used to exchange a public key for use
  358.    in establishing an encrypted connection and can be verified against a
  359.    known trusted Root Certificate and a Certificate Revocation List (CRL)
  360.    to indicate its authenticity and validity. The contents of the
  361.    certificate can then be used to determine the identity of the remote
  362.    service or the client.
  363.    
  364.    C-Kermit and Kermit 95 provide mechanisms for the customization of the
  365.    certificate to userid mapping.
  366.     ________________________________________________________________________
  367.   
  368.   1.4. Encryption
  369.   
  370.    [ [93]Top ] [ [94]Contents ] [ [95]Chapter Contents ] [ [96]Glossary ]
  371.    
  372.    Export of software incorporating strong encryption is [97]regulated by
  373.    United States law.
  374.    
  375.    SECTION CONTENTS
  376.    
  377.   1.4.1. [98]Telnet
  378.   1.4.2. [99]FTP
  379.   1.4.3. [100]SSL/TLS
  380.   1.4.4. [101]SSH
  381.   1.4.5. [102]HTTP
  382.   1.4.6. [103]Rlogin
  383.  
  384.    ENCRYPTION is the process by which data is encoded to prevent anybody
  385.    from deciphering it except those for whom it is intended. Encryption
  386.    is an essential component of Internet security because of the
  387.    Internet's open architecture; since (in principal) everybody can watch
  388.    your sessions, you have to scramble them to keep them private.
  389.    
  390.    A variety of encryption methods, or algorithms, exists ranging from
  391.    easy to crack to next-to-impossible (but not truly impossible: if the
  392.    data can be decrypted legitimately, it can also be decrypted
  393.    illegitimately given adequate resources). Most modern
  394.    encryption/decryption algorithms use keys as part of the process,
  395.    either provided by the user or obtained automatically from a shared
  396.    secret. For any given algorithm, the longer the key the more secure
  397.    the encryption.
  398.    
  399.    Each application protocol such as Telnet, FTP and HTTP defines its own
  400.    set of protocols for encrypting a session based on the authentication
  401.    method.
  402.    
  403.     1.4.1. Telnet Encryption
  404.     
  405.    [ [104]Top ] [ [105]Contents ] [ [106]Chapter Contents ] [
  406.    [107]Section Contents ] [ [108]Glossary ]
  407.    
  408.    The following encryption algorithms can be negotiated for a Telnet
  409.    session with the Telnet Encryption Option ([109]RFC 2946) when used
  410.    with Kerberos IV, Kerberos V, or Secure Remote Password
  411.    authentication:
  412.    
  413.      * CAST-128 64-bit Cipher Feedback Mode [110]RFC 2950
  414.      * CAST-128 64-bit Output Feedback Mode [111]RFC 2949
  415.      * DES3 64-bit Cipher Feedback Mode [112]RFC 2947
  416.      * DES3 64-bit Output Feedback Mode [113]RFC 2948
  417.      * DES 64-bit Cipher Feedback Mode [114]RFC 2952
  418.      * DES 64-bit Output Feedback Mode [115]RFC 2951
  419.        
  420.    When the Telnet START_TLS option is negotiated, [116]SSL/TLS provides
  421.    encryption services for the Telnet session.
  422.    
  423.     1.4.2. FTP Encryption
  424.     
  425.    [ [117]Top ] [ [118]Contents ] [ [119]Chapter Contents ] [
  426.    [120]Section Contents ] [ [121]Glossary ]
  427.    
  428.    Encryption for FTP sessions depends on the authentication method:
  429.      * Kerberos IV authentication uses DES for encryption.
  430.      * Kerberos V is supported within the GSS-API framework that
  431.        negotiates the encryption algorithm at run-time. The negotiated
  432.        encryption algorithm depends on the implementation of GSSAPI
  433.        available to Kermit.
  434.      * Secure Remote Password authentication may be used with CAST-128,
  435.        3DES, DES, and Blowfish as encryption algorithms. The selected
  436.        algorithm is user configurable.
  437.      * SSL/TLS provides an extensive list of cipher suites for use
  438.        protecting session data.
  439.        
  440.     1.4.3. SSL/TLS Encryption
  441.     
  442.    [ [122]Top ] [ [123]Contents ] [ [124]Chapter Contents ] [
  443.    [125]Section Contents ] [ [126]Glossary ]
  444.    
  445.    Netscape's Secure Sockets Layer (SSL) and its IETF-approved successor,
  446.    Transport Layer Security (TLS), provide for authentication and
  447.    encryption of TCP/IP communications using a combination of public key
  448.    and symmetric cryptographic algorithms. TLS is defined in Internet
  449.    [127]RFC 2246. Traditional authentication of the server (and
  450.    optionally the client) is performed by exchanging ITU-T X.509
  451.    certificate chains (see [128]Appendix 3), that are verified by the
  452.    receiver. Unlike raw public keys, X.509 certificates may be revoked by
  453.    issuing a certificate revocation list (CRL) that is to be checked by
  454.    the receiver during verification of the certificate chain.
  455.    
  456.    Kerberos 5 credentials can be used as an alternative method for
  457.    performing mutual authentication within SSL/TLS sessions ([129]RFC
  458.    2712).
  459.    
  460.    The encryption provided by SSL/TLS is more secure than the encryption
  461.    negotiated by the Telnet Encryption Option. This additional security
  462.    is provided by a combination of the use of longer encryption keys, the
  463.    availability of stronger symmetric cryptographic algorithms, and the
  464.    signing of each transmitted block with a message-digest algorithm.
  465.    
  466.    TLS can be used with Telnet Authentication methods such as Kerberos,
  467.    Secure Remote Password, and NTLM to provide the highest level of data
  468.    privacy with the strongest forms of mutual authentication when TLS
  469.    in-band authentication is not performed.
  470.    
  471.     1.4.4. SSH Encryption
  472.     
  473.    [ [130]Top ] [ [131]Contents ] [ [132]Chapter Contents ] [
  474.    [133]Section Contents ] [ [134]Glossary ]
  475.    
  476.    (to be filled in...)
  477.    
  478.     1.4.5. HTTP Encryption
  479.     
  480.    [ [135]Top ] [ [136]Contents ] [ [137]Chapter Contents ] [
  481.    [138]Section Contents ] [ [139]Glossary ]
  482.    
  483.    Secure HTTP connections use [140]SSL/TLS for encryption.
  484.    
  485.     1.4.6. Rlogin Encryption
  486.     
  487.    [ [141]Top ] [ [142]Contents ] [ [143]Chapter Contents ] [
  488.    [144]Section Contents ] [ [145]Glossary ]
  489.    
  490.    (to be filled in...)
  491.     ________________________________________________________________________
  492.   
  493.   1.5. Integrity
  494.   
  495.    Certain security protocols including SSL/TLS, FTP SRP, FTP
  496.    GSSAPI-Kerberos 5, Kerberos 5 User-to-User, and SSH not only encrypt
  497.    network data streams, but also ensure that they have not been tampered
  498.    with along the way. The integrity algorithms are most often MD4, MD5,
  499.    or SHA-1.
  500.    
  501.    (details to be filled in...)
  502.     ________________________________________________________________________
  503.   
  504.   2. DISCLAIMERS
  505.   
  506.    [ [146]Top ] [ [147]Contents ] [ [148]Glossary ] [ [149]Next ] [
  507.    [150]Previous ]
  508.    
  509.      The statements made with regard to US export law reflect our
  510.      understanding of the situation at this writing, which might change
  511.      subsequently. We expect to update this document, and our website in
  512.      general, in light of any new developments. 
  513.      
  514.    Current US law forbids export of strong encryption software in binary
  515.    form from the USA to all countries except Canada without a license.
  516.    Thus the Kermit Project does not distribute pre-compiled secure
  517.    versions of C-Kermit on the Internet.
  518.    
  519.    Security within Kermit is provided using the underlying services of
  520.    third-party libraries, such as Kerberos or OpenSSL. These libraries
  521.    are not necessarily included with Kermit (they are with the secure
  522.    version of Kermit 95, but not with C-Kermit). If not, they must be
  523.    obtained separately from the sources listed below, in compliance with
  524.    the terms and conditions given at those sites and with United States
  525.    and international law. For an overview of this issue, see (for
  526.    example):
  527.    
  528.   [151]http://www.mozilla.org/crypto-faq.html
  529.  
  530.    Kermit software, when combined with the security libraries listed in
  531.    this document, has been verified to negotiate and conduct
  532.    authenticated and encrypted sessions with Kerberos, SRP, and/or
  533.    SSL/TLS services on Internet hosts at Columbia University and other
  534.    test sites, with Kermit features such as interactive terminal access,
  535.    file transfer, and scripting operating successfully over secure
  536.    connections, with any exceptions noted below.
  537.    
  538.    The Kermit Project does not and can not claim or warrant the external
  539.    Kerberos, SRP, OpenSSL or other third-party modules to be free of
  540.    loopholes or bugs. Authentication via Kerberos, SRP, or X.509
  541.    certificates is not unbreakable. Any encryption method can be broken.
  542.    Any software that is used for authentication or encryption should be
  543.    analyzed for weaknesses, backdoors, bugs, and loopholes by the site
  544.    and/or end user before use.
  545.    
  546.    The Kermit Project and Columbia University make no claim or warranty
  547.    as to any particular level of security achievable by Kermit software
  548.    with any third party security protocol, and may on no account be held
  549.    liable for any damage resulting from its use (a more complete
  550.    statement to this effect is found in the C-Kermit 8.0 license).
  551.    
  552.    Functional limitations:
  553.    
  554.      * Kerberos authentication is available on Telnet, FTP, Rlogin, and
  555.        SSL/TLS secured connections.
  556.      * Secure Remote Password authentication is available only on Telnet
  557.        and FTP connections.
  558.      * NTLM authentication is available only on Windows
  559.        95/98/Me/NT/2000/XP and only on Telnet connections.
  560.      * SSL/TLS may be used as its own connection protocol or on Telnet,
  561.        FTP, and HTTP connections.
  562.      * Kerberos support is not available in Kermit 95 for OS/2 due to
  563.        lack of Kerberos implementations for OS/2.
  564.      * SSH is built in to the Windows version Kermit 95, but C-Kermit
  565.        uses the external ssh program.
  566.        
  567.    [ [152]C-Kermit ] [ [153]C-Kermit 8.0 ] [ [154]Kermit 95 ] [
  568.    [155]Kermit Home ]
  569.     ________________________________________________________________________
  570.   
  571.   3. KERMIT SECURITY USER GUIDE
  572.   
  573.    [ [156]Top ] [ [157]Contents ] [ [158]Glossary ] [ [159]Next ] [
  574.    [160]Previous ]
  575.    
  576.    CHAPTER CONTENTS
  577.    
  578.   3.1. [161]Overview of Security Protocols
  579.   3.2. [162]Security Command List 
  580.   3.3. [163]Making Secure Connections
  581.   3.4. [164]Using Secure Connections
  582.  
  583.    Suppose you work at a company (or are a student or faculty member at a
  584.    university, or otherwised engaged in an organization of some sort)
  585.    that has secure services of the kind you can access with Kermit, such
  586.    as terminal sessions, file transfer, or website management. Before you
  587.    can access the services securely, you have to "tell" Kermit which
  588.    authentication method to use, along with any site-specific parameters,
  589.    and you might also want to say what should happen if the desired type
  590.    of security can't be negotiated.
  591.    
  592.    Bear in mind that you can use only those security methods that are
  593.    offered with the services you will be connecting to. You can't just
  594.    pick any old security method and expect it to work: it takes two to
  595.    tango.
  596.    
  597.    Kermit has all the commands you need to set up secure connections, and
  598.    they are the topic of this rather lengthy chapter. But don't worry: in
  599.    most cases, you'll have to deal with these commands only once, and
  600.    possibly not at all:
  601.      * If your organization has a [165]site or bulk license for Kermit
  602.        95, the network or software license administrators in your
  603.        organization should have set it all up for you in advance.
  604.      * If you are setting up Kermit for your own use within an
  605.        organization's security framework, you'll need to get assistance
  606.        from the network administrators anyway, to find out the pertinent
  607.        connection details.
  608.      * In Kermit 95, there is a security form in the Dialer for any
  609.        secure connections you need to make: fill it once, use it forever.
  610.      * In any case, once you have put together the commands you need, you
  611.        can add them to your Kermit customization file if you want them to
  612.        be in effect every time you start Kermit, or you can make separate
  613.        scripts for each host or organization and use them whenever
  614.        needed.
  615.        
  616.    Therefore, this chapter is more for the system or network or security
  617.    administrator than the typical end user. Given an organization that
  618.    already has a security infrastructure in place, this chapter explains
  619.    the Kermit commands necessary to use it. All the information should be
  620.    here, but if you have trouble finding what you need or putting the
  621.    pieces together, feel free to [166]send us questions by e-mail.
  622.     ________________________________________________________________________
  623.   
  624.   3.1. Overview of Security Protocols
  625.   
  626.    SECTION CONTENTS
  627.    
  628.   3.1.1. [167]Kerberos
  629.   3.1.2. [168]SRP
  630.   3.1.3. [169]NTLM
  631.   3.1.4. [170]SSL/TLS
  632.   3.1.5. [171]SSH
  633.  
  634.   3.1.1. Kerberos Overview
  635.   
  636.    [ [172]Top ] [ [173]Contents ] [ [174]Chapter Contents ] [
  637.    [175]Section Contents ] [ [176]Glossary ]
  638.    
  639.    When making a Kerberized connection, you must first know which
  640.    Kerberos version, 4 or 5, is supported by the host or service you want
  641.    to connect to, and you must be registered in the Kerberos database at
  642.    the host's site. If you're unsure about any of this, contact your site
  643.    administrator.
  644.    
  645.    Before authentication to a specific service (such as Telnet) can
  646.    succeed, you must login to the site's Kerberos Ticket Granting Server.
  647.    Depending on the Kerberos implementation and installation options this
  648.    might be done automatically when you log in to your operating system.
  649.    Otherwise you can do it with external utilities from MIT (such as
  650.    Leash, KRB5, or kinit), or with Kermit's built-in functionality,
  651.    explained in this chapter.
  652.    
  653.    Once a Ticket Granting Ticket (TGT) is acquired, Kermit can use it to
  654.    request additional tickets for each host (service) you wish to connect
  655.    to. These service tickets can be used to authenticate you with the
  656.    host automatically during a specified time interval, after which the
  657.    tickets expire. When authentication is successful, you are logged in
  658.    to the host without having to supply a user ID or password.
  659.    
  660.    Besides providing credentials for use during authentication, the
  661.    service ticket also contains a session key to be used for encrypting
  662.    the session. After the connection is authenticated, Kermit (if the
  663.    necessary encryption capabilities are available) attempts to negotiate
  664.    bidirectional encryption. If encryption is negotiated, it is used in
  665.    one or both directions, depending on what the server agrees to.
  666.    
  667.    When Kerberos V authentication is used, Kermit supports credential
  668.    forwarding by transferring your Ticket Granting Tickets to the host
  669.    that you are connecting to, so you can make additional authenticated
  670.    connections from that host to any others that accept those tickets.
  671.    This provides a single sign-on capability to all the hosts and
  672.    services within the Kerberos realm.
  673.    
  674.    Kerberos 5 authentication is one of the few authentication methods
  675.    that can be used to provide verification of anonymous TLS connections.
  676.    This is taken advantage of in Telnet by negotiating AUTH KRB5 after
  677.    establishing a private connection with the START_TLS option.
  678.    
  679.    Successful operation of Kerberos requires that all machines have their
  680.    dates and times synchronized. Be aware that PC clocks can drift, and
  681.    this can cause authentication failures. Kerberos requires that all
  682.    clocks be synchronized within 5 minutes.
  683.    
  684.   3.1.2. Secure Remote Password (SRP) Overview
  685.   
  686.    [ [177]Top ] [ [178]Contents ] [ [179]Chapter Contents ] [
  687.    [180]Section Contents ] [ [181]Glossary ]
  688.    
  689.    SRP requires no special configuration of the client. When Kermit is
  690.    used to connect to a host that supports SRP, the user name is
  691.    transmitted automatically to the host and then a Password prompt is
  692.    displayed in the Kermit command screen. This indicates that the
  693.    password will not be sent to the host over the communication channel.
  694.    Instead the password is used as part of a negotiation in which
  695.    authentication is either mutual or none at all.
  696.    
  697.    The result of a mutual authentication is a shared secret used to
  698.    generate two different keys for encrypting the incoming and outgoing
  699.    data.
  700.    
  701.    SRP authentication is one of the few authentication methods that can
  702.    be used to provide verification of anonymous TLS connections. The
  703.    Kermit Telnet client takes advantage of this fact by by negotiating
  704.    AUTH SRP after establishing a private connection with the START_TLS
  705.    option.
  706.    
  707.   3.1.3. NTLM Overview
  708.   
  709.    [ [182]Top ] [ [183]Contents ] [ [184]Chapter Contents ] [
  710.    [185]Section Contents ] [ [186]Glossary ]
  711.    
  712.    Microsoft's native authentication method is called (Windows) NT LAN
  713.    Manager, or NTLM. It is implemented in Windows 9x/ME and NT/2000/XP
  714.    and requires no configuration on the part of the user. When K95 is
  715.    used on any Microsoft Windows version, it can be used as an NTLM
  716.    Telnet client to authenticate to Microsoft's NT Services for Unix
  717.    Telnet Server or to a K95 configured to accept incoming connections.
  718.    
  719.    When K95 is used on Windows NT/2000/XP it can be configured to accept
  720.    incoming connections and authenticate NTLM Telnet clients.
  721.    
  722.    NTLM is a weak form of authentication. It provides no shared secret
  723.    and cannot be used as a means of securing a connection with
  724.    encryption.
  725.    
  726.   3.1.4. SSLv3 and TLSv1 Overview
  727.   
  728.    [ [187]Top ] [ [188]Contents ] [ [189]Chapter Contents ] [
  729.    [190]Section Contents ] [ [191]Glossary ]
  730.    
  731.      (Also see [192]Appendix III for an introduction to the concept of
  732.      certificates.) 
  733.      
  734.    Secure Sockets Layer Version 3 (SSLv3) and its successor Transport
  735.    Layer Security Version 1 (TLSv1) ([193]RFC 2246) were originally
  736.    developed for Web browsing. They provide a framework for using
  737.    public-key certificates or Kerberos 5 to negotiate server and
  738.    (optionally) client authentication and bidirectional encryption. The
  739.    encryption provided by SSLv3 and TLSv1 is stronger than that provided
  740.    by the Telnet Encryption option.
  741.    
  742.    SSLv3 and TLSv1 connections may be negotiated in two different ways.
  743.    First, the connection may be SSL/TLS-only, which is used when
  744.    connecting to HTTPS services or SSL/TLS tunnels. SSL/TLS can also be
  745.    negotiated after the connection is established via negotiations
  746.    performed in some other protocol (such as Telnet START_TLS.) Kermit
  747.    supports both methods:
  748.    
  749.      * Pure SSLv3 connections via SET HOST host port /SSL
  750.      * Pure TLSv1 connections via SET HOST host port /TLS
  751.      * SSLv3 connections negotiated by Tim Hudson's Telnet AUTH SSL
  752.        option
  753.      * TLSv1 connections negotiated by the IETF TN3270E Working Group's
  754.        TELNET START_TLS option
  755.      * SSLv3 and TLSv1 connections negotiated with FTP OPEN host port
  756.      * SSLv3 and TLSv1 connections negotiated with HTTP OPEN host port
  757.        
  758.    In their most common use, SSL and TLS negotiations provide the client
  759.    with authentication of the host computer when the host's X.509
  760.    certificate is verified or when Kerberos 5 is used. The client can be
  761.    authenticated with an X.509 certificate issued to the end user, or
  762.    with Kerberos 5, or with one of the supported Telnet authentication
  763.    methods. Even though the data channel is encrypted, the transmission
  764.    of passwords to the host should still be avoided to prevent theft by a
  765.    compromised host.
  766.    
  767.    If certificates are to be verified, the root certificates of the
  768.    certificate authorities (CAs) must be available. If you are not acting
  769.    as your own CA you need a file containing the root certificates that
  770.    were used to sign the certificates belonging to the servers you want
  771.    to authenticate. A compilation of most of the commercial Certificate
  772.    Authority root certificates as extracted from Microsoft Windows XP's
  773.    certificate database is available at:
  774.    
  775.    [194]ftp://kermit.columbia.edu/kermit/c-kermit/ca_certs.pem
  776.  
  777.    Once the file is downloaded, you can tell Kermit where it is with the
  778.    following command ([195]Section 3.2.2.3):
  779.    
  780.   SET AUTH SSL VERIFY-FILE path/ca_certs.pem
  781.  
  782.    When Kermit is acting as an [196]Internet Kermit Service daemon
  783.    (IKSD), client certificates can be used for automatic login. If a
  784.    certificate-to-userid mapping function is provided, the IKSD logs the
  785.    user in automatically if the certificate is verified and the specified
  786.    userid exists. Kermit also supports the use of a ".tlslogin" file that
  787.    allows a certificate to be used to login automatically to an account
  788.    without a certificate-to-userid mapping function. When Kermit receives
  789.    a username via the Telnet New-Environment variable after it has
  790.    received and verified a client certificate, it looks in the home
  791.    directory corresponding to the username for a file called ".tlslogin".
  792.    If the file contains the certificate presented by the client, the
  793.    client is logged in as the requested user without a password. See
  794.    [197]Appendix III for information on certificate to user mapping.
  795.    
  796.    The method for negotiating Tim Hudson's Telnet AUTH SSL option is open
  797.    to a "man-in-the-middle" attack which is capable of disabling the use
  798.    of SSL before the negotiation is begun. It should be used only with:
  799.    
  800.   SET TELNET AUTHENTICATION TYPE SSL
  801.   SET TELOPT AUTHENTICATION REQUIRED
  802.  
  803.    When using IKSD with START_TLS you should create an /etc/iksd.conf
  804.    including Kermit commands that point to the certificate and key files:
  805.    
  806.   set auth tls rsa-cert-file /usr/local/ssl/certs/telnetd-rsa.pem
  807.   set auth tls rsa-key-file  /usr/local/ssl/certs/telnetd-rsa-key.pem
  808.   set auth tls dsa-cert-file /usr/local/ssl/certs/telnetd-dsa.pem
  809.   set auth tls dsa-key-file  /usr/local/ssl/certs/telnetd-dsa-key.pem
  810.  
  811.    as well as the list of acceptable ciphers:
  812.    
  813.   set auth tls cipher 3DES:DSS
  814.  
  815.    If your server certificate was signed by an intermediary certificate
  816.    authority instead of a root, you must provide the full chain of
  817.    intermediary certificates for the client to be able to authenticate
  818.    your server. These certificates can be specified with:
  819.    
  820.   set auth tls rsa-cert-chain-file /usr/local/ssl/certs/telnetd-rsa-chain.pem
  821.   set auth tls dsa-cert-chain-file /usr/local/ssl/certs/telnetd-dsa-chain.pem
  822.  
  823.    The SSL and TLS handshake can be very time-consuming, and therefore
  824.    Kermit can cache your your SSL/TLS sessions. When Kermit is used with
  825.    a peer that supports cached sessions, subsequent connections to the
  826.    same host can be securely established in a fraction of the time
  827.    necessary for the initial connection. This is especially important for
  828.    FTP and HTTP, which can make many connections to the same host during
  829.    during a typical session.
  830.    
  831.    For a list of Telnet servers that support START_TLS see [198]Section
  832.    I.1 of [199]Appendix I. For a list of FTP servers that support AUTH
  833.    SSL and AUTH TLS see [200]Section I.2.
  834.    
  835.   3.1.5. SSH v1 and v2 Overview
  836.   
  837.    [ [201]Top ] [ [202]Contents ] [ [203]Chapter Contents ] [
  838.    [204]Section Contents ] [ [205]Glossary ]
  839.    
  840.    (To be filled in...)
  841.     ________________________________________________________________________
  842.   
  843.   3.2. Security Command List
  844.   
  845.    [ [206]Top ] [ [207]Contents ] [ [208]Chapter Contents ] [
  846.    [209]Glossary ] SECTION CONTENTS
  847.    
  848.   3.2.1. [210]Connection Establishment
  849.   3.2.2. [211]The SET AUTHENTICATION Command
  850.   3.2.3. [212]The AUTHENTICATE Command
  851.   3.2.4. [213]Other Security-Related Commands
  852.  
  853.    The following notation is used in Kermit command syntax descriptions:
  854.    
  855.    KEYWORD
  856.           Command keywords are shown in boldface. These are literal words
  857.           to be used in the command. Alphabetic case does not matter.
  858.           Keywords can be abbreviated to any degree that does not produce
  859.           a conflict with any other keyword that can be used in the same
  860.           position.
  861.           
  862.    parameter
  863.           Parameter names are shown in italics; they are to be replaced
  864.           by an actual value; for example, number might be replaced by
  865.           123, and filename might be replaced by oofa.txt.
  866.           
  867.    [ thing ]
  868.           Any item enclosed in italicized square brackets is optional;
  869.           that is, it can be omitted.
  870.           
  871.    { thing1, thing2, ... }
  872.           Italicized curly braces enclose a list of choices: pick one.
  873.           
  874.    oofa.txt
  875.           Typewriter font is used for computer messages, dialogs, code,
  876.           and filenames.
  877.           
  878.    In all Kermit commands:
  879.    
  880.      * KERBEROS4 can be abbreviated KRB4 or K4
  881.      * KERBEROS5 can be abbreviated KRB5 or K5
  882.        
  883.    Some of Kermit's Kerberos-related commands are rather complex, but
  884.    remember that you don't have to memorize them, or any other Kermit
  885.    commands. Use "?" at any point to feel your way through the command,
  886.    or type HELP for the desired command to see a brief explanation. If
  887.    you would like to have a tutorial in Kermit basics before proceeding,
  888.    please visit:
  889.    
  890.    The C-Kermit Tutorial
  891.           [214]http://www.columbia.edu/kermit/ckututor.html
  892.           
  893.    The Kermit 95 Tutorial
  894.           [215]http://www.columbia.edu/kermit/k95tutor.html
  895.           
  896.    Kermit Script Tutorial and Library
  897.           [216]http://www.columbia.edu/kermit/ckscripts.html
  898.           
  899.    Before you try to make any secure connections, you should check
  900.    whether your version of Kermit has the required capabilities. The SHOW
  901.    FEATURES command lists the security methods that are and are not
  902.    included. In addition the following commands can be used (typically in
  903.    scripts) to check for specific security features:
  904.    
  905.    CHECK KERBEROS
  906.           tells whether your version of Kermit has been built to include
  907.           Kerberos protocol (even if it cannot function on your system).
  908.           Succeeds if Kerberos is included, fails if it isn't. The CHECK
  909.           command can be used in scripts like this:
  910.           
  911.   check kerberos
  912.   if success {
  913.       Commands to execute if Kerberos is built in.
  914.   } else {
  915.       Commands to execute if Kerberos is not built in.
  916.   }
  917.  
  918.    CHECK NTLM
  919.           Tells whether your version of Kermit has been built to include
  920.           the NTLM support even if it cannot function on your system, and
  921.           succeeds or fails accordingly.
  922.           
  923.    CHECK SRP
  924.           Tells whether your version of Kermit has been built to include
  925.           SRP protocols. Succeeds or fails accordingly.
  926.           
  927.    CHECK SSL/TLS
  928.           Tells whether your version of Kermit has been built to include
  929.           SSL/TLS (even if it cannot function on your system). Succeeds
  930.           or fails accordingly.
  931.           
  932.    IF AVAILABLE ENCRYPTION command
  933.           Executes the command if session encryption is available in your
  934.           version of Kermit (e.g. in K95 if the K95CRYPT.DLL file is
  935.           installed on your PC). Example:
  936.           
  937.   if available encryption set telnet encryption type cast128_cfb64
  938.  
  939.    IF AVAILABLE KERBEROS4 command
  940.           Executes the command if Kerberos 4 is available in your version
  941.           of Kermit (e.g. if the Kerberos 4 DLLs are installed on your
  942.           PC).
  943.           
  944.    IF AVAILABLE KERBEROS5 command
  945.           Executes the command if Kerberos 5 is available in your version
  946.           of Kermit.
  947.           
  948.    IF AVAILABLE NTLM command
  949.           Executes the command if Microsoft NT LAN Manager protocol is
  950.           available in your version of Kermit.
  951.           
  952.    IF AVAILABLE SRP command
  953.           Executes the command if Secure Remote Password protocol is
  954.           available in your version of Kermit.
  955.           
  956.    IF AVAILABLE { SSL, TLS } command
  957.           Executes the command if SSL/TLS protocol is available in your
  958.           version of Kermit.
  959.     ________________________________________________________________________
  960.   
  961.   3.2.1. Connection Establishment
  962.   
  963.    [ [217]Top ] [ [218]Contents ] [ [219]Chapter Contents ] [
  964.    [220]Section Contents ] [ [221]Glossary ]
  965.    
  966.    SUBSECTION CONTENTS
  967.    
  968.   3.2.1.1. [222]Making Secure Telnet Connections
  969.   3.2.1.2. [223]Making Secure FTP Connections
  970.   3.2.1.3. [224]Making Secure HTTP Connections
  971.  
  972.     3.2.1.1. Secure TELNET Connections
  973.     
  974.    [ [225]Top ] [ [226]Contents ] [ [227]Chapter Contents ] [
  975.    [228]Section Contents ] [ [229]Subsection Contents ] [ [230]Glossary ]
  976.    
  977.    The Telnet protocol is one of the most flexible protocols ever used on
  978.    computer networks, and therefore can be somewhat complicated when its
  979.    advanced options come into play. Kermit has commands to manage every
  980.    aspect of the Telnet connection. Kermit's Telnet engine and related
  981.    commands are thoroughly described in the Kermit Telnet Reference:
  982.    
  983.   [231]http://www.columbia.edu/kermit/telnet.html
  984.  
  985.    (which you should read if you're not familiar with Kermit's Telnet
  986.    client). This section focuses on Telnet-related commands for making
  987.    secure connections.
  988.    
  989.    Four Telnet Options can be negotiated between a Telnet client and
  990.    server that affect secure connections: AUTH, ENCRYPT, START_TLS, and
  991.    FORWARD_X. When people talk about Telnet not being secure they are
  992.    referring to Telnet clients and servers that can't negotiate any of
  993.    these four options (because they have not been coded to do so). That
  994.    does not mean that secure Telnet clients (such as Kermit) and servers
  995.    ([232]Appendix I) are not readily available.
  996.    
  997.    Telnet sessions always begin in an insecure state. Only after the
  998.    initial negotiations are complete can the session be secured. Security
  999.    in Telnet can be established using many combinations of Telnet Options
  1000.    and authentication and encryption methods.
  1001.    
  1002.    The AUTH option negotiates whether authentication is to be used for
  1003.    the current session, and if so, which type of authentication. The
  1004.    authentication type is determined by the server offering an ordered
  1005.    list of types and the client choosing the most preferred type that it
  1006.    supports. Most forms of authentication generate a shared secret that
  1007.    can be used with the ENCRYPT option for privacy. The How and Encrypt
  1008.    flags specify an authentication mode and whether encryption is
  1009.    required for this connection. The AUTH option can be negotiated with
  1010.    either the START_TLS or the ENCRYPT option, but not both.
  1011.    
  1012.    The following commands control Kermit's Telnet security negotiation
  1013.    policies and procedures:
  1014.    
  1015.    SET TELOPT [ { /CLIENT, /SERVER } ] AUTHENTICATION { ACCEPTED,
  1016.           REFUSED, REQUESTED, REQUIRED }
  1017.           Tells Kermit to ACCEPT or REFUSE authentication bids, or
  1018.           actively REQUEST authentication. REQUIRED refuses and closes
  1019.           the connection if authentication is not successfully negotiated
  1020.           when either making or accepting connections. The default is
  1021.           REQUESTED.
  1022.           
  1023.    SET TELNET AUTHENTICATION TYPE { AUTOMATIC, KERBEROS4, KERBEROS5,
  1024.           NTLM, SRP, SSL, NONE }
  1025.           AUTOMATIC is the default. Available options can vary depending
  1026.           on the features Kermit was built to support and the operating
  1027.           system configuration; type "set telnet auth type ?" for a list
  1028.           (Hint: keywords in Kermit commands can be abbreviated).
  1029.           
  1030.         When Kermit is the Telnet client:
  1031.                 AUTOMATIC allows the host to choose the preferred type of
  1032.                 authentication. NONE instructs Kermit to refuse all
  1033.                 authentication methods when the authentication option is
  1034.                 negotiated. A list of one or more other values allow a
  1035.                 specific subset of the supported authentication methods
  1036.                 to be used.
  1037.                 
  1038.         When Kermit is the Telnet server:
  1039.                 AUTOMATIC results in available authentication methods
  1040.                 being offered to the Telnet client in the following
  1041.                 order: KERBEROS_V, KERBEROS_IV, SRP, SSL, NTLM.
  1042.                 
  1043.           NONE results in no authentication methods being offered to the
  1044.           Telnet server when the authentication option is negotiated. The
  1045.           preferred method of disabling authentication is with SET TELOPT
  1046.           /SERVER AUTHENTICATION REFUSE.
  1047.           
  1048.           A list of one or more authentication methods specifies the
  1049.           order those methods are to be offered to the telnet client.
  1050.           
  1051.           If you wish to allow NTLM authentication to be used with the
  1052.           Microsoft Windows 2000 or Services for Unix Telnet client you
  1053.           must specify a list with NTLM as the first item in the list. By
  1054.           default, NTLM is the last item in the list because it does not
  1055.           provide any form of data encryption.
  1056.           
  1057.    SET TELNET AUTHENTICATION HOW-FLAG { ANY, MUTUAL, ONE-WAY }
  1058.           Specifies which values for the HOW-FLAG should be accepted as a
  1059.           client or offered as a server. The default is ANY.
  1060.           
  1061.    SET TELNET AUTHENTICATION ENCRYPT-FLAG { ANY, NONE, TELOPT, TLS }
  1062.           Specifies which values for the ENCRYPT-FLAG should be accepted
  1063.           as a client or offered as a server. The default is ANY.
  1064.           
  1065.    The Telnet protocol ENCRYPT option is used to negotiate whether
  1066.    streaming ciphers are to be used to protect the privacy of the
  1067.    connection, and if so, which encryption type to use in each direction.
  1068.    The encryption type is determined by each side offering the list of
  1069.    types it can use to receive data. Then the sender chooses the first
  1070.    type that it supports from the list. The ENCRYPT option cannot be
  1071.    negotiated without the AUTH option. Whenever both START_TLS and
  1072.    ENCRYPT are both available, START_TLS is used since TLS provides both
  1073.    privacy and integrity to the data stream.
  1074.    
  1075.    SET TELOPT [ { /CLIENT, /SERVER } ] ENCRYPTION { ACCEPTED, REFUSED,
  1076.           REQUESTED, REQUIRED } { ACCEPTED, REFUSED, REQUESTED, REQUIRED
  1077.           }
  1078.           The first parameter specifies the Kermit-to-peer state. The
  1079.           second parameter specifies the peer-to-Kermit state. The
  1080.           default is ACCEPTED REQUESTED: Kermit accepts encryption if
  1081.           offered, and requests it in case it is not offered.
  1082.           
  1083.    SET TELNET ENCRYPTION TYPE { AUTOMATIC, CAST128_CFB64, CAST128_OFB64,
  1084.           CAST5_40_CFB64, CAST5_40_OFB64, DES_CFB64, DES_OFB64,
  1085.           DES3_CFB64, DES3_OFB64, NONE }
  1086.           AUTOMATIC allows the host to choose the preferred type of
  1087.           encryption. Other values allow a specific encryption method to
  1088.           be specified. AUTOMATIC is the default. The list of options
  1089.           varies depending on the encryption types selected when Kermit
  1090.           was compiled. An encryption method can be used only if there is
  1091.           enough key data available. Kerberos 4 can use only DES
  1092.           encryption because it provides a shared secret just 56 bits in
  1093.           length.
  1094.           
  1095.    The START_TLS option negotiates whether the current session is to be
  1096.    protected by Transport Layer Security (TLS), the same protocol used to
  1097.    secure all of the HTTP Web sites on the Internet. TLS uses X.509
  1098.    certificates or Kerberos 5 credentials to authenticate the server and
  1099.    optionally authenticate the client.
  1100.    
  1101.    START_TLS can be used with AUTH to allow Kerberos, Secure Remote
  1102.    Password, or other authentication methods to be used to authenticate
  1103.    the client. START_TLS can not be used with the ENCRYPT option. Nor is
  1104.    there any need to since the protection provided by TLS is stronger
  1105.    than all of the streaming ciphers supported by the ENCRYPT option.
  1106.    
  1107.    SET TELOPT [ { /CLIENT, /SERVER } ] START_TLS { ACCEPTED, REFUSED,
  1108.           REQUESTED, REQUIRED }
  1109.           ACCEPT or REFUSE a request to negotiate TLS, or actively
  1110.           REQUEST that TLS be negotiated. REQUIRED refuses and closes the
  1111.           connection if the peer refuses to negotiate TLS or the TLS
  1112.           negotiations end in failure. ACCEPTED by default when a client.
  1113.           REQUESTED by default when a server.
  1114.           
  1115.    After the Telnet session is established and protected, it is possible
  1116.    to use it to protect the data associated with X Windows System clients
  1117.    started on the remote host via the Telnet session. The FORWARD_X
  1118.    option is used to negotiate and implement the protection of X Windows
  1119.    Systems data.
  1120.    
  1121.    SET TELOPT [ { /CLIENT } ] FORWARD_X { ACCEPTED, REFUSED, REQUESTED,
  1122.           REQUIRED }
  1123.           ACCEPT or REFUSE a request to negotiate FORWARD_X, or actively
  1124.           REQUEST that FORWARD_X be negotiated. REQUIRED refuses and
  1125.           closes the connection if the peer refuses to negotiate
  1126.           FORWARD_X or the FORWARD_X negotiations end in failure.
  1127.           ACCEPTED by default when a client. Kermit does not support
  1128.           FORWARD_X when it is a server.
  1129.           
  1130.    After a Telnet session is authenticated and protected it is possible
  1131.    to forward the credentials used to authenticate the session to the
  1132.    host. When credentials are forwarded to the host you do not need to
  1133.    enter your password when making additional connections from it. This
  1134.    is referred to as Single Sign-On. Credentials forwarding is currently
  1135.    only supported when the authentication method is Kerberos 5.
  1136.    
  1137.    SET TELNET AUTHENTICATION FORWARDING { ON, OFF }
  1138.           When Kermit is the client, set this to ON to forward
  1139.           forwardable Kerberos V Ticket Granting Tickets to the host
  1140.           after authentication is complete, so you can make additional
  1141.           authenticated connections from there. When Kermit is the
  1142.           server, set this to ON to accept forwardable Kerberos V TGTs
  1143.           from the client. OFF by default.
  1144.           
  1145.    When establishing a secure connection there are potentially three
  1146.    usernames associated with the connection: the name of the user on the
  1147.    local machine; the name under which the user authenticates (the
  1148.    Kerberos principal name or X.509 certificate name); and the name the
  1149.    user wants to login as. The login name can be set with either of the
  1150.    following commands:
  1151.    
  1152.    SET TELNET ENVIRONMENT USER name
  1153.           
  1154.    SET LOGIN USERID name
  1155.           If a name is given, it sent to host during Telnet negotiations;
  1156.           if this switch is given but the string is omitted, no user ID
  1157.           is sent to the host. If this command is not given, your current
  1158.           USERID value, \v(userid), is sent. When a userid is sent to the
  1159.           host it is a request to login as the specified user.
  1160.           
  1161.    All forms of authentication rely on some secret information that only
  1162.    the user (or service) being authenticated knows or has in their
  1163.    possession. Before Kermit can authenticate as the user it must acquire
  1164.    this secret information. This is usually done by prompting the user
  1165.    for the necessary information at the time of authentication. But what
  1166.    if you need to automate the process? The SET LOGIN PASSWORD command
  1167.    can be used to specify the password to Kermit prior to establishing
  1168.    the connection. However, we strongly advise that this command be used
  1169.    in a script that prompts for the password and then establishes the
  1170.    automated connection later. Storing a password in a script file
  1171.    defeats all of the hard work you have done to secure your connections.
  1172.    
  1173.    An NTLM user ID consists of both a DOMAIN and a username. This is set
  1174.    in Kermit as SET LOGIN USER DOMAIN\\username due to the use of
  1175.    backslash (\) as the command quote character in Kermit's command
  1176.    language.
  1177.    
  1178.    SET LOGIN PASSWORD password
  1179.           If a password is given, it is treated as the password to be
  1180.           used (if required) by any Telnet Authentication protocol
  1181.           (Kerberos Ticket retrieval, Secure Remote Password (SRP), or
  1182.           X.509 certificate private key decryption). If no password is
  1183.           specified a prompt is issued to request the password if one is
  1184.           required for the negotiated authentication method.
  1185.           
  1186.    If things go wrong when establishing a secure connection it is useful
  1187.    to be able to watch the telnet negotiations. Even when things go
  1188.    smoothly it can be fun to watch all of the action.
  1189.    
  1190.    SET TELNET DEBUG ON
  1191.           Displays all TELNET negotiations in full detail.
  1192.       ______________________________________________________________________
  1193.     
  1194.     3.2.1.2. Secure FTP Connections
  1195.     
  1196.    [ [233]Top ] [ [234]Contents ] [ [235]Chapter Contents ] [
  1197.    [236]Section Contents ] [ [237]Subsection Contents ] [ [238]Glossary ]
  1198.    
  1199.    C-Kermit 8.0 and Kermit 95 2.00 provide support for authenticated and
  1200.    encrypted file transfers using Kerberos 4, GSSAPI-Kerberos 5, Secure
  1201.    Remote Password (SRP), Secure Sockets Layer (SSL), and Transport Layer
  1202.    Security (TLS).
  1203.    
  1204.    Complete details on how to use the FTP support can be found at the
  1205.    [239]Kermit website. Here we explain how to make secure FTP
  1206.    connections (server willing) with the FTP OPEN command:
  1207.    
  1208.    FTP [ OPEN [ { /SSL, /TLS } ] ] hostname [ port ] [ switches ]
  1209.           Opens a connection to the FTP server on the given host. The
  1210.           default TCP port is 21 (or 990 if /SSL or /TLS are specified),
  1211.           but a different port number can be supplied if necessary. /SSL
  1212.           or /TLS should be used if the FTP daemon is accessed through an
  1213.           SSL Proxy Server. Optional switches are:
  1214.           
  1215.         /ANONYMOUS
  1216.                 Logs you in anonymously.
  1217.                 
  1218.         /USER:text
  1219.                 Supplies the given text as your username.
  1220.                 
  1221.         /PASSWORD:text
  1222.                 Supplies the given text as your password. If you include
  1223.                 a username but omit this switch and the server requires a
  1224.                 password, you are prompted for it.
  1225.                 
  1226.         /ACCOUNT:text
  1227.                 Supplies the given text as your account, if required by
  1228.                 the server.
  1229.                 
  1230.         /ACTIVE
  1231.                 Forces an active (rather than passive) connection.
  1232.                 
  1233.         /PASSIVE
  1234.                 Forces a passive (rather than active) connection.
  1235.                 
  1236.    The following commands configure the use of FTP Security when
  1237.    establishing connections:
  1238.    
  1239.    SET FTP AUTHTYPE list
  1240.           Specifies an ordered list of authentication methods to be
  1241.           attempted when FTP AUTOAUTHENTICATION is ON. The default list
  1242.           is: GSSAPI-KRB5, SRP, KERBEROS_V4, TLS, SSL. If none of the
  1243.           specified methods are supported by the server, an insecure
  1244.           login is used as a fallback. It should be noted that TLS and
  1245.           SSL can be used to secure an anonymous connection.
  1246.           
  1247.    SET FTP AUTOAUTHENTICATION { ON, OFF }
  1248.           Specifies whether or not authentication should be negotiated by
  1249.           the FTP OPEN command. Default is ON.
  1250.           
  1251.    SET FTP AUTOENCRYPTION { ON, OFF }
  1252.           Specifies whether encryption and message integrity (privacy)
  1253.           should be negotiated by the FTP OPEN command. Default is ON.
  1254.           
  1255.    SET FTP AUTOLOGIN { ON, OFF }
  1256.           Tells Kermit whether to try to automatically log you in (using
  1257.           the FTP USER command) during the FTP OPEN command. Default is
  1258.           ON.
  1259.           
  1260.    SET FTP COMMAND-PROTECTION-LEVEL { CLEAR, CONFIDENTIAL, PRIVATE, SAFE
  1261.           }
  1262.           Tells what level of protection is applied to the FTP command
  1263.           channel. CLEAR means no protection at all. CONFIDENTIAL means
  1264.           the messages are encrypted but not integrity protected. PRIVATE
  1265.           means the messages are encrypted and integrity protected. SAFE
  1266.           means the messages are integrity protected but not encrypted.
  1267.           
  1268.    SET FTP CREDENTIAL-FORWARDING { ON, OFF }
  1269.           Specifies whether end-user credentials are to be forwarded to
  1270.           the server if supported by the authentication method. At the
  1271.           moment only GSSAPI-KRB5 supports credentials forwarding.
  1272.           
  1273.    SET FTP DATA-PROTECTION-LEVEL { CLEAR, CONFIDENTIAL, PRIVATE, SAFE }
  1274.           Tells what level of protection is applied to the FTP data
  1275.           channel. The levels are the same as for SET FTP
  1276.           COMMAND-PROTECTION-LEVEL.
  1277.           
  1278.    SET FTP SRP CIPHER cipher
  1279.           Specifies a cipher to be used to encrypt FTP data if SRP
  1280.           security is negotiated. The default cipher is DES3_ECB.
  1281.           
  1282.    SET FTP SRP HASH hash
  1283.           Specifies a hash to be used to integrity protect FTP data if
  1284.           SRP security is negotiated. The default hash is SHA1.
  1285.       ______________________________________________________________________
  1286.     
  1287.     3.2.1.3. Secure HTTP Connections
  1288.     
  1289.    [ [240]Top ] [ [241]Contents ] [ [242]Chapter Contents ] [
  1290.    [243]Section Contents ] [ [244]Subsection Contents ] [ [245]Glossary ]
  1291.    
  1292.    C-Kermit 8.0 and Kermit 95 2.00 provide support for secure HTTP
  1293.    requests via the use of SSL or TLS. Secure connections are established
  1294.    automatically when the destination service name is "https" or the port
  1295.    number is 443. Alternatively, SSL or TLS may be utilized with
  1296.    arbitrary port numbers if you include the appropriate switch in the
  1297.    HTTP OPEN command:
  1298.    
  1299.    HTTP [ switches ] OPEN [ { /SSL, /TLS } ] hostname [ service/port ]
  1300.           Instructs Kermit to open a new connection for HTTP
  1301.           communication with the specified host on the specified port.
  1302.           The default port is "http" (80). If /SSL or /TLS are specified
  1303.           a secure connection is established. If switches are specified,
  1304.           they are applied to all subsequent HTTP actions (GET, PUT, ...)
  1305.           until an HTTP CLOSE command has been executed.
  1306.     ________________________________________________________________________
  1307.   
  1308.   3.2.2. The SET AUTHENTICATION Command
  1309.   
  1310.    [ [246]Top ] [ [247]Contents ] [ [248]Chapter Contents ] [
  1311.    [249]Section Contents ] [ [250]Glossary ]
  1312.    
  1313.    The SET AUTHENTICATION command lets you configure Kermit's
  1314.    authentication methods and set defaults for the [251]AUTHENTICATE
  1315.    command so you don't always have to include all the switches if you
  1316.    give more than one AUTHENTICATE command in a Kermit session.
  1317.    
  1318.    If you always use the same setup, you can put the appropriate SET
  1319.    AUTHENTICATION commands in your Kermit customization file:
  1320.    K95CUSTOM.INI (Windows) or ~/.mykermrc (UNIX).
  1321.    
  1322.   3.2.2.1. SET AUTHENTICATION Commands for Kerberos
  1323.   
  1324.    SET AUTHENTICATION { KERBEROS5 } ADDRESSES { list-of-IP-addresses }
  1325.           When a list of IP addresses is specified, these addresses are
  1326.           added to the contents of Kerberos 5 tickets retrieved via
  1327.           Kermit commands.
  1328.           
  1329.    SET AUTHENTICATION { KERBEROS4, KERBEROS5 } AUTODESTROY { ON-CLOSE,
  1330.           ON-EXIT, NEVER }
  1331.           When ON, Kermit destroys all credentials in the default
  1332.           credentials cache upon Kermit termination. Default is NEVER.
  1333.           
  1334.    SET AUTHENTICATION { KERBEROS4, KERBEROS5 } AUTOGET { ON, OFF }
  1335.           When ON and the protocol is TELNET or FTP, if the host offers
  1336.           Kerberos 4 or Kerberos 5 authentication and Kermit is
  1337.           configured to use that authentication method and there is no
  1338.           TGT, Kermit automatically attempts to retrieve one by prompting
  1339.           for the password (and principal if needed.) Default is ON.
  1340.           
  1341.    SET AUTHENTICATION KERBEROS5 CREDENTIALS-CACHE cache-name
  1342.           Specifies an alternative credentials cache, useful when you
  1343.           need to maintain two or more sets of credentials for different
  1344.           realms or roles. The default is specified by the environment
  1345.           variable KRB5CCNAME or as reported by the Kerberos 5 library.
  1346.           
  1347.    SET AUTHENTICATION { KERBEROS4, KERBEROS5 } CHECK-ADDRESSES { ON, OFF
  1348.           }
  1349.           When ON, Kermit uses the embedded IP address(es) in the ticket
  1350.           to determine validity. When OFF, IP addresses are ignored by
  1351.           Kermit. The default is ON.
  1352.           
  1353.    SET AUTHENTICATION KERBEROS5 FORWARDABLE { ON, OFF }
  1354.           ON specifies that Kerberos 5 credentials should be forwardable
  1355.           to the host. If SET TELNET AUTHENTICATION FORWARDING is ON,
  1356.           forwardable credentials are sent to the host. Default is OFF.
  1357.           
  1358.    SET AUTHENTICATION KERBEROS5 GET-K4-TGT { ON, OFF }
  1359.           ON specifies that Kerberos 4 credentials should be requested
  1360.           each time Kerberos 5 credentials are requested with AUTH
  1361.           KERBEROS5 INIT. The default is OFF.
  1362.           
  1363.    SET AUTHENTICATION KERBEROS4 INSTANCE instance
  1364.           Allows a Kerberos 4 instance to be specified as a default (if
  1365.           needed).
  1366.           
  1367.    SET AUTHENTICATION { KERBEROS4, KERBEROS5 } LIFETIME minutes
  1368.           Specifies the lifetime of the TGTs requested from the KDC. The
  1369.           default is 600 minutes (10 hours).
  1370.           
  1371.    SET AUTHENTICATION KERBEROS5 NO-ADDRESSES { ON, OFF }
  1372.           Kerberos 5 tickets contain a list of all of the IP addresses
  1373.           associated with the computer used to acquire them. This allows
  1374.           the recipient of a ticket to check whether it came from the
  1375.           machine to which it was issued, and makes stolen Kerberos
  1376.           tickets useless. [252]Network Address Translators and other
  1377.           Proxy services have the side effect of changing the IP address
  1378.           from which a connection appears to originate. This causes the
  1379.           IP address check to fail and for Kerberos 5 tickets to be
  1380.           rejected as invalid. When ON, the NO-ADDRESSES command prevents
  1381.           the inclusion of IP addresses in Kerberos 5 tickets retrieved
  1382.           with Kermit's AUTHENTICATE KERBEROS5 INIT command enabling the
  1383.           tickets to be accepted from any host.
  1384.           
  1385.    SET AUTHENTICATION KERBEROS4 PREAUTH { ON, OFF }
  1386.           Allows Kerberos 4 preauthenticated TGT requests to be turned
  1387.           off. The default is ON. Only use if absolutely necessary. We
  1388.           recommend that preauthenticated requests be required for all
  1389.           tickets returned by a KDC to a requestor.
  1390.           
  1391.    SET AUTHENTICATION { KERBEROS4, KERBEROS5 } PRINCIPAL name
  1392.           When Kermit starts, it attempts to set the principal name to
  1393.           that stored in the current credentials cache. If no credential
  1394.           cache exists, the current SET LOGIN USERID value is used. SET
  1395.           LOGIN USERID is set to the operating systems current username
  1396.           when Kermit is started. To force Kermit to prompt the user for
  1397.           the principal name when requesting TGTs, place:
  1398.           
  1399.   SET AUTH K4 PRINCIPAL {}
  1400.   SET AUTH K5 PRINCIPAL {}
  1401.  
  1402.           in the Kermit initialization file or connection script.
  1403.           
  1404.    SET AUTHENTICATION { KERBEROS4, KERBEROS5 } PROMPT PASSWORD prompt
  1405.           Specifies a custom prompt to be used when prompting for a
  1406.           password. The Kerberos prompt strings may contain two "%s"
  1407.           replacement fields. The first %s is replaced by the principal
  1408.           name; the second by the realm.
  1409.           
  1410.    SET AUTHENTICATION { KERBEROS4, KERBEROS5 } PROMPT PRINCIPAL prompt
  1411.           Specifies a custom prompt to be used when prompting for the
  1412.           Kerberos principal name. No %s replacement fields may be
  1413.           included. Kermit prompts for a principal name when retrieving a
  1414.           TGT if the command:
  1415.           
  1416.   SET AUTHENTICATION { KERBEROS4, KERBEROS5 } PRINCIPAL {}
  1417.  
  1418.           has been issued.
  1419.           
  1420.    SET AUTHENTICATION KERBEROS5 PROXIABLE { ON, OFF }
  1421.           When ON, specifies that Kerberos 5 credentials should be
  1422.           proxiable. The default is OFF.
  1423.           
  1424.    SET AUTHENTICATION KERBEROS5 RENEWABLE minutes
  1425.           When minutes is greater than the ticket lifetime a TGT may be
  1426.           renewed with AUTH K5 INIT /RENEW instead of granting a new
  1427.           ticket as long as the ticket is not expired and it's within the
  1428.           renewable lifetime. Default is 0 (zero) minutes.
  1429.           
  1430.    SET AUTHENTICATION { KERBEROS4, KERBEROS5 } REALM name
  1431.           If no default is set, the default realm configured for the
  1432.           Kerberos libraries is used. Abbreviations are accepted.
  1433.           
  1434.    SET AUTHENTICATION { KERBEROS4, KERBEROS5 } SERVICE-NAME name
  1435.           This command specifies the service ticket name used to
  1436.           authenticate to the host when Kermit is used as a client; or
  1437.           the service ticket name accepted by Kermit when it is acting as
  1438.           the host. If no default is set, the default service name for
  1439.           Kerberos 4 is "rcmd" and for Kerberos 5 is "host".
  1440.           
  1441.   3.2.2.2. SET AUTHENTICATION Commands for SRP
  1442.   
  1443.    SET AUTHENTICATION SRP PROMPT PASSWORD text
  1444.           Specifies a custom prompt to be used when prompting for a
  1445.           password. prompt may contain a single instance of "%s" to be
  1446.           replaced by the user's login name.
  1447.           
  1448.   3.2.2.3. SET AUTHENTICATION Commands for SSL/TLS
  1449.   
  1450.    In all of the following commands "SSL" and "TLS" are aliases.
  1451.    
  1452.    SET AUTHENTICATION { SSL, TLS } CIPHER-LIST list-of-ciphers
  1453.           This command applies to both SSL and TLS. A colon-separated
  1454.           list of any of the following (case-sensitive) options is
  1455.           accepted, depending on the options chosen when OpenSSL was
  1456.           compiled:
  1457.           
  1458.         Key Exchange Algorithms:
  1459.                 
  1460.           kRSA: RSA key exchange
  1461.                 
  1462.           kDHr: Diffie-Hellman key exchange (key from RSA cert)
  1463.                 
  1464.           kDHd: Diffie-Hellman key exchange (key from DSA cert)
  1465.                 
  1466.           kEDH: Ephemeral Diffie-Hellman key exchange (temporary key)
  1467.                 
  1468.           kKRB5: Kerberos 5
  1469.                 
  1470.         Authentication Algorithm:
  1471.                 
  1472.           aNULL: No authentication
  1473.                 
  1474.           aRSA: RSA authentication
  1475.                 
  1476.           aDSS: DSS authentication
  1477.                 
  1478.           aDH: Diffie-Hellman authentication
  1479.                 
  1480.           aKRB5: Kerberos 5
  1481.                 
  1482.         Cipher Encoding Algorithm:
  1483.                 
  1484.           eNULL: No encoding
  1485.                 
  1486.           AES256: 256-bit AES encoding
  1487.                 
  1488.           AES128: 128-bit AES encoding
  1489.                 
  1490.           DES: DES encoding
  1491.                 
  1492.           3DES: Triple DES encoding
  1493.                 
  1494.           RC4: RC4 encoding
  1495.                 
  1496.           RC2: RC2 encoding
  1497.                 
  1498.           IDEA: IDEA encoding
  1499.                 
  1500.         MAC Digest Algorithm:
  1501.                 
  1502.           MD5: MD5 hash function
  1503.                 
  1504.           SHA1: SHA1 hash function
  1505.                 
  1506.           SHA: SHA hash function (should not be used)
  1507.                 
  1508.         Aliases:
  1509.                 
  1510.           ALL: all ciphers
  1511.                 
  1512.           SSLv2: all SSL version 2.0 ciphers (should not be used)
  1513.                 
  1514.           SSLv3: all SSL version 3.0 ciphers
  1515.                 
  1516.           EXP: all export ciphers (40-bit)
  1517.                 
  1518.           EXPORT56: all export ciphers (56-bit)
  1519.                 
  1520.           LOW: all low strength ciphers (no export)
  1521.                 
  1522.           MEDIUM: all ciphers with 128-bit encryption
  1523.                 
  1524.           HIGH: all ciphers using greater than 128-bit encryption
  1525.                 
  1526.           RSA: all ciphers using RSA key exchange
  1527.                 
  1528.           DH: all ciphers using Diffie-Hellman key exchange
  1529.                 
  1530.           EDH: all ciphers using Ephemeral Diffie-Hellman key exchange
  1531.                 
  1532.           ADH: all ciphers using Anonymous Diffie-Hellman key exchange
  1533.                 
  1534.           DSS: all ciphers using DSS authentication
  1535.                 
  1536.           KRB5: all ciphers using Kerberos 5
  1537.                 
  1538.           AES: all ciphers using AES
  1539.                 
  1540.           NULL: all ciphers using no encryption
  1541.                 
  1542.           Each item in the list may include a prefix modifier:
  1543.           
  1544.         "+"
  1545.                 Move cipher(s) to the current location in the list
  1546.                 
  1547.         "-"
  1548.                 Remove cipher(s) from the list (may be added again by a
  1549.                 subsequent list entry)
  1550.                 
  1551.         "!"
  1552.                 Kill cipher from the list (it may not be added again by a
  1553.                 subsequent list entry)
  1554.                 
  1555.           If no modifier is specified the entry is added to the list at
  1556.           the current position. "+" may also be used to combine tags to
  1557.           specify entries such as "RSA+RC4" describes all ciphers that
  1558.           use both RSA and RC4.
  1559.           
  1560.    For example, all available ciphers not including ADH key exchange:
  1561.    
  1562.   ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
  1563.  
  1564.    All algorithms including ADH and export but excluding patented
  1565.    algorithms:
  1566.    
  1567.   HIGH:MEDIUM:LOW:EXPORT56:EXP:ADH:!kRSA:!aRSA:!RC4:!RC2:!IDEA
  1568.  
  1569.    The OpenSSL command:
  1570.    
  1571.   openssl ciphers -v list-of-ciphers
  1572.  
  1573.    may be used to list all of the ciphers and the order described by a
  1574.    specific list-of-ciphers.
  1575.    
  1576.    SET AUTHENTICATION { SSL, TLS } CRL-DIR directory
  1577.           Specifies a directory that contains certificate revocation
  1578.           files, where each file is named by the hash of the certificate
  1579.           issuer name. OpenSSL expects the hash symlinks to be made like
  1580.           this:
  1581.           
  1582.   ln -s crl.pem `openssl crl -hash -noout -in crl.pem`.r0
  1583.  
  1584.           Since all file systems do not have symlinks you can use the
  1585.           following command in Kermit to copy the crl.pem file to the
  1586.           hash file name:
  1587.           
  1588.   copy crl.pem {\fcommand(openssl crl -hash -noout -in crl.pem).r0}
  1589.  
  1590.           This produces a hash based on the issuer field in the CRL such
  1591.           that the issuer field of a Cert may be quickly mapped to the
  1592.           correct CRL.
  1593.           
  1594.           In Kermit 95, the default directory is \v(exedir)crls
  1595.           
  1596.    SET AUTHENTICATION { SSL, TLS } CRL-FILE filename
  1597.           Specifies a file that contains certificate revocations used to
  1598.           reject the validation of certificates.
  1599.           
  1600.           In Kermit 95, the default file is \v(exedir)ca_crls.pem
  1601.           
  1602.    SET AUTHENTICATION { SSL, TLS } DEBUG { ON, OFF }
  1603.           Tells whether debug information should be displayed about the
  1604.           SSL/TLS connection. When DEBUG is ON, the VERIFY command does
  1605.           not terminate connections when set to FAIL-IF-NO-PEER-CERT and
  1606.           a certificate is presented that cannot be successfully
  1607.           verified; instead each error is displayed but the connection
  1608.           automatically continues.
  1609.           
  1610.    SET AUTHENTICATION { SSL, TLS } DH-PARAM-FILE filename
  1611.           Specifies a file containing DH parameters used to generate
  1612.           temporary DH keys. If a DH parameter file is not provided
  1613.           Kermit uses a fixed set of parameters depending on the
  1614.           negotiated key length. Kermit provides DH parameters for key
  1615.           lengths of 512, 768, 1024, 1536, and 2048 bits.
  1616.           
  1617.    SET AUTHENTICATION { SSL, TLS } DSA-CERT-CHAIN-FILE filename
  1618.           Specifies a file containing a DSA certificate chain to be sent
  1619.           along with the DSA-CERT to the peer. This file must only be
  1620.           specified if Kermit is being used as a server and the DSA
  1621.           certificate was signed by an intermediary certificate
  1622.           authority.
  1623.           
  1624.    SET AUTHENTICATION { SSL, TLS } DSA-CERT-FILE filename
  1625.           Specifies a file containing a DSA certificate to be sent to the
  1626.           peer to authenticate the host or end user. The file may contain
  1627.           the matching DH private key instead of using the DSA-KEY-FILE
  1628.           command.
  1629.           
  1630.    SET AUTHENTICATION { SSL, TLS } DSA-KEY-FILE filename
  1631.           Specifies a file containing the private DH key that matches the
  1632.           DSA certificate specified with DSA-CERT-FILE. This command is
  1633.           only necessary if the private key is not appended to the
  1634.           certificate in the file specified by DSA-CERT-FILE.
  1635.           
  1636.    Note: When Kermit is running as an IKSD it cannot support encrypted
  1637.    private keys. If your private key file is encrypted you can use the
  1638.    following command to unencrypt it (provided you know that pass
  1639.    phrase):
  1640.    
  1641.   openssl dsa -in encrypted-key-file -out unencrypted-key-file
  1642.  
  1643.    SET AUTHENTICATION { SSL, TLS } RANDOM-FILE filename
  1644.           Specifies a file containing random data to be used when
  1645.           initializing the Pseudo Random Number Generator (PRNG) engine.
  1646.           This file is overwritten with new random data after the file is
  1647.           read.
  1648.           
  1649.    SET AUTHENTICATION { SSL, TLS } RSA-CERT-CHAIN-FILE filename
  1650.           Specifies a file containing a RSA certificate chain to be sent
  1651.           along with the RSA-CERT to the peer. This file must only be
  1652.           specified if Kermit is being used as a server and the RSA
  1653.           certificate was signed by an intermediary certificate
  1654.           authority.
  1655.           
  1656.    SET AUTHENTICATION { SSL, TLS } RSA-CERT-FILE filename
  1657.           Specifies a file containing a RSA certificate to be sent to the
  1658.           peer to authenticate the host or end user. The file may contain
  1659.           the matching RSA private key instead of using the RSA-KEY-FILE
  1660.           command.
  1661.           
  1662.    SET AUTHENTICATION { SSL, TLS } RSA-KEY-FILE filename
  1663.           Specifies a file containing the private RSA key that matches
  1664.           the RSA certificate specified with RSA-CERT-FILE. This command
  1665.           is only necessary if the private key is not appended to the
  1666.           certificate in the file specified by RSA-CERT-FILE.
  1667.           
  1668.    Note: When Kermit is running as an IKSD it cannot support encrypted
  1669.    private keys. If your private key file is encrypted you can use the
  1670.    following command to unencrypt it (provided you know that pass
  1671.    phrase):
  1672.    
  1673.   openssl rsa -in encrypted-key-file -out unencrypted-key-file
  1674.  
  1675.    SET AUTHENTICATION { SSL, TLS } VERBOSE { ON, OFF }
  1676.           Specifies whether information about the authentication (the
  1677.           certificate chain) should be displayed when making a
  1678.           connection.
  1679.           
  1680.    SET AUTHENTICATION { SSL, TLS } VERIFY { NO, PEER-CERT,
  1681.           FAIL-IF-NO-PEER-CERT }
  1682.           Specifies whether certificates should be requested from the
  1683.           peer; whether they should be verified when they are presented;
  1684.           and whether they should be required. When set to NO (the
  1685.           default for IKSD), Kermit does not request that the peer send a
  1686.           certificate and if one is presented it is ignored. When set to
  1687.           PEER-CERT (the default when not IKSD), Kermit requests a
  1688.           certificate be sent by the peer. If the certificate is
  1689.           presented, it is verified. Any errors during the verification
  1690.           process result in queries to the end user. When set to
  1691.           FAIL-IF-NO-PEER-CERT, Kermit asks the peer to send a
  1692.           certificate. If the certificate is not presented or fails to
  1693.           verify successfully, the connection is terminated without
  1694.           querying the user.
  1695.           
  1696.           If an anonymous cipher (i.e., ADH) is desired the NO setting
  1697.           must be used; otherwise the receipt of the peer certificate
  1698.           request is interpreted as a protocol error and the negotiation
  1699.           fails.
  1700.           
  1701.           If you wish to allow the peer to authenticate using either an
  1702.           X.509 certificate to userid mapping function or via use of a
  1703.           ~/.tlslogin file, you must use either PEER-CERT or
  1704.           FAIL-IF-NO-PEER-CERT. Otherwise, any certificates that are
  1705.           presented are ignored. In other words, use NO if you want to
  1706.           disable the ability to use certificates to authenticate a peer.
  1707.           
  1708.    SET AUTHENTICATION { SSL, TLS } VERIFY-DIR directory
  1709.           Specifies a directory that contains root CA certificate files
  1710.           used to verify the certificate chains presented by the peer.
  1711.           Each file is named by a hash of the certificate.
  1712.           
  1713.           OpenSSL expects the hash symlinks to be made like this:
  1714.           
  1715.   ln -s cert.pem `openssl x509 -hash -noout -in cert.pem`.0
  1716.  
  1717.           Since all file systems do not have symlinks you can use the
  1718.           following command in Kermit to copy the cert.pem file to the
  1719.           hash file name:
  1720.           
  1721.   copy cert.pem {\fcommand(openssl x509 -hash -noout -in cert.pem).0}
  1722.  
  1723.           This produces a hash based on the subject field in the cert
  1724.           such that the certificate may be quickly found.
  1725.           
  1726.           In Kermit 95, the default directory is \v(exedir)certs
  1727.           
  1728.    SET AUTHENTICATION { SSL, TLS } VERIFY-FILE file
  1729.           Specifies a file that contains root CA certificates to be used
  1730.           for verifying certificate chains.
  1731.           
  1732.           In Kermit 95, the default file is \v(exedir)ca_certs.pem
  1733.           
  1734.   3.2.3. The AUTHENTICATE Command (Kerberos Only)
  1735.   
  1736.    [ [253]Top ] [ [254]Contents ] [ [255]Chapter Contents ] [
  1737.    [256]Section Contents ] [ [257]Glossary ]
  1738.    
  1739.    The AUTHENTICATE command obtains or destroys Kerberos tickets and
  1740.    lists information about them. The general format is:
  1741.    
  1742.    AUTHENTICATE { KERBEROS4, KERBEROS5 [ switches ] } action [ switches ]
  1743.           The use of command switches is described in [258]Section 1.5 of
  1744.           the [259]C-Kermit 7.0 Update Notes. The actions are INITIALIZE,
  1745.           DESTROY, and LIST-CREDENTIALS.
  1746.           
  1747.    The AUTHENTICATE command's INITIALIZE option is the most complex of
  1748.    Kermit's security commands, and its format is different for Kerberos 4
  1749.    and Kerberos 5:
  1750.    
  1751.    Kerberos 4:
  1752.           AUTH K4 INITIALIZE [ k4-switches ] [ principal ]
  1753.           
  1754.    Kerberos 5:
  1755.           AUTH K5 [ k5-switches ] { INITIALIZE ..., DESTROY,
  1756.           LIST-CREDENTIALS, ...}
  1757.           
  1758.    AUTHENTICATE K4 INITIALIZE switches (all optional):
  1759.           
  1760.         /INSTANCE:name
  1761.                 Allows an Instance to be specified (see Glossary).
  1762.                 
  1763.         /LIFETIME:number
  1764.                 Specifies the requested lifetime in minutes for the
  1765.                 ticket. If no lifetime is specified, 600 minutes is used.
  1766.                 If the lifetime is greater than the maximum supported by
  1767.                 the ticket granting service, the resulting lifetime is
  1768.                 shortened accordingly.
  1769.                 
  1770.         /NOT-PREAUTH
  1771.                 Instructs Kermit to send a ticket granting ticket (TGT)
  1772.                 request to the KDC without any preauthentication data.
  1773.                 
  1774.         /PASSWORD:string
  1775.                 Allows the inclusion of a password in a script file. If
  1776.                 no /PASSWORD switch is included, you are prompted on a
  1777.                 separate line. The password switch is provided for use by
  1778.                 automated scripts. However, we strongly recommend that it
  1779.                 not be used because clear-text passwords are easily
  1780.                 compromised.
  1781.                 
  1782.         /PREAUTH
  1783.                 Instructs Kermit to send a preauthenticated ticket
  1784.                 granting ticket (TGT) request to the KDC instead of a
  1785.                 plaintext request. The default when supported by the
  1786.                 Kerberos libraries.
  1787.                 
  1788.         /REALM:name
  1789.                 Allows an alternative Realm to be specified (see
  1790.                 [260]Glossary).
  1791.                 
  1792.    The Kerberos 4 principal format is:
  1793.    
  1794.   userid[.instance[.instance]]@[realm]
  1795.  
  1796.    but can be omitted if it is the same as your username or SET LOGIN
  1797.    USERID value on the client system.
  1798.    
  1799.    AUTHENTICATE K5 INITIALIZE switches (all optional):
  1800.           
  1801.         /ADDRESSES:list-of-ip-addresses
  1802.                 Specifies a list of IP addresses that should be placed in
  1803.                 the Ticket Granting Ticket in addition to the local
  1804.                 machine addresses.
  1805.                 
  1806.         /FORWARDABLE
  1807.                 Requests forwardable tickets.
  1808.                 
  1809.         /KERBEROS4
  1810.                 Instructs Kermit to get Kerberos 4 tickets in addition to
  1811.                 Kerberos 5 tickets. If Kerberos 5 tickets are not
  1812.                 supported by the server, a mild warning is printed and
  1813.                 Kerberos 4 tickets are requested.
  1814.                 
  1815.         /LIFETIME:number
  1816.                 Specifies the requested lifetime in minutes for the
  1817.                 ticket. If no lifetime is specified, 600 minutes is used.
  1818.                 If the lifetime is greater than the maximum supported by
  1819.                 the ticket granting service, the resulting lifetime is
  1820.                 shortened.
  1821.                 
  1822.         /NO-ADDRESSES
  1823.                 Instructs Kermit to not include a list of local IP
  1824.                 addresses in the ticket retrieved from the KDC.
  1825.                 
  1826.         /NO-KERBEROS4
  1827.                 Instructs Kermit to not attempt to retrieve Kerberos 4
  1828.                 credentials.
  1829.                 
  1830.         /NOT-FORWARDABLE
  1831.                 Requests non-forwardable tickets.
  1832.                 
  1833.         /NOT-PROXIABLE
  1834.                 Requests non-proxiable tickets.
  1835.                 
  1836.         /PASSWORD:string
  1837.                 Allows the inclusion of a password in a script. If no
  1838.                 password is specified you are prompted for one. The
  1839.                 password switch is provided for use by automated scripts.
  1840.                 However, we strongly recommend that it not be used
  1841.                 because clear-text passwords can be easily compromised.
  1842.                 See Chapter 19 of [261]Using C-Kermit.
  1843.                 
  1844.         /POSTDATE:date-time
  1845.                 Requests a postdated ticket, valid starting at date-time.
  1846.                 Postdated tickets are issued with the invalid flag set,
  1847.                 and need to be fed back to the KDC before use with the
  1848.                 /VALIDATE switch. See [262]Section 1.6 of the
  1849.                 [263]C-Kermit 7.0 Update Notes for acceptable date-time
  1850.                 formats.
  1851.                 
  1852.         /PROXIABLE
  1853.                 Requests proxiable tickets.
  1854.                 
  1855.         /REALM:string
  1856.                 Allows an alternative realm to be specified.
  1857.                 
  1858.         /RENEW
  1859.                 Requests renewal of a renewable Ticket Granting Ticket.
  1860.                 Note that an expired ticket cannot be renewed even if it
  1861.                 is within its renewable lifetime.
  1862.                 
  1863.         /RENEWABLE:number
  1864.                 Requests renewable tickets, with a total lifetime of
  1865.                 number minutes.
  1866.                 
  1867.         /SERVICE:string
  1868.                 Allows a service other than the ticket granting service
  1869.                 to be specified.
  1870.                 
  1871.         /VALIDATE
  1872.                 Requests that the Ticket Granting Ticket in the cache
  1873.                 (with the invalid flag set) be passed to the KDC for
  1874.                 validation. If the ticket is within its requested time
  1875.                 range, the cache is replaced with the validated ticket.
  1876.                 
  1877.    The Kerberos 5 principal format is:
  1878.    
  1879.   userid[/instance][@realm]
  1880.  
  1881.    and can be omitted if it is the same principal as stored in the
  1882.    current ticket cache at the time Kermit started; or the current
  1883.    username if a ticket cache did not exist.
  1884.    
  1885.    Note: Kerberos 5 always attempts to retrieve a Ticket Granting Ticket
  1886.    (TGT) using the preauthenticated TGT request.
  1887.    
  1888.    AUTHORIZE K5 LIST-CREDENTIALS [ switches ]
  1889.           Shows start time, expiration time, service or principal name,
  1890.           plus the following additional information depending the
  1891.           switches:
  1892.           
  1893.         /ADDRESSES
  1894.                 Displays the hostnames and/or IP addresses embedded
  1895.                 within the tickets.
  1896.                 
  1897.         /ENCRYPTION
  1898.                 Displays the encryption used by each ticket (if
  1899.                 applicable):
  1900.                 
  1901.                o DES-CBC-CRC
  1902.                o DES-CBC-MD4
  1903.                o DES-CBC-MD5
  1904.                o DES-CBC-RAW
  1905.                o DES-HMAC-SHA1
  1906.                o DES3-CBC-RAW
  1907.                o DES3-CBC-SHA
  1908.                o DES3-HMAC-SHA1
  1909.                  
  1910.         /FLAGS
  1911.                 provides the following information (if applicable) for
  1912.                 each ticket:
  1913.                 
  1914.                o F - Ticket is Forwardable
  1915.                o f - Ticket was Forwarded
  1916.                o P - Ticket is Proxiable
  1917.                o p - Ticket is a Proxy
  1918.                o D - Ticket may be Postdated
  1919.                o d - Ticket has been Postdated
  1920.                o i - Ticket is Invalid
  1921.                o R - Ticket is Renewable
  1922.                o I - Ticket is the Initial Ticket
  1923.                o H - Ticket has been authenticated by Hardware
  1924.                o A - Ticket has been Pre-authenticated
  1925.                  
  1926.   3.2.4. Other Security-Related Commands
  1927.   
  1928.    [ [264]Top ] [ [265]Contents ] [ [266]Chapter Contents ] [
  1929.    [267]Section Contents ] [ [268]Glossary ]
  1930.    
  1931.    SET TCP ADDRESS [ ip-address ]
  1932.           Specifies the IP address of the computer that C-Kermit is
  1933.           running on. Normally this is not necessary. The exceptions
  1934.           would be if the host is [269]multihomed (e.g. one host pointed
  1935.           to by many IP addresses, or one of many hosts pointed to by a
  1936.           "common" IP address) or has multiple physical network adapters,
  1937.           with a different address for each adapter, AND you want
  1938.           C-Kermit to either (a) accept an incoming TCP connection ("set
  1939.           host *") or (b) get a Kerberos ticket.
  1940.           
  1941.    SET TCP REVERSE-DNS-LOOKUP { ON, OFF }
  1942.           Specifies whether or not a Reverse DNS Lookup should be
  1943.           performed to determine the hostname assigned to the IP address
  1944.           used to connect to the host.
  1945.           
  1946.    For mutual authentication to succeed, the client and the server must
  1947.    agree on the name to be used for the server. It is common for servers
  1948.    to have more than one name. This is especially true for clusters of
  1949.    servers that provide the same function and are referenced by an alias.
  1950.    For example, www.foo.com might be an alias for three machines
  1951.    www-1.foo.com, www-2.foo.com, and www-3.foo.com. If the hosts are
  1952.    configured to use separate credentials for authentication it would be
  1953.    necessary to know which host is actually in use since "www.foo.com" is
  1954.    not equal to "www-1.foo.com".
  1955.    
  1956.    On the other hand, since DNS is not a secure service, using an
  1957.    additional lookup to verify the name associated with a particular IP
  1958.    address increases the susceptibility that the authentication may be
  1959.    forged by an attacker.
  1960.    
  1961.    For the highest level of security, Reverse DNS Lookups should be
  1962.    turned OFF.
  1963.    
  1964.    [ [270]C-Kermit ] [ [271]C-Kermit 8.0 ] [ [272]Kermit 95 ] [
  1965.    [273]Kermit Home ]
  1966.     ________________________________________________________________________
  1967.   
  1968.   3.3. Making Secure Connections
  1969.   
  1970.    [ [274]Top ] [ [275]Contents ] [ [276]Chapter Contents ] [
  1971.    [277]Glossary ]
  1972.    
  1973.    SECTION CONTENTS
  1974.    
  1975.   3.3.1. [278]The SET HOST Command
  1976.   3.3.2. [279]The TELNET Command
  1977.   3.3.3. [280]The RLOGIN Command
  1978.   3.3.4. [281]Making Secure FTP Connections
  1979.   3.3.5. [282]Making Secure HTTP Connections
  1980.   3.3.6. [283]Using Only SSL or TLS
  1981.   3.3.7. [284]Using Kerberos 5 User-to-User Protocol
  1982.  
  1983.    TCP/IP connections established by Kermit are initiated either with the
  1984.    SET HOST command; a protocol-specific command such as TELNET or
  1985.    RLOGIN; or in the case of FTP and HTTP an OPEN command.
  1986.    
  1987.     3.3.1. The SET HOST Command
  1988.     
  1989.    [ [285]Top ] [ [286]Contents ] [ [287]Chapter Contents ] [
  1990.    [288]Section Contents ] [ [289]Glossary ]
  1991.    
  1992.    When using the SET HOST command to establish a secure connection,
  1993.    several switches are available between SET HOST and the hostname, plus
  1994.    a protocol switch at the end:
  1995.    
  1996.    SET HOST [ switches ] hostname-or-address [ service ] [
  1997.           protocol-switch ]
  1998.           Establishes a connection to the specified network host on the
  1999.           currently selected network type. For TCP/IP connections, the
  2000.           default service is TELNET and the default protocol is TELNET.
  2001.           Not all protocols have a default service name.
  2002.           
  2003.    The following SET HOST switches are useful with secure connections:
  2004.    
  2005.    /CONNECT
  2006.           Tells Kermit to enter CONNECT (terminal) mode automatically if
  2007.           the connection is successful.
  2008.           
  2009.    /SERVER
  2010.           Tells Kermit to enter server mode automatically if the
  2011.           connection is successful.
  2012.           
  2013.    /USERID:[name]
  2014.           This switch is equivalent to SET LOGIN USERID or SET TELNET
  2015.           ENVIRONMENT USER . If a string is given, it sent to host during
  2016.           Telnet negotiations; if this switch is given but the string is
  2017.           omitted, no user ID is sent to the host. If this switch is not
  2018.           given, your current USERID value, \v(userid), is sent. When a
  2019.           userid is sent to the host it is a request to login as the
  2020.           specified user.
  2021.           
  2022.    /PASSWORD:[string]
  2023.           This switch is equivalent to SET LOGIN PASSWORD. If a string is
  2024.           given, it is treated as the password to be used (if required)
  2025.           by any Telnet Authentication protocol (Kerberos Ticket
  2026.           retrieval, Secure Remote Password, or X.509 certificate private
  2027.           key decryption.) If no password switch is specified a prompt is
  2028.           issued to request the password if one is required for the
  2029.           negotiated authentication method.
  2030.           
  2031.      The SET HOST protocol-switches used with secure connections are:
  2032.      
  2033.    /RLOGIN
  2034.           Use Rlogin protocol even if this is not an Rlogin port.
  2035.           
  2036.    /TELNET
  2037.           Send initial Telnet negotiations even if this is not a Telnet
  2038.           port.
  2039.           
  2040.    /K4LOGIN
  2041.           Use Kerberos IV klogin protocol even if this is not a klogin
  2042.           port.
  2043.           
  2044.    /EK4LOGIN
  2045.           Use Kerberos IV Encrypted login protocol even if this is not an
  2046.           eklogin port.
  2047.           
  2048.    /K5LOGIN
  2049.           Use Kerberos V klogin protocol even if this is not a klogin
  2050.           port.
  2051.           
  2052.    /EK5LOGIN
  2053.           Use Kerberos V Encrypted login protocol even if this is not an
  2054.           eklogin port.
  2055.           
  2056.    /K5USER2USER
  2057.           Use Kerberos V User to User protocol.
  2058.           
  2059.    /SSL
  2060.           Perform SSL negotiations.
  2061.           
  2062.    /SSL-TELNET
  2063.           Perform SSL negotiations and if successful start Telnet
  2064.           negotiations.
  2065.           
  2066.    /TLS
  2067.           Perform TLS negotiations.
  2068.           
  2069.    /TLS-TELNET
  2070.           Perform TLS negotiations and if successful start Telnet
  2071.           negotiations.
  2072.           
  2073.     3.3.2. The TELNET Command
  2074.     
  2075.      [ [290]Top ] [ [291]Contents ] [ [292]Chapter Contents ] [
  2076.      [293]Section Contents ] [ [294]Glossary ]
  2077.      
  2078.      The TELNET command combines a number of commands related to secure
  2079.      telnet connections into a single interface.
  2080.      
  2081.    TELNET /AUTH:type /ENCRYPT:type /USERID:[name] /PASSWORD:[string] host
  2082.           port
  2083.           The TELNET command is a shortcut for making interactive
  2084.           terminal connections on a TCP/IP network using Telnet protocol.
  2085.           When used for secure connections, Kermit's TELNET command is
  2086.           the equivalent of:
  2087.           
  2088.   SET TELOPT AUTH ...
  2089.   SET TELNET AUTH TYPE ...
  2090.   SET TELOPT ENCRYPT ...
  2091.   SET TELNET ENCRYPT TYPE ...
  2092.   SET LOGIN USERID ...
  2093.   SET LOGIN PASSWORD ...
  2094.   SET HOST /CONNECT host port /TELNET
  2095.  
  2096.           The optional TELNET command switches are:
  2097.           
  2098.         /AUTH:type
  2099.                 Equivalent to SET TELNET AUTH TYPE type and SET TELOPT
  2100.                 AUTH REQUIRED with the following exceptions. If the type
  2101.                 is AUTO, then SET TELOPT AUTH REQUESTED is executed and
  2102.                 if the type is NONE, then SET TELOPT AUTH REFUSED is
  2103.                 executed. If START_TLS is negotiated REQUIRED becomes
  2104.                 REQUESTED.
  2105.                 
  2106.         /ENCRYPT:type
  2107.                 Equivalent to SET TELNET ENCRYPT TYPE type and SET TELOPT
  2108.                 ENCRYPT REQUIRED REQUIRED with the following exceptions.
  2109.                 If the type is AUTO then SET TELOPT AUTH REQUESTED
  2110.                 REQUESTED is executed and if the type is NONE then SET
  2111.                 TELOPT ENCRYPT REFUSED REFUSED is executed. If START_TLS
  2112.                 is negotiated REQUIRED becomes REFUSED.
  2113.                 
  2114.         /USERID:[name]
  2115.                 Equivalent to SET LOGIN USERID name or SET TELNET
  2116.                 ENVIRONMENT USER name. If a string is given, it sent to
  2117.                 host during Telnet negotiations; if this switch is given
  2118.                 but the string is omitted, no user ID is sent to the
  2119.                 host. If this switch is not given, your current USERID
  2120.                 value, \v(userid), is sent. When a userid is sent to the
  2121.                 host it is a request to login as the specified user.
  2122.                 
  2123.         /PASSWORD:[string]
  2124.                 This switch is equivalent to SET LOGIN PASSWORD. If a
  2125.                 string is given, it is treated as the password to be used
  2126.                 (if required) by any Telnet Authentication protocol
  2127.                 (Kerberos Ticket retrieval, Secure Remote Password, or
  2128.                 X.509 certificate private key decryption.) If no password
  2129.                 switch is specified a prompt is issued to request the
  2130.                 password if one is required for the negotiated
  2131.                 authentication method.
  2132.                 
  2133.     3.3.3. The RLOGIN Command
  2134.     
  2135.      [ [295]Top ] [ [296]Contents ] [ [297]Chapter Contents ] [
  2136.      [298]Section Contents ] [ [299]Glossary ]
  2137.      
  2138.      The RLOGIN (Remote Login) protocol is not as flexible as the Telnet
  2139.      protocol and supports no option mechanism. Authentication and
  2140.      privacy are not part of the RLOGIN protocol. When we refer to
  2141.      authenticated and encrypted RLOGIN we are really referring to one
  2142.      of four other protocols derived from RLOGIN: Kerberos 4 Remote
  2143.      Login (K4LOGIN); Kerberos 4 Encrypted Remote Login (EK4LOGIN);
  2144.      Kerberos 5 Remote Login (K5LOGIN); and Kerberos 5 Encrypted Remote
  2145.      Login (EK5LOGIN).
  2146.      
  2147.    RLOGIN /ENCRYPT /KERBEROS4 /KERBEROS5 hostname username
  2148.           The RLOGIN command is a shortcut for making interactive
  2149.           connections. It is the equivalent of specifying:
  2150.           
  2151.   SET LOGIN USERID ...
  2152.   SET HOST /CONNECT hostname service [ protocol-switch ]
  2153.  
  2154.           where the combinations of /ENCRYPT /KERBEROS4 /KERBEROS5 result
  2155.           in the following protocol-switches:
  2156.           
  2157.         /KERBEROS4
  2158.                 means service klogin and protocol k4login
  2159.                 
  2160.         /KERBEROS4 /ENCRYPT
  2161.                 means service eklogin and protocol ek4login
  2162.                 
  2163.         /KERBEROS5
  2164.                 means service klogin and protocol k5login
  2165.                 
  2166.         /KERBEROS5 /ENCRYPT
  2167.                 means service eklogin and protocol ek5login
  2168.                 
  2169.     3.3.4. Making Secure FTP Connections
  2170.     
  2171.      [ [300]Top ] [ [301]Contents ] [ [302]Chapter Contents ] [
  2172.      [303]Section Contents ] [ [304]Glossary ]
  2173.      
  2174.      By default Kermit tries to negotiate a secure authentication method
  2175.      and to obtain private command and data channels. Therefore, all
  2176.      that is normally required to establish a secure FTP session is to
  2177.      issue the FTP OPEN command. If the server to which you are
  2178.      connecting supports a common security mechanism, it is used to
  2179.      secure the session.
  2180.      
  2181.      For example, to establish a secure FTP connection using SRP the
  2182.      following commands could be executed:
  2183.      
  2184.   SET FTP AUTHTYPE SRP
  2185.   SET FTP AUTOAUTHENTICATE ON              ; default setting
  2186.   SET FTP AUTOENCRYPTION ON                ; default setting
  2187.   SET FTP AUTOLOGIN ON                     ; default setting
  2188.   SET FTP SRP CIPHER DES_ECB               ; default setting
  2189.   SET FTP SRP HASH SHA1                    ; default setting
  2190.   SET FTP COMMAND-PROTECTION-LEVEL PRIVATE ; default setting
  2191.   SET FTP DATA-PROTECTION-LEVEL PRIVATE    ; default setting
  2192.   FTP OPEN host /USER:username /PASSWORD:password
  2193.  
  2194.      If the /USER and/or /PASSWORD switches are omitted, the user is
  2195.      prompted for the required fields.
  2196.      
  2197.      For example, to establish a secure FTP connection using
  2198.      GSSAPI-Kerberos 5 the following commands could be executed:
  2199.      
  2200.   SET AUTH KERBEROS5 REALM MY.REALM
  2201.   SET AUTH KERBEROS5 PRINCIPAL my-principal
  2202.   AUTH KERBEROS5 INIT
  2203.   SET FTP AUTHTYPE GSSAPI-KRB5
  2204.   SET FTP AUTOAUTHENTICATE ON              ; default setting
  2205.   SET FTP AUTOENCRYPTION ON                ; default setting
  2206.   SET FTP AUTOLOGIN ON                     ; default setting
  2207.   SET FTP COMMAND-PROTECTION-LEVEL PRIVATE ; default setting
  2208.   SET FTP DATA-PROTECTION-LEVEL PRIVATE    ; default setting
  2209.   FTP OPEN host /USER:username
  2210.  
  2211.      If the /USER switch is omitted, the user is prompted for the name
  2212.      to login as after authentication is performed.
  2213.      
  2214.      Here is an example using TLS to secure the FTP session for an
  2215.      anonymous user:
  2216.      
  2217.   SET AUTH TLS VERIFY-FILE ca-cert.pem
  2218.   SET FTP AUTHTYPE TLS
  2219.   SET FTP AUTOAUTHENTICATE ON              ; default setting
  2220.   SET FTP AUTOENCRYPTION ON                ; default setting
  2221.   SET FTP AUTOLOGIN ON                     ; default setting
  2222.   SET FTP COMMAND-PROTECTION-LEVEL PRIVATE ; default setting
  2223.   SET FTP DATA-PROTECTION-LEVEL PRIVATE    ; default setting
  2224.   FTP OPEN host /ANONYMOUS
  2225.  
  2226.      Here is an example using FTP through an SSL Proxy Server:
  2227.      
  2228.   SET AUTH SSL VERIFY-FILE ca-cert.pem
  2229.   SET FTP AUTOLOGIN ON                     ; default setting
  2230.   SET FTP COMMAND-PROTECTION-LEVEL PRIVATE ; default setting
  2231.   SET FTP DATA-PROTECTION-LEVEL PRIVATE    ; default setting
  2232.   FTP OPEN /SSL host /USER:username /PASSWORD:password
  2233.  
  2234.      If the /USER and/or /PASSWORD switches are omitted, the user is
  2235.      prompted for the required fields.
  2236.      
  2237.     3.3.5. Making Secure HTTP Connections
  2238.     
  2239.      [ [305]Top ] [ [306]Contents ] [ [307]Chapter Contents ] [
  2240.      [308]Section Contents ] [ [309]Glossary ]
  2241.      
  2242.      Here is an example of a secure GET:
  2243.      
  2244.   SET AUTH TLS VERIFY-FILE ca-cert.pem
  2245.   HTTP OPEN host HTTPS
  2246.   HTTP /USER:username /PASSWORD:password GET index.html index.html
  2247.   HTTP CLOSE
  2248.  
  2249.     3.3.6. Using Only SSL or TLS
  2250.     
  2251.      [ [310]Top ] [ [311]Contents ] [ [312]Chapter Contents ] [
  2252.      [313]Section Contents ] [ [314]Glossary ]
  2253.      
  2254.      Secure Sockets Layer (SSL) and Transport Layer Security (TLS)
  2255.      protocols were designed to secure e-commerce transactions (HTTP)
  2256.      over the Internet. Their use as a tunnel protocol is becoming
  2257.      widespread as a means for securing other protocols such as FTP,
  2258.      IMAP, POP3, LDAP, NNTP, and even insecure versions of Telnet (this
  2259.      is frequently done with STunnel: [315]http://www.stunnel.org/.)
  2260.      Kermit provides the ability to establish SSL and TLS connections to
  2261.      transfer data, script HTTP sessions, or use Telnet protocol without
  2262.      the START_TLS option.
  2263.      
  2264.      Kermit provides four protocol-switches for establishing SSL or TLS
  2265.      connections: /SSL, /TLS, /SSL-TELNET, and /TLS-TELNET. Unlike other
  2266.      protocols such as TELNET and RLOGIN there are no standard services
  2267.      (IP ports) assigned to these protocols. Use of these protocols
  2268.      assumes prior knowledge of the ports to connect to on the remote
  2269.      host. There are also no shortcut commands for use with these
  2270.      protocols. Use the SET HOST command as described above when making
  2271.      connections.
  2272.      
  2273.      The [316]SET AUTHENTICATION { SSL, TLS }... commands are used to
  2274.      configure the [317]certificates and authorities, and verification
  2275.      options used during connection establishment.
  2276.      
  2277.      [ [318]STunnel Case Study ]
  2278.      
  2279.     3.3.7. Using Kerberos 5 User-to-User Protocol
  2280.     
  2281.      [ [319]Top ] [ [320]Contents ] [ [321]Chapter Contents ] [
  2282.      [322]Section Contents ] [ [323]Glossary ]
  2283.      
  2284.      The Kerberos 5 authentication implemented in the Telnet protocol is
  2285.      a client to server authentication protocol. It requires that the
  2286.      parties to the authentication be an end user principal and a
  2287.      service principal. The Kerberos 5 User to User protocol is
  2288.      specificly designed to allow two end user principals to
  2289.      authenticate one another. The shared secret generated during the
  2290.      authentication is then used to ensure the privacy of the data
  2291.      transmitted on the connection.
  2292.      
  2293.      There is no shortcut command provided for Kerberos 5 User to User
  2294.      protocol; nor is there a default service. To establish a connection
  2295.      between two Kermit processes using Kerberos 5 User to User
  2296.      protocol:
  2297.      
  2298.      * Each user must have retrieved a valid Kerberos 5 TGT.
  2299.      * One user must issue a SET HOST * port /K5USER2USER command.
  2300.      * One user must issue a SET HOST hostname port /K5USER2USER command.
  2301.        
  2302.      [ [324]C-Kermit ] [ [325]C-Kermit 8.0 ] [ [326]Kermit 95 ] [
  2303.      [327]Kermit Home ]
  2304.       ______________________________________________________________________
  2305.     
  2306.     3.4. Using Secure Connections
  2307.     
  2308.      [ [328]Top ] [ [329]Contents ] [ [330]Chapter Contents ] [
  2309.      [331]Glossary ]
  2310.      
  2311.      Once you have a secure connection, you can use it just like a
  2312.      regular (insecure one). Telnet sessions are Telnet sessions; FTP is
  2313.      FTP. However, encryption and the subsequent decryption of a data
  2314.      stream can result in 10% to 60% reduction in file transfer
  2315.      performance depending on the encryption algorithm. Encrypted data
  2316.      streams are uncompressible, thus reducing throughput on PPP or SLIP
  2317.      connections.
  2318.      
  2319.      When OpenSSL is built with support for ZLIB compression and
  2320.      compressed SSL/TLS connections can be negotiated, the degradation
  2321.      in file transfer performance can be reduced.
  2322.      
  2323.      In Kermit 95, the authentication type and encryption levels are
  2324.      displayed in the terminal-screen status Line as follows:
  2325.      
  2326.      K4 Kerberos IV
  2327.      K5 Kerberos V
  2328.      NTLM   NT LAN Manager
  2329.      SRP Secure Remote Password
  2330.      pp No encryption
  2331.      Ep Encryption to host, plaintext from host
  2332.      pD Plaintext to host, encryption from host
  2333.      ED Encryption both directions
  2334.      SSL Secure Sockets Layer (both directions)
  2335.      TLS Transport Layer Security (both directions)
  2336.      
  2337.      Encrypted sessions become unreadable if even one bit of data is
  2338.      inserted into or deleted from the data stream. One damaged bit
  2339.      results in nine damaged bytes but subsequent bytes remain readable.
  2340.      But since TCP/IP is a reliable transport by definition, none of
  2341.      this should occur.
  2342.      
  2343.      Windows login names are not case-sensitive. However, Unix login
  2344.      names are. If the Unix login name is "fred" but Windows was logged
  2345.      in using the name "Fred", authentication appears to succeed but
  2346.      telnetd closes the connection after Telnet negotiations are
  2347.      complete. There are several solutions to this problem:
  2348.      
  2349.      * Make sure the Windows login name is case identical to the Unix
  2350.        login name. (If Windows has recorded the login in the registry as
  2351.        "Fred" it won't matter if you login to Windows using "fred". The
  2352.        only way to correct this problem is to edit the Registry.)
  2353.      * Use the SET LOGIN USERID name command to set the proper login name
  2354.        before connecting to the telnet server.
  2355.      * Use the SET AUTHENTICATION { KERBEROS4, KERBEROS5 } PRINCIPAL name
  2356.        command to set the proper principal name before connecting to the
  2357.        telnet server.
  2358.      * Specify the remote username in the principal of your AUTHENTICATE
  2359.        Kxxx INITIALIZE command.
  2360.        
  2361.      Kermit adjusts the case of the name if and only if a case
  2362.      insensitive comparison of the SET LOGIN USERID name and the name in
  2363.      the authentication ticket shows no differences.
  2364.      
  2365.      [ [332]C-Kermit ] [ [333]C-Kermit 8.0 ] [ [334]Kermit 95 ] [
  2366.      [335]Kermit Home ]
  2367.     ________________________________________________________________________
  2368.   
  2369.   4. INSTALLATION AND CONFIGURATION
  2370.   
  2371.      [ [336]Top ] [ [337]Contents ] [ [338]Glossary ] [ [339]Appendices
  2372.      ] [ [340]Previous ]
  2373.      
  2374.      This chapter is intended for those who are building secure Kermit
  2375.      programs from source code and/or installing secure versions of
  2376.      Kermit for use within their organization. It presumes that you've
  2377.      read all the previous chapters.
  2378.      
  2379.      CHAPTER CONTENTS
  2380.      
  2381.   4.1. [341]Security in Kermit 95
  2382.   4.2. [342]Security in C-Kermit
  2383.  
  2384.   4.1. Security in Kermit 95
  2385.   
  2386.      Kermit 95 comes precompiled with support for Kerberos 4, Kerberos
  2387.      5, Secure Remote Password (SRP), NT Lan Manager (NTLM)
  2388.      authentication, OpenSSL's SSLv3 and TLSv1, and SSH v1 and v2.
  2389.      
  2390.      SECTION CONTENTS
  2391.      
  2392.   4.1.1. [343]Kerberos
  2393.   4.1.2. [344]SRP
  2394.   4.1.3. [345]NTLM
  2395.   4.1.4. [346]OpenSSL
  2396.   4.1.5. [347]SSH
  2397.   4.1.6. [348]Firewalls
  2398.   4.1.7. [349]Adding Other Security Methods to Kermit 95
  2399.  
  2400.   4.1.1. Kerberos in Kermit 95
  2401.   
  2402.      [ [350]Top ] [ [351]Contents ] [ [352]Chapter Contents ] [
  2403.      [353]Section Contents ] [ [354]Glossary ]
  2404.      
  2405.      Kermit 95 supports Kerberos Telnet Authentication, Kerberos Rlogin,
  2406.      Kerberos FTP, and Kerberos SSL/TLS (K5 only) when any of the
  2407.      following Kerberos IV or Kerberos V implementations are installed
  2408.      on a Windows 95 or Windows NT workstation:
  2409.      
  2410.         MIT Kerberos for Microsoft Operating Systems Release 2.1.1
  2411.                 
  2412.           Supports Kerberos 4 and Kerberos 5 version 1.2.x:
  2413.                 [355]http://web.mit.edu/kerberos/www/
  2414.                 
  2415.         Naval Research Laboratories
  2416.                 
  2417.           Supports Kerberos 5:
  2418.                 [356]ftp://ftp.cmf.nrl.navy.mil/pub/kerberos5/README
  2419.                 
  2420.      When Kerberos IV and/or Kerberos V are installed and the DLLs are
  2421.      located in the PATH, Kermit 95 attempts to negotiate authentication
  2422.      with the host if the host is Kerberized and if you have not
  2423.      instructed Kermit 95 to do otherwise.
  2424.      
  2425.      In addition, if the appropriate encryption patch (obtained from the
  2426.      Kermit Project) is installed, two-way encryption is also negotiated
  2427.      and used if authentication was negotiated. The encryption patch is
  2428.      available WITH EXPORT RESTRICTIONS at:
  2429.      
  2430.   [357]http://www.kermit-project.org/noexport.html
  2431.  
  2432.      Due to the length of the shared secret negotiated by Kerberos 4
  2433.      only 56-bit DES encryption can be used.
  2434.      
  2435.      Per-PC configuration files may or may not be necessary at your
  2436.      installation. If your site's DNS servers supply Kerberos realm
  2437.      information, no configuration files are needed and you can skip to
  2438.      [358]Section 4.1.2.
  2439.      
  2440.   4.1.1.1. Kerberos IV Configuration Files for K95
  2441.   
  2442.      Kerberos IV uses three configuration files in the \WINDOWS
  2443.      directory: LEASH.INI (user settings), KRB.CON and KRBREALM.CON.
  2444.      KRB.CON and KRBREALM.CON are used by Kerberos IV to map your host's
  2445.      domain name to a realm and then to determine the name of the
  2446.      Kerberos server for that realm. As distributed from MIT, these
  2447.      files are set up for MIT's realm, domain, and host information, so
  2448.      if you are not at MIT you'll need to substitute the information for
  2449.      your own site; for example:
  2450.      
  2451. KRB.CON:
  2452.   CC.COLUMBIA.EDU
  2453.   CC.COLUMBIA.EDU kerberos.cc.columbia.edu
  2454.   KERMIT.COLUMBIA.EDU kerberos.cc.columbia.edu
  2455.   COLUMBIA.EDU kerberos.cc.columbia.edu
  2456.   .KERBEROS.OPTION. dns
  2457.  
  2458.      The first line is the default Kerberos IV realm to be used. The
  2459.      subsequent lines list realms and the hostnames to be used to
  2460.      contact the KDC for that realm.
  2461.      
  2462.      The last line is an indicator that DNS can be used to map Realms to
  2463.      KDCs and host names to Realms.
  2464.      
  2465. KRBREALM.CON:
  2466.   .CC.COLUMBIA.EDU CC.COLUMBIA.EDU
  2467.   CC.COLUMBIA.EDU CC.COLUMBIA.EDU
  2468.   .COLUMBIA.EDU CC.COLUMBIA.EDU
  2469.   COLUMBIA.EDU CC.COLUMBIA.EDU
  2470.   .KERMIT.COLUMBIA.EDU CC.COLUMBIA.EDU
  2471.   KERMIT.COLUMBIA.EDU CC.COLUMBIA.EDU
  2472.  
  2473.      Each line specifies either a domain name prefaced with a "." or a
  2474.      host name and the Kerberos IV realm to which it belongs.
  2475.      
  2476.   4.1.1.2. The Kerberos V Configuration File for K95
  2477.   
  2478.      Kerberos V uses a single configuration file, KRB5.CONF (KRB5.INI on
  2479.      Windows). This file must be customized for the domains, realms, and
  2480.      hosts used in your network environment. For example:
  2481.      
  2482. [libdefaults]
  2483.         default_realm = CC.COLUMBIA.EDU
  2484.         default_tkt_enctypes = des-cbc-crc
  2485.         default_tgs_enctypes = des-cbc-crc
  2486.         ticket_lifetime = 600
  2487.         dns_fallback = true
  2488.  
  2489. [domain_realm]
  2490.         .cc.columbia.edu = CC.COLUMBIA.EDU
  2491.         cc.columbia.edu = CC.COLUMBIA.EDU
  2492.         .columbia.edu = CC.COLUMBIA.EDU
  2493.         columbia.edu = CC.COLUMBIA.EDU
  2494.  
  2495. [realms]
  2496.         CC.COLUMBIA.EDU = {
  2497.                 kdc = kerberos.columbia.edu:88
  2498.                 admin_server = kerberos.columbia.edu:749
  2499.                 default_domain = cc.columbia.edu
  2500.                 supported_enctypes = des-cbc-crc:normal des-cbc-crc:v4
  2501.                 supported_keytypes = des:normal des-cbc-crc:v4
  2502.         }
  2503.  
  2504.   4.1.2. Secure Remote Password protocol in Kermit 95
  2505.   
  2506.      [ [359]Top ] [ [360]Contents ] [ [361]Chapter Contents ] [
  2507.      [362]Section Contents ] [ [363]Glossary ]
  2508.      
  2509.      Kermit 95 supports Telnet Authentication via Secure Remote Password
  2510.      protocol without any additional software.
  2511.      
  2512.      In addition, if the appropriate encryption patch (obtained from the
  2513.      Kermit Project) is installed, two-way encryption is also negotiated
  2514.      and used if authentication was negotiated. The encryption patch is
  2515.      available WITH EXPORT RESTRICTIONS at:
  2516.      
  2517.   [364]http://www.kermit-project.org/noexport.html
  2518.  
  2519.      Kermit 95 contains support for authenticating incoming connections
  2520.      using SRP. Unfortunately, there are no Windows based tools for
  2521.      creating the SRP password file. However, once a password and config
  2522.      file are created on Unix they can be copied to Windows. On Windows
  2523.      9x the tpasswd and tpasswd.conf files are stored in the C:\WINDOWS
  2524.      directory. On NT they are stored in %windir%\SYSTEM32\DRIVERS\ETC.
  2525.      
  2526.   4.1.3. NT LAN Manager Authentication in Kermit 95
  2527.   
  2528.      [ [365]Top ] [ [366]Contents ] [ [367]Chapter Contents ] [
  2529.      [368]Section Contents ] [ [369]Glossary ]
  2530.      
  2531.      NTLM authentication is a feature of Windows 95/98, NT, and Windows
  2532.      2000. It is used to authenticate Windows clients to Windows
  2533.      services. Telnet Auth NTLM is implemented in the Microsoft Telnet
  2534.      Daemon that ships with NT Services for Unix and with Windows 2000.
  2535.      
  2536.      Windows 95/98 only contains support for the client whereas NT
  2537.      contains support for both client and server. Kermit 95 can
  2538.      authenticate incoming connections with NTLM when it is executing on
  2539.      NT.
  2540.      
  2541.   4.1.4. OpenSSL support for SSLv3 and TLSv1 in Kermit 95
  2542.   
  2543.      [ [370]Top ] [ [371]Contents ] [ [372]Chapter Contents ] [
  2544.      [373]Section Contents ] [ [374]Glossary ]
  2545.      
  2546.      Kermit 95 supports SSL/TLS security via OpenSSL when the encryption
  2547.      patch (obtained from the Kermit Project) is installed. The
  2548.      encryption patch is available WITH EXPORT RESTRICTIONS at:
  2549.      
  2550.   [375]http://www.kermit-project.org/noexport.html
  2551.  
  2552.      On non-Unix platforms OpenSSL does not define default locations for
  2553.      certificates and revocation lists therefore the appropriate SET
  2554.      AUTH { SSL, TLS } commands must be given (e.g. included in the
  2555.      K95CUSTOM.INI or IKSD.KSC file) before certificate verification to
  2556.      be performed.
  2557.      
  2558.      As of Kermit 95 version 2.00 the default locations are provided as
  2559.      follows:
  2560.      * SET AUTH { SSL, TLS } VERIFY-DIR \v(exedir)certs
  2561.      * SET AUTH { SSL, TLS } VERIFY-FILE \v(exedir)ca_certs.pem
  2562.      * SET AUTH { SSL, TLS } CRL-DIR \v(exedir)crls
  2563.      * SET AUTH { SSL, TLS } CRL-FILE \v(exedir)ca_crls.pem
  2564.        
  2565.      Due to patent licensing restrictions on the IDEA algorithm within
  2566.      the United States, all binaries that the Kermit Project distributes
  2567.      to provide SSL/TLS support for Kermit 95 do not contain IDEA
  2568.      ciphers.
  2569.      
  2570.      See [376]Appendix III if you wish to provide server-side support
  2571.      for authentication of clients using public key certificates.
  2572.      
  2573.   4.1.5. SSH v1 and v2 in Kermit 95
  2574.   
  2575.      [ [377]Top ] [ [378]Contents ] [ [379]Chapter Contents ] [
  2576.      [380]Section Contents ] [ [381]Glossary ]
  2577.      
  2578.      (To be filled in...)
  2579.      
  2580.   4.1.6. Firewalls
  2581.   
  2582.      [ [382]Top ] [ [383]Contents ] [ [384]Chapter Contents ] [
  2583.      [385]Section Contents ] [ [386]Glossary ]
  2584.      
  2585.      The Windows versions of Kermit 95 do not support SOCKS; the OS/2
  2586.      version has built-in support for SOCKS4. NEC distributes a SOCKS5
  2587.      Winsock shim for Windows 9x/NT at:
  2588.      
  2589.   [387]ftp://ftp.nec.co.jp/pub/packages/sotools/
  2590.  
  2591.   4.1.7. Adding Other Security Methods to Kermit 95
  2592.   
  2593.      [ [388]Top ] [ [389]Contents ] [ [390]Chapter Contents ] [
  2594.      [391]Section Contents ] [ [392]Glossary ]
  2595.      
  2596.      Kermit 95 includes a DLL interface for adding new security methods.
  2597.      The DLL can be loaded with the SET NETWORK TYPE command:
  2598.      
  2599.   SET NETWORK TYPE DLL dll-file
  2600.  
  2601.      The connection is made with a SET HOST command:
  2602.      
  2603.   SET HOST command-line
  2604.  
  2605.      where the command-line is passed to the DLL after the normal Kermit
  2606.      quoting rules are applied. A C language skeleton for the DLL is
  2607.      available here:
  2608.      
  2609.   [393]http://www.columbia.edu/kermit/k95dll_c.txt
  2610.     ________________________________________________________________________
  2611.   
  2612.   4.2. Security in C-Kermit
  2613.   
  2614.      [ [394]Top ] [ [395]Contents ] [ [396]Chapter Contents ] [
  2615.      [397]Glossary ]
  2616.      
  2617.      SECTION CONTENTS
  2618.      
  2619.   4.2.1. [398]Kerberos
  2620.   4.2.2. [399]SRP
  2621.   4.2.3. [400]SSL/TLS
  2622.   4.2.4. [401]Shadow Passwords
  2623.   4.2.5. [402]PAM
  2624.   4.2.6. [403]Using External Security Methods with C-Kermit
  2625.  
  2626.      C-Kermit 8.0 can be compiled with support for Kerberos 4, Kerberos
  2627.      5, Secure Remote Password, and OpenSSL's SSLv3 and TLSv1. As of
  2628.      this writing the following combinations of platforms and security
  2629.      protocols are provided in the Makefile distributed with C-Kermit:
  2630.      
  2631.      * aix41+krb5+krb4
  2632.      * aix43gcc+krb5+krb4
  2633.      * aix43gcc+krb5+krb4+openssl
  2634.      * irix6x+krb5
  2635.      * irix65+krb5
  2636.      * linux+krb5
  2637.      * linux+krb5+krb4
  2638.      * linux+srp+gmp
  2639.      * linux+srp+gmp+no-des
  2640.      * linux+srp+gmp-export
  2641.      * linux+srp+gmp+pam
  2642.      * linux+srp
  2643.      * linux+srp+pam
  2644.      * linux+shadow+pam
  2645.      * linux+openssl
  2646.      * linux+openssl+shadow
  2647.      * linux+openssl+zlib+shadow+pam
  2648.      * linux+srp+openssl
  2649.      * linux+krb5+krb4+srp
  2650.      * linux+krb5+krb4+srp+openssl
  2651.      * linux+krb5+krb4+openssl
  2652.      * linux+krb5+krb4+openssl+shadow
  2653.      * linux+krb5+krb4+openssl+zlib+shadow
  2654.      * linux+krb5+krb4+srp-export
  2655.      * linux+krb5+krb4+srp+pam
  2656.      * linux+krb5+krb4+srp+openssl+pam-debug
  2657.      * linux+krb5+krb4+srp+openssl+pam
  2658.      * linux+krb5+krb4+srp+openssl+zlib+pam
  2659.      * linux+krb5+openssl+zlib+shadow+pam
  2660.      * redhat71
  2661.      * redhat71+srp
  2662.      * solaris2x+krb4
  2663.      * solaris2xg+krb4
  2664.      * solaris2xg+openssl+zlib+pam+shadow
  2665.      * solaris2xg+openssl+pam+shadow
  2666.      * solaris2xg+krb5+krb4+openssl+shadow
  2667.      * solaris25+krb4
  2668.      * solaris25g+krb4
  2669.      * solaris25g+krb5+krb4+openssl+shadow
  2670.      * solaris26g+openssl
  2671.      * solaris8g+openssl+zlib+pam+shadow
  2672.      * solaris8g+krb4
  2673.      * sunos41gcc+krb4
  2674.      * sunos41gcc+openssl
  2675.      * sunos41gcc+krb4+openssl
  2676.      * sunos41gcc+krb4+openssl+zlib
  2677.      * sunos41gcc+krb4+srp+openssl+zlib
  2678.      * sunos41gcc+srp+openssl+zlib
  2679.      * uw7ssl
  2680.        
  2681.   4.2.1. Kerberos in C-Kermit 8.0
  2682.   
  2683.      [ [404]Top ] [ [405]Contents ] [ [406]Chapter Contents ] [
  2684.      [407]Section Contents ] [ [408]Glossary ]
  2685.      
  2686.      Kerberos IV and Kerberos V support is available for Unix versions
  2687.      of C-Kermit 8.0. Kerberos support in C-Kermit is provided for both
  2688.      outgoing and incoming connections (SET HOST /SERVER * port /TELNET
  2689.      or the [409]Internet Kermit Service).
  2690.      
  2691.      Kerberized C-Kermit binaries are not available due to export
  2692.      restrictions (see [410]Section 2); you must build your own binary
  2693.      from a combination of Columbia source code and Kerberos libraries
  2694.      from other sources.
  2695.      
  2696.     1. Retrieve a Kerberos 5 1.2.2 or later source code kit from the
  2697.        appropriate site:
  2698.  
  2699.   [411]http://web.mit.edu/kerberos/www/
  2700.   [412]http://web.mit.edu/network/kerberos-form.html
  2701.     2. Choose a Kerberos 4 installation (from MIT) and retrieve a source
  2702.        code kit from the appropriate site:
  2703.  
  2704.   [413]http://web.mit.edu/kerberos/www/
  2705.   [414]http://web.mit.edu/network/kerberos-form.html
  2706.     3. Build and install Kerberos on your system according to the
  2707.        instructions that come with the Kerberos distribution you have
  2708.        chosen.
  2709.     4. Add a new entry to the C-Kermit makefile for your platform that
  2710.        uses "krbmit" as the build target and adds the following to
  2711.        CFLAGS:
  2712.  
  2713.   -DCK_AUTHENTICATION -DCK_KERBEROS
  2714.        
  2715.         For Kerberos 4 include:
  2716.                 -DKRB4 $(K4INC)
  2717.                 
  2718.         For Kerberos 5 include:
  2719.                 -DKRB5 $(K5INC)
  2720.                 
  2721.         For Kerberos 5 with Kerberos 4 compatibility mode:
  2722.                 -DKRB5 -DKRB524 -DKRB4 $(K5INC)
  2723.                 
  2724.         If you desire DES and 3DES encryption include:
  2725.                 -DCK_ENCRYPTION -DCK_DES
  2726.                 
  2727.         Add the appropriate libraries to LIBS. For Kerberos 4 include:
  2728.                 $(K4LIB) -lkrb
  2729.                 
  2730.         For Kerberos 5 include:
  2731.                 $(K5LIB) -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto
  2732.                 
  2733.         For Kerberos 4 compatibility mode with Kerberos 5 include:
  2734.                 $(K5LIB) -ldes425 -lkrb4 -lgssapi_krb5 -lkrb5 -lcom_err
  2735.                 -lk5crypto
  2736.                 
  2737.         The makefile defines the path to the Kerberos header files using
  2738.                 the variables K4INC or K5INC:
  2739.                 -I/usr/kerberos/include
  2740.                 
  2741.         The location of the Kerberos libraries is specified using the
  2742.                 variables K4LIB or K5LIB:
  2743.                 -L/usr/kerberos/lib
  2744.                 
  2745.        The Kerberos header files and libraries are often installed in
  2746.        host specific locations. The values of the K4INC, K5INC, K4LIB,
  2747.        and K5LIB variables can be altered by:
  2748.           + Editing the makefile
  2749.           + Defining new values on the make command line
  2750.           + Exporting the variables to the system environment and
  2751.             specifying the -e on the make command line.
  2752.        Use the "linux+krb5", "linux+krb5+krb4", and "sunos41gcc+krb4"
  2753.        makefile entries as models.
  2754.        
  2755.      Note that the select() version of the CONNECT-command module
  2756.      (ckucns.c) must be used rather than the older fork() based
  2757.      (ckucon.c) version.
  2758.      
  2759.      When C-Kermit 8.0 is built with Kerberos support and installed as
  2760.      an [415]Internet Kermit Service Daemon (IKSD), Kerberos is offered
  2761.      for authenticating incoming connections if there is a valid keytab
  2762.      file providing local access to the key necessary for decrypting
  2763.      messages encoded in the server's key.
  2764.      
  2765.      Note: Due to conflicts between the internal DES implementations
  2766.      used by MIT Kerberos 4 (not the Kerberos 4 compatibility mode
  2767.      provided by Kerberos 5) and OpenSSL, C-Kermit cannot be built to
  2768.      support Kerberos 4 FTP authentication when both OpenSSL and
  2769.      Kerberos 4 are used in combination.
  2770.      
  2771.   4.2.2. Secure Remote Password protocol in C-Kermit
  2772.   
  2773.      [ [416]Top ] [ [417]Contents ] [ [418]Chapter Contents ] [
  2774.      [419]Section Contents ] [ [420]Glossary ]
  2775.      
  2776.      Secure Remote Password (SRP) support is available for Unix versions
  2777.      of C-Kermit 8.0. SRP support in C-Kermit is provided for both
  2778.      outgoing and incoming connections (SET HOST /SERVER * port /TELNET
  2779.      or the Internet Kermit Service).
  2780.      
  2781.      SRP C-Kermit binaries are not available due to export restrictions
  2782.      (see [421]Section 2); you must build your own binary from a
  2783.      combination of Columbia source code and SRP libraries from other
  2784.      sources.
  2785.      
  2786.     1. Retrieve the SRP 1.7.4 source code kit from:
  2787.  
  2788.   [422]http://srp.stanford.edu/srp/
  2789.     2. There are several different methods for configuring the build
  2790.        process of SRP. Two methods are supported for use with C-Kermit.
  2791.        The recommended way is to build SRP using OpenSSL to provide the
  2792.        required big number math and cryptographic functionality. DES/3DES
  2793.        functionality is built into OpenSSL.
  2794.        The second method is to build SRP with the GNU MP library for big
  2795.        number math and use SRP's Krypto library for the cryptographic
  2796.        functionality. If
  2797.        Regardless of which method you decide to use, be sure to read the
  2798.        installation instructions before installing because SRP replaces
  2799.        many standard Unix system files and failure to follow the
  2800.        procedures may leave you locked out of your system.
  2801.     3. Add a new entry to the C-Kermit makefile for your platform that:
  2802.        uses "srpmit" as the build target and adds the following CFLAGS:
  2803.  
  2804.   -DCK_AUTHENTICATION -DCK_SRP $(SRPINC)
  2805.        
  2806.         If you built SRP with OpenSSL add:
  2807.                 $(SSLINC)
  2808.                 
  2809.         If you desire telnet encryption include:
  2810.                 -DCK_ENCRYPTION
  2811.                 
  2812.         For CAST encryption add:
  2813.                 -DCK_CAST
  2814.                 
  2815.         For DES and 3DES encryption add:
  2816.                 -DCK_DES -DLIBDES
  2817.                 
  2818.         Add the appropriate libraries to LIBS. If you built SRP using
  2819.                 OpenSSL:
  2820.                 $(SRPLIB) -lsrp -lkrypto $(SSLLIB) -lcrypto
  2821.                 
  2822.         If you built SRP with GNU MP but without DES/3DES support use:
  2823.                 $(SRPLIB) -lsrp -lgmp -lkrypto
  2824.                 
  2825.         If you built SRP with GNU MP and Eric Young's DES library use:
  2826.                 $(SRPLIB) -lsrp -lgmp -ldes -lkrypto
  2827.                 
  2828.         The makefile defines the path to the SRP header files using the
  2829.                 variable SRPINC:
  2830.                 -I/usr/local/include
  2831.                 
  2832.         The location of the Kerberos libraries is specified using the
  2833.                 variable SRPLIB:
  2834.                 -L/usr/local/lib
  2835.                 
  2836.         The makefile defines the path to the OpenSSL header files using
  2837.                 the variable SSLINC:
  2838.                 -I/usr/local/ssl/include
  2839.                 
  2840.         The location of the OpenSSL libraries is specified using the
  2841.                 variable SSLLIB:
  2842.                 -L/usr/local/ssl/lib
  2843.                 
  2844.        The SRP and OpenSSL header files and libraries are often installed
  2845.        in host specific locations. The values of the SRPINC, SRPLIB,
  2846.        SSLINC, and SSLLIB variables can be altered by:
  2847.           + Editing the makefile
  2848.           + Defining new values on the make command line
  2849.           + Exporting the variables to the system environment and
  2850.             specifying the -e on the make command line.
  2851.        Use the "linux+srp" and "linux+krb5+krb4+srp" makefile entries as
  2852.        models.
  2853.        
  2854.      Note that the select() version of the CONNECT-command module
  2855.      (ckucns.c) must be used rather than the older fork() based
  2856.      (ckucon.c) version.
  2857.      
  2858.      When C-Kermit 8.0 is built with SRP support and installed as an
  2859.      [423]Internet Kermit Service Daemon (IKSD), SRP is offered for
  2860.      authenticating incoming connections.
  2861.      
  2862.   4.2.3. OpenSSL support for SSLv3 and TLSv1 in C-Kermit 8.0.
  2863.   
  2864.      [ [424]Top ] [ [425]Contents ] [ [426]Chapter Contents ] [
  2865.      [427]Section Contents ] [ [428]Glossary ]
  2866.      
  2867.      OpenSSL support is available for Unix versions of C-Kermit 8.0.
  2868.      SSLv3 and TLSv1 support in C-Kermit is provided for both outgoing
  2869.      and incoming connections (SET HOST /SERVER * port /TELNET or the
  2870.      [429]Internet Kermit Service).
  2871.      
  2872.      OpenSSL C-Kermit binaries are not available due to export
  2873.      restrictions (see [430]Section 2); you must build your own binary
  2874.      from a combination of Columbia source code and the OpenSSL
  2875.      libraries from other sources.
  2876.      
  2877.     1. Retrieve the OpenSSL 0.9.6b source code kit from:
  2878.  
  2879.   [431]http://www.openssl.org/
  2880.     2. Build OpenSSL according to the installation instructions. Be aware
  2881.        that OpenSSL includes support for algorithms that are covered by
  2882.        patents or claimed as intellectual property in the United States
  2883.        (and perhaps some other countries.) Use of these algorithms
  2884.        without the proper licenses can make you liable to legal action.
  2885.        Be sure to read the entire README file before building and
  2886.        installing OpenSSL.
  2887.        OpenSSL has many features that can be selected when it is
  2888.        configured prior to compiling the libraries. One feature that's
  2889.        useful to C-Kermit is support for Anonymous-Diffie-Hellman (ADH)
  2890.        ciphers in SRP and Kerberos 5 Telnet Authentication.
  2891.        Note: If you are using a version of OpenSSL later than SNAPSHOT
  2892.        20011201 you can build it with support for ZLIB compression and
  2893.        Kerberos 5 ciphers. However, OpenSSL releases prior to version 1.0
  2894.        are not guaranteed to be backward compatible. C-Kermit 8.0 builds
  2895.        with any 0.9.6 version of OpenSSL. C-Kermit 8.0 might not build
  2896.        with future versions of OpenSSL without modification.
  2897.     3. Add a new entry to the C-Kermit makefile for your platform that
  2898.        uses "krbmit" as the build target and adds the following to
  2899.        CFLAGS:
  2900.  
  2901.   -DCK_AUTHENTICATION -DCK_SSL $(SSLINC)
  2902.    To add support for ZLIB compression add the following to CFLAGS:
  2903.        -DZLIB
  2904.    Add the appropriate libraries to LIBS:
  2905.        $(SSLLIB) -lssl -lcrypto
  2906.    For ZLIB compression add to LIBS:
  2907.        -lzlib
  2908.    The makefile defines the path to the OpenSSL header files using the
  2909.        variable SSLINC:
  2910.        -I/usr/local/ssl/include
  2911.    The location of the OpenSSL libraries is specified using the variable
  2912.        SSLLIB:
  2913.        -L/usr/local/ssl/lib
  2914.        The OpenSSL header files and libraries are often installed in host
  2915.        specific locations. The values of the SSLINC and SSLLIB variables
  2916.        can be altered by:
  2917.           + editing the makefile
  2918.           + defining new values on the make command line
  2919.           + exporting the variables to the system environment and
  2920.             specifying the -e on the make command line.
  2921.        Use the "linux+openssl" and "linux+krb5+krb4+srp+openssl" makefile
  2922.        entries as models.
  2923.        
  2924.      Note that the select() version of the CONNECT-command module
  2925.      (ckucns.c) must be used rather than the older fork() based
  2926.      (ckucon.c) version.
  2927.      
  2928.      When C-Kermit 8.0 is installed as an Internet Kermit Service
  2929.      (IKSD), TLSv1 is offered for authenticating incoming connections
  2930.      via the Telnet START_TLS option.
  2931.      
  2932.      If you wish to provide support for authentication of clients using
  2933.      public key certificates you must provide two custom functions
  2934.      X509_to_user() and X509_userok. These functions provide the
  2935.      certificate to local userid mapping and user authorization
  2936.      functionality. Example functions that use the /UID field of the
  2937.      Certificate Subject name may be activated by specifying:
  2938.      
  2939.   make entry KFLAGS=-DX509_UID_TO_USER
  2940.  
  2941.      when compiling C-Kermit. If you with to use the Certificate Subject
  2942.      Alternate Name you can specify:
  2943.      
  2944.   make entry KFLAGS=-DX509_SUBJECT_ALT_NAME_TO_USER
  2945.  
  2946.      The X509_to_user() and X509_userok() functions are the last
  2947.      functions in the ck_ssl.c module. See [432]Appendix III.
  2948.      
  2949.   4.2.4. Shadow Passwords in C-Kermit 8.0
  2950.   
  2951.      [ [433]Top ] [ [434]Contents ] [ [435]Chapter Contents ] [
  2952.      [436]Section Contents ] [ [437]Glossary ]
  2953.      
  2954.      Shadow password files are used in many versions of Unix to provide
  2955.      a greater level of security for user passwords stored on the local
  2956.      disk. The standard Unix password file must be world readable so
  2957.      processes can find out the user's shell, home directory, and other
  2958.      permissions. By moving the passwords into a separate file that only
  2959.      stores passwords, access to the file can be restricted to only
  2960.      those processes that are authorized to perform authentication.
  2961.      
  2962.      When C-Kermit 8.0 is used as the Internet Kermit Service on systems
  2963.      that are configured to use shadow passwords the following CFLAG
  2964.      must be added to the makefile entry:
  2965.      
  2966.   -DCK_SHADOW
  2967.  
  2968.   4.2.5. Pluggable Authentication Module (PAM) Support in C-Kermit 8.0
  2969.   
  2970.      [ [438]Top ] [ [439]Contents ] [ [440]Chapter Contents ] [
  2971.      [441]Section Contents ] [ [442]Glossary ]
  2972.      
  2973.      PAM is implemented in many versions of Unix so system
  2974.      administrators can add new forms of authentication for interactive
  2975.      login (console, telnet, rlogin, ...) without requiring
  2976.      recompilation of each service.
  2977.      
  2978.      When C-Kermit 8.0 is used as the Internet Kermit Service on systems
  2979.      that are configured to use PAM the following CFLAG must be added to
  2980.      the makefile entry:
  2981.      
  2982.   -DCK_PAM
  2983.  
  2984.      and the following libraries may have to be included:
  2985.      
  2986.   -lpam -ldl
  2987.  
  2988.      The default PAM Service Name is "kermit". If you wish to use a
  2989.      different name specify:
  2990.      
  2991.   KFLAGS=-DPAM_SERVICE_NAME="service-name"
  2992.  
  2993.      when building C-Kermit.
  2994.      
  2995.      Before C-Kermit can be used with PAM, configuration information
  2996.      must be added for the specified PAM_SERVICE_NAME to either
  2997.      /etc/pam.conf or /etc/pam.d/ depending on the version of PAM your
  2998.      operating system has installed. A complete primer on PAM can (or
  2999.      once could be) be found at:
  3000.      
  3001.   [443]http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/.
  3002.  
  3003.   4.2.6. Using External Security Methods with C-Kermit
  3004.   
  3005.      [ [444]Top ] [ [445]Contents ] [ [446]Chapter Contents ] [
  3006.      [447]Section Contents ] [ [448]Glossary ]
  3007.      
  3008.      Other protocols can be used to create secure connections that are
  3009.      not currently implemented in Kermit, such as Secure Shell (SSH).
  3010.      The fact that SSH is not integrated into Kermit software does not
  3011.      mean that Kermit cannot be used in conjunction with it. SSH
  3012.      provides for tunneling, which allows a localhost proxy to be
  3013.      configured to take insecure connections on the local machine and
  3014.      connect them via secure connections to remote hosts.
  3015.      
  3016.      Secure connection clients can be used as the communication channel
  3017.      in C-Kermit 7.0 and later and Kermit 95 1.1.16 and later via the
  3018.      PTY (Unix only) and PIPE commands. See [449]Section 2.7 of the
  3019.      [450]C-Kermit 7.0 Update Notes for details.
  3020.      
  3021.      Firewalls based on access lists, proxies, and SOCKS do not provide
  3022.      secure connections. However, they do restrict the ports that may be
  3023.      used to communicate between the Internet and the Intranet which
  3024.      makes it more difficult for someone to break into the Intranet from
  3025.      outside. They do not protect the network from internal attacks nor
  3026.      do they protect a connection, once made, from eavesdropping or
  3027.      hijacking. They may be used in conjunction with secure connection
  3028.      systems but should not be used as a replacement for them. C-Kermit
  3029.      can be built as a SOCKS client if you have a SOCKS library;
  3030.      otherwise you can run SOCKSified Telnet or Rlogin clients through
  3031.      C-Kermit with the PIPE command. See [451]C-Kermit Configuration
  3032.      Options document for details.
  3033.      
  3034.      [ [452]C-Kermit ] [ [453]C-Kermit 8.0 ] [ [454]Kermit 95 ]
  3035.     ________________________________________________________________________
  3036.   
  3037.   APPENDIX I. WHERE TO FIND SECURE TELNET AND FTP SERVERS
  3038.   
  3039.      [ [455]Top ] [ [456]Contents ] [ [457]Glossary ] [ [458]Home ]
  3040.      
  3041.      CONTENTS
  3042.      
  3043.   I.1. [459]Telnet
  3044.   I.2. [460]FTP
  3045.   I.3. [461]Internet Kermit Service
  3046.   I.4. [462]HTTP
  3047.   I.5. [463]Securing Insecure Services with STunntl
  3048.  
  3049.      Contrary to widespread misconception, Telnet and FTP are not
  3050.      insecure protocols to be discarded. These protocols have been
  3051.      secured by the IETF through the addition of standard security
  3052.      methods: Kerberos, SSL/TLS, and SRP (see [464]REFERENCES) and
  3053.      continue to offer manifold advantages over their would-be
  3054.      replacements in terms of functionality, flexibility, and platform
  3055.      independence. If your operating system does not include secure
  3056.      remote access methods, secure third-party servers can often be
  3057.      found.
  3058.      
  3059.   I.1. Secure Telnet Servers
  3060.   
  3061.      [ [465]Top ] [ [466]Contents ] [ [467]Appendix Contents ] [
  3062.      [468]Glossary ]
  3063.      
  3064.    Sun Solaris 8 and later
  3065.           Ships with a Kerberos 5 enabled Telnetd.
  3066.           
  3067.    Apple Mac OS X
  3068.           Ships with a Kerberos 5 enabled Telnetd.
  3069.           
  3070.    Cisco IOS
  3071.           The telnet server for Cisco routers, terminal servers, ...
  3072.           ships with Kerberos 5 support.
  3073.           
  3074.    SCO (Caldera) OSR5, Unixware 7, and Open UNIX 8
  3075.           Ships with Kerberos 5 support.
  3076.           
  3077.    Z/OS V1R2.0 Communication Server for Server/390 IP
  3078.           Ships with Kerberos 5 support:
  3079.           
  3080.  
  3081.   [469]http://www-1.ibm.com/servers/eserver/zseries/zos/commserver/kerberos.htm
  3082. l
  3083.  
  3084.    Debian and Red Hat Linux
  3085.           Recent versions ship with Kerberos 5 support.
  3086.           
  3087.    HP-UX 11
  3088.           Ships with Kerberos 5 support.
  3089.           
  3090.    Compaq DCE for OpenVMS
  3091.           provides Kerberos 5 support.
  3092.           
  3093.    MIT Kerberos 5 1.2.3
  3094.           The Kerberos 5 Telnet server is part of the standard Kerberos 5
  3095.           distribution available from MIT. Kerberos 5 is unique among
  3096.           authentication methods in offering true single sign-on
  3097.           capability to the network via forwarded credentials. It also
  3098.           allows authentication to cross Kerberos realms; for example,
  3099.           between different organizations.
  3100.           
  3101.           The Kerberos 5 Telnet server is "downwards compatible" with the
  3102.           older Kerberos 4 protocol. The Kerberos 5 Telnet authentication
  3103.           protocol provides for strong mutual authentication of the
  3104.           client and server without requiring the client to possess prior
  3105.           knowledge of the server's credentials. During authentication a
  3106.           session key (DES, RC4, 3DES) is produced that is used with a
  3107.           negotiated encryption algorithm to give privacy protection to
  3108.           incoming and outgoing data.
  3109.           
  3110.   [470]http://web.mit.edu/kerberos/www/
  3111.  
  3112.           Follow the links to "Getting Kerberos from MIT". Future
  3113.           versions of the MIT Kerberos 5 distribution will include
  3114.           support for SSL/TLS and X Windows System Data Forwarding.
  3115.           
  3116.    MIT Kerberos 4
  3117.           The precursor to Kerberos 5. Kerberos 4 provides strong
  3118.           authentication without the single sign-on or cross-realm
  3119.           capabilities of Kerberos 5. The Kerberos 4 Telnet server is
  3120.           part of the Kerberos 4 distribution.
  3121.           
  3122.           The Kerberos 4 Telnet authentication protocol provides for
  3123.           strong mutual authentication of client and server without
  3124.           requiring prior knowledge by the client of the server's
  3125.           credentials. During authentication a session key (56-bit DES
  3126.           only) is produced for use with a negotiated encryption
  3127.           algorithm for privacy of incoming and outgoing data.
  3128.           
  3129.   [471]http://web.mit.edu/kerberos/www/
  3130.  
  3131.           Follow the links to "Getting Kerberos from MIT".
  3132.           
  3133.    Secure Remote Password
  3134.           SRP is based on Zero Knowledge Identification algorithms by
  3135.           which the client and server prove their identities by
  3136.           exchanging data over a public channel. This data can't be used
  3137.           to determine the secrets involved nor can it be used to
  3138.           replicate the authentication sequence. Authentication of the
  3139.           server does not require the client to have prior knowledge of
  3140.           the server's credentials. During authentication a session key
  3141.           (320-bits) is produced for use with a negotiated encryption
  3142.           algorithm to provide privacy protection to incoming and
  3143.           outgoing data. As of the 1.7.1 release, the SRP Telnet client
  3144.           and server implement the START_TLS option as well as the X
  3145.           Windows Systems Data Forwarding option. This distribution can
  3146.           be built against MIT Kerberos 5 or MIT Kerberos 4 distribution
  3147.           to enable Kerberos authentication. The combination of START_TLS
  3148.           and AUTH (SRP and KRB5) provide for the strongest combination
  3149.           of private communication and password based mutual authentication.
  3150.           
  3151.           The SRP Telnet server is part of the SRP distribution:
  3152.           
  3153.   [472]http://www-cs-students.stanford.edu/~tjw/srp/
  3154.  
  3155.           Follow the link to Download Software
  3156.           
  3157.    Transport Layer Security (X.509 certificates and Kerberos 5)
  3158.           TLSv1 (the successor to SSLv3 used in most Web browsers)
  3159.           provides strong encryption and optional authentication of the
  3160.           server and client using X.509 certificates or Kerberos 5.
  3161.           Authentication of the server via X.509 requires the client to
  3162.           have prior knowledge of the server's X.509 certificate or the
  3163.           certificates of the Certificate Authorities that signed the
  3164.           server's certificate. An open source distribution of TLSv1 is
  3165.           available from:
  3166.           
  3167.   [473]http://www.openssl.org/
  3168.  
  3169.           Current development snapshots of OpenSSL are required for
  3170.           Kerberos 5 support. A Telnet server that implements the
  3171.           START_TLS option and X Windows System Data Forwarding is
  3172.           available from:
  3173.           
  3174.   [474]ftp://ftp.runestig.com/pub/starttls/start_tls-telnet.current.tar.gz
  3175.     ________________________________________________________________________
  3176.   
  3177.   I.2. Secure FTP Servers
  3178.   
  3179.      [ [475]Top ] [ [476]Contents ] [ [477]Appendix Contents ] [
  3180.      [478]Glossary ]
  3181.      
  3182.    MIT Kerberos 5 1.2.3
  3183.           The Kerberos 5 FTP server is part of the standard Kerberos 5
  3184.           distribution available from MIT. Kerberos 5 is unique among
  3185.           authentication methods in offering true single sign-on
  3186.           capability to the network via forwarded credentials. It also
  3187.           allows authentication to cross Kerberos realms; for example,
  3188.           between different organizations.
  3189.           
  3190.           The Kerberos 5 FTP server provides for strong authentication
  3191.           using either Kerberos 4 or GSSAPI-Kerberos 5. Both the command
  3192.           and data channels are encrypted and integrity protected.
  3193.           
  3194.   [479]http://web.mit.edu/kerberos/www/
  3195.  
  3196.           Follow the links to "Getting Kerberos from MIT". Future
  3197.           versions of the MIT Kerberos 5 distribution will include
  3198.           support for SSL/TLS and X Windows System Data Forwarding.
  3199.           
  3200.    MIT Kerberos 4
  3201.           The precursor to Kerberos 5. Kerberos 4 provides strong
  3202.           authentication without the single sign-on or cross-realm
  3203.           capabilities of Kerberos 5. The Kerberos 4 Telnet and FTP
  3204.           clients and servers are part of the Kerberos 4 distribution.
  3205.           
  3206.           The Kerberos 4 FTP server provides for strong authentication.
  3207.           Both the command and data channels are encrypted and integrity
  3208.           protected.
  3209.           
  3210.   [480]http://web.mit.edu/kerberos/www/
  3211.  
  3212.           Follow the links to "Getting Kerberos from MIT".
  3213.           
  3214.    Secure Remote Password
  3215.           SRP is based on Zero Knowledge Identification algorithms by
  3216.           which the client and server prove their identities by
  3217.           exchanging data over a public channel. This data can't be used
  3218.           to determine the secrets involved nor can it be used to
  3219.           replicate the authentication sequence. Authentication of the
  3220.           server does not require the client to have prior knowledge of
  3221.           the server's credentials. During authentication a session key
  3222.           (320-bits) is produced for use with a negotiated encryption
  3223.           algorithm to provide privacy protection to incoming and
  3224.           outgoing data.
  3225.           
  3226.           The FTP server provides for strong authentication. Both the
  3227.           command and data channels are encrypted and integrity protected
  3228.           with a user selectable set of encryption algorithms (blowfish,
  3229.           cast-128, 3des, des) and hash algorithms (md5, sha-1).
  3230.           
  3231.   [481]http://www-cs-students.stanford.edu/~tjw/srp/
  3232.  
  3233.           Follow the link to Download Software
  3234.           
  3235.    Transport Layer Security (X.509 certificates and Kerberos 5)
  3236.           TLSv1 (the successor to SSLv3 used in most Web browsers)
  3237.           provides strong encryption and optional authentication of the
  3238.           server and client using X.509 certificates or Kerberos 5.
  3239.           Authentication of the server via X.509 requires the client to
  3240.           have prior knowledge of the server's X.509 certificate or the
  3241.           certificates of the Certificate Authorities that signed the
  3242.           server's certificate. An open source distribution of TLSv1 is
  3243.           available from:
  3244.           
  3245.   [482]http://www.openssl.org/
  3246.  
  3247.           Current development snapshots of OpenSSL are required for
  3248.           Kerberos 5 support.
  3249.           
  3250.           Two FTP servers that implement the SSL/TLS protocol for
  3251.           securing both the command and data channels are available from:
  3252.           
  3253.   [483]ftp://ftp.runestig.com/pub/ftp-tls/
  3254.   [484]ftp://ftp.runestig.com/pub/ftpd-tls/
  3255.   [485]ftp://ftp.runestig.com/pub/proftpd-tls/
  3256.     ________________________________________________________________________
  3257.   
  3258.   I.3. Secure Internet Kermit Service
  3259.   
  3260.      [ [486]Top ] [ [487]Contents ] [ [488]Appendix Contents ] [
  3261.      [489]Glossary ]
  3262.      
  3263.      Available from Columbia University:
  3264.      
  3265.      * [490]User Documentation
  3266.      * [491]Administrator Documentation
  3267.      * (coming soon) Windows version...
  3268.        
  3269.   I.4. Secure HTTP Servers
  3270.   
  3271.      [ [492]Top ] [ [493]Contents ] [ [494]Appendix Contents ] [
  3272.      [495]Glossary ]
  3273.      
  3274.      Most web servers provide support for SSL/TLS secured HTTP
  3275.      connections.
  3276.      
  3277.   I.5. Securing Insecure Services with STunnel
  3278.   
  3279.      [ [496]Top ] [ [497]Contents ] [ [498]Appendix Contents ] [
  3280.      [499]Glossary ]
  3281.      
  3282.      It is also possible to wrap a nonsecure service such as Telnet or
  3283.      Sredird in [500]Stunnel, for use with Kermit's ability to negotiate
  3284.      non-secure protocols over SSL/TLS; [501]CLICK HERE for a case
  3285.      study.
  3286.     ________________________________________________________________________
  3287.   
  3288.   APPENDIX II. MULTI-HOMED HOSTS, FIREWALLS, AND NETWORK ADDRESS TRANSLATION
  3289.   
  3290.      [ [502]Top ] [ [503]Contents ] [ [504]Glossary ]
  3291.      
  3292.      CONTENTS
  3293.      
  3294.   II.1. [505]Firewalls
  3295.   II.2. [506]Network Address Translation
  3296.   II.3. [507]Multi-Homed Hosts and Aliasing
  3297.  
  3298.      The Internet was originally designed for end-to-end communication
  3299.      between connected computers belonging to a single cloud. All
  3300.      computers were able to directly communicate with all the other
  3301.      computers attached to the network. In particular, if computer A
  3302.      could communicate with computer B then computer B could communicate
  3303.      with computer A. Unfortunately, this no longer true.
  3304.      
  3305.      Three factors changed this. First, the abuse of the Internet by
  3306.      hackers and virus/worm authors convinced organizations that wished
  3307.      to join the internet that it was not safe to do so without limiting
  3308.      their exposure. This resulted in the popular use of firewalls to
  3309.      restrict the types of communications that could flow across the
  3310.      Internet gateways.
  3311.      
  3312.      The second factor was the success of the world wide web and the use
  3313.      of client only computers that did not have permanent addresses.
  3314.      These computers (mostly DOS, Windows, and Macintosh) did not run
  3315.      services and were only used to communicate with a very small number
  3316.      of server computers that spoke HTTP. Connectivity to these machines
  3317.      only required one way communication: from the client to the server.
  3318.      
  3319.      The third factor was the explosion in the number of client devices
  3320.      that are connected to the Internet. When an individual or company
  3321.      wants to connect their computers to the Internet they need to be
  3322.      assigned IP addresses for their computers. However, most ISPs sell
  3323.      service based on the number of assigned IP addresses or, in the
  3324.      case of home networks, provide only a single address. To save money
  3325.      or simply two put all the kids' computers on the network at the
  3326.      same time, people started to experiment with network gateways that
  3327.      implemented Network Address Translation (NAT). The NAT would
  3328.      convert the IP addresses of multiple computers on the private side
  3329.      of the gateway to share a single address on the public side of the
  3330.      gateway. A computer that has been assigned an address that is being
  3331.      translated can establish and listen for connections with other
  3332.      computers on the private side of the network and can establish
  3333.      connections to computers on the public side of the network.
  3334.      However, the computers cannot receive connections established from
  3335.      computers on the pubic side of the network because the true address
  3336.      of the computer has been hidden.
  3337.      
  3338.      These factors complicate the use of many Internet protocols such as
  3339.      FTP and cause problems for authentication systems. In addition to
  3340.      these problems there are some other issues that must be taken into
  3341.      account. It is possible for a single computer to have multiple
  3342.      network adapter cards. This is often done to allow a computer to
  3343.      act as a gateway between two networks; to provide the computer with
  3344.      redundancy for critical services; or to allow the computer to
  3345.      maintain more than one identity (such as to provide web services
  3346.      for two different domains.) Computers with multiple network
  3347.      addresses are referred to as being "multi-homed".
  3348.      
  3349.      There are also potential problems caused when multiple computers
  3350.      are used to serve a single purpose. For instance, a web server for
  3351.      a large commercial operation probably does not have a single
  3352.      computer providing service to all of their customers. Instead they
  3353.      have a farm (or cluster) of computers. The one you actually are
  3354.      served by is determined randomly using a load-balancing algorithm.
  3355.      When you authenticate to one of these computers you do not want to
  3356.      authenticate to the individual name assigned to each computer but
  3357.      to the common name used to access any one of them. The technique
  3358.      used to allow multiple computers to respond to a single name is
  3359.      called "aliasing".
  3360.      
  3361.   II.1 Firewalls
  3362.   
  3363.      [ [508]Top ] [ [509]Contents ] [ [510]Appendix Contents ] [
  3364.      [511]Glossary ]
  3365.      
  3366.      Firewalls are used to restrict the types of network packets that
  3367.      may cross a network boundary. Firewall products fall into four
  3368.      general categories:
  3369.      
  3370.    Port Filtering Firewalls
  3371.           Port Filtering firewalls are the simplist of the firewall
  3372.           techniques. Port filtering is performed by specifying an
  3373.           ordered set of ACCEPT and DENY rules for each combination of:
  3374.           
  3375.           + packet type
  3376.           + source address
  3377.           + source port
  3378.           + destination address
  3379.           + destination port
  3380.           + if packet type is TCP, whether a connection must exist or not
  3381.             
  3382.           This allows a firewall to be configured to only allow through
  3383.           the firewall packets that are meant for specific computers; or
  3384.           packets meant for specific services; or packets to/from
  3385.           specific hosts/networks.
  3386.           
  3387.           Port Filtering firewalls frequently cause problems for users of
  3388.           Kerberos authentication when they are not configured to allow
  3389.           UDP packets to be sent or received from the Key Distribution
  3390.           Center.
  3391.           
  3392.           Port Filtering firewalls are also a problem for the FTP
  3393.           protocol since the standard mode is for the FTP server to
  3394.           establish a data channel on a random port number to the FTP
  3395.           client when data is to be transferred. This port number is
  3396.           agreed to be sending the destination address and port value
  3397.           across the FTP command channel.
  3398.           
  3399.           Port Filtering firewalls need to be configured to allow
  3400.           connections from clients to reach the host ports necessary for
  3401.           each protocol that is used with Kermit:
  3402.           
  3403.      Port Protocol
  3404.      21/tcp FTP
  3405.      22/tcp SSH
  3406.      23/tcp Telnet
  3407.      80/tcp HTTP
  3408.      88/udp Kerberos 5 authentication
  3409.      443/tcp HTTP over TLS
  3410.      750/udp Kerberos 4 authentication
  3411.      990/tcp FTP over TLS
  3412.      992/tcp Telnet over TLS
  3413.      1649/tcp Internet Kermit Service (Kermit)
  3414.      
  3415.           The official list of "well-known" and "registered" port
  3416.           assignments is available from Internet Assigned Numbers
  3417.           Authority:
  3418.           
  3419.   [512]http://www.iana.org/assignments/port-numbers
  3420.  
  3421.    Content-Aware Firewalls
  3422.           Content-Aware Firewalls attempt to solve the problem with FTP
  3423.           and similar protocols that transmit addressing information as
  3424.           part of the protocol. These firewalls are aware of a specific
  3425.           set of internet protocols such as FTP. When the FTP client
  3426.           specifies the destination address and port to used by the
  3427.           server to establish the data channel, the firewall can watch
  3428.           and temporarily allow that connection to pass through the
  3429.           firewall. Unfortunately, Content Aware Firewalls cannot work
  3430.           with secure protocols since all of the data is being
  3431.           transmitted in encrypted form.
  3432.           
  3433.    Application Layer Gateways
  3434.           Application Layer Gateways are services that appear to be the
  3435.           actually service you wish to connect to. Instead of connecting
  3436.           directly to the telnet service on foo.bar.com you connect to
  3437.           the telnet service on the firewall and allow the firewall to
  3438.           establish an equivalent session with the telnet service on
  3439.           foo.bar.com.
  3440.           
  3441.           As with Content-Aware Firewalls this procedure simply does not
  3442.           work with secure connections. The Application Layer Gateway
  3443.           (ALG) will either not know the key to use to read the protected
  3444.           data; or the ALG will be able to decrypt all of the data and
  3445.           the end-to-end security of the connection know has a location
  3446.           where a man-in-the-middle attack can be targeted.
  3447.           
  3448.    Authenticated Firewall Traversal Protocols
  3449.           Authenticated Firewall Traversal Protocols simply allow a
  3450.           client process running on a computer to create connections that
  3451.           may cross the firewall once the client or service has been
  3452.           authenticated and authorized. These firewalls are quite
  3453.           flexible and work very well with secure connections. In fact,
  3454.           they enhance the security of the connection from the
  3455.           perspective of the network administrator.
  3456.           
  3457.     II.1.1 FTP Passive Mode
  3458.     
  3459.      [ [513]Top ] [ [514]Contents ] [ [515]Appendix Contents ] [
  3460.      [516]Glossary ]
  3461.      
  3462.      FTP is one of the few well-known Internet services that requires
  3463.      the use of multiple connections. As described above, FTP originally
  3464.      required the server to establish the data connection to the client
  3465.      using a destination address and port provided by the client. This
  3466.      method of operation does not work with Port Filtering Firewalls.
  3467.      
  3468.      More recently, FTP was extended to support "passive mode". When
  3469.      passive mode is use the connections for the data channels are
  3470.      created in the reverse direction. Instead of the server
  3471.      establishing a connection to the client; the client establishes a
  3472.      second connection with server as the destination. This works just
  3473.      fine as long as the client is behind the firewall and the server is
  3474.      in public address space. If the server is behind a firewall then
  3475.      the traditional mode must be used. If both the client and server
  3476.      are each behind their own Port Filtering Firewalls then data
  3477.      channels cannot be established.
  3478.      
  3479.      This is supposed to be solved by the use of Content Aware Firewalls
  3480.      or Application Layer Gateways. However, was the command channel is
  3481.      encrypted the Firewall is unable to view the IP address
  3482.      information.
  3483.      
  3484.      In Kermit, the use of passive mode is controlled with the command:
  3485.      
  3486.   SET FTP PASSIVE-MODE { ON, OFF }
  3487.  
  3488.      The default is to use passive mode.
  3489.      
  3490.     II.1.2 Firewall Traversal via an HTTP Proxy
  3491.     
  3492.      [ [517]Top ] [ [518]Contents ] [ [519]Appendix Contents ] [
  3493.      [520]Glossary ]
  3494.      
  3495.      The simplist form of firewall traversal is the HTTP CONNECT
  3496.      command. The CONNECT command was implemented to allow a public web
  3497.      server which usually resides on the boundary between the public and
  3498.      private networks to forward HTTP requests from clients on the
  3499.      private network to public web sites. In order to allow secure web
  3500.      connections to be established, the CONNECT command works by
  3501.      authenticating the client with a username/password and then
  3502.      establishing a tunnel to the desired host.
  3503.      
  3504.      Many web servers support the CONNECT command and it can be
  3505.      configured to allow outgoing connections to authenticated user to
  3506.      any TCP/IP hostname/port combination accessible to the web server.
  3507.      The limitations of HTTP CONNECT is that it can only be used for
  3508.      outgoing connections for protocols that are implemented using
  3509.      TCP/IP. Protocols such as Kerberos authentication that use UDP/IP
  3510.      cannot be tunneled using HTTP CONNECT.
  3511.      
  3512.      Kermit provides support for the use of HTTP CONNECT proxy services
  3513.      with the command:
  3514.      
  3515.   SET TCP HTTP-PROXY hostname/ip-address[:port]
  3516.  
  3517.      When a port is not specified the default port configured on the
  3518.      HTTP server is used. This is frequently port 443. When a hostname
  3519.      is specified, it is resolved using the DNS available to the web
  3520.      server.
  3521.      
  3522.     II.1.3 Firewall Traversal with SOCKS
  3523.     
  3524.      [ [521]Top ] [ [522]Contents ] [ [523]Appendix Contents ] [
  3525.      [524]Glossary ]
  3526.      
  3527.      In the early 1990s as firewalls were becoming prevalent, David
  3528.      Koblas developed the SOCKS protocol for firewall traversal of
  3529.      TCP/IP. There are two popular versions of SOCKS currently in use.
  3530.      Version 4.2 provides support for client applications using TCP/IP
  3531.      to traverse firewalls. This functionality is similar to the support
  3532.      provided by HTTP CONNECT. However, there is one distinction. A
  3533.      client using SOCKS is aware of the public source IP address and
  3534.      port. This allows this information to be used within the
  3535.      application protocol to assist in securing the connection. (This
  3536.      information is crucial to securing FTP sessions with GSSAPI
  3537.      Kerberos 5.)
  3538.      
  3539.      After 1995, the IETF began working on a successor to the SOCK 4
  3540.      protocol. This work produced SOCKS Version 5 ([525]RFC 1928). SOCKS
  3541.      5 is significantly more general than version 4. In addition to
  3542.      supporting client to server TCP/IP connections, it provides two
  3543.      crucial sets of functionality not found in previous protocols:
  3544.      
  3545.      * Authenticated firewall traversal of UDP/IP packets.
  3546.      * Authenticated binding of incoming public ports on the firewall.
  3547.        
  3548.      This allows a service on the private network to offer public
  3549.      services. It also allows client applications such as FTP to
  3550.      establish a temporary public presence that can be used by the FTP
  3551.      server to create a data channel. By allowing the client bind to a
  3552.      public port on the firewall and be aware of the public address,
  3553.      SOCKS 5 allows the application protocol to communicate that
  3554.      information to the server.
  3555.      
  3556.      C-Kermit can be built using either SOCKS 4 or SOCKS 5.
  3557.      Configuration of the SOCKS servers is determined by the
  3558.      requirements of the SOCKS library.
  3559.      
  3560.      Kermit 95 2.00 supports SOCKS 4.2. The SOCKS Server is specified
  3561.      with the command:
  3562.      
  3563.   SET TCP SOCKS-SERVER hostname/ip-address
  3564.  
  3565.      It should be noted that the best part about the SOCKS protocols is
  3566.      that each and every application does not need to implement them.
  3567.      Instead, SOCKS can be built into the IP stack on each host
  3568.      operating system and the protocols could work transparently without
  3569.      any change to the programs already shipped.
  3570.      
  3571.   II.2 Network Address Translation
  3572.   
  3573.      [ [526]Top ] [ [527]Contents ] [ [528]Appendix Contents ] [
  3574.      [529]Glossary ]
  3575.      
  3576.      Network Address Translation (NAT) is a technique used to allow a
  3577.      single public IP address provided by an Internet Service Provider
  3578.      (ISP) to be shared among multiple computers on a private IP based
  3579.      network. NAT technology is often found in routers designed for the
  3580.      Home and Small Office market. This technique is wonderful as long
  3581.      as the application protocols being used do not require knowledge of
  3582.      the IP addresses being used. In fact, NATs when combined with SOCKS
  3583.      Version 5 would be a perfect solution except that we have never
  3584.      seen a product that combines these two technologies. (It is most
  3585.      likely a chicken-and-egg situation. No client applications support
  3586.      SOCKS 5, therefore no router manufacturers feel pressure to produce
  3587.      them. Since no routers support SOCKS 5, application vendors do not
  3588.      implement it.)
  3589.      
  3590.      NAT has particularly bad implications for Kerberos authentication
  3591.      that traditionally embeds into the ticket the IP addresses on which
  3592.      the ticket is valid. Another protocol that is adversely affected by
  3593.      NAT is FTP. However, FTP passive mode works around it.
  3594.      
  3595.      As luck would have it. Kerberos 4 has no problem with NAT because
  3596.      the Kerberos 4 ticket has room for only a single IP address and
  3597.      that IP address is assigned not by the client but by the KDC. The
  3598.      result is that when Kerberos 4 is used from behind a NAT the IP
  3599.      address that is placed into the ticket is the public IP address of
  3600.      the NAT, not the IP address of the client machine. This means the
  3601.      ticket is good only on the far side of the NAT and not on the near
  3602.      side.
  3603.      
  3604.      Kerberos 5 on the other hand is seriously affected by NAT. The
  3605.      addresses are stored in the ticket by the client. This allows the
  3606.      ticket to support the multiple addresses needed for multi-homed
  3607.      systems. However, when NAT is used, it is the private IP address
  3608.      that is stored into the ticket and not the public address seen by
  3609.      the KDC. If this ticket is now used to access a service on the
  3610.      public network, the service rejects the Kerberos 5 ticket since the
  3611.      IP address in the ticket does not match the source IP address used
  3612.      to establish the connection.
  3613.      
  3614.      This can be worked around if the client uses a kinit that allows a
  3615.      list of additional IP addresses to be specified for inclusion in
  3616.      the TGT. Kermit supports this capability with one of the following
  3617.      commands:
  3618.      
  3619.   AUTH K5 INIT /ADDRESSES:{list-of-addresses}
  3620.   SET AUTH K5 ADDRESSES {list-of-addresses}
  3621.  
  3622.      The problem with this solution is that, although it is secure, in
  3623.      most cases the end user does not know which IP address is assigned
  3624.      to the far side of the NAT. In this situation it is necessary to
  3625.      remove all IP addresses from the TGT. Kermit provides the AUTH K5
  3626.      INIT /NO-ADDRESSES and SET AUTH K5 NO-ADDRESSES ON commands for
  3627.      this purpose. However, this solution is less secure since a TGT
  3628.      with no specified IP addresses can be used from any machine. Stolen
  3629.      TGTs are therefore extremely useful to a thief. We strongly advise
  3630.      that removing the IP address information from Kerberos 5 tickets
  3631.      not be performed on computers using file based caches as they are
  3632.      particularly vulnerable to theft.
  3633.      
  3634.      Sometimes it is possible to read the public address from the device
  3635.      providing NAT, as shown in the following Kermit script:
  3636.      
  3637.   [530]ftp://kermit.columbia.edu/kermit/scripts/ckermit/linksys
  3638.  
  3639.      For those interested in more technical information on the
  3640.      consequences of Network Address Translation, the IETF has several
  3641.      Informational RFCs on the subject:
  3642.      
  3643.    Architectural Implications of NAT
  3644.           [531]ftp://ftp.isi.edu/in-notes/rfc2993.txt
  3645.           
  3646.    IP Network Address Translator (NAT) Terminology and Considerations
  3647.           [532]ftp://ftp.isi.edu/in-notes/rfc2663.txt
  3648.           
  3649.    Traditional IP Network Address Translator (Traditional NAT)
  3650.           [533]ftp://ftp.isi.edu/in-notes/rfc3002.txt
  3651.           
  3652.    NAT Friendly Application Design Guidelines
  3653.           [534]http://www.ietf.org/internet-drafts/draft-ietf-nat-app-gui
  3654.           de-06.txt
  3655.           
  3656.    Keith Moore's "What NATs Break"
  3657.           [535]http://www.cs.utk.edu/~moore/what-nats-break.html
  3658.           
  3659.   II.3 Multi-Homed Hosts and Aliasing
  3660.   
  3661.      [ [536]Top ] [ [537]Contents ] [ [538]Appendix Contents ] [
  3662.      [539]Glossary ]
  3663.      
  3664.      IP socket connections are established using IP addresses and port
  3665.      numbers. Human beings do not remember large groups of numbers well.
  3666.      Instead we remember do a better job remembering names. The Domain
  3667.      Name Service (DNS) is globally distributed database that converts
  3668.      between the names that humans recognize and the IP addresses that
  3669.      allow the desired service to be communicated with.
  3670.      
  3671.      There are two situations where multiple IP addresses can be
  3672.      associated with the same computer or service. The first is a
  3673.      computer that has multiple network interfaces. This is known as a
  3674.      multi-homed computer. Each interface is assigned its own IP
  3675.      address. The second situation is where a DNS name resolves to
  3676.      multiple computers. This is referred to as aliasing. Both can play
  3677.      havoc with authentication when using either Kerberos or X.509
  3678.      certificates. Kermit is designed to support multi-homed computers
  3679.      and those with multiple names. Unfortunately, not everything else
  3680.      is.
  3681.      
  3682.      Kerberos 4 does not support multi-homed computers. Its ticket
  3683.      format only has space for a single IP address. If you are using
  3684.      Kermit as a client with Kerberos 4 authentication you must be sure
  3685.      to set the network interface you use for establishing your
  3686.      connections to match the one stored in the Kerberos 4 ticket. The
  3687.      ticket address can be viewed with the command:
  3688.      
  3689.   AUTH K4 LIST
  3690.  
  3691.      The interface to be used can be configured with:
  3692.      
  3693.   SET TCP ADDRESS
  3694.  
  3695.      There is no method for automating this process at the current time.
  3696.      
  3697.      Kerberos 5 has no problem with multihomed hosts because the ticket
  3698.      supports multiple IP addresses and those IP addresses are inserted
  3699.      into the ticket by the client, not by the KDC.
  3700.      
  3701.      There can also be problems when a host is being accessed through a
  3702.      DNS alias. The administrator for the host needs to install the
  3703.      service keys for both the unique hostname and the alias name in the
  3704.      Kerberos 4 service key file. When this is not done it can lead to
  3705.      problems because the service key retrieved by the client does not
  3706.      match the one used by the service.
  3707.      
  3708.      Kermit attempts to compensate for this by resolving the DNS alias
  3709.      the to real hostname. However, this does not always work on Windows
  3710.      95 or Windows NT 3.5x due to their caching of DNS information. For
  3711.      instance, at Columbia University the CUNIX name resolves to one of
  3712.      six machines, each with a different name, such as HOSTA, HOSTB,
  3713.      etc. When telneting to CUNIX, you might be given IP address
  3714.      128.59.35.136. But even though the DNS servers are properly
  3715.      configured to return the proper name (e.g. HOSTB) for that IP
  3716.      address, Windows 95 returns CUNIX because it retrieves the
  3717.      information from its internal cache instead of performing another
  3718.      network call. This means that instead of retrieving a Kerberos 4
  3719.      ticket for the service:
  3720.      
  3721.   rcmd.hostb@CC.COLUMBIA.EDU
  3722.  
  3723.      we get a ticket for:
  3724.      
  3725.   rcmd.cunix@CC.COLUMBIA.EDU
  3726.  
  3727.      This use of the wrong ticket produces the following error:
  3728.      
  3729.   Can't decode authenticator (krb_rd_req)
  3730.  
  3731.      DNS aliases and multiple addresses can be a problem for connections
  3732.      protected with SSL/TLS. To maximize their revenue streams, most
  3733.      commercial certificate authorities do not issue certificates with
  3734.      multiple hostnames and/or IP addresses. Therefore the hostname used
  3735.      to access the service has to match the one that used in the
  3736.      certificate. Although Kermit can resolve aliases to unique
  3737.      hostnames for Kerberos, it cannot do so for X.509 certificates.
  3738.      
  3739.      When you are acting as your own Certificate Authority using the
  3740.      OpenSSL tools you can produce certificates containing multiple
  3741.      hostnames and IP addresses. Kermit authenticates connections
  3742.      correctly when presented with these certificates.
  3743.      
  3744.      [ [540]C-Kermit ] [ [541]C-Kermit 8.0 ] [ [542]Kermit 95 ] [
  3745.      [543]Kermit Home ]
  3746.     ________________________________________________________________________
  3747.   
  3748.   APPENDIX III: INTRODUCTION TO CERTIFICATES WITH OPENSSL
  3749.   
  3750.      [ [544]Top ] [ [545]Contents ] [ [546]Glossary ]
  3751.      
  3752.      CONTENTS
  3753.      
  3754.   III.1.  [547]What Are Certificates (etc)...?
  3755.   III.2.  [548]RSA vs DSA Certifications
  3756.   III.3.  [549]Should You Be Your Own Certificate Authority?
  3757.   III.4.  [550]Generating a DSA CA (self-signed) Certificate
  3758.   III.5.  [551]Generating a DSA CSR
  3759.   III.6.  [552]Generating an RSA CA (self-signed) certificate
  3760.   III.7.  [553]Generating an RSA CSR
  3761.   III.8.  [554]Signing a CSR with your CA certificate
  3762.   III.9.  [555]Revoking a Certificate
  3763.   III.10. [556]Generating a CRL
  3764.   III.11. [557]Mapping a Client Certificate to a User ID
  3765.  
  3766.      LINKS
  3767.      
  3768.      * [558]IETF Public-Key Infrastructure (X.509) (pkix) Charter
  3769.      * [559]RFC 2459: Internet X.509 Public Key Infrastructure -
  3770.        Certificate and CRL Profile
  3771.      * [560]RFC 2527: Internet X.509 Public Key Infrastructure -
  3772.        Certificate Policy and Certification Practices Framework
  3773.      * [561]RFC 2528: Internet X.509 Public Key Infrastructure -
  3774.        Representation of Key Exchange Algorithm (KEA) Keys in Internet
  3775.        X.509 Public Key Infrastructure Certificates
  3776.        
  3777.      This is a brief introduction to certificates, certificate
  3778.      authorities, and how to use them. The information presented here is
  3779.      highly technical and can be skipped unless:
  3780.      
  3781.      * you are a system administrator and want to learn how to secure
  3782.        your host, or:
  3783.      * you want to know how to use client certificates to authenticate to
  3784.        a host.
  3785.        
  3786.      RSA Security, Inc., has a good Frequently Asked Questions (FAQ):
  3787.      
  3788.   [562]http://www.rsasecurity.com/rsalabs/faq/questions.html
  3789.  
  3790.      The FAQ covers many topics related to cryptography as well as how
  3791.      public key certificates work and how they are to be used.
  3792.      
  3793.   III.1. What Are Certificates, Private Keys, CSRs, CAs, and CRLs?
  3794.   
  3795.      [ [563]Top ] [ [564]Contents ] [ [565]Appendix Contents ] [
  3796.      [566]Glossary ]
  3797.      
  3798.      Public key (asymmetric) cryptography defines a class of algorithms
  3799.      for key exchange that include RSA and Diffie-Hellman (DH). These
  3800.      algorithms provide a mechanism to create a shared secret that can
  3801.      be used for encrypting future communications. Anyone listening to
  3802.      the exchange would be no closer to figuring out the value of the
  3803.      shared secret than if they were to take a guess.
  3804.      
  3805.      There are two parts to the exchange. A private key that is never
  3806.      disclosed, and a public key that may be viewed by all. An X.509
  3807.      certificate is a standard package for distributing a public key
  3808.      with identifying features such that the authenticity and validity
  3809.      of the public key may be verified by a recipient.
  3810.      
  3811.      The authenticity and validity of a certificate is provided by a
  3812.      combination of information provided within the certificates (the
  3813.      subject, the issuer, dates of validity, ...) as well as the trust
  3814.      that is placed in the certificate issuer (the Certificate
  3815.      Authority, or CA). The CA signs each of the certificates that it
  3816.      issues with its own certificate. With a copy of the CA's
  3817.      certificate it is possible to validate all of the certificates that
  3818.      were signed by the CA's private key.
  3819.      
  3820.      A user who wants to have a certificate signed by a CA creates a
  3821.      Certificate Signing Request (CSR). The CSR is an unsigned
  3822.      certificate presented to the CA along with information verifying
  3823.      the identity and desired use for the certificate. The CA signs the
  3824.      CSR producing a certificate that is valid for a specific time
  3825.      frame, which is then returned to the user.
  3826.      
  3827.      If the private key of the certificate were to be compromised the CA
  3828.      may revoke the certificate. The CA publishes a Certificate
  3829.      Revocation List (CRL) on a periodic basis containing a list of all
  3830.      certificates that would otherwise be valid if they were not
  3831.      revoked. It is the responsibility of the verifier to check not only
  3832.      the authenticity of the certificate but also whether or not it has
  3833.      been revoked by the issuer.
  3834.      
  3835.   III.2. RSA Certificates vs DSA Certificates
  3836.   
  3837.      [ [567]Top ] [ [568]Contents ] [ [569]Appendix Contents ] [
  3838.      [570]Glossary ]
  3839.      
  3840.      The important differences between RSA and DSA certificates are:
  3841.      
  3842.      * The RSA algorithms are faster than DSA.
  3843.      * The RSA algorithms are supported by all the major browsers whereas
  3844.        DSA are not.
  3845.      * The RSA algorithms were patented in the United States (until Sept
  3846.        29, 2000), requiring payments of licensing fees for producers of
  3847.        software utilizing them, whereas DSA is free.
  3848.      * The RSA private and public key pairs may be used for encrypting
  3849.        data as well as signing. DSA private and public key pairs may only
  3850.        be used for signing. Therefore, products incorporating DSA
  3851.        algorithms are easier to export from the United States.
  3852.        
  3853.      Due to the patent issues surrounding the RSA algorithms, the Kermit
  3854.      Project does not maintain a library or distribute any binaries that
  3855.      are built with the RSA algorithms. This policy can change when the
  3856.      RSA patent expires.
  3857.      
  3858.   III.3. Should You Be Your Own Certificate Authority?
  3859.   
  3860.      [ [571]Top ] [ [572]Contents ] [ [573]Appendix Contents ] [
  3861.      [574]Glossary ]
  3862.      
  3863.      There are many companies that believe that providing CA services is
  3864.      big business. These include but are not limited to:
  3865.      
  3866.      * [575]Verisign
  3867.      * [576]Thawte Consulting
  3868.      * [577]CertiSign Cerificadora Digital Ltda.
  3869.      * [578]IKS GmbH
  3870.      * [579]Uptime Commerce Ltd.
  3871.      * [580]BelSign NV/SA
  3872.        
  3873.      The root CA certificates of these companies certificates are
  3874.      included most of the popular browsers. This provides an ease-of-use
  3875.      advantage to the recipients of certificates they sign since the
  3876.      root certificates do not need to be otherwise distributed to
  3877.      authenticate the signed certificates.
  3878.      
  3879.      On the other hand, as is pointed out by C. Ellison and B. Schneier
  3880.      in their paper, Ten Risks of PKI: What You're Not Being Told About
  3881.      Public Key Infrastructure:
  3882.      
  3883.   [581]http://www.counterpane.com/pki-risks.html
  3884.  
  3885.      using the commercial CA services it makes it difficult to decide
  3886.      whether or not a certificate should be trusted for a particular
  3887.      purpose, especially if you want to use certificates to authenticate
  3888.      an end user to a system for remote access. In this situation it is
  3889.      necessary to not only be able to authenticate a certificate but be
  3890.      able to know that the information within the certificate, such as
  3891.      the uniqueIdentifier used for the User ID, is tightly controlled
  3892.      and in fact unique in your environment.
  3893.      
  3894.      If you choose to be your own CA you will have to configure your
  3895.      environment. Create the following directory trees to store the DSA
  3896.      and RSA CAs.
  3897.      
  3898.    openssl/dsaCA/certs/
  3899.    openssl/dsaCA/crl/
  3900.    openssl/dsaCA/private/
  3901.    openssl/dsaCA/newcerts/
  3902.    openssl/dsaCA/requests/
  3903.    openssl/rsaCA/certs/
  3904.    openssl/rsaCA/crl/
  3905.    openssl/rsaCA/private/
  3906.    openssl/rsaCA/newcerts/
  3907.    openssl/rsaCA/requests/
  3908.  
  3909.      Place the openssl.cnf file into the openssl directory. Edit it to
  3910.      meet the requirements of your organization. Create two sections,
  3911.      [ CA_DSA ] and [ CA_RSA ]:
  3912.      
  3913.   [ CA_DSA ]
  3914.  
  3915.   dir             = openssl_path/dsaCA/    # Where everything is kept
  3916.   certs           = $dir/certs             # Where the issued certs are kept
  3917.   crl_dir         = $dir/crl               # Where the issued crl are kept
  3918.   database        = $dir/index.txt         # database index file.
  3919.   new_certs_dir   = $dir/newcerts          # default place for new certs.
  3920.  
  3921.   certificate     = $dir/certs/cacert.pem  # The CA certificate
  3922.   serial          = $dir/ca.srl            # The current serial number
  3923.   crl             = $dir/crl.pem           # The current CRL
  3924.   private_key     = $dir/private/cakey.pem # The private key
  3925.   RANDFILE        = $dir/private/.rand     # private random number file
  3926.  
  3927.   x509_extensions = x509v3_extensions      # The extensions to add to the cert
  3928.   default_days    = 365                    # how long to certify for
  3929.   default_crl_days= 30                     # how long before next CRL
  3930.   default_md      = sha1                   # which md to use.
  3931.   preserve        = no                     # keep passed DN ordering
  3932.   policy          = policy_match           # which CA policy
  3933.  
  3934.   [ CA_RSA ]
  3935.  
  3936.   dir             = openssl_path/rsaCA/    # Where everything is kept
  3937.   certs           = $dir/certs             # Where the issued certs are kept
  3938.   crl_dir         = $dir/crl               # Where the issued crl are kept
  3939.   database        = $dir/index.txt         # database index file.
  3940.   new_certs_dir   = $dir/newcerts          # default place for new certs.
  3941.  
  3942.   certificate     = $dir/certs/cacert.pem  # The CA certificate
  3943.   serial          = $dir/ca.srl            # The current serial number
  3944.   crl             = $dir/crl.pem           # The current CRL
  3945.   private_key     = $dir/private/cakey.pem # The private key
  3946.   RANDFILE        = $dir/private/.rand     # private random number file
  3947.  
  3948.   x509_extensions = x509v3_extensions      # The extensions to add to the cert
  3949.   default_days    = 365                    # how long to certify for
  3950.   default_crl_days= 30                     # how long before next CRL
  3951.   default_md      = sha1                   # which md to use.
  3952.   preserve        = no                     # keep passed DN ordering
  3953.   policy          = policy_match           # which CA policy
  3954.  
  3955.      If you wish to use the uniqueIdentifier field to perform
  3956.      certificate to user ID mapping, add it after the emailAddress
  3957.      field.
  3958.      
  3959.      If you wish to use the subjectAltName field to perform certificate
  3960.      to user ID mapping, you must to add a [ x509v3_extensions ]
  3961.      section:
  3962.      
  3963.   [ x509v3_extensions ]
  3964.  
  3965.   subjectAltName                 = email:copy
  3966.  
  3967.      Other formats of the subjectAltName field are:
  3968.      
  3969.   subjectAltName                 = email:copy
  3970.   subjectAltName                 = issuerl:copy
  3971.   subjectAltName                 = email:fred@company.com
  3972.   subjectAltName                 = DNS:www.company.com
  3973.   subjectAltName                 = IP:100.99.98.97
  3974.   subjectAltName                 = RID:2.99999.1
  3975.  
  3976.      Other x509v3 extensions include:
  3977.      
  3978.   nsCaRevocationUrl              = http://www.domain.com/ca-crl.pem
  3979.   nsComment                      = "This is a comment"
  3980.  
  3981.      To avoid the need to specify the location of the openssl.cnf file,
  3982.      set the environment variable OPENSSL_CNF to be equal to the full
  3983.      path of the file. If you do not create this environment variable
  3984.      you must to include the option:
  3985.      
  3986.   -config path/openssl.cnf
  3987.  
  3988.      to each openssl command.
  3989.      
  3990.      Create the file that stores the next available serial number for
  3991.      each CA:
  3992.      
  3993.    openssl/dsaCA/ca.srl
  3994.    openssl/rsaCA/ca.srl
  3995.  
  3996.      The format of this file is a hex value followed by a LF (0x0A)
  3997.      character. The value "01" is an appropriate initial value.
  3998.      
  3999.      Create an empty file to store the index of signed certificates:
  4000.      
  4001.    openssl/dsaCA/index.txt
  4002.    openssl/rsaCA/index.txt
  4003.  
  4004.      Now you are ready to create the DSA and RSA CA certificates for
  4005.      your organization.
  4006.      
  4007.   III.4. Generating a DSA CA (self-signed) Certificate
  4008.   
  4009.      [ [582]Top ] [ [583]Contents ] [ [584]Appendix Contents ] [
  4010.      [585]Glossary ]
  4011.      
  4012.      Change the current working directory to openssl/dsaCA/.
  4013.      
  4014.      Generate the DSA parameters to be used when generating the keys for
  4015.      use with your certificates:
  4016.      
  4017.   openssl dsaparam 1024 -out dsa1024.pem
  4018.  
  4019.      Generate the self-signed certificate to be used as the CA
  4020.      certificate for your organization:
  4021.      
  4022.   openssl req -x509 -newkey dsa:dsa1024.pem -days days \
  4023.     -keyout private/cakey.pem -out certs/cacert.pem
  4024.  
  4025.      The days parameter should be replaced by the number of days you
  4026.      want this certificate to remain valid. All certificates signed by
  4027.      this certificate become invalid when this certificate expires.
  4028.      
  4029.      Be sure to not forget the pass-phrase you use to protect the
  4030.      private key of the CA certificate. If you do not wish to encrypt
  4031.      the CA's private key you may specify the -nodes option. But this is
  4032.      highly discouraged.
  4033.      
  4034.      You can check the contents of the CA certificate with the command:
  4035.      
  4036.   openssl x509 -text -in certs/cacert.pem
  4037.  
  4038.   III.5. Generating a DSA CSR
  4039.   
  4040.      [ [586]Top ] [ [587]Contents ] [ [588]Appendix Contents ] [
  4041.      [589]Glossary ]
  4042.      
  4043.      Change the current working directory to openssl/dsaCA/.
  4044.      
  4045.      If you have not already created a set of DSA parameters, you must
  4046.      generate a set:
  4047.      
  4048.   openssl dsaparam 1024 -out dsa1024.pem
  4049.  
  4050.      It is safe to reuse the DSA parameters.
  4051.      
  4052.      Generate the DSA certificate request:
  4053.      
  4054.   openssl req -newkey dsa:dsa1024.pem -keyout private/name-key.pem \
  4055.     -out requests/name-req.pem
  4056.  
  4057.      where name should be replaced by something that identifies the
  4058.      files. Perhaps the hostname or userid for which the certificate is
  4059.      being generated.
  4060.      
  4061.      If you are generating a CSR for use as a host certificate, be sure
  4062.      to specify the fully qualified domain name as reported by the DNS
  4063.      as the Common Name for the certificate. Otherwise, it won't be
  4064.      recognized as belonging to the host it is installed on by its
  4065.      clients.
  4066.      
  4067.      Be sure not to forget the pass-phrase you use to protect the
  4068.      private key of the CA certificate. The certificate (after signing)
  4069.      is unusable without it. Use the -nodes option if you wish to store
  4070.      the key unencrypted.
  4071.      
  4072.      You can check the contents of the CSR with the command:
  4073.      
  4074.   openssl req -text -in requests/name-req.pem
  4075.  
  4076.      The CSR now stored in requests/name-req.pem may be sent to one of
  4077.      the commercial CAs if you do not wish to be your own CA.
  4078.      
  4079.   III.6. Generating an RSA CA (self-signed) certificate
  4080.   
  4081.      [ [590]Top ] [ [591]Contents ] [ [592]Appendix Contents ] [
  4082.      [593]Glossary ]
  4083.      
  4084.      Change the current working directory to openssl/rsaCA/.
  4085.      
  4086.      Generate the self-signed certificate to be used as the CA
  4087.      certificate for your organization:
  4088.      
  4089.   openssl req -x509 -newkey rsa:1024 -days days \
  4090.     -keyout private/cakey.pem -out certs/cacert.pem
  4091.  
  4092.      The days parameter should be replaced by the number of days you
  4093.      want this certificate to remain valid. All certificates signed by
  4094.      this certificate become invalid when this certificate expires.
  4095.      
  4096.      Be sure not to forget the pass-phrase you use to protect the
  4097.      private key of the CA certificate. If you do not wish to encrypt
  4098.      the CA's private key you may specify the -nodes option. But this is
  4099.      highly discouraged.
  4100.      
  4101.      You can check the contents of the CA certificate with the command:
  4102.      
  4103.   openssl x509 -text -in certs/cacert.pem
  4104.  
  4105.   III.7. Generating an RSA CSR
  4106.   
  4107.      [ [594]Top ] [ [595]Contents ] [ [596]Appendix Contents ] [
  4108.      [597]Glossary ]
  4109.      
  4110.      Change the current working directory to openssl/rsaCA/.
  4111.      
  4112.   openssl req -newkey rsa:1024 -keyout private/name-key.pem \
  4113.     -out requests/name-req.pem
  4114.  
  4115.      name should be replaced by something that identifies the files,
  4116.      such as the hostname or userid for which the certificate is being
  4117.      generated.
  4118.      
  4119.      If you are generating a CSR for use as a host certificate be sure
  4120.      to specify the fully qualified domain name as reported by the DNS
  4121.      as the Common Name for the certificate. Otherwise, it is not
  4122.      recognized as belonging to the host it is installed on by its
  4123.      clients.
  4124.      
  4125.      Be sure not to forget the pass-phrase you use to protect the
  4126.      private key of the CA certificate. The certificate (after signing)
  4127.      is unusable without it. Use the -nodes option if you wish to store
  4128.      the key unencrypted.
  4129.      
  4130.      You can check the contents of the CSR with the command:
  4131.      
  4132.   openssl req -text -in requests/name-req.pem
  4133.  
  4134.      The CSR now stored in requests/name-req.pem may be sent to one of
  4135.      the commercial CAs if you do not wish to be your own CA.
  4136.      
  4137.   III.8. Signing a CSR with your CA certificate
  4138.   
  4139.      [ [598]Top ] [ [599]Contents ] [ [600]Appendix Contents ] [
  4140.      [601]Glossary ]
  4141.      
  4142.      If you are signing a DSA certificate change directory to
  4143.      openssl/dsaCA/ and use a caname of "CA_DSA". If you are signing an
  4144.      RSA certificate change directory to openssl/rsaCA/ and use a caname
  4145.      of "CA_RSA":
  4146.      
  4147.   openssl ca -name caname -in requests/name-req.pem \
  4148.     -out certs/name.pem -days days
  4149.  
  4150.      The days parameter should be replaced by the number of days you
  4151.      want the signed certificate to remain valid. If you want to specify
  4152.      a specific date range you can replace the -days parameters with:
  4153.      
  4154.  -startdate YYMMDDHHMMSSZ  - certificate validity notBefore
  4155.  -enddate YYMMDDHHMMSSZ    - certificate validity notAfter
  4156.  
  4157.      The file certs/name.pem now contains a signed certificate that may
  4158.      be used by a host or client for authentication with its matching
  4159.      private key (private/name-key.pem.)
  4160.      
  4161.      An alternative method of signing the CSR is to use the command:
  4162.      
  4163.   openssl x509 -req -in requests/name-req.pem -CA certs/cacert.pem \
  4164.     -CAkey private/cakey.pem -out certs/name.pem -days days \
  4165.     -CAserial ca.srl -CAcreateserial
  4166.  
  4167.      The "openssl x509" command provides greater functionality at the
  4168.      expense of ease of use. The X509 may be used to assign X.509v3
  4169.      certificate extensions with the -extfile and -extensions switches.
  4170.      It may also be used to produce certificates that may only be used
  4171.      for specific purposes.
  4172.      
  4173.      You can check the contents of the CA certificate with the command:
  4174.      
  4175.   openssl x509 -text -in certs/name.pem
  4176.  
  4177.   III.9. Revoking a Certificate
  4178.   
  4179.      [ [602]Top ] [ [603]Contents ] [ [604]Appendix Contents ] [
  4180.      [605]Glossary ]
  4181.      
  4182.      If you are revoking a DSA certificate change directory to
  4183.      openssl/dsaCA/ and use a caname of "CA_DSA". If you are revoking an
  4184.      RSA certificate change directory to openssl/rsaCA/ and use a caname
  4185.      of "CA_RSA".
  4186.      
  4187.   openssl ca -name caname -revoke certs/name.pem
  4188.  
  4189.      marks the certificate as being revoked in the index.txt file. It is
  4190.      necessary to revoke a certificate with a given subject name if you
  4191.      wish to generate a new certificate with an identical subject name.
  4192.      Once a certificate is revoked it is listed in the next generated
  4193.      CRL.
  4194.      
  4195.   III.10. Generating a CRL
  4196.   
  4197.      [ [606]Top ] [ [607]Contents ] [ [608]Appendix Contents ] [
  4198.      [609]Glossary ]
  4199.      
  4200.      If you are generating a CRL for your DSA certificates change
  4201.      directory to openssl/dsaCA/ and use a caname of "CA_DSA". If you
  4202.      are generating a CRL for your RSA certificate change directory to
  4203.      openssl/rsaCA/ and use a caname of "CA_RSA":
  4204.      
  4205.   openssl ca -name caname -gencrl -out crl/date-crl.pem
  4206.  
  4207.      date should be replaced by the date the crl was generated.
  4208.      
  4209.      You can check the contents of the CRL with the command:
  4210.      
  4211.   openssl crl -in crl/date-crl.pem -text
  4212.  
  4213.      The current CRL should be placed somewhere it is publicly and
  4214.      easily accessible. For instance, by HTTP or FTP. The CRL is signed
  4215.      by the CA certificate
  4216.      
  4217.   III.11. Mapping a Client Certificate to a User ID
  4218.   
  4219.      [ [610]Top ] [ [611]Contents ] [ [612]Appendix Contents ] [
  4220.      [613]Glossary ]
  4221.      
  4222.      Kermit can be configured to perform a mapping from an X.509 client
  4223.      certificate to a User ID. This is primarily of use when Kermit is
  4224.      installed as an Internet Kermit Service. When a mapping is enabled,
  4225.      the client certificate may be used to authenticate and
  4226.      automatically login a user to their account or resources.
  4227.      
  4228.      Unfortunately, it is not possible to build a function in to Kermit
  4229.      to provide the mapping from Certificate to User ID that would be
  4230.      secure and/or applicable to every installation. There are several
  4231.      commonly used approaches to map a certificate to a userid. Kermit
  4232.      can be customized to use whichever one you choose to use in your
  4233.      environment.
  4234.      
  4235.    Map the X.509 uniqueIdentifier field to the User ID
  4236.           The uniqueIdentifier field of the X.509 client certificate can
  4237.           include the userid of the end user. For instance, John Doe's
  4238.           uniqueIdentifier might be jdoe. A mapping function can extract
  4239.           the contents of this field and return it as the User ID.
  4240.           
  4241.           The problem with this approach is the uniqueIdentifier may not
  4242.           be very unique. Let us assume that you do not want to go
  4243.           through the trouble of managing your own Certificate Authority
  4244.           because it is too much work. So you refer all of your clients
  4245.           to request X.509 certificates from one of the commercial
  4246.           Certificate Authorities. It is possible that another site is
  4247.           doing exactly the same thing and that this other site has a
  4248.           user Jane Doe with User ID jdoe. In this circumstance, simply
  4249.           verifying the certificate against the CA certificate and
  4250.           extracting the uniqueIdentifier results in a security hole
  4251.           since Jane Doe would be able to gain access to John Doe's
  4252.           account.
  4253.           
  4254.    Map the X.509 subjectAltName to the User ID
  4255.           The subjectAltName field of the X.509 client certificate can
  4256.           include the e-mail address of the user instead of simply the
  4257.           userid of the user. In the case of John Doe, his subjectAltName
  4258.           would be jdoe@mydomain.com whereas Jane Doe's subjectAltName
  4259.           would be jdoe@someotherdomain.com. A mapping function using the
  4260.           subjectAltName can extract the contents of the subjectAltName,
  4261.           verify the domain is correct and then return the User ID.
  4262.           
  4263.           This method is safer than the uniqueIdentifier, but it is still
  4264.           placing a lot of trust in the Certificate Authority. If you are
  4265.           not issuing the certificates yourself you'll have to trust that
  4266.           the CA has a legitimate method for verifying that the e-mail
  4267.           address belongs to the user for whom the CA is signing a
  4268.           certificate.
  4269.           
  4270.    Map the Entire Certificate to the User ID
  4271.           Instead of trusting the contents of one of the fields within
  4272.           the certificate you can require that your user's submit their
  4273.           certificates for registration prior to use. The mapping
  4274.           function can then lookup the certificate in a local database or
  4275.           an LDAP server to retrieve the User ID. Of the methods
  4276.           described, this is the most secure.
  4277.           
  4278.      In addition to determining which userid is associated with a given
  4279.      client certificate, it is just as important to know whether or not
  4280.      the user is actually authorized to access the service when the
  4281.      certificate is provided.
  4282.      
  4283.      The X509_userok() function determines whether or not the
  4284.      combination of the provided X509 certificate and username is valid
  4285.      for automatic login. Whereas X509_to_user() is used to provide
  4286.      authentication of the user, the X509_userok() function is used to
  4287.      provide authorization. The certificate passed into X509_userok()
  4288.      does need to map to a userid; nor would the userid it would map to
  4289.      need to match the userid provided to the function. There are
  4290.      numerous circumstances in which it is beneficial to have the
  4291.      ability for multiple users to gain access to a common account such
  4292.      as 'root' on Unix; or a class account on a web server.
  4293.      
  4294.      In Unix this capability can be provided with a ~userid/.tlslogin
  4295.      file that contains a list of X509 certificates thatMay can be used
  4296.      to access the account userid.
  4297.      
  4298.     III.11.1. Mapping a Client Certificate to a User ID in Kermit 95
  4299.     
  4300.      [ [614]Top ] [ [615]Contents ] [ [616]Appendix Contents ] [
  4301.      [617]Glossary ]
  4302.      
  4303.      X.509 to User ID mapping functions are implemented in Kermit 95 via
  4304.      the use of a user compiled Dynamic Link Library (DLL),
  4305.      X5092UID.DLL. To build this DLL you need a C compiler such as
  4306.      Microsoft's Visual C++ and OpenSSL 0.9.4 (or higher) compiled and
  4307.      installed.
  4308.      
  4309.      OpenSSL sources may be retrieved from the web site:
  4310.      
  4311.   [618]http://www.openssl.org/
  4312.  
  4313.      As of this writing the current release of OpenSSL is 0.9.6b and
  4314.      0.9.7 is under development. Kermit 95 1.1.20 works OpenSSL binaries
  4315.      produced by compiling versions 0.9.4 or higher. Patches for OpenSSL
  4316.      0.9.4 to allow compilation under OS/2 are located at:
  4317.      
  4318.   [619]http://www.geocities.com/SiliconValley/Hills/8057/files/openssl.html
  4319.  
  4320.      On Windows, OpenSSL must be compiled and linked to use the NT DLL
  4321.      option without Debug information. Compiling the DLLs with support
  4322.      for debugging links the DLLs to an incompatible C Run Time Library
  4323.      DLL. On OS/2, OpenSSL must be compiled to use the DLL version of
  4324.      the run time library.
  4325.      
  4326.      The DLL must contain two functions with the following prototypes:
  4327.      
  4328.   /* X509_to_user() returns 0 if valid userid in 'userid', else -1 */
  4329.   int X509_to_user(X509 *peer_cert, char *userid, int len);
  4330.  
  4331.   /* X509_userok() returns 0 if access is denied; 1 is access is permitted */
  4332.   int X509_userok(X509 * peer_cert, const char * userid);
  4333.  
  4334.      An example function that uses the /UID field of the Certificate
  4335.      Subject name follows:
  4336.      
  4337.   int
  4338.   X509_to_user(X509 *peer_cert, char *userid, int len) {
  4339.       int err;
  4340.  
  4341.       if (!(peer_cert && userid) || len <= 0)
  4342.           return -1;
  4343.  
  4344.       /* Userid is in cert subject /UID */
  4345.       err = X509_NAME_get_text_by_NID(X509_get_subject_name(peer_cert),
  4346.                                        NID_uniqueIdentifier, userid, len);
  4347.       if (err > 0)
  4348.           return 0;
  4349.       return -1;
  4350.   }
  4351.  
  4352.      An example function provides userid authorization follows:
  4353.      
  4354. int
  4355. X509_userok(X509 * peer_cert, const char * userid) {
  4356.     /* check if clients cert is in "user"'s ~/.tlslogin file */
  4357.     char buf[512];
  4358.     int r = 0;
  4359.     FILE *fp;
  4360.     struct passwd *pwd;
  4361.     X509 *file_cert;
  4362.  
  4363.     if ( peer_cert == NULL )
  4364.       return(0);
  4365.  
  4366.     if (!(pwd = getpwnam(userid)))
  4367.      return 0;
  4368.     if (strlen(pwd->pw_dir) > 500)
  4369.      return(0);
  4370.     sprintf(buf, "%s/.tlslogin", pwd->pw_dir);
  4371.  
  4372.     if (!(fp = fopen(buf, "r")))
  4373.       return 0;
  4374.     while (!r && (file_cert = PEM_read_X509(fp, NULL, NULL, NULL))) {
  4375.         if (<ASN1_STRING_cmp(peer_cert->signature, file_cert->signature))
  4376.             r = 1;
  4377.         X509_free(file_cert);
  4378.     }
  4379.     fclose(fp);
  4380.     return(r);
  4381. }
  4382.  
  4383.      These functions must be compiled into a DLL called "X5092UID.DLL".
  4384.      It should be linked to the OpenSSL libraries and the DLL version of
  4385.      the run time library.
  4386.      
  4387.      Contact [620]Kermit Support for further information..
  4388.      
  4389.     III.11.2 Mapping a Client Certificate to a User ID in C-Kermit
  4390.     
  4391.      [ [621]Top ] [ [622]Contents ] [ [623]Appendix Contents ] [
  4392.      [624]Glossary ]
  4393.      
  4394.      X.509 to User ID mapping functions are implemented in C-Kermit in
  4395.      one of two ways.
  4396.      
  4397.      * If you want to use the uniqueIdentifier field you can specify
  4398.        KFLAGS=-DX509_UID_TO_USER at compile time.
  4399.      * If you want to use the subjectAltName field you can specify
  4400.        KFLAGS=-DX509_SUBJECT_ALT_NAME_TO_USER at compile time.
  4401.      * Otherwise, you need to customize the X509_to_user() function in
  4402.        the ck_ssl.c source file to implement your verification method.
  4403.        
  4404.      A X509_userok() that supports the use of the ~userid/.tlslogin file
  4405.      is provided. This function should be examined for compatibility
  4406.      with the institutional access policies. It should be replaced or
  4407.      modified as needed.
  4408.      
  4409.      Contact [625]Kermit Support for further information..
  4410.     ________________________________________________________________________
  4411.   
  4412.   GLOSSARY [ [626]Top ] [ [627]Contents ]
  4413.   
  4414.    ARPANET
  4415.           The US Department of Defense [628]Advanced Research Projects
  4416.           Agency Network, the precursor to the Internet.
  4417.           
  4418.    Authentication
  4419.           The process by which one entity proves its identity to another
  4420.           entity on the Internet.
  4421.           
  4422.    Authorization
  4423.           The process by which one gains access to a particular resource.
  4424.           
  4425.    CA
  4426.           SSL/TLS X.509 Certificate Authority.
  4427.           
  4428.    Certificate
  4429.           A public security key packaged in a way that allows its
  4430.           verification.
  4431.           
  4432.    Client
  4433.           (Kerberos) An entity that can obtain a ticket (see Ticket).
  4434.           
  4435.    Credentials Cache
  4436.           (Kerberos) The location where Kerberos stores tickets. The
  4437.           credentials cache can be a file or a buffer in memory.
  4438.           
  4439.    CAST
  4440.           An encryption algorithm similar to DES (q.v.).
  4441.           
  4442.    CRL
  4443.           SSL/TLS X.509 Certificate Revocation List.
  4444.           
  4445.    CSR
  4446.           SSL/TLS X.509 Certificate Signing Request.
  4447.           
  4448.    DES
  4449.           USA Federal Information Processing Standard (FIPS) [629]46-2
  4450.           Data Encryption Standard (1988, 1993).
  4451.           
  4452.    DNS
  4453.           Domain Name System (which resolves IP hostnames into numeric IP
  4454.           addresses).
  4455.           
  4456.    DNSSEC
  4457.           [630]Domain Name System Security.
  4458.           
  4459.    Entity
  4460.           In this document, a user, host, or service.
  4461.           
  4462.    Expiration
  4463.           (Kerberos) Invalidation of a ticket after a certain period of
  4464.           time. A ticket's lifetime is chosen by the user when obtaining
  4465.           the ticket; the maximum allowable lifetime for different kinds
  4466.           of tickets is set by the site administrator.
  4467.           
  4468.    FTP
  4469.           File Transfer Protocol. On the Internet, this refers to a
  4470.           specific protocol defined in [631]RFC 959 and its followons.
  4471.           
  4472.    Forwardable Tickets
  4473.           (Kerberos) Tickets that can be forwarded (copied) to a remote
  4474.           machine, where they can be used, eliminating the need to obtain
  4475.           new Ticket Granting Tickets (q.v.) on that machine, e.g. for
  4476.           Telnetting from machine A to machine B and then from machine B
  4477.           to machine C.
  4478.           
  4479.    Host
  4480.           A computer that can be accessed over a network.
  4481.           
  4482.    HTTP
  4483.           Hyper Text Transfer Protocol, the protocol of the World Wide
  4484.           Web, [632]RFC 2616.
  4485.           
  4486.    IETF
  4487.           The [633]Internet Engineering Task Force, the body that sets
  4488.           standards for use on the Internet.
  4489.           
  4490.    IKSD
  4491.           [634]Internet Kermit Service Daemon.
  4492.           
  4493.    IPsec
  4494.           [635]IP Security Protocol.
  4495.           
  4496.    IPv6
  4497.           [636]Internet Protocol Version 6, the "next generation"
  4498.           Internet protocol.
  4499.           
  4500.    ITU-T
  4501.           International Telecommunications Union, the body that sets
  4502.           international X-dot-series standards.
  4503.           
  4504.    Integrity
  4505.           The assurance that traffic on a network connection has not been
  4506.           altered in transit.
  4507.           
  4508.    KDC
  4509.           (Kerberos) Key Distribution Center, a machine that issues
  4510.           Kerberos tickets.
  4511.           
  4512.    PGP
  4513.           [637]Pretty Good Privacy, the original do-it-yourself public
  4514.           key security scheme, first developed in 1991 by Phil Zimmerman.
  4515.           
  4516.    Preauthenticated Ticket Granting Ticket Request
  4517.           (Kerberos) The client must include a time stamp encrypted with
  4518.           the user's password when requesting the TGT from the KDC. This
  4519.           allows the KDC to only deliver a TGT to a valid user. When
  4520.           preauthentication is not used the TGT may be attacked offline
  4521.           to determine the user's password.
  4522.           
  4523.    NAT
  4524.           Network Address Translator.
  4525.           
  4526.    NTLM
  4527.           Microsoft (Windows) NT LAN Manager authentication protocol.
  4528.           
  4529.    PKI
  4530.           Public Key Infrastructure.
  4531.           
  4532.    Postdated Ticket
  4533.           (Kerberos) A ticket that does not become valid until after a
  4534.           specified time. This allows for secure unattended operations.
  4535.           
  4536.    Principal
  4537.           (Kerberos) A string that names a specific entity to which a set
  4538.           of credentials may be assigned. It generally has three parts,
  4539.           primary/instance@REALM:
  4540.           
  4541.          1. Primary: Identifies the user or service.
  4542.          2. Instance: Usually a hostname or REALM.
  4543.          3. REALM: Logical network served by a single Kerberos database
  4544.             and KDC.
  4545.             
  4546.    Privacy
  4547.           The assurance that traffic on a network connection is
  4548.           intelligible only to the two communicating parties.
  4549.           
  4550.    Proxiable Ticket
  4551.           (Kerberos) A ticket that may be given to a service to allow the
  4552.           service to impersonate the user for whom the ticket has been
  4553.           issued.
  4554.           
  4555.    SSL
  4556.           Secure Sockets Layer, developed by/for Netscape for secure Web
  4557.           connections.
  4558.           
  4559.    SOCKS
  4560.           Protocol for firewall traversal. SOCKS5 is an Internet standard
  4561.           ([638]RFC 1928).
  4562.           
  4563.    SSL/TLS
  4564.           SSL (q.v.) and/or TLS (q.v.).
  4565.           
  4566.    SRP
  4567.           Stanford University's Secure Remote Password protocol, a
  4568.           zero-knowledge based authentication method.
  4569.           
  4570.    TELNET
  4571.           ARPANET/Internet Network Virtual Terminal Protocol ("Teletype
  4572.           Network"), described in [639]RFC 854 plus many followons.
  4573.           
  4574.    Ticket
  4575.           (Kerberos) A temporary set of electronic credentials that
  4576.           verifies the identity of its owner to a particular service.
  4577.           
  4578.    TGT
  4579.           (Kerberos) Ticket Granting Ticket. A special ticket that lets
  4580.           its owner obtain additional tickets within the same realm. A
  4581.           TGT is obtained during the initial authentication process.
  4582.           
  4583.    TLS
  4584.           Transport Layer Security, the Internet standard form of SSL
  4585.           (q.v.),
  4586.           
  4587.      [640]RFC 2246.
  4588.           
  4589.    X.509
  4590.           ITU-T standard for exchanging public keys.
  4591.     ________________________________________________________________________
  4592.   
  4593.   REFERENCES
  4594.   
  4595.      [ [641]Top ] [ [642]Contents ]
  4596.     1. Schneier, Bruce, Applied Cryptography: Protocols, Algorithms, and
  4597.        Source Code in C, 2nd Edition, 784 pages, John Wiley & Sons; ISBN:
  4598.        0471117099 (1995).
  4599.     2. da Cruz, Frank, and Christine M. Gianone, Using C-Kermit, 2nd
  4600.        Edition, 622 pages, Digital Press / Butterworth Heinemann; ISBN:
  4601.        1-55558-164-1 (1997)
  4602.     3. [643]The Kermit Project Website
  4603.     4. [644]RFC 854:  Telnet Protocol Specification
  4604.     5. [645]RFC 959:  File Transfer Protocol (FTP)
  4605.     6. [646]RFC 1282: BSD Rlogin
  4606.     7. [647]RFC 1510: The Kerberos Network Authentication Service (V5)
  4607.     8. [648]RFC 1928: SOCKS Protocol Version 5
  4608.     9. [649]RFC 1964: The Kerberos Version 5 GSS-API Mechanism
  4609.    10. [650]RFC 2217 Telnet Com Port Control Option
  4610.    11. [651]RFC 2228: FTP Security Extensions
  4611.    12. [652]RFC 2246: The TLS Protocol Version 1.0
  4612.    13. [653]RFC 2663: IP Network Address Translator (NAT) Terminology and
  4613.        Considerations
  4614.    14. [654]RFC 2459: Internet X.509 Public Key Infrastructure -
  4615.        Certificate and CRL Profile
  4616.    15. [655]RFC 2527: Internet X.509 Public Key Infrastructure -
  4617.        Certificate Policy and Certification Practices Framework
  4618.    16. [656]RFC 2528: Internet X.509 Public Key Infrastructure -
  4619.        Representation of Key Exchange Algorithm (KEA) Keys...
  4620.    17. [657]RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
  4621.    18. [658]RFC 2712: Addition of Kerberos Cipher Suites to Transport
  4622.        Layer Security (TLS)
  4623.    19. [659]RFC 2818: HTTP over TLS
  4624.    20. [660]RFC 2839: Internet Kermit Service
  4625.    21. [661]RFC 2840: Telnet KERMIT Option
  4626.    22. [662]RFC 2941: Telnet Authentication Option
  4627.    23. [663]RFC 2942: Telnet Authentication: Kerberos Version 5
  4628.    24. [664]RFC 2943: TELNET Authentication Using DSA
  4629.    25. [665]RFC 2944: Telnet Authentication: SRP
  4630.    26. [666]RFC 2945: The SRP Authentication and Key Exchange System
  4631.    27. [667]RFC 2946: Telnet Data Encryption Option
  4632.    28. [668]RFC 2947: Telnet Encryption: DES3 64 bit Cipher Feedback
  4633.    29. [669]RFC 2948: DES3 64-bit Output Feedback Mode
  4634.    30. [670]RFC 2949: CAST-128 64-bit Output Feedback Mode
  4635.    31. [671]RFC 2950: CAST-128 64-bit Cipher Feedback Mode
  4636.    32. [672]RFC 2951: DES 64-bit Output Feedback Mode
  4637.    33. [673]RFC 2952: DES 64-bit Cipher Feedback Mode
  4638.    34. [674]RFC 2953: Telnet Encryption: DES 64 bit Output Feedback
  4639.    35. [675]RFC 2993: Architectural Implications of NAT
  4640.    36. [676]RFC 3002: Traditional IP Network Address Translator
  4641.        (Traditional NAT)
  4642.        
  4643.    Also see:
  4644.           [677]http://www.columbia.edu/kermit/standards.html
  4645.     ________________________________________________________________________
  4646.   
  4647.   TRADEMARKS
  4648.   
  4649.      [ [678]Top ] [ [679]Contents ]
  4650.      
  4651.    Kerberos
  4652.           Is a trademark of Massachusetts Institute of Technology.
  4653.           
  4654.    Secure Remote Password
  4655.           Is a trademark of Stanford University.
  4656.           
  4657.    Secure Shell
  4658.           Is a trademark of SSH Communications Security Corporation.
  4659.           
  4660.    SSH
  4661.           Is a registered trademark of SSH Communications Security
  4662.           Corporation.
  4663.           
  4664.      [ [680]Top ] [ [681]Contents ] [ [682]Glossary ] [ [683]C-Kermit
  4665.      Home ] [ [684]Kermit Home ]
  4666.        ______________________________________________________________
  4667.      
  4668.      [685]Kermit Security Reference / [686]The Kermit Project /
  4669.      [687]Columbia University / [688]kermit-support@columbia.edu / 12
  4670.      Dec 2001
  4671.  
  4672. References
  4673.  
  4674.    1. http://www.columbia.edu/kermit/
  4675.    2. http://www.columbia.edu/
  4676.    3. http://www.columbia.edu/kermit/ck80.html
  4677.    4. http://www.columbia.edu/kermit/k95next.html
  4678.    5. http://www.columbia.edu/kermit/security70.html
  4679.    6. http://www.columbia.edu/kermit/ck70.html
  4680.    7. http://www.columbia.edu/kermit/k95.html
  4681.    8. http://www.columbia.edu/kermit/index.html
  4682.    9. http://www.columbia.edu/kermit/ckermit.html
  4683.   10. http://www.columbia.edu/kermit/k95.html
  4684.   11. http://www.columbia.edu/kermit/security80.html#x1
  4685.   12. http://www.columbia.edu/kermit/security80.html#x2
  4686.   13. http://www.columbia.edu/kermit/security80.html#x3
  4687.   14. http://www.columbia.edu/kermit/security80.html#x4
  4688.   15. http://www.columbia.edu/kermit/security80.html#xa1
  4689.   16. http://www.columbia.edu/kermit/security80.html#xa2
  4690.   17. http://www.columbia.edu/kermit/security80.html#xa3
  4691.   18. http://www.columbia.edu/kermit/security80.html#glossary
  4692.   19. http://www.columbia.edu/kermit/security80.html#references
  4693.   20. http://www.columbia.edu/kermit/security80.html#trademarks
  4694.   21. http://www.columbia.edu/kermit/security80.html#top
  4695.   22. http://www.columbia.edu/kermit/security80.html#contents
  4696.   23. http://www.columbia.edu/kermit/security80.html#glossary
  4697.   24. http://www.columbia.edu/kermit/security80.html#x2
  4698.   25. http://www.columbia.edu/kermit/security80.html#x1.1
  4699.   26. http://www.columbia.edu/kermit/security80.html#x1.2
  4700.   27. http://www.columbia.edu/kermit/security80.html#x1.3
  4701.   28. http://www.columbia.edu/kermit/security80.html#x1.4
  4702.   29. http://www.columbia.edu/kermit/security80.html#x1.5
  4703.   30. http://www.columbia.edu/kermit/security80.html#glossary
  4704.   31. http://www.columbia.edu/acis/security/safecomputing.html
  4705.   32. http://www.columbia.edu/kermit/security80.html#n01
  4706.   33. http://www.ietf.org/html.charters/ipsec-charter.html
  4707.   34. http://www.ipv6.org/
  4708.   35. http://www.ietf.org/ids.by.wg/dnssec.html
  4709.   36. http://www.columbia.edu/kermit/ckermit.html
  4710.   37. http://www.columbia.edu/kermit/k95.html
  4711.   38. http://www.columbia.edu/kermit/security80.html#trademarks
  4712.   39. http://www.columbia.edu/kermit/security80.html#trademarks
  4713.   40. http://www.columbia.edu/kermit/security80.html#trademarks
  4714.   41. http://www.columbia.edu/kermit/security80.html#trademarks
  4715.   42. http://www.columbia.edu/kermit/security80.html#top
  4716.   43. http://www.columbia.edu/kermit/security80.html#contents
  4717.   44. http://www.columbia.edu/kermit/security80.html#x1
  4718.   45. http://www.columbia.edu/kermit/security80.html#glossary
  4719.   46. http://www.columbia.edu/kermit/security80.html#top
  4720.   47. http://www.columbia.edu/kermit/security80.html#contents
  4721.   48. http://www.columbia.edu/kermit/security80.html#x1
  4722.   49. http://www.columbia.edu/kermit/security80.html#glossary
  4723.   50. http://www.columbia.edu/kermit/security80.html#xa3
  4724.   51. ftp://ftp.isi.edu/in-notes/rfc2228.txt
  4725.   52. ftp://ftp.isi.edu/in-notes/rfc2818.txt
  4726.   53. http://www.columbia.edu/kermit/security80.html#xa3
  4727.   54. http://www.columbia.edu/kermit/security80.html#top
  4728.   55. http://www.columbia.edu/kermit/security80.html#contents
  4729.   56. http://www.columbia.edu/kermit/security80.html#x1
  4730.   57. http://www.columbia.edu/kermit/security80.html#glossary
  4731.   58. http://www.columbia.edu/kermit/security80.html#x1.3.1
  4732.   59. http://www.columbia.edu/kermit/security80.html#x1.3.2
  4733.   60. http://www.columbia.edu/kermit/security80.html#x1.3.3
  4734.   61. http://www.columbia.edu/kermit/security80.html#x1.3.4
  4735.   62. http://www.columbia.edu/kermit/security80.html#x1.3.1
  4736.   63. http://www.columbia.edu/kermit/security80.html#xa3
  4737.   64. http://www.columbia.edu/kermit/security80.html#x1.3.2
  4738.   65. http://www.columbia.edu/kermit/security80.html#top
  4739.   66. http://www.columbia.edu/kermit/security80.html#contents
  4740.   67. http://www.columbia.edu/kermit/security80.html#x1
  4741.   68. http://www.columbia.edu/kermit/security80.html#x1.3
  4742.   69. http://www.columbia.edu/kermit/security80.html#glossary
  4743.   70. ftp://ftp.isi.edu/in-notes/rfc1510.txt
  4744.   71. ftp://ftp.isi.edu/in-notes/rfc1964.txt
  4745.   72. http://web.mit.edu/kerberos/www/
  4746.   73. http://nii.isi.edu/info/kerberos/
  4747.   74. http://nii.isi.edu/publications/kerberos-neuman-tso.html
  4748.   75. http://www.columbia.edu/kermit/security80.html#top
  4749.   76. http://www.columbia.edu/kermit/security80.html#contents
  4750.   77. http://www.columbia.edu/kermit/security80.html#x1
  4751.   78. http://www.columbia.edu/kermit/security80.html#x1.3
  4752.   79. http://www.columbia.edu/kermit/security80.html#glossary
  4753.   80. ftp://ftp.isi.edu/in-notes/rfc2945.txt
  4754.   81. http://www-cs-students.stanford.edu/~tjw/srp/
  4755.   82. http://www.columbia.edu/kermit/security80.html#top
  4756.   83. http://www.columbia.edu/kermit/security80.html#contents
  4757.   84. http://www.columbia.edu/kermit/security80.html#x1
  4758.   85. http://www.columbia.edu/kermit/security80.html#x1.3
  4759.   86. http://www.columbia.edu/kermit/security80.html#glossary
  4760.   87. http://www.columbia.edu/kermit/security80.html#top
  4761.   88. http://www.columbia.edu/kermit/security80.html#contents
  4762.   89. http://www.columbia.edu/kermit/security80.html#x1
  4763.   90. http://www.columbia.edu/kermit/security80.html#x1.3
  4764.   91. http://www.columbia.edu/kermit/security80.html#glossary
  4765.   92. http://www.columbia.edu/kermit/security80.html#xa3
  4766.   93. http://www.columbia.edu/kermit/security80.html#top
  4767.   94. http://www.columbia.edu/kermit/security80.html#contents
  4768.   95. http://www.columbia.edu/kermit/security80.html#x1
  4769.   96. http://www.columbia.edu/kermit/security80.html#glossary
  4770.   97. http://www.columbia.edu/kermit/security80.html#x2
  4771.   98. http://www.columbia.edu/kermit/security80.html#x1.4.1
  4772.   99. http://www.columbia.edu/kermit/security80.html#x1.4.2
  4773.  100. http://www.columbia.edu/kermit/security80.html#x1.4.3
  4774.  101. http://www.columbia.edu/kermit/security80.html#x1.4.4
  4775.  102. http://www.columbia.edu/kermit/security80.html#x1.4.5
  4776.  103. http://www.columbia.edu/kermit/security80.html#x1.4.6
  4777.  104. http://www.columbia.edu/kermit/security80.html#top
  4778.  105. http://www.columbia.edu/kermit/security80.html#contents
  4779.  106. http://www.columbia.edu/kermit/security80.html#x1
  4780.  107. http://www.columbia.edu/kermit/security80.html#x1.4
  4781.  108. http://www.columbia.edu/kermit/security80.html#glossary
  4782.  109. ftp://ftp.isi.edu/in-notes/rfc2946.txt
  4783.  110. ftp://ftp.isi.edu/in-notes/rfc2950.txt
  4784.  111. ftp://ftp.isi.edu/in-notes/rfc2949.txt
  4785.  112. ftp://ftp.isi.edu/in-notes/rfc2947.txt
  4786.  113. ftp://ftp.isi.edu/in-notes/rfc2948.txt
  4787.  114. ftp://ftp.isi.edu/in-notes/rfc2952.txt
  4788.  115. ftp://ftp.isi.edu/in-notes/rfc2951.txt
  4789.  116. http://www.columbia.edu/kermit/security80.html#x1.4.3
  4790.  117. http://www.columbia.edu/kermit/security80.html#top
  4791.  118. http://www.columbia.edu/kermit/security80.html#contents
  4792.  119. http://www.columbia.edu/kermit/security80.html#x1
  4793.  120. http://www.columbia.edu/kermit/security80.html#x1.4
  4794.  121. http://www.columbia.edu/kermit/security80.html#glossary
  4795.  122. http://www.columbia.edu/kermit/security80.html#top
  4796.  123. http://www.columbia.edu/kermit/security80.html#contents
  4797.  124. http://www.columbia.edu/kermit/security80.html#x1
  4798.  125. http://www.columbia.edu/kermit/security80.html#x1.4
  4799.  126. http://www.columbia.edu/kermit/security80.html#glossary
  4800.  127. ftp://ftp.isi.edu/in-notes/rfc2246.txt
  4801.  128. http://www.columbia.edu/kermit/security80.html#xa3
  4802.  129. ftp://ftp.isi.edu/in-notes/rfc2712.txt
  4803.  130. http://www.columbia.edu/kermit/security80.html#top
  4804.  131. http://www.columbia.edu/kermit/security80.html#contents
  4805.  132. http://www.columbia.edu/kermit/security80.html#x1
  4806.  133. http://www.columbia.edu/kermit/security80.html#x1.4
  4807.  134. http://www.columbia.edu/kermit/security80.html#glossary
  4808.  135. http://www.columbia.edu/kermit/security80.html#top
  4809.  136. http://www.columbia.edu/kermit/security80.html#contents
  4810.  137. http://www.columbia.edu/kermit/security80.html#x1
  4811.  138. http://www.columbia.edu/kermit/security80.html#x1.4
  4812.  139. http://www.columbia.edu/kermit/security80.html#glossary
  4813.  140. http://www.columbia.edu/kermit/security80.html#x1.4.3
  4814.  141. http://www.columbia.edu/kermit/security80.html#top
  4815.  142. http://www.columbia.edu/kermit/security80.html#contents
  4816.  143. http://www.columbia.edu/kermit/security80.html#x1
  4817.  144. http://www.columbia.edu/kermit/security80.html#x1.4
  4818.  145. http://www.columbia.edu/kermit/security80.html#glossary
  4819.  146. http://www.columbia.edu/kermit/security80.html#top
  4820.  147. http://www.columbia.edu/kermit/security80.html#contents
  4821.  148. http://www.columbia.edu/kermit/security80.html#glossary
  4822.  149. http://www.columbia.edu/kermit/security80.html#x1
  4823.  150. http://www.columbia.edu/kermit/security80.html#x3
  4824.  151. http://www.mozilla.org/crypto-faq.html
  4825.  152. http://www.columbia.edu/kermit/ckermit.html
  4826.  153. http://www.columbia.edu/kermit/ck80.html
  4827.  154. http://www.columbia.edu/kermit/k95.html
  4828.  155. http://www.columbia.edu/kermit/index.html
  4829.  156. http://www.columbia.edu/kermit/security80.html#top
  4830.  157. http://www.columbia.edu/kermit/security80.html#contents
  4831.  158. http://www.columbia.edu/kermit/security80.html#glossary
  4832.  159. http://www.columbia.edu/kermit/security80.html#x4
  4833.  160. http://www.columbia.edu/kermit/security80.html#x2
  4834.  161. http://www.columbia.edu/kermit/security80.html#x3.1
  4835.  162. http://www.columbia.edu/kermit/security80.html#x3.2
  4836.  163. http://www.columbia.edu/kermit/security80.html#x3.3
  4837.  164. http://www.columbia.edu/kermit/security80.html#x3.4
  4838.  165. http://www.columbia.edu/kermit/k95bulk.html
  4839.  166. mailto:kermit-support@columbia.edu
  4840.  167. http://www.columbia.edu/kermit/security80.html#x3.1.1
  4841.  168. http://www.columbia.edu/kermit/security80.html#x3.1.2
  4842.  169. http://www.columbia.edu/kermit/security80.html#x3.1.3
  4843.  170. http://www.columbia.edu/kermit/security80.html#x3.1.4
  4844.  171. http://www.columbia.edu/kermit/security80.html#x3.1.5
  4845.  172. http://www.columbia.edu/kermit/security80.html#top
  4846.  173. http://www.columbia.edu/kermit/security80.html#contents
  4847.  174. http://www.columbia.edu/kermit/security80.html#x3
  4848.  175. http://www.columbia.edu/kermit/security80.html#x3.1
  4849.  176. http://www.columbia.edu/kermit/security80.html#glossary
  4850.  177. http://www.columbia.edu/kermit/security80.html#top
  4851.  178. http://www.columbia.edu/kermit/security80.html#contents
  4852.  179. http://www.columbia.edu/kermit/security80.html#x3
  4853.  180. http://www.columbia.edu/kermit/security80.html#x3.1
  4854.  181. http://www.columbia.edu/kermit/security80.html#glossary
  4855.  182. http://www.columbia.edu/kermit/security80.html#top
  4856.  183. http://www.columbia.edu/kermit/security80.html#contents
  4857.  184. http://www.columbia.edu/kermit/security80.html#x3
  4858.  185. http://www.columbia.edu/kermit/security80.html#x3.1
  4859.  186. http://www.columbia.edu/kermit/security80.html#glossary
  4860.  187. http://www.columbia.edu/kermit/security80.html#top
  4861.  188. http://www.columbia.edu/kermit/security80.html#contents
  4862.  189. http://www.columbia.edu/kermit/security80.html#x3
  4863.  190. http://www.columbia.edu/kermit/security80.html#x3.1
  4864.  191. http://www.columbia.edu/kermit/security80.html#glossary
  4865.  192. http://www.columbia.edu/kermit/security80.html#xa3
  4866.  193. ftp://ftp.isi.edu/in-notes/rfc2246.txt
  4867.  194. ftp://kermit.columbia.edu/kermit/c-kermit/ca_certs.pem
  4868.  195. http://www.columbia.edu/kermit/security80.html#x3.2.2.3
  4869.  196. http://www.columbia.edu/kermit/iksd.html
  4870.  197. http://www.columbia.edu/kermit/security80.html#xa3.11
  4871.  198. http://www.columbia.edu/kermit/security80.html#xa1.1
  4872.  199. http://www.columbia.edu/kermit/security80.html#xa1
  4873.  200. http://www.columbia.edu/kermit/security80.html#xa1.2
  4874.  201. http://www.columbia.edu/kermit/security80.html#top
  4875.  202. http://www.columbia.edu/kermit/security80.html#contents
  4876.  203. http://www.columbia.edu/kermit/security80.html#x3
  4877.  204. http://www.columbia.edu/kermit/security80.html#x3.1
  4878.  205. http://www.columbia.edu/kermit/security80.html#glossary
  4879.  206. http://www.columbia.edu/kermit/security80.html#top
  4880.  207. http://www.columbia.edu/kermit/security80.html#contents
  4881.  208. http://www.columbia.edu/kermit/security80.html#x3
  4882.  209. http://www.columbia.edu/kermit/security80.html#glossary
  4883.  210. http://www.columbia.edu/kermit/security80.html#x3.2.1
  4884.  211. http://www.columbia.edu/kermit/security80.html#x3.2.2
  4885.  212. http://www.columbia.edu/kermit/security80.html#x3.2.3
  4886.  213. http://www.columbia.edu/kermit/security80.html#x3.2.4
  4887.  214. http://www.columbia.edu/kermit/ckututor.html
  4888.  215. http://www.columbia.edu/kermit/k95tutor.html
  4889.  216. http://www.columbia.edu/kermit/ckscripts.html
  4890.  217. http://www.columbia.edu/kermit/security80.html#top
  4891.  218. http://www.columbia.edu/kermit/security80.html#contents
  4892.  219. http://www.columbia.edu/kermit/security80.html#x3
  4893.  220. http://www.columbia.edu/kermit/security80.html#x3.2
  4894.  221. http://www.columbia.edu/kermit/security80.html#glossary
  4895.  222. http://www.columbia.edu/kermit/security80.html#x3.2.1.1
  4896.  223. http://www.columbia.edu/kermit/security80.html#x3.2.1.2
  4897.  224. http://www.columbia.edu/kermit/security80.html#x3.2.1.3
  4898.  225. http://www.columbia.edu/kermit/security80.html#top
  4899.  226. http://www.columbia.edu/kermit/security80.html#contents
  4900.  227. http://www.columbia.edu/kermit/security80.html#x3
  4901.  228. http://www.columbia.edu/kermit/security80.html#x3.2
  4902.  229. http://www.columbia.edu/kermit/security80.html#x3.2.1
  4903.  230. http://www.columbia.edu/kermit/security80.html#glossary
  4904.  231. http://www.columbia.edu/kermit/telnet.html
  4905.  232. http://www.columbia.edu/kermit/security80.html#xa1
  4906.  233. http://www.columbia.edu/kermit/security80.html#top
  4907.  234. http://www.columbia.edu/kermit/security80.html#contents
  4908.  235. http://www.columbia.edu/kermit/security80.html#x3
  4909.  236. http://www.columbia.edu/kermit/security80.html#x3.2
  4910.  237. http://www.columbia.edu/kermit/security80.html#x3.2.1
  4911.  238. http://www.columbia.edu/kermit/security80.html#glossary
  4912.  239. http://www.columbia.edu/kermit/ftpclient.html
  4913.  240. http://www.columbia.edu/kermit/security80.html#top
  4914.  241. http://www.columbia.edu/kermit/security80.html#contents
  4915.  242. http://www.columbia.edu/kermit/security80.html#x3
  4916.  243. http://www.columbia.edu/kermit/security80.html#x3.2
  4917.  244. http://www.columbia.edu/kermit/security80.html#x3.2.1
  4918.  245. http://www.columbia.edu/kermit/security80.html#glossary
  4919.  246. http://www.columbia.edu/kermit/security80.html#top
  4920.  247. http://www.columbia.edu/kermit/security80.html#contents
  4921.  248. http://www.columbia.edu/kermit/security80.html#x3
  4922.  249. http://www.columbia.edu/kermit/security80.html#x3.2
  4923.  250. http://www.columbia.edu/kermit/security80.html#glossary
  4924.  251. http://www.columbia.edu/kermit/security80.html#x3.2.3
  4925.  252. http://www.columbia.edu/kermit/security80.html#xa2
  4926.  253. http://www.columbia.edu/kermit/security80.html#top
  4927.  254. http://www.columbia.edu/kermit/security80.html#contents
  4928.  255. http://www.columbia.edu/kermit/security80.html#x3
  4929.  256. http://www.columbia.edu/kermit/security80.html#x3.2
  4930.  257. http://www.columbia.edu/kermit/security80.html#glossary
  4931.  258. http://www.columbia.edu/kermit/ckermit2.htm#x1.5
  4932.  259. http://www.columbia.edu/kermit/ckermit2.htm
  4933.  260. http://www.columbia.edu/kermit/security80.html#glossary
  4934.  261. http://www.columbia.edu/kermit/ckb2.html
  4935.  262. http://www.columbia.edu/kermit/ckermit2.htm#x1.6
  4936.  263. http://www.columbia.edu/kermit/ckermit2.htm
  4937.  264. http://www.columbia.edu/kermit/security80.html#top
  4938.  265. http://www.columbia.edu/kermit/security80.html#contents
  4939.  266. http://www.columbia.edu/kermit/security80.html#x3
  4940.  267. http://www.columbia.edu/kermit/security80.html#x3.2
  4941.  268. http://www.columbia.edu/kermit/security80.html#glossary
  4942.  269. http://www.columbia.edu/kermit/security80.html#xa2
  4943.  270. http://www.columbia.edu/kermit/ckermit.html
  4944.  271. http://www.columbia.edu/kermit/ck80.html
  4945.  272. http://www.columbia.edu/kermit/k95.html
  4946.  273. http://www.columbia.edu/kermit/index.html
  4947.  274. http://www.columbia.edu/kermit/security80.html#top
  4948.  275. http://www.columbia.edu/kermit/security80.html#contents
  4949.  276. http://www.columbia.edu/kermit/security80.html#x3
  4950.  277. http://www.columbia.edu/kermit/security80.html#glossary
  4951.  278. http://www.columbia.edu/kermit/security80.html#x3.3.1
  4952.  279. http://www.columbia.edu/kermit/security80.html#x3.3.2
  4953.  280. http://www.columbia.edu/kermit/security80.html#x3.3.3
  4954.  281. http://www.columbia.edu/kermit/security80.html#x3.3.4
  4955.  282. http://www.columbia.edu/kermit/security80.html#x3.3.5
  4956.  283. http://www.columbia.edu/kermit/security80.html#x3.3.6
  4957.  284. http://www.columbia.edu/kermit/security80.html#x3.3.7
  4958.  285. http://www.columbia.edu/kermit/security80.html#top
  4959.  286. http://www.columbia.edu/kermit/security80.html#contents
  4960.  287. http://www.columbia.edu/kermit/security80.html#x3
  4961.  288. http://www.columbia.edu/kermit/security80.html#x3.3
  4962.  289. http://www.columbia.edu/kermit/security80.html#glossary
  4963.  290. http://www.columbia.edu/kermit/security80.html#top
  4964.  291. http://www.columbia.edu/kermit/security80.html#contents
  4965.  292. http://www.columbia.edu/kermit/security80.html#x3
  4966.  293. http://www.columbia.edu/kermit/security80.html#x3.3
  4967.  294. http://www.columbia.edu/kermit/security80.html#glossary
  4968.  295. http://www.columbia.edu/kermit/security80.html#top
  4969.  296. http://www.columbia.edu/kermit/security80.html#contents
  4970.  297. http://www.columbia.edu/kermit/security80.html#x3
  4971.  298. http://www.columbia.edu/kermit/security80.html#x3.3
  4972.  299. http://www.columbia.edu/kermit/security80.html#glossary
  4973.  300. http://www.columbia.edu/kermit/security80.html#top
  4974.  301. http://www.columbia.edu/kermit/security80.html#contents
  4975.  302. http://www.columbia.edu/kermit/security80.html#x3
  4976.  303. http://www.columbia.edu/kermit/security80.html#x3.3
  4977.  304. http://www.columbia.edu/kermit/security80.html#glossary
  4978.  305. http://www.columbia.edu/kermit/security80.html#top
  4979.  306. http://www.columbia.edu/kermit/security80.html#contents
  4980.  307. http://www.columbia.edu/kermit/security80.html#x3
  4981.  308. http://www.columbia.edu/kermit/security80.html#x3.3
  4982.  309. http://www.columbia.edu/kermit/security80.html#glossary
  4983.  310. http://www.columbia.edu/kermit/security80.html#top
  4984.  311. http://www.columbia.edu/kermit/security80.html#contents
  4985.  312. http://www.columbia.edu/kermit/security80.html#x3
  4986.  313. http://www.columbia.edu/kermit/security80.html#x3.3
  4987.  314. http://www.columbia.edu/kermit/security80.html#glossary
  4988.  315. http://www.stunnel.org/
  4989.  316. http://www.columbia.edu/kermit/security80.html#x3.2.2.3
  4990.  317. http://www.columbia.edu/kermit/security80.html#xa3
  4991.  318. http://www.columbia.edu/kermit/case21.html
  4992.  319. http://www.columbia.edu/kermit/security80.html#top
  4993.  320. http://www.columbia.edu/kermit/security80.html#contents
  4994.  321. http://www.columbia.edu/kermit/security80.html#x3
  4995.  322. http://www.columbia.edu/kermit/security80.html#x3.3
  4996.  323. http://www.columbia.edu/kermit/security80.html#glossary
  4997.  324. http://www.columbia.edu/kermit/ckermit.html
  4998.  325. http://www.columbia.edu/kermit/ck80.html
  4999.  326. http://www.columbia.edu/kermit/k95.html
  5000.  327. http://www.columbia.edu/kermit/index.html
  5001.  328. http://www.columbia.edu/kermit/security80.html#top
  5002.  329. http://www.columbia.edu/kermit/security80.html#contents
  5003.  330. http://www.columbia.edu/kermit/security80.html#x3
  5004.  331. http://www.columbia.edu/kermit/security80.html#glossary
  5005.  332. http://www.columbia.edu/kermit/ckermit.html
  5006.  333. http://www.columbia.edu/kermit/ck80.html
  5007.  334. http://www.columbia.edu/kermit/k95.html
  5008.  335. http://www.columbia.edu/kermit/index.html
  5009.  336. http://www.columbia.edu/kermit/security80.html#top
  5010.  337. http://www.columbia.edu/kermit/security80.html#contents
  5011.  338. http://www.columbia.edu/kermit/security80.html#glossary
  5012.  339. http://www.columbia.edu/kermit/security80.html#xa1
  5013.  340. http://www.columbia.edu/kermit/security80.html#x3
  5014.  341. http://www.columbia.edu/kermit/security80.html#x4.1
  5015.  342. http://www.columbia.edu/kermit/security80.html#x4.2
  5016.  343. http://www.columbia.edu/kermit/security80.html#x4.1.1
  5017.  344. http://www.columbia.edu/kermit/security80.html#x4.1.2
  5018.  345. http://www.columbia.edu/kermit/security80.html#x4.1.3
  5019.  346. http://www.columbia.edu/kermit/security80.html#x4.1.4
  5020.  347. http://www.columbia.edu/kermit/security80.html#x4.1.5
  5021.  348. http://www.columbia.edu/kermit/security80.html#x4.1.6
  5022.  349. http://www.columbia.edu/kermit/security80.html#x4.1.7
  5023.  350. http://www.columbia.edu/kermit/security80.html#top
  5024.  351. http://www.columbia.edu/kermit/security80.html#contents
  5025.  352. http://www.columbia.edu/kermit/security80.html#x4
  5026.  353. http://www.columbia.edu/kermit/security80.html#x4.1
  5027.  354. http://www.columbia.edu/kermit/security80.html#glossary
  5028.  355. http://web.mit.edu/kerberos/www/
  5029.  356. ftp://ftp.cmf.nrl.navy.mil/pub/kerberos5/README
  5030.  357. http://www.kermit-project.org/noexport.html
  5031.  358. http://www.columbia.edu/kermit/security80.html#x4.1.2
  5032.  359. http://www.columbia.edu/kermit/security80.html#top
  5033.  360. http://www.columbia.edu/kermit/security80.html#contents
  5034.  361. http://www.columbia.edu/kermit/security80.html#x4
  5035.  362. http://www.columbia.edu/kermit/security80.html#x4.1
  5036.  363. http://www.columbia.edu/kermit/security80.html#glossary
  5037.  364. http://www.kermit-project.org/noexport.html
  5038.  365. http://www.columbia.edu/kermit/security80.html#top
  5039.  366. http://www.columbia.edu/kermit/security80.html#contents
  5040.  367. http://www.columbia.edu/kermit/security80.html#x4
  5041.  368. http://www.columbia.edu/kermit/security80.html#x4.1
  5042.  369. http://www.columbia.edu/kermit/security80.html#glossary
  5043.  370. http://www.columbia.edu/kermit/security80.html#top
  5044.  371. http://www.columbia.edu/kermit/security80.html#contents
  5045.  372. http://www.columbia.edu/kermit/security80.html#x4
  5046.  373. http://www.columbia.edu/kermit/security80.html#x4.1
  5047.  374. http://www.columbia.edu/kermit/security80.html#glossary
  5048.  375. http://www.kermit-project.org/noexport.html
  5049.  376. http://www.columbia.edu/kermit/security80.html#xa3.11.1
  5050.  377. http://www.columbia.edu/kermit/security80.html#top
  5051.  378. http://www.columbia.edu/kermit/security80.html#contents
  5052.  379. http://www.columbia.edu/kermit/security80.html#x4
  5053.  380. http://www.columbia.edu/kermit/security80.html#x4.1
  5054.  381. http://www.columbia.edu/kermit/security80.html#glossary
  5055.  382. http://www.columbia.edu/kermit/security80.html#top
  5056.  383. http://www.columbia.edu/kermit/security80.html#contents
  5057.  384. http://www.columbia.edu/kermit/security80.html#x4
  5058.  385. http://www.columbia.edu/kermit/security80.html#x4.1
  5059.  386. http://www.columbia.edu/kermit/security80.html#glossary
  5060.  387. ftp://ftp.nec.co.jp/pub/packages/sotools/
  5061.  388. http://www.columbia.edu/kermit/security80.html#top
  5062.  389. http://www.columbia.edu/kermit/security80.html#contents
  5063.  390. http://www.columbia.edu/kermit/security80.html#x4
  5064.  391. http://www.columbia.edu/kermit/security80.html#x4.1
  5065.  392. http://www.columbia.edu/kermit/security80.html#glossary
  5066.  393. http://www.columbia.edu/kermit/k95dll_c.txt
  5067.  394. http://www.columbia.edu/kermit/security80.html#top
  5068.  395. http://www.columbia.edu/kermit/security80.html#contents
  5069.  396. http://www.columbia.edu/kermit/security80.html#x4
  5070.  397. http://www.columbia.edu/kermit/security80.html#glossary
  5071.  398. http://www.columbia.edu/kermit/security80.html#x4.2.1
  5072.  399. http://www.columbia.edu/kermit/security80.html#x4.2.2
  5073.  400. http://www.columbia.edu/kermit/security80.html#x4.2.3
  5074.  401. http://www.columbia.edu/kermit/security80.html#x4.2.4
  5075.  402. http://www.columbia.edu/kermit/security80.html#x4.2.5
  5076.  403. http://www.columbia.edu/kermit/security80.html#x4.2.6
  5077.  404. http://www.columbia.edu/kermit/security80.html#top
  5078.  405. http://www.columbia.edu/kermit/security80.html#contents
  5079.  406. http://www.columbia.edu/kermit/security80.html#x4
  5080.  407. http://www.columbia.edu/kermit/security80.html#x4.2
  5081.  408. http://www.columbia.edu/kermit/security80.html#glossary
  5082.  409. http://www.columbia.edu/kermit/iksd.html
  5083.  410. http://www.columbia.edu/kermit/security80.html#x2
  5084.  411. http://web.mit.edu/kerberos/www/
  5085.  412. http://web.mit.edu/network/kerberos-form.html
  5086.  413. http://web.mit.edu/kerberos/www/
  5087.  414. http://web.mit.edu/network/kerberos-form.html
  5088.  415. http://www.columbia.edu/kermit/iksd.html
  5089.  416. http://www.columbia.edu/kermit/security80.html#top
  5090.  417. http://www.columbia.edu/kermit/security80.html#contents
  5091.  418. http://www.columbia.edu/kermit/security80.html#x4
  5092.  419. http://www.columbia.edu/kermit/security80.html#x4.2
  5093.  420. http://www.columbia.edu/kermit/security80.html#glossary
  5094.  421. http://www.columbia.edu/kermit/security80.html#x2
  5095.  422. http://srp.stanford.edu/srp/
  5096.  423. http://www.columbia.edu/kermit/iksd.html
  5097.  424. http://www.columbia.edu/kermit/security80.html#top
  5098.  425. http://www.columbia.edu/kermit/security80.html#contents
  5099.  426. http://www.columbia.edu/kermit/security80.html#x4
  5100.  427. http://www.columbia.edu/kermit/security80.html#x4.2
  5101.  428. http://www.columbia.edu/kermit/security80.html#glossary
  5102.  429. http://www.columbia.edu/kermit/iksd.html
  5103.  430. http://www.columbia.edu/kermit/security80.html#x2
  5104.  431. http://www.openssl.org/
  5105.  432. http://www.columbia.edu/kermit/security80.html#xa3.11.2
  5106.  433. http://www.columbia.edu/kermit/security80.html#top
  5107.  434. http://www.columbia.edu/kermit/security80.html#contents
  5108.  435. http://www.columbia.edu/kermit/security80.html#x4
  5109.  436. http://www.columbia.edu/kermit/security80.html#x4.2
  5110.  437. http://www.columbia.edu/kermit/security80.html#glossary
  5111.  438. http://www.columbia.edu/kermit/security80.html#top
  5112.  439. http://www.columbia.edu/kermit/security80.html#contents
  5113.  440. http://www.columbia.edu/kermit/security80.html#x4
  5114.  441. http://www.columbia.edu/kermit/security80.html#x4.2
  5115.  442. http://www.columbia.edu/kermit/security80.html#glossary
  5116.  443. http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/
  5117.  444. http://www.columbia.edu/kermit/security80.html#top
  5118.  445. http://www.columbia.edu/kermit/security80.html#contents
  5119.  446. http://www.columbia.edu/kermit/security80.html#x4
  5120.  447. http://www.columbia.edu/kermit/security80.html#x4.2
  5121.  448. http://www.columbia.edu/kermit/security80.html#glossary
  5122.  449. http://www.columbia.edu/kermit/ckermit2.htm#x2.7
  5123.  450. http://www.columbia.edu/kermit/ckermit2.htm
  5124.  451. http://www.columbia.edu/kermit/ckccfg.html#x8.1.1>Section8.1.1</a>ofthe<ahref=
  5125.  452. http://www.columbia.edu/kermit/ckermit.html
  5126.  453. http://www.columbia.edu/kermit/ck80.html
  5127.  454. http://www.columbia.edu/kermit/k95.html
  5128.  455. http://www.columbia.edu/kermit/security80.html#top
  5129.  456. http://www.columbia.edu/kermit/security80.html#contents
  5130.  457. http://www.columbia.edu/kermit/security80.html#glossary
  5131.  458. http://www.columbia.edu/kermit/index.html
  5132.  459. http://www.columbia.edu/kermit/security80.html#xa1.1
  5133.  460. http://www.columbia.edu/kermit/security80.html#xa1.2
  5134.  461. http://www.columbia.edu/kermit/security80.html#xa1.3
  5135.  462. http://www.columbia.edu/kermit/security80.html#xa1.4
  5136.  463. http://www.columbia.edu/kermit/security80.html#xa1.5
  5137.  464. http://www.columbia.edu/kermit/security80.html#references
  5138.  465. http://www.columbia.edu/kermit/security80.html#top
  5139.  466. http://www.columbia.edu/kermit/security80.html#contents
  5140.  467. http://www.columbia.edu/kermit/security80.html#xa1
  5141.  468. http://www.columbia.edu/kermit/security80.html#glossary
  5142.  469. http://www-1.ibm.com/servers/eserver/zseries/zos/commserver/kerberos.html
  5143.  470. http://web.mit.edu/kerberos/www/
  5144.  471. http://web.mit.edu/kerberos/www/
  5145.  472. http://www-cs-students.stanford.edu/~tjw/srp/
  5146.  473. http://www.openssl.org/
  5147.  474. ftp://ftp.runestig.com/pub/starttls/start_tls-telnet.current.tar.gz
  5148.  475. http://www.columbia.edu/kermit/security80.html#top
  5149.  476. http://www.columbia.edu/kermit/security80.html#contents
  5150.  477. http://www.columbia.edu/kermit/security80.html#xa1
  5151.  478. http://www.columbia.edu/kermit/security80.html#glossary
  5152.  479. http://web.mit.edu/kerberos/www/
  5153.  480. http://web.mit.edu/kerberos/www/
  5154.  481. http://www-cs-students.stanford.edu/~tjw/srp/
  5155.  482. http://www.openssl.org/
  5156.  483. ftp://ftp.runestig.com/pub/ftp-tls/
  5157.  484. ftp://ftp.runestig.com/pub/ftpd-tls/
  5158.  485. ftp://ftp.runestig.com/pub/proftpd-tls/
  5159.  486. http://www.columbia.edu/kermit/security80.html#top
  5160.  487. http://www.columbia.edu/kermit/security80.html#contents
  5161.  488. http://www.columbia.edu/kermit/security80.html#xa1
  5162.  489. http://www.columbia.edu/kermit/security80.html#glossary
  5163.  490. http://www.columbia.edu/kermit/cuiksd.html
  5164.  491. http://www.columbia.edu/kermit/iksd.html
  5165.  492. http://www.columbia.edu/kermit/security80.html#top
  5166.  493. http://www.columbia.edu/kermit/security80.html#contents
  5167.  494. http://www.columbia.edu/kermit/security80.html#xa1
  5168.  495. http://www.columbia.edu/kermit/security80.html#glossary
  5169.  496. http://www.columbia.edu/kermit/security80.html#top
  5170.  497. http://www.columbia.edu/kermit/security80.html#contents
  5171.  498. http://www.columbia.edu/kermit/security80.html#xa1
  5172.  499. http://www.columbia.edu/kermit/security80.html#glossary
  5173.  500. http://www.stunnel.org/
  5174.  501. http://www.columbia.edu/kermit/case21.html
  5175.  502. http://www.columbia.edu/kermit/security80.html#top
  5176.  503. http://www.columbia.edu/kermit/security80.html#contents
  5177.  504. http://www.columbia.edu/kermit/security80.html#glossary
  5178.  505. http://www.columbia.edu/kermit/security80.html#xa2.1
  5179.  506. http://www.columbia.edu/kermit/security80.html#xa2.2
  5180.  507. http://www.columbia.edu/kermit/security80.html#xa2.3
  5181.  508. http://www.columbia.edu/kermit/security80.html#top
  5182.  509. http://www.columbia.edu/kermit/security80.html#contents
  5183.  510. http://www.columbia.edu/kermit/security80.html#xa2
  5184.  511. http://www.columbia.edu/kermit/security80.html#glossary
  5185.  512. http://www.iana.org/assignments/port-numbers
  5186.  513. http://www.columbia.edu/kermit/security80.html#top
  5187.  514. http://www.columbia.edu/kermit/security80.html#contents
  5188.  515. http://www.columbia.edu/kermit/security80.html#xa2
  5189.  516. http://www.columbia.edu/kermit/security80.html#glossary
  5190.  517. http://www.columbia.edu/kermit/security80.html#top
  5191.  518. http://www.columbia.edu/kermit/security80.html#contents
  5192.  519. http://www.columbia.edu/kermit/security80.html#xa2
  5193.  520. http://www.columbia.edu/kermit/security80.html#glossary
  5194.  521. http://www.columbia.edu/kermit/security80.html#top
  5195.  522. http://www.columbia.edu/kermit/security80.html#contents
  5196.  523. http://www.columbia.edu/kermit/security80.html#xa2
  5197.  524. http://www.columbia.edu/kermit/security80.html#glossary
  5198.  525. ftp://ftp.isi.edu/in-notes/rfc1928.txt
  5199.  526. http://www.columbia.edu/kermit/security80.html#top
  5200.  527. http://www.columbia.edu/kermit/security80.html#contents
  5201.  528. http://www.columbia.edu/kermit/security80.html#xa2
  5202.  529. http://www.columbia.edu/kermit/security80.html#glossary
  5203.  530. ftp://kermit.columbia.edu/kermit/scripts/ckermit/linksys
  5204.  531. ftp://ftp.isi.edu/in-notes/rfc2993.txt
  5205.  532. ftp://ftp.isi.edu/in-notes/rfc2663.txt
  5206.  533. ftp://ftp.isi.edu/in-notes/rfc3002.txt
  5207.  534. http://www.ietf.org/internet-drafts/draft-ietf-nat-app-guide-06.txt
  5208.  535. http://www.cs.utk.edu/~moore/what-nats-break.html
  5209.  536. http://www.columbia.edu/kermit/security80.html#top
  5210.  537. http://www.columbia.edu/kermit/security80.html#contents
  5211.  538. http://www.columbia.edu/kermit/security80.html#xa2
  5212.  539. http://www.columbia.edu/kermit/security80.html#glossary
  5213.  540. http://www.columbia.edu/kermit/ckermit.html
  5214.  541. http://www.columbia.edu/kermit/ck80.html
  5215.  542. http://www.columbia.edu/kermit/k95.html
  5216.  543. http://www.columbia.edu/kermit/index.html
  5217.  544. http://www.columbia.edu/kermit/security80.html#top
  5218.  545. http://www.columbia.edu/kermit/security80.html#contents
  5219.  546. http://www.columbia.edu/kermit/security80.html#glossary
  5220.  547. http://www.columbia.edu/kermit/security80.html#xa3.1
  5221.  548. http://www.columbia.edu/kermit/security80.html#xa3.2
  5222.  549. http://www.columbia.edu/kermit/security80.html#xa3.3
  5223.  550. http://www.columbia.edu/kermit/security80.html#xa3.4
  5224.  551. http://www.columbia.edu/kermit/security80.html#xa3.5
  5225.  552. http://www.columbia.edu/kermit/security80.html#xa3.6
  5226.  553. http://www.columbia.edu/kermit/security80.html#xa3.7
  5227.  554. http://www.columbia.edu/kermit/security80.html#xa3.8
  5228.  555. http://www.columbia.edu/kermit/security80.html#xa3.9
  5229.  556. http://www.columbia.edu/kermit/security80.html#xa3.10
  5230.  557. http://www.columbia.edu/kermit/security80.html#xa3.11
  5231.  558. http://www.ietf.org/html.charters/pkix-charter.html
  5232.  559. http://www.ietf.org/rfc/rfc2459.txt
  5233.  560. http://www.imc.org/rfc2527
  5234.  561. http://www.imc.org/rfc2528
  5235.  562. http://www.rsasecurity.com/rsalabs/faq/questions.html
  5236.  563. http://www.columbia.edu/kermit/security80.html#top
  5237.  564. http://www.columbia.edu/kermit/security80.html#contents
  5238.  565. http://www.columbia.edu/kermit/security80.html#xa3
  5239.  566. http://www.columbia.edu/kermit/security80.html#glossary
  5240.  567. http://www.columbia.edu/kermit/security80.html#top
  5241.  568. http://www.columbia.edu/kermit/security80.html#contents
  5242.  569. http://www.columbia.edu/kermit/security80.html#xa3
  5243.  570. http://www.columbia.edu/kermit/security80.html#glossary
  5244.  571. http://www.columbia.edu/kermit/security80.html#top
  5245.  572. http://www.columbia.edu/kermit/security80.html#contents
  5246.  573. http://www.columbia.edu/kermit/security80.html#xa3
  5247.  574. http://www.columbia.edu/kermit/security80.html#glossary
  5248.  575. http://www.verisign.com/
  5249.  576. http://www.thawte.com/
  5250.  577. http://www.certisign.com.br/
  5251.  578. http://www.iks-jena.de/
  5252.  579. http://www.uptimecommerce.com/
  5253.  580. http://www.belsign.be/
  5254.  581. http://www.counterpane.com/pki-risks.html
  5255.  582. http://www.columbia.edu/kermit/security80.html#top
  5256.  583. http://www.columbia.edu/kermit/security80.html#contents
  5257.  584. http://www.columbia.edu/kermit/security80.html#xa3
  5258.  585. http://www.columbia.edu/kermit/security80.html#glossary
  5259.  586. http://www.columbia.edu/kermit/security80.html#top
  5260.  587. http://www.columbia.edu/kermit/security80.html#contents
  5261.  588. http://www.columbia.edu/kermit/security80.html#xa3
  5262.  589. http://www.columbia.edu/kermit/security80.html#glossary
  5263.  590. http://www.columbia.edu/kermit/security80.html#top
  5264.  591. http://www.columbia.edu/kermit/security80.html#contents
  5265.  592. http://www.columbia.edu/kermit/security80.html#xa3
  5266.  593. http://www.columbia.edu/kermit/security80.html#glossary
  5267.  594. http://www.columbia.edu/kermit/security80.html#top
  5268.  595. http://www.columbia.edu/kermit/security80.html#contents
  5269.  596. http://www.columbia.edu/kermit/security80.html#xa3
  5270.  597. http://www.columbia.edu/kermit/security80.html#glossary
  5271.  598. http://www.columbia.edu/kermit/security80.html#top
  5272.  599. http://www.columbia.edu/kermit/security80.html#contents
  5273.  600. http://www.columbia.edu/kermit/security80.html#xa3
  5274.  601. http://www.columbia.edu/kermit/security80.html#glossary
  5275.  602. http://www.columbia.edu/kermit/security80.html#top
  5276.  603. http://www.columbia.edu/kermit/security80.html#contents
  5277.  604. http://www.columbia.edu/kermit/security80.html#xa3
  5278.  605. http://www.columbia.edu/kermit/security80.html#glossary
  5279.  606. http://www.columbia.edu/kermit/security80.html#top
  5280.  607. http://www.columbia.edu/kermit/security80.html#contents
  5281.  608. http://www.columbia.edu/kermit/security80.html#xa3
  5282.  609. http://www.columbia.edu/kermit/security80.html#glossary
  5283.  610. http://www.columbia.edu/kermit/security80.html#top
  5284.  611. http://www.columbia.edu/kermit/security80.html#contents
  5285.  612. http://www.columbia.edu/kermit/security80.html#xa3
  5286.  613. http://www.columbia.edu/kermit/security80.html#glossary
  5287.  614. http://www.columbia.edu/kermit/security80.html#top
  5288.  615. http://www.columbia.edu/kermit/security80.html#contents
  5289.  616. http://www.columbia.edu/kermit/security80.html#xa3
  5290.  617. http://www.columbia.edu/kermit/security80.html#glossary
  5291.  618. http://www.openssl.org/
  5292.  619. http://www.geocities.com/SiliconValley/Hills/8057/files/openssl.html
  5293.  620. mailto:kermit-support@columbia.edu
  5294.  621. http://www.columbia.edu/kermit/security80.html#top
  5295.  622. http://www.columbia.edu/kermit/security80.html#contents
  5296.  623. http://www.columbia.edu/kermit/security80.html#xa3
  5297.  624. http://www.columbia.edu/kermit/security80.html#glossary
  5298.  625. mailto:kermit-support@columbia.edu
  5299.  626. http://www.columbia.edu/kermit/security80.html#top
  5300.  627. http://www.columbia.edu/kermit/security80.html#contents
  5301.  628. http://www.isoc.org/internet/history/
  5302.  629. http://www.itl.nist.gov/fipspubs/fip46-2.htm
  5303.  630. http://www.ietf.org/ids.by.wg/dnssec.html
  5304.  631. ftp://ftp.isi.edu/in-notes/rfc959.txt
  5305.  632. ftp://ftp.isi.edu/in-notes/rfc2616.txt
  5306.  633. http://www.ietf.org/
  5307.  634. http://www.columbia.edu/kermit/cuiksd.html
  5308.  635. http://www.ietf.org/html.charters/ipsec-charter.html
  5309.  636. http://www.ipv6.org/
  5310.  637. http://www.cypherspace.org/~adam/timeline/
  5311.  638. ftp://ftp.isi.edu/in-notes/rfc1928.txt
  5312.  639. ftp://ftp.isi.edu/in-notes/rfc854.txt
  5313.  640. ftp://ftp.isi.edu/in-notes/rfc2246.txt
  5314.  641. http://www.columbia.edu/kermit/security80.html#top
  5315.  642. http://www.columbia.edu/kermit/security80.html#contents
  5316.  643. http://www.columbia.edu/kermit/
  5317.  644. ftp://ftp.isi.edu/in-notes/rfc854.txt
  5318.  645. ftp://ftp.isi.edu/in-notes/rfc959.txt
  5319.  646. ftp://ftp.isi.edu/in-notes/rfc1282.txt
  5320.  647. ftp://ftp.isi.edu/in-notes/rfc1510.txt
  5321.  648. ftp://ftp.isi.edu/in-notes/rfc1928.txt
  5322.  649. ftp://ftp.isi.edu/in-notes/rfc1964.txt
  5323.  650. ftp://ftp.isi.edu/in-notes/rfc2217.txt
  5324.  651. ftp://ftp.isi.edu/in-notes/rfc2228.txt
  5325.  652. ftp://ftp.isi.edu/in-notes/rfc2246.txt
  5326.  653. ftp://ftp.isi.edu/in-notes/rfc2663.txt
  5327.  654. http://www.ietf.org/rfc/rfc2459.txt
  5328.  655. http://www.imc.org/rfc2527
  5329.  656. http://www.imc.org/rfc2528
  5330.  657. ftp://ftp.isi.edu/in-notes/rfc2616.txt
  5331.  658. ftp://ftp.isi.edu/in-notes/rfc2712.txt
  5332.  659. ftp://ftp.isi.edu/in-notes/rfc2818.txt
  5333.  660. ftp://ftp.isi.edu/in-notes/rfc2839.txt
  5334.  661. ftp://ftp.isi.edu/in-notes/rfc2840.txt
  5335.  662. ftp://ftp.isi.edu/in-notes/rfc2941.txt
  5336.  663. ftp://ftp.isi.edu/in-notes/rfc2942.txt
  5337.  664. ftp://ftp.isi.edu/in-notes/rfc2943.txt
  5338.  665. ftp://ftp.isi.edu/in-notes/rfc2944.txt
  5339.  666. ftp://ftp.isi.edu/in-notes/rfc2945.txt
  5340.  667. ftp://ftp.isi.edu/in-notes/rfc2946.txt
  5341.  668. ftp://ftp.isi.edu/in-notes/rfc2946.txt
  5342.  669. ftp://ftp.isi.edu/in-notes/rfc2948.txt
  5343.  670. ftp://ftp.isi.edu/in-notes/rfc2949.txt
  5344.  671. ftp://ftp.isi.edu/in-notes/rfc2950.txt
  5345.  672. ftp://ftp.isi.edu/in-notes/rfc2951.txt
  5346.  673. ftp://ftp.isi.edu/in-notes/rfc2952.txt
  5347.  674. ftp://ftp.isi.edu/in-notes/rfc2953.txt
  5348.  675. ftp://ftp.isi.edu/in-notes/rfc2993.txt
  5349.  676. ftp://ftp.isi.edu/in-notes/rfc3002.txt
  5350.  677. http://www.columbia.edu/kermit/standards.html
  5351.  678. http://www.columbia.edu/kermit/security80.html#top
  5352.  679. http://www.columbia.edu/kermit/security80.html#contents
  5353.  680. http://www.columbia.edu/kermit/security80.html#top
  5354.  681. http://www.columbia.edu/kermit/security80.html#contents
  5355.  682. http://www.columbia.edu/kermit/security80.html#glossary
  5356.  683. http://www.columbia.edu/kermit/ckermit.html
  5357.  684. http://www.columbia.edu/kermit/index.html
  5358.  685. http://www.columbia.edu/kermit/security80.html#top
  5359.  686. http://www.columbia.edu/kermit/index.html
  5360.  687. http://www.columbia.edu/
  5361.  688. mailto:kermit-support@columbia.edu
  5362.