📄 security.txt
字号:
2. Obtain the C-Kermit Authentication and Encryption support modules from Columbia University. These are not available by FTP due to export restrictions. Contact kermit-support@columbia.edu for details. 3. Build OpenSSL according to the installation instructions. Be aware that OpenSSL includes support for algorithms which are covered by patents or claimed as intellectual property in the United States (and perhaps some other countries.) Use of these algorithms without the proper licenses can make you liable to legal action. Be sure to read the entire README file before building and installing OpenSSL. If you wish to support ADH ciphers you must define SSL_ALLOW_ADH when building OpenSSL. 4. Add a new entry to the C-Kermit makefile for your platform, that adds the following CFLAGS: -DCK_AUTHENTICATION -DCK_SSL Use "krbmit" as the target for builds. Add the path to the OpenSSL header files using the -I switch. The location of these files is host-specific. For example: -I/usr/local/ssl/include Add the path to the OpenSSL libraries using the -L switch. The location of these files is host-specific. For example: -L/usr/local/ssl/lib Add the appropriate libraries: -lssl -lcrypto Make sure the new entry points to the appropriate include files, and links with the appropriate libraries. Use the "linux+openssl" and "linux+krb5+krb4+srp+openssl" makefile entries as models.Note that the select() version of the CONNECT-command module (ckucns.c) mustbe used rather than the older fork() based (ckucon.c) version.Keep the OpenSSL support modules private, and put the C-Kermit binary whereit can be used, but not where it can be accessed by anonymous ftp or by anyonewho is outside the USA or Canada.When C-Kermit 7.0 is installed as an Internet Kermit Service (IKSD), TLSv1is offered for authenticating incoming connections via the Telnet START_TLSoption.If you wish to provide support for authentication of clients using publickey certificates you must provide a custom X509_to_user() function toprovide the certificate to local userid mapping. An example function whichuses the /UID field of the Certificate Subject name may be activated byspecifying make <entry> KFLAGS=-DX509_UID_TO_USERwhen compiling C-Kermit. The X509_to_user() function is the last functionin the ck_ssl.c module.3.2.4. Shadow Passwords in C-Kermit 7.0.Shadow password files are used in many versions of Unix to provide a greaterlevel of security for user passwords stored on the local disk. The standardUnix password file must be world readable in order to processes to determinethe location of the user's shell, home directory, and other permissions. Bymoving the passwords into a separate file that only stores passwords, accessto the file can be restricted to only those processes that are authorized toperform authentication.When C-Kermit 7.0 is used as the Internet Kermit Service on systems that areconfigured to use shadow passwords the following CFLAG must be added to themakefile entry: -DCK_SHADOW3.2.5. Pluggable Authentication Module (PAM) support in C-Kermit 7.0PAM is implemented in many versions of Unix so system administrators canadd new forms of authentication for interactive login (console, telnet,rlogin, ...) without requiring recompilation of each service.When C-Kermit 7.0 is used as the Internet Kermit Service on systems that areconfigured to use PAM the following CFLAG must be added to the makefileentry: -DCK_PAMand the following libraries may have to be included: -lpam -ldlC-Kermit 7.0's support for PAM is limited to Interactive Login. PAM isnot compatible with the Kermit Protocol's REMOTE LOGIN mechanism.4. KERBEROS GLOSSARYListed alphabetically, not topologically.Entity In this document, a user, host, or service.Authentication The process by which one entity proves its identity to another entity on the Internet.Client An entity that can obtain a ticket (see Ticket).Credentials Cache The location where Kerberos stores tickets. The credentials cache can be a file or a buffer in memory.Expiration Invalidation of a ticket after a certain period of time. A ticket's lifetime is chosen by the user when obtaining the ticket; the maximum allowable lifetime for different kinds of tickets is set by the site administrator.Forwardable Tickets Kerberos tickets that can be forwarded (copied) to a remote machine, where they can be used, eliminating the need to obtain new Ticket Granting Tickets (q.v.) on that machine, e.g. for Telnetting from machine A to machine B and then from machine B to machine C.Host A computer that can be accessed over a network.KDC Key Distribution Center, a machine that issues Kerberos tickets.Preauthenticated Ticket Granting Ticket Request The client must include a time stamp encrypted with the user's password when requesting the TGT from the KDC. This allows the KDC to only deliver a TGT to a valid user. When preauthentication is not used the TGT may be attacked offline to determine the user's password.Postdated Ticket A ticket that does not become valid until after a specified time. This allows for secure unattended operations.Principal A string that names a specific entity to which a set of credentials may be assigned. It generally has three parts, primary/instance@REALM: 1. Primary: Identifies the user or service. 2. Instance: Usually a hostname or REALM. 3. REALM: Logical network served by a single Kerberos database and KDC.Proxiable Ticket A ticket that may be given to a service to allow the service to impersonate the user for whom the ticket has been issued.Ticket A temporary set of electronic credentials that verifies the identity of its owner to a particular service.TGT Ticket Granting Ticket. A special ticket that lets its owner obtain additional tickets within the same realm. A TGT is obtained during the initial authentication process.5. OVERVIEW OF AUTHENTICATION PROTOCOLSThe following sections attempt to provide an overview of how each of thesupported authentication protocols operates.5.1 KERBEROS OVERVIEWBefore making a Kerberized connection, you have to know which Kerberosversion, 4 or 5, is supported by the host or service you want to connectto, and you must be registered in the Kerberos database at the host'ssite. Contact the site administrator for details.Before authentication to a specific service (such as Telnet) can succeed, youmust login to the site's Kerberos Ticket Granting Server. Depending on theKerberos implementation and installation options this may be doneautomatically when you log in to your operating system. Otherwise you cando it with external utilities from MIT or Cygnus (such as Leash, KRB5, orKerbNet), or with Kermit's built-in functionality, explained below.Once a Ticket Granting Ticket (TGT) is retrieved, Kermit can use it to retrieveadditional tickets for each host (service) you wish to connect to. Theseservice tickets may be used to authenticate you with the host automaticallyduring a specified time interval. When authentication is successful, you arelogged in to the host and no Login: or Password: prompt does appear whenconnecting.Besides providing credentials for use during authentication, the serviceticket also contains a session key to be used for encrypting thecommunications. After the connection is authenticated, Kermit (if thenecessary encryption capabilities are available) attempts to negotiatebidirectional encryption using either the DES-CFB64 or DES-OFB64 algorithms.If one of these is negotiated, it is used in one or both directions,depending on what the server agreed to.When Kerberos V authentication is used, Kermit supports credential forwardingby transferring your Ticket Granting Tickets to the host that you areconnecting to, so you can make additional authenticated connections from thathost to any others that accept those tickets. This provides a single sign-oncapability to the network.Successful operation of Kerberos requires that all machines have their datesand times synchronized. Be aware that PC clocks can drift, and this cancause authentication failures.5.2 SECURE REMOTE PASSWORD (SRP) OVERVIEWSRP requires no special configuration of the client. When Kermit is used toconnect to a host that supports SRP, the user name is transmittedautomatically to the host and then a Password prompt is displayed in theKermit command screen. This indicates that the password will not be sent tothe host over the communication channel. Instead the password is used as partof a negotiation in which authentication is either mutual or none at all.The result of a mutual authentication is a shared secret which is used togenerate two different keys for encrypting the incoming and outgoing data.SRP hosts support CAST-128-CFB64, CAST-128-OFB64, CAST-40-CFB64,CAST-40-OFB64, DES-CFB64, DES-OFB64, DES3-CFB64, DES3-OFB64 encryptionalgorithms.5.3 NT LAN MANAGER (NTLM) OVERVIEWMicrosoft's native authentication method is NTLM. It is implemented inWindows 9x and NT and requires no configuration on the part of the user.When K95 is used on either Win9x or NT it can be used as an NTLM Telnetclient to authenticate to Microsoft's NT Services for Unix Telnet Serveror to a K95 configured to accept incoming connections.When K95 is used on NT it can be configured to accept incoming connectionsand authenticate NTLM Telnet clients.NTLM is a weak form of authentication. It provides no shared secretand cannot be used as a means of securing a connection with encryption.5.4 SSLv3 and TLSv1 OVERVIEW(Also see Section 14 for an introduction to the concept of certificates.)Secure Sockets Layer Version 3 (SSLv3) and its successor Transport LayerSecurity Version 1 (TLSv1) were originally designed for use by Web browsers.They provide a framework for using public-key certificates to negotiateserver and (optionally) client authentication and bidirectional encryption.The encryption provided by SSLv3 and TLSv1 is stronger than that providedby the Telnet Encryption option.SSLv3 and TLSv1 connections may be negotiated in two different ways. First,the connection may be SSL/TLS-only, which is used when connecting to HTTPSservices or SSL/TLS tunnels. SSL/TLS may also be negotiatied after theconnection is established via negotiations performed in some other protocol(such as Telnet.)Kermit supports both kinds of connections: . Pure SSLv3 connections via SET HOST <host> <port> /SSL . Pure TLSv1 connections via SET HOST <host> <port> /TLS . SSLv3 connections negotiated by Tim Hudson's Telnet AUTH SSL option . TLSv1 connections negotiated by the IETF TN3270E Working Group's TELNET START_TLS optionThe SSL and TLS negotations provide the client with authentication of thehost computer when the host's X.509 certificate is verified. Authenticationof the client may be performed by the use of an X.509 certificate issued tothe end user, or via one of the supported Telnet Authentication methods.Even though the data channel is encrypted, the transmission of passwords tothe host should still be avoided to prevent theft by a compromised host.For verification of certificates to be performed, the root certificates ofthe certificate authorities (CAs) must be available. If you are not actingas your own CA you might want to use the file of root certificates athttp://www.e-softinc.com/cacerts.txt. This file is produced by E-Soft, Inc.,as part of its monthly survey on secure server usage. After downloading,this file can be used by Kermit via the command: SET AUTH SSL VERIFY-FILE <path>/cacerts.txtWhen Kermit is used as an IKSD, client certificates can be used for automaticlogin. If a certificate-to-userid mapping function is provided, the IKSDlogs the user in automatically if the certificate is verified and thespecified userid exists on the system. Kermit also supports the use of a".tlslogin" file that allows a certificate to be used to login automaticallyto an account without a certificate-to-userid mapping function. When Kermitreceives a username via the Telnet New-Environment variable after it hasreceived and verified a client certificate, it looks in the home directorycorresponding to the username for a file called ".tlslogin". If the filecontains the certificate presented by the client, the client is logged in asthe requested user without a password.The method for negotiating Tim Hudson's Telnet AUTH SSL option is open to aman-in-the-middle attack which is capable of disabling the use of SSL beforethe negotiation is begun. It should only be used in conjunction with: SET TELNET AUTHENTICATION TYPE SSL SET TELOPT AUTHENTICATION REQUIREDWhen using IKSD with START_TLS you should create an /etc/iksd.conf fileand place within it commands pointing to the certificate and key files: set auth tls rsa-cert-file /usr/local/ssl/certs/telnetd-rsa.pem set auth tls rsa-key-file /usr/local/ssl/certs/telnetd-rsa-key.pem set auth tls dsa-cert-file /usr/local/ssl/certs/telnetd-dsa.pem set auth tls dsa-key-file /usr/local/ssl/certs/telnetd-dsa-key.pemas well as the list of ciphers that you are willing to accept: set auth tls cipher 3DES:DSSNote: A Unix telnetd that supports START_TLS is available from
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -