Secure Socket Layer. version 2.3
|
|
|
- Peregrine Nichols
- 10 years ago
- Views:
Transcription
1 Secure Socket Layer version 2.3
2 Typeset in L A TEX from SGML source using the DOCBUILDER Document System.
3 Contents 1 SSL User s Guide Erlang Distribution Using SSL Introduction Building boot scripts including the SSL application Specifying distribution module for net kernel Specifying security options and other SSL options Setting up environment to always use SSL SSL Release Notes SSL SSL SSL SSL SSL SSL SSL SSL SSL SSL SSL SSL Reference Manual ssl ssl ssl socket Secure Socket Layer iii
4 iv Secure Socket Layer
5 Chapter 1 SSL User s Guide The SSL application provides secure communication over sockets. 1.1 Erlang Distribution Using SSL This chapter describes how the Erlang distribution can use SSL to get additional verification and security Introduction The Erlang distribution can in theory use almost any connection based protocol as bearer. A module that implements the protocol specific parts of connection setup is however needed. The default distribution module is inet tcp dist which is included in the Kernel application. When starting an Erlang node distributed, net kernel uses this module to setup listen ports and connections. In the SSL application there is an additional distribution module, inet ssl dist which can be used as an alternative. All distribution connections will be using SSL and all participating Erlang nodes in a distributed system must use this distribution module. The security depends on how the connections are set up, one can use key files or certificates to just get a crypted connection. One can also make the SSL package verify the certificates of other nodes to get additional security. Cookies are however always used as they can be used to differentiate between two different Erlang networks. Setting up Erlang distribution over SSL involves some simple but necessary steps: Building boot scripts including the SSL application Specifying the distribution module for net kernel Specifying security options and other SSL options The rest of this chapter describes the above mentioned steps in more detail. Secure Socket Layer 1
6 Chapter 1: SSL User s Guide Building boot scripts including the SSL application Boot scripts are built using the systools utility in the SASL application. Refer to the SASL documentations for more information on systools. This is only an example of what can be done. The simplest boot script possible includes only the Kernel and STDLIB applications. Such a script is located in the Erlang distributions bin directory. The source for the script can be found under the Erlang installation top directory under releases/ OTP version start clean.rel. Copythatscript to another location (and preferably another name) and add the SSL application with its current version number after the STDLIB application. An example.rel file with SSL added may look like this: {release, {"OTP APN ","P7A"}, {erts, "5.0"}, [{kernel,"2.5"}, {stdlib,"1.8.1"}, {ssl,"2.2.1"}]}. Note that the version numbers surely will differ in your system. Whenever one of the applications included in the script is upgraded, the script has to be changed. Assuming the above.rel file is stored in a file start ssl.rel in the current directory, a boot script can be built like this: 1> systools:make_script("start_ssl",[]). There will now be a file start ssl.boot in the current directory. To test the boot script, start Erlang with the -boot command line parameter specifying this boot script (with its full path but without the.boot suffix), in Unix it could look like this: $ erl -boot /home/me/ssl/start_ssl Erlang (BEAM) emulator version 5.0 Eshell V5.0 (abort with ^G) 1> whereis(ssl_server). <0.32.0> The whereis function call verifies that the SSL application is really started. As an alternative to building a bootscript, one can explicitly add the path to the ssl ebin directory on the command line. This is done with the command line option -pa. This works as the ssl application really need not be started for the distribution to come up, a primitive version of the ssl server is started by the distribution module itself, so as long as the primitive code server can reach the code, the distribution will start. The -pa method is only recommended for testing purpouses. 2 Secure Socket Layer
7 1.1: Erlang Distribution Using SSL Specifying distribution module for net kernel The distribution module for SSL is named inet ssl dist and is specified on the command line whit the -proto dist option. The argument to -proto dist should be the module name without the dist suffix, so this distribution module is specified with -proto dist inet ssl on the command line. Extending the command line from above gives us the following: $ erl -boot /home/me/ssl/start_ssl -proto_dist inet_ssl For the distribution to actually be started, we need to give the emulator a name as well: $ erl -boot /home/me/ssl/start_ssl -proto_dist inet_ssl -sname ssl_test Erlang (BEAM) emulator version 5.0 [source] Eshell V5.0 (abort with ^G) (ssl_test@myhost)1> Note however that a node started in this way will refuse to talk to other nodes, as no certificates or key filesaresupplied(seebelow). When the SSL distribution starts, the OTP system is in its early boot stage, why neither application nor code are usable. As SSL needs to start a port program in this early stage, it tries to determine the path to that program from the primitive code loaders code path. If this fails, one need to specify the directory where the port program resides. This can be done either with an environment variable ERL SSL PORTPROGRAM DIR or with the command line option -ssl portprogram dir. The value should be the directory where the ssl esock port program is located. Note that this option is never needed in a normal Erlang installation Specifying security options and other SSL options For SSL to work, you either need certificate files or a key file. Certificate files can be specified both when working as client and as server (connecting or accepting). On the erl command line one can specify options that the ssl distribution will add when creation a socket. It is mandatory to specify at least a key file or client and server certificates. One can specify any SSL option on the command line, but must not specify any socket options (like packet size and such). The SSL options are listed in the Reference Manual. The only difference between the options in the reference manual and the ones that can be specified to the distribution on the command line is that certfile can (and usually needs to) be specified as client certfile and server certfile. The client certfile is used when the distribution initiates a connection to another node and the server cerfile is used when accepting a connection from a remote node. The command line argument for specifying the SSL options is named -ssl dist opt and should be followed by an even number of SSL options/option values. The -ssl dist opt argument can be repeated any number of times. An example command line would now look something like this (line breaks in the command are for readability, they should not be there when typed): Secure Socket Layer 3
8 Chapter 1: SSL User s Guide $ erl -boot /home/me/ssl/start_ssl -proto_dist inet_ssl -ssl_dist_opt client_certfile "/home/me/ssl/erlclient.pem" -ssl_dist_opt server_certfile "/home/me/ssl/erlserver.pem" -ssl_dist_opt verify 1 depth 1 -sname ssl_test Erlang (BEAM) emulator version 5.0 [source] Eshell V5.0 (abort with ^G) (ssl_test@myhost)1> A node started in this way will be fully functional, using SSL as the distribution protocol Setting up environment to always use SSL A convenient way to specify arguments to Erlang is to use the ERL FLAGS environment variable. All the flags needed to use SSL distribution can be specified in that variable and will then be interpreted as command line arguments for all subsequent invocations of Erlang. In a Unix (Bourne) shell it could look like this (line breaks for readability): $ ERL_FLAGS="-boot \"/home/me/ssl/start_ssl\" -proto_dist inet_ssl -ssl_dist_opt client_certfile \"/home/me/ssl/erlclient.pem\" -ssl_dist_opt server_certfile \"/home/me/ssl/erlserver.pem\" -ssl_dist_opt verify 1 -ssl_dist_opt depth 1" $ export ERL_FLAGS $ erl -sname ssl_test Erlang (BEAM) emulator version 5.0 [source] Eshell V5.0 (abort with ^G) (ssl_test@myhost)1> init:get_arguments(). [{root,["/usr/local/erlang"]}, {progname,["erl "]}, {sname,["ssl_test"]}, {boot,["/home/me/ssl/start_ssl"]}, {proto_dist,["inet_ssl"]}, {ssl_dist_opt,["client_certfile","/home/me/ssl/erlclient.pem"]}, {ssl_dist_opt,["server_certfile","/home/me/ssl/erlserver.pem"]}, {ssl_dist_opt,["verify","1"]}, {ssl_dist_opt,["depth","1"]}, {home,["/home/me"]}] The init:get arguments() call verifies that the correct arguments are supplied to the emulator. 1.2 SSL Release Notes This document describes the changes made to the SSL application. 4 Secure Socket Layer
9 1.2: SSL Release Notes SSL Fixed Bugs and Malfunctions There was a synchronization error at closing, which could result in that an SSL socket was removed prematurely, resulting in that a user process referring to it received an unexpected exit. OwnId: OTP-4435 Aux Id: seq7600 Known Bugs and Problems See SSL SSL Fixed Bugs and Malfunctions Setting of the option nodelay caused the SSL port program to dump core. OwnId: OTP-4380 Aux Id: - Setting of the option active, once insetopts was wrong, causing a correct socket message to be regarded as erroneous. OwnId: OTP-4380 Aux Id: - A self-signed peer certificate was always rejected with the error eselfsignedcert, irrespective of the depth value. OwnId: OTP-4374 Aux Id: seq7417 Known Bugs and Problems See SSL SSL Improvements and New Features All TCP options allowed in gen tcp, are now also allowed in SSL, except the option reuseaddr, Boolean. Anewfunctiongetopts has been added to the SSL interface module ssl. OwnId: OTP-4305, OTP-4159 Secure Socket Layer 5
10 Chapter 1: SSL User s Guide SSL Fixed Bugs and Malfunctions The roles of the SSLeay and OpenSSL packages has been clarified in the ssl(6) application manual page. Also the URLs from which to download SSLeay has been updated. OwnId: OTP-4002 Aux Id: seq5269 A call to ssl:listen(port, Options) with Options = [] resulted in the cryptic error, ebadf return value. The return value has been changed to error, enooptions,andthe behaviour has been documented in the listen/2 function. OwnId: OTP-4016 Aux Id: seq7006 Use of the option nodelay, boolean() crashed the ssl server. OwnId: OTP-4070 Aux Id: A bug caused the Erlang distribution over ssl to fail. This bug has now been fixed. OwnId: OTP-4072 Aux Id: On Windows when the SSL port program encountered an error code not anticipated it crashed. OwnId: OTP-4132 Aux Id: SSL Fixed Bugs and Malfunctions The ssl:accept/1-2 function sometimes returned error, What, Where instead of error, What, wherewhat is an atom. OwnId: OTP-3775 Aux Id: seq SSL Fixed Bugs and Malfunctions Sometimes the SSL portprogram would loop in an accept loop, without terminating even when the SSL application was stopped.. OwnId: OTP SSL 2.3 Functions have been added to SSL to experimentally support Erlang distribution SSL The version of SSL provides code replacement in runtime by upgrading from, or downgrading to, versions 2.1 and Secure Socket Layer
11 1.2: SSL Release Notes SSL 2.2 Improvements and New Features The restriction that only the creator of an SSL socket can read from and write to the socket has been lifted. OwnId: OTP-3301 The option packet, cdr for SSL sockets has been added, which means that SSL sockets also supports CDR encoded packets. OwnId: OTP-3302 Known Bugs and Problems Setting of a CA certificate file with the cacertfile option (in calls to ssl:accept/1/2 or ssl:connect/3/4) does not work due to weaknesses in the SSLeay package. A work-around is to set the OS environment variable SSL CERT FILE before SSL is started. However, then the CA certificate file will be global for all connections. OwnId: OTP-3146 When changing controlling process of an SSL socket, a temporary process is started, which is not gen server compliant. OwnId: OTP-3146 Although there is a cache timeout option, it is silently ignored. OwnId: OTP-3146 There is currently no way to restrict the cipher sizes. OwnId: OTP SSL 2.1 Improvements and New Features The set of possible error reasons has been extended to contain diagnostics on erronous certificates and failures to verify certificates. OwnId: OTP-3145 The maximum number of simultaneous SSL connections on Windows has been increased from 31 to 127. OwnId: OTP-3145 Fixed Bugs and Malfunctions A dead-lock occuring when write queues are not empty has been removed. OwnId: OTP-3145 Error reasons have been unified and changed. (** POTENTIAL INCOMPATIBILITY **) OwnId: OTP-3145 On Windows a check of the existence of the environment variable ERLSRV SERVICE NAME has been added. If that variable is defined, the port program of the SSL application will not terminated when a user logs off. OwnId: OTP-3145 Secure Socket Layer 7
12 Chapter 1: SSL User s Guide An error in the setting of the nodelay option has been corrected. OwnId: OTP-3145 The confounded notions of verify mode and verify depth has been corrected. The option verifydepth has been removed, and the two separate options verify and depth has been added. (** POTENTIAL INCOMPATIBILITY **) OwnId: OTP-3145 Known Bugs and Problems Setting of a CA certificate file with the cacertfile option (in calls to ssl:accept/1/2 or ssl:connect/3/4) does not work due to weaknesses in the SSLeay package. A work-around is to set the OS environment variable SSL CERT FILE before SSL is started. However, then the CA certificate file will be global for all connections. OwnId: OTP-3146 When changing controlling process of an SSL socket, a temporary process is started, which is not gen server compliant. OwnId: OTP-3146 Although there is a cache timeout option, it is silently ignored. OwnId: OTP-3146 There is currently no way to restrict the cipher sizes. OwnId: OTP SSL 2.0 A complete new version of SSL with separate I/O channels for all connections with non-blocking I/O multiplexing. 8 Secure Socket Layer
13 SSL Reference Manual Short Summaries Application ssl [page 11] The SSL Application Erlang Module ssl [page 13] Interface Functions for Secure Socket Layer Erlang Module ssl socket [page 19] Old interface to Secure Socket Layer ssl No functions are exported. ssl The following functions are exported: accept(listensocket) - ok, Socket error, Reason [page 15] Accept an incoming connection request. accept(listensocket, Timeout) - ok, Socket error, Reason [page 15] Accept an incoming connection request. close(socket) - ok error, Reason [page 15] Close a socket returned by accept/1/2, connect/3/4,orlisten/2. connect(address, Port, Options) - ok, Socket error, Reason [page 15] Connect to Port at Address. connect(address, Port, Options, Timeout) - ok, Socket error, Reason [page 15] Connect to Port at Address. controlling process(socket, NewOwner) - ok error, Reason [page 15] Assign a new controlling process to the socket. format error(errorcode) - string() [page 15] Return an error string. getopts(socket, OptionsTags) - ok, Options error, Reason [page 16] Get options set for socket listen(port, Options) - ok, ListenSocket error, Reason [page 16] Set up a socket to listen on a port on the local host. peername(socket) - ok, Address, Port error, Reason [page 16] Return peer address and port. Secure Socket Layer 9
14 SSL Reference Manual pid(socket) - pid() [page 16] Return the pid of the socket process. port(socket) - ok, Port [page 16] Return local port number of socket. recv(socket, Length) - ok, Data error, Reason [page 17] Receive data on socket. recv(socket, Length, Timeout) - ok, Data error, Reason [page 17] Receive data on socket. send(socket, Data) - ok error, Reason [page 17] Write data to a socket. setopts(socket, Options) - ok error, Reason [page 17] Set socket options. sockname(socket) - ok, Address, Port error, Reason [page 17] Return the local address and port. ssl socket The following functions are exported: listen(protocol, Family, Address, Mode) [page 19] Set up a server listening to Address accept(listensocket, SSLFlags) [page 20] Accept an incoming connection client(protocol, Family, Address, Mode, SSLFlags) [page 23] Set up a SSL client connection controlling process(socket, Pid) [page 24] Switch controlling process for a socket peername(socket) [page 24] Return the name of the other end of a socket resolve() [page 24] Return the official name of the current host. resolve(ipaddress) [page 24] Return the official name of the host with a certain address close(socket) [page 24] Close a socket start() [page 25] Start the socket server stop() [page 25] Stop the socket server 10 Secure Socket Layer
15 SSL Reference Manual ssl ssl Application The Secure Socket Layer (SSL) application provides secure socket communication over TCP/IP. Environment The following environment configuration parameters are defined for the SSL application. Refer to application(3) for more information about configuration parameters. debug = true false optional Causes debug information to be written to standard output. Default is false. debugdir = path() false optional Causes debug information output controlled by debug and msgdebug to be printed to a file named ssl esock. pid.log in the directory specified by debugdir,where pid is the operating system specific textual representation of the process indentifier of the external port program of the SSL application. Default is false, i.e. no log file is produced. msgdebug = true false optional Sets debug = true and causes also the contents of low level messages to be printed to standard output. Default is false. port program = string() false optional Name of port program. The default is ssl esock. pproxylsport = integer() false optional Define the port number of the listen port of the SSL port program. Almost never is this option needed. pproxylsbacklog = integer() false optional Set the listen queue size of the listen port of the SSL port program. The default is 5. SSL libraries The current implementation of the SSL application is based on the SSLeay package version It can be downloaded from several of the mirror sites listed at the site 1. For the relation between SSLeay and OpenSSL, see below. The user has to fetch the SSLeay package, compile and install the libraries libcrypto.so and libssl.so (UNIX), or the libraries libeay32.dll and ssleay32.dll (WIN32). The WIN32 libraries must be compiled and linked with WinSock2. In order to build SSLeay for WinSock2 on Windows NT 4.0 do as follows: 1 URL: Secure Socket Layer 11
16 ssl SSL Reference Manual 1. In crypto/bio/b sock.c:int BIO sock init() remove the call to WSACancelBlockingCall(). 2. In crypto/bn/bn.h replace #define BN ULLONG unsigned int64 by #define BN ULLONG unsigned int In crypto/bn/bn mulw.c:bn add words() replace return(ll&bn MASK2); by return (BN ULONG)(ll&BN MASK2);. 4. In apps/s socket.c:sock cleanup() remove call to WSACancelBlockingCall(). 5. In Configure replace "VC-WIN32","cl:::BN LLONG RC4 INDEX ".$x86 gcc opts.":::" by "VC-WIN32","cl:::RC4 INDEX ".$x86 gcc opts.":::". 6. In mf-ddl.nt replace wsock32.lib by ws2 32.lib. The ssl esock port program has to be built by linking object files and libraries. An example Makefile is provided in the ssl-x.y/priv/obj directory, where also the object files are found. SSLeay and OpenSSL The last version of the SSLeay package was 0.9.0b. It was continued by the open source project OpenSSL, and its first release was 0.9.1c. There should be no problems in using an OpenSSL release instead of the SSLeay release on Unix (that has however not been tested). For WIN32 there are problems (even if you follow the procedure above). The OpenSSL support for WIN32 seems not to be whole-hearted; in particular the implimenation still relies on the now obsolete Winsock 1.1 interface. Other SSL packages There are also commercially available SSL libraries, e.g. C/SSL from Baltimore Technologies Ltd 2,andSSL-C from RSA Data Security Australia Pty Ltd 3,whichmay be supported by the SSL application in the future. Restrictions Users must be aware of export restrictions and patent rights concerning cryptographic software. SEE ALSO application(3) 2 URL: 3 URL: 12 Secure Socket Layer
17 SSL Reference Manual ssl ssl Erlang Module This module contains interface functions to the Secure Socket Layer. New implementations shall use this module, and not the old ssl socket module, which is obsolete. Common data types The following datatypes are used in the functions below: options() = [option()] option() = socketoption() ssloption() socketoption() = mode, list mode, binary binary packet, packettype() header, integer() nodelay, boolean() active, activetype() backlog, integer() ip, ipaddress() ssloption() = verify, code() depth, depth() certfile, path() keyfile, path() password, string() cacertfile, path() ciphers, string() cachetimeout, integer() packettype() (see inet(3)) activetype() (see inet(3)) reason() = atom() atom(), string() bytes() = [byte()] string() = [byte()] byte() = code() = depth() = byte() address() = hostname() ipstring() ipaddress() ipaddress() = ipstring() iptuple() hostname() = string() ipstring() = string() iptuple() = byte(), byte(), byte(), byte() sslsocket() Secure Socket Layer 13
18 ssl SSL Reference Manual The socket options backlog, integer() and ip, ipaddress are for listen/2 only. The following socket options are set by default: mode, list, packet, 0, header, 0, nodelay, false, active, true, backlog, 5, and ip, 0,0,0,0. Note that the options mode, binary and binary are equivalent. Similarly mode, list and the absence of option binary are equivalent. The ssl options are for setting specific SSL parameters as follows: verify, code() Specifies type of verification: 0 = do not verify peer; 1 = verify peer, verify client once, 2 = verify peer, verify client once, fail if no peer certificate. The default value is 0. depth, depth() Specifies verification depth, i.e. how far in a chain of certificates the verification process shall proceed before the verification is considered successful. The default value is 1. certfile, path() Path to a file containing a chain of PEM encoded certificates. keyfile, path() Path to file containing user s private PEM encoded key. password, string() String containing the user s password. Only used if the private keyfile is password protected. cacertfile, path() Path to file containing PEM encoded CA certificates. ciphers, string() String of ciphers as a colon separated list of ciphers. cachetimeout, integer() Session cache timeout in seconds. The type sslsocket() is opaque to the user. The owner of a socket is the one that created it by a call to accept/1, connect/3/4/,or listen/2. When a socket is in active mode (the default), data from the socket is delivered to the owner of the socket in the form of messages: ssl, Socket, Data ssl closed, Socket ssl error, Socket, Reason A Timeout argument specifies a timeout in milliseconds. The default value for a Timeout argument is infinity. Functions listed below may return the value error, closed, which only indicates that the SSL socket is considered closed for the operation in question. It is for instance possible to have error, closed returned from an call to send/2, and a subsequent call to recv/3 returning ok, Data. Hence a return value of error, closed must not be interpreted as if the socket was completely closed. On the contrary, in order to free all resources occupied by an SSL socket, close/1 must be called, or else the process owning the socket has to terminate. For each SSL socket there is an Erlang process representing the socket. When a socket is opened, that process links to the calling client process. Implementations that want to detect abnormal exits from the socket process by receiving EXIT, Pid, Reason messages, should use the function pid/1 to retreive the process identifier from the socket, in order to be able to match exit messages properly. 14 Secure Socket Layer
19 SSL Reference Manual ssl Exports accept(listensocket) - ok, Socket error, Reason accept(listensocket, Timeout) - ok, Socket error, Reason Types: ListenSocket = Socket = sslsocket() Timeout = integer() Accepts an incoming connection request on a listen socket. ListenSocket must be a socket returned from listen/2. The accepted socket inherits the options set for ListenSocket in listen/2. The default value for Timeout is infinity. IfTimeout is specified, and no connection is accepted within the given time, error, timeout is returned. close(socket) - ok error, Reason Types: Socket = sslsocket() Closes a socket returned by accept/1/2, connect/3/4,orlisten/2 connect(address, Port, Options) - ok, Socket error, Reason connect(address, Port, Options, Timeout) - ok, Socket error, Reason Types: Address = address() Port = integer() Options = [connect option()] connect option() = mode, list mode, binary binary packet, packettype() header, integer() nodelay, boolean() active, activetype() verify, code() depth, depth() certfile, path() keyfile, path() password, string() cacertfile, path() ciphers, string() cachetimeout, integer() Timeout = integer() Socket = sslsocket() Connects to Port at Address. If the optional Timeout argument is specified, and a connection could not be established within the given time, error, timeout is returned. The default value for Timeout is infinity. controlling process(socket, NewOwner) - ok error, Reason Types: Socket = sslsocket() NewOwner = pid() Assigns a new controlling process to Socket. A controlling process is the owner of a socket, and receives all messages from the socket. format error(errorcode) - string() Types: Secure Socket Layer 15
20 ssl SSL Reference Manual ErrorCode = term() Returns a diagnostic string describing an error. getopts(socket, OptionsTags) - ok, Options error, Reason Types: Socket = sslsocket() OptionTags = [optiontag()]() Returns the options the tags of which are OptionTags for for the socket Socket. listen(port, Options) - ok, ListenSocket error, Reason Types: Port = integer() Options = [listen option()] listen option() = mode, list mode, binary binary packet, packettype() header, integer() active, activetype() backlog, integer() ip, ipaddress() verify, code() depth, depth() certfile, path() keyfile, path() password, string() cacertfile, path() ciphers, string() cachetimeout, integer() ListenSocket = sslsocket() Sets up a socket to listen on port Port at the local host. If Port is zero, listen/2 picks an available port number (use port/1 to retreive it). The listen queue size defaults to 5. If a different value is wanted, the option backlog, Size should be added to the list of options. An empty Options list is considered an error, and error, enooptions is returned. The returned ListenSocket can only be used in calls to accept/1/2. peername(socket) - ok, Address, Port error, Reason Types: Socket = sslsocket() Address = ipaddress() Port = integer() Returns the address and port number of the peer. pid(socket) - pid() Types: Socket = sslsocket() Returns the pid of the socket process. The returned pid should only be used for receiving exit messages. port(socket) - ok, Port Types: Socket = sslsocket() Port = integer() 16 Secure Socket Layer
21 SSL Reference Manual ssl Returns the local port number of socket Socket. recv(socket, Length) - ok, Data error, Reason recv(socket, Length, Timeout) - ok, Data error, Reason Types: Socket = sslsocket() Length = integer() = 0 Timeout = integer() Data = bytes() binary() Receives data on socket Socket when the socket is in passive mode, i.e. when the option active, false has been specified. A notable return value is error, closed which indicates that the socket is closed. A positive value of the Length argument is only valid when the socket is in raw mode (option packet, 0 is set, and the option binary is not set); otherwise it should be set to 0, whence all available bytes are returned. If the optional Timeout parameter is specified, and no data was available within the given time, error, timeout is returned. The default value for Timeout is infinity. send(socket, Data) - ok error, Reason Types: Socket = sslsocket() Data = iolist() binary() Writes Data to Socket. A notable return value is error, closed indicating that the socket is closed. setopts(socket, Options) - ok error, Reason Types: Socket = sslsocket() Options = [socketoption]() Sets options according to Options for the socket Socket. sockname(socket) - ok, Address, Port error, Reason Types: Socket = sslsocket() Address = ipaddress() Port = integer() Returns the local address and port number of the socket Socket. Secure Socket Layer 17
22 ssl SSL Reference Manual ERRORS The possible error reasons and the corresponding diagnostic strings returned by format error/1 are either the same as those defined in the inet(3) reference manual, or as follows: closed Connection closed for the operation in question. ebadsocket Connection not found (internal error). ebadstate Connection not in connect state (internal error). ebrokertype Wrong broker type (internal error). ecacertfile Own CA certificate file is invalid. ecertfile Own certificate file is invalid. echaintoolong The chain of certificates provided by peer is too long. ecipher Own list of specified ciphers is invalid. ekeyfile Own private key file is invalid. ekeymismatch Own private key does not match own certificate. enoissuercert Cannot find certificate of issuer of certificate provided by peer. enoservercert Attempt to do accept without having set own certificate. enotlistener Attempt to accept on a non-listening socket. enoproxysocket No proxy socket found (internal error). enooptions The list of options is empty. eoptions Invalid list of options. epeercert Certificate provided by peer is in error. epeercertexpired Certificate provided by peer has expired. epeercertinvalid Certificate provided by peer is invalid. eselfsignedcert Certificate provided by peer is self signed. esslaccept Server SSL handshake procedure between client and server failed. esslconnect Client SSL handshake procedure between client and server failed. esslerrssl SSL protocol failure. Typically because of a fatal alert from peer. ewantconnect Protocol wants to connect, which is not supported in this version of the SSL application. ex509lookup Protocol wants X.509 lookup, which is not supported in this version of the SSL application. badcall, Call Call not recognized for current mode (active or passive) and state of socket. badcast, Cast Call not recognized for current mode (active or passive) and state of socket. badinfo, Info Call not recognized for current mode (active or passive) and state of socket. SEE ALSO gen tcp(3), inet(3) 18 Secure Socket Layer
23 SSL Reference Manual ssl socket ssl socket Erlang Module This manual describes the old interface to Secure Socket Layer. It should not be used for new development. The information in this manual is not up-to-date, and will not be updated in the future. However, the following applies for the SSL 2.0 version: Windows and UNIX are supported; the -log option in SSLFlags is not supported anymore. SSL Sockets are the secure BSD UNIX interface to communication protocols based on SSLeay library written by Eric Young Users of the SSL sockets must be aware of the patent rights and export restrictions of cryprographic algorithms in Europe and USA. Please see the Requirements [page 26]section and the SSLeay documentations on the legal aspects on algorithm use. Only the AF INET protocol family and the STREAM protocols are supported. A socket is a full duplex communications channel between two UNIX processes, either over a network to a remote machine, or locally between processes running on the same machine. A socket connects two parties, the initiator and the connector. The initiator is the UNIX process which first opens the socket. It issues a series of system calls to set up the socket and then waits for another process to create a connection to the socket. When the connector starts, it also issues a series of system calls to set up the socket. Then both processes continue running and the communications channel is bound to a file descriptor which both processes use for reading and writing. Exports listen(protocol, Family, Address, Mode) Sets up a socket listening to Address. It also binds the name specified by Address to the socket. Protocol must be the atom STREAM (connection-oriented). Family must be AF INET. The UNIX process that is to connect to the socket can run on any other accessible machine on the Internet. The Address is an integer specifying what port number is to be listened to. This port number uniquely identifies the socket on the machine. If port number 0 is chosen, a free port number is automatically chosen by the UNIX kernel. Note: These port numbers are not to be confused with Erlang ports; they are UNIX-socket ports. Socket ports are used with a host name to create an end point for a socket connection. listen/4 with Protocol=STREAM returns the tuple Filedescriptor, Portnumber. Filedescriptor is an integer specifying the file descriptor assigned to the socket which is being listened to. Portnumber is an integer specifying the port number assigned to the socket. If Address is not zero in the call to listen, the returned port number is equal to Address. Mode must be one of: Secure Socket Layer 19
24 ssl socket SSL Reference Manual packet, N binary packet, N raw == packet, 0 onebyte == packet, 1 twobytes == packet, 2 fourbytes == packet, 4 asn1 where valid values for N are 0, 1, 2 and 4. This parameter specifies the way to read or write to the socket. If Mode is packet, N, then each series of bytes written to the socket will be prepended with N bytes indicating the length of the string. These N bytes are in binary format, with the most significant byte first. In this way it can be checked that all bytes that were written also are read. For this reason no partitioned messages will ever be delivered. If Mode is binary packet, N, the socket is in binary mode, and binary data will be prepended with a bytes header of N. When data is delivered to a socket in binary mode, the data will be delivered as a binary (instead of being unpacked as a byte list.) If N is 0, nothing will be prepended. If Mode is asn1, the receiving side of the connection will assume that BER-coded ASN.1 messages are sent on the socket. The header of the ASN.1 message will then be checked to find out the total length of the ASN.1 message. That number of bytes will then be read from the socket and only one message at a time delivered to the Erlang runtime system. Note! the asn1 mode will only work if all BER encoded data uses the definite length form. If the indefinite length form is used (the sender s decision), only the tag and length bytes will be received and then the connection will be broken. If the indefinite length form can occur (received by the Erlang runtime system) the raw or packet,0 mode should be used. For this reason if the options packet, N, binary packet, N (N 0) or asn1 are set on the socket, all that is written at the sender side will be read (in one chunk) on the reader side. This can be very convenient as this is not guaranteed in TCP. In TCP the messages may be divided partition in unpredictable ways. With TCP a STREAM of bytesisdelivered;itisnotadatagramprotocol. Example: ListenSocket = ssl socket:listen( STREAM, AF INET, 3000, packet, 2 ). ListenSocket may be bound to 3, 3000, where 3 is a file descriptor and 3000 is the port listened to. If not successful the process evaluating listen evaluates exit( listen, syncerror ). This happens if, for example, Portnumber is set to a number which is already occupied on the machine. accept(listensocket, SSLFlags) After a listen, the incoming requests to connect for a connection oriented (STREAM) socket may be accepted. This is done with the call accept. The parameter ListenSocket is the tuple returned from the previous call to listen. The call to accept suspends the caller until a connection has been established from outside. A process identifier is returned to the caller. This process is located between the user and the actual socket. All communication with the socket is through this process, which understands a series of messages and also sends a series of messages to the process that initiated the call to accept. 20 Secure Socket Layer
25 SSL Reference Manual ssl socket SSLFlags is an ASCII list which contains a combination of the following options separated by space/s: -cert ARG specify the certificate file to use. File should be in PEM format. Server must always have a certificate. -key ARG specify the private key file to use. File should be in PEM format. If certificate file contains private key then there is no need to specify private key file. -cipher ARG specify the list of ciphers to use, list of the following: NULL-MD5 RC4-MD5 EXP-RC4-MD5 IDEA-CBC-MD5 RC2-CBC-MD5 EXP-RC2-CBC-MD DES-CBC-MD5 DES-CBC-SHA DES-CBC3-MD5 DES-CBC3-SHA DES-CFB-M1, separated by :. If this option is not specified then the value of environment variable SSL CIPHER will be used. -verify ARG specify the certificate verification level. ARG could be one of: 0 - server does not ask for a client certificate; client does not check the server certificate but uses it for establishing a SSL connection 1 - server asks for client certificate; both do a certificate check; if it fails because of unknown issuer certificate the connection still gets established 2 - server asks for client certificate; both do a certificate check; SSL connection gets established only if the certificate check is successful. Note: default level of verification is 0. -log ARG specify the log file Example: Socket = ssl socket:accept(listensocket, "-cert server cert.pem -key server key.pem") After the statement above it is possible to communicate with the socket. The messages, which may be sent to the socket are: Socket! self(), deliver, ByteList. or Socket! self(), deliver, Binary. Causes Binary/ByteList to be written to the socket. Socket! self(), close. Closes the socket down in an orderly way. If the socket is not closed in this way, it will be automatically closed when the process terminates. The messages that can be received from the socket are best explained by an example: receive Socket, socket closed, normal - ok; %% socket closed by foreign host Socket, socket closed, Error - notok; %% something has happened to the socket Socket, fromsocket, Bytes - bytes, Bytes end. Secure Socket Layer 21
26 ssl socket SSL Reference Manual Two messages may be sent to the socket, i.e. deliver and close. The socket can send three messages back: two error messages and one message indicating the arrival of new data. All of these are shown below. Input to the socket: - self(), deliver, ByteList - self(), deliver, Binary - self(), close Output from the socket: - Socket, socket closed, normal - Socket, socket closed, Error - Socket, fromsocket, ByteList - Socket, fromsocket, Binary It may sometimes be convenient to listen to several sockets at the same time. This is most easily achieved by having one Erlang process for each port number for listening. Another common situation in network programming is when a server is listening to one or more ports waiting for a connect message from the network. Once it arrives, a separate process is spawned to specifically handle the connection. It returns and continues waiting for new connections from the network. The code for this could be similar to the following: top(port) - Listen = ssl socket:listen( STREAM, AF INET, Port, packet, 2 ), loop(listen). loop(listen) - Pid = spawn(mymod, connection, [Listen, self()]), receive Pid, ok - loop(listen) end. connection(listen, Father) - Socket = ssl socket:accept(listen, "-cert ssl server.pem"), Father! self(), ok, Socket! self(), deliver, "Hello there", This code first spawns a process, and lets the new process be suspended while waiting for the connection from the network. Once the new process is connected, the original process is informed about it by the self(), ok message. That process then spawns another, etc. If there is a listening function to a port and accept/2 has been evaluated, the process is suspended and cannot be aborted. In order to stop accepting input, the process making the call receives an EXIT signal. The accept call will then terminate and no more connections will be accepted until a new accept call is made to the same ListenSocket. To achieve this, loop(listen) can be modified in the following way: 22 Secure Socket Layer
27 SSL Reference Manual ssl socket loop(listen) - Pid = spawn(mymod, connection, [Listen, self()]), loop(pid, Listen). loop(pid, Listen) - receive Pid, ok - loop(listen); stop - exit(pid, abort), exit(normal) end. After the code above has received the stop message and exited, there is no error in the Listen socket. It is still intact and can be used again in a new call to loop/1. Another common situation in socket programming is wanting to listen to an address for connections, and then having all the connections handled by a single special process (that reads and writes several sockets simultaneously). The code for that would be similar to the following example: my accept(listenfd, User) - S = ssl socket:accept(listenfd, "-cert ssl server.pem"), ssl socket:controlling process(s, User), my accept(listenfd, User). The process User runs code that is similar to the following: run(sockets) when list(sockets) - receive From, fromsocket, Bytes - case lists:member(from, Sockets) of true - %% old socket handle input(bytes), run(sockets); false - %% new connection handle input(bytes), run([from Sockets]) end;... etc. client(protocol, Family, Address, Mode, SSLFlags) If another UNIX process is already listening to a socket, the socket on the client side may be opened with this call. As before, Protocol must be the atom STREAM and Family must be AF INET. Address must be a tuple of the type IPAddress, Portnumber. It may be argued that users should not have to know port numbers, only names of services as in the BSD library routine getservbyname(). However, this idea has not been implemented in this package, so when a client is to be connected to a socket over the Internet, the port number has to be specified. Examples: Secure Socket Layer 23
28 ssl socket SSL Reference Manual Socket1 = ssl socket:client( STREAM, AF INET, gin.eua.ericsson.se, 1000, raw, "-cert client cert.pem -cert client key.pem"), Socket2 = ssl socket:client( STREAM, AF INET, , 1002, asn1, "-cert ssl client.pem"), Socket3 = ssl socket:client( STREAM, AF INET, gin, 1003, binary packet, 4, ""), As can be seen in the examples above, several formats are allowed for Address. The Mode variable in the call to client is the same as in the calls to listen. TheSSLFlags variable is the same as in the calls to accept, with one exception it is recommended for client to have a certificate but it is not necessary. client returns a process identifier of a process with the same characteristics as the process described for the accept call above. controlling process(socket, Pid) When a value has been returned from the call to accept or the call to client, the Pid of the process which performed the initiation is known by the socket. All output from the socket is sent to this process. All input to the socket must also be wrapped with the Pid of the original process. If the controlling process is to be changed, the socket must be informed. This is similar to the way an Erlang port needs to know the Pid of the process which opened it. The socket (and the port) must know where to send messages. The function above assigns a new controlling process to the socket. Thus, this function ensures that all output from the socket is sent to a process other than the process which created the socket. It also ensures that no messages from the socket are lost while the switch takes place. peername(socket) Returns the name of the peer to Socket. If AF UNIX is used peername returns the filename used as address of a string. If AF INET is used peername returns the tuple Portnumber, IPAddress. resolve() Returns the official name of the current host. resolve(ipaddress) Returns the official name of the host with the address IPAddress. close(socket) Closes the socket. This is equivalent to sending a self(), close message to the process controlling the socket. It also operates on sockets returned by the listen call. This is the method to stop the listening to a socket. 24 Secure Socket Layer
29 SSL Reference Manual ssl socket start() stop() Starts the socket server. Stops the socket server, and closes all open sockets. FEATURES Even if a socket is opened in packet, N mode, it is possible to write binaries to it. The receiving part of the socket determines if data from the socket is to be unpacked as a byte list or not. i.e. a sender may be in binary mode ( binary packet, N ) andthe receiver in byte list mode ( packet, N ) or vice versa. The only restriction is that the packet sizes must match. The modes raw and twobytes are kept for backwards compatibility, and the modes onebyte and fourbytes have been added for forward compatibility. In order to be able to use this module it is required to generate a key and a certificate. For test purposes a private key and a certificate can be generated by using: req -new -x509 -nodes -out test.pem -keyout test.pem ln -sf test.pem x509 -noout -hash test.pem.0 Certificate signing request can be generated by using: req -new -out csr.pem -keyout key.pem -days XXX A certificate signing request (csr.pem) is then could be send to a Certificate Authority (CA) for the purpose of of CA signing the request. Some of Certification Authorities: Verisign Thawte Consulting EuroSign COST Environment variables SSL CERT DIR and SSL CERT FILE could be used to set the location of the certificate of the trusted certifying authority. This is used during the certificate verification process. 4 URL: 5 URL: 6 URL: 7 URL: Secure Socket Layer 25
30 ssl socket SSL Reference Manual REQUIREMENTS When using this module, both client and server must be SSL-enabled. A SSL-server will hang if a non-ssl client tries to connect to it. If a SSL-client tries to connect to a non-ssl-server, the connection will fail. SSL sockets need the SSLeay version package installed in shared library form. You can get it from ftp://ftp.psy.uq.oz.au/pub/crypto/ssl 8 or you can find other mirrored locations at 9. The SSLeay package implements several well known cryptographic algorithms. Some of these are protected by software patents in some countries. The package can be configured to exclude algorithms at installation. Below follows a summary on software patents and restrictions for algorithms in SSLeay, see the SSLeay documentation for details: The use of the RSA algorithm must be licensed in the USA due to US software patents. This includes any products sold to the USA that use the SSLeay RSA package. Export from the USA is restricted for software containing cryptographic algorithms. The IDEA algorithm is protected by a patent in Europe and must be licensed. General use of cryptography is prohibited in France. BUGS At this stage it is not possible to establish connection between a server and a client residing on the same Erlang node due to blocking of SSL connect(). Please note that at this stage it is not possible to use private key encrypted with a pass phrase. To remove pass phrase do: rsa -in key-protected -out key-unprotected.pem The result of this restriction is that the secury of the private key relies on the file system security mechanism. Keep the private key and the certificate in separate files. 8 URL: ftp://ftp.psy.uq.oz.au/pub/crypto/ssl 9 URL: 26 Secure Socket Layer
31 Index of Modules and Functions Modules are typed in this way. Functions are typed in this way. accept/1 ssl,15 accept/2 ssl,15 ssl socket,20 client/5 ssl socket,23 close/1 ssl,15 ssl socket,24 connect/3 ssl,15 connect/4 ssl,15 controlling_process/2 ssl,15 ssl socket,24 format_error/1 ssl,15 getopts/2 ssl,16 listen/2 ssl,16 listen/4 ssl socket,19 peername/1 ssl,16 ssl socket,24 pid/1 ssl,16 port/1 ssl,16 recv/2 ssl,17 recv/3 ssl,17 resolve/0 ssl socket,24 resolve/1 ssl socket,24 send/2 ssl,17 setopts/2 ssl,17 sockname/1 ssl,17 ssl accept/1,15 accept/2,15 close/1, 15 connect/3,15 connect/4,15 controlling_process/2,15 format_error/1,15 getopts/2,16 listen/2,16 peername/1,16 pid/1, 16 port/1, 16 recv/2, 17 recv/3, 17 send/2, 17 setopts/2,17 sockname/1,17 ssl socket accept/2,20 Secure Socket Layer 27
32 client/5,23 close/1, 24 controlling_process/2,24 listen/4,19 peername/1,24 resolve/0,24 resolve/1,24 start/0, 25 stop/0, 25 start/0 ssl socket,25 stop/0 ssl socket,25 28 Secure Socket Layer
Configuring SSL Termination
CHAPTER 4 This chapter describes the steps required to configure a CSS as a virtual SSL server for SSL termination. It contains the following major sections: Overview of SSL Termination Creating an SSL
Configuring Samba with SSL
,appa.27695 Page 295 Friday, November 19, 1999 3:30 PM Appendix A A Configuring Samba with SSL This appendix describes how to set up Samba to use secure connections between the Samba server and its clients.
Implementing SSL Security on a PowerExchange 9.1.0 Network
Implementing SSL Security on a PowerExchange 9.1.0 Network 2012 Informatica Abstract This article describes how to implement SSL security on a PowerExchange network. To implement SSL security, configure
OpenSSL. Version 4.2.4. January 28, 2010
OpenSSL Version 4.2.4 January 28, 2010 (require openssl) The openssl library provides glue for the OpenSSL library with the Scheme port system. It provides functions nearly identically to the standard
DOCUMENTUM CONTENT SERVER CERTIFICATE BASED SSL CONFIGURATION AND TROUBLESHOOTING
White Paper DOCUMENTUM CONTENT SERVER CERTIFICATE BASED SSL CONFIGURATION AND TROUBLESHOOTING Abstract This White Paper explains configuration for enabling Certificate based SSL for secure communication
Encrypted Connections
EMu Documentation Encrypted Connections Document Version 1 EMu Version 4.0.03 www.kesoftware.com 2010 KE Software. All rights reserved. Contents SECTION 1 Encrypted Connections 1 How it works 2 Requirements
Secure Socket Layer. version 3.9
Secure Socket Layer version 3.9 The Erlang/OTP SSL application includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/). Copyright (c) 1998-2002 The OpenSSL
OpenSSL: Secure Communication
OpenSSL: Secure Communication Version 5.92 January 25, 2014 (require openssl) package: base The openssl library provides glue for the OpenSSL library with the Racket port system. It provides functions
SSL Tunnels. Introduction
SSL Tunnels Introduction As you probably know, SSL protects data communications by encrypting all data exchanged between a client and a server using cryptographic algorithms. This makes it very difficult,
(n)code Solutions CA A DIVISION OF GUJARAT NARMADA VALLEY FERTILIZERS COMPANY LIMITED P ROCEDURE F OR D OWNLOADING
(n)code Solutions CA A DIVISION OF GUJARAT NARMADA VALLEY FERTILIZERS COMPANY LIMITED P ROCEDURE F OR D OWNLOADING a Class IIIc SSL Certificate using BEA Weblogic V ERSION 1.0 Page 1 of 8 Procedure for
[SMO-SFO-ICO-PE-046-GU-
Presentation This module contains all the SSL definitions. See also the SSL Security Guidance Introduction The package SSL is a static library which implements an API to use the dynamic SSL library. It
SBClient SSL. Ehab AbuShmais
SBClient SSL Ehab AbuShmais Agenda SSL Background U2 SSL Support SBClient SSL 2 What Is SSL SSL (Secure Sockets Layer) Provides a secured channel between two communication endpoints Addresses all three
Implementing and testing tftp
CSE123 Spring 2013 Term Project Implementing and testing tftp Project Description Checkpoint: May 10, 2013 Due: May 29, 2013 For this project you will program a client/server network application in C on
Generalised Socket Addresses for Unix Squeak 3.9 11
Generalised Socket Addresses for Unix Squeak 3.9 11 Ian Piumarta 2007 06 08 This document describes several new SocketPlugin primitives that allow IPv6 (and arbitrary future other) address formats to be
Configuring Security Features of Session Recording
Configuring Security Features of Session Recording Summary This article provides information about the security features of Citrix Session Recording and outlines the process of configuring Session Recording
Integrated SSL Scanning
Software Version 9.0 Copyright Copyright 1996-2008. Finjan Software Inc. and its affiliates and subsidiaries ( Finjan ). All rights reserved. All text and figures included in this publication are the exclusive
Appendix. Web Command Error Codes. Web Command Error Codes
Appendix Web Command s Error codes marked with * are received in responses from the FTP server, and then returned as the result of FTP command execution. -501 Incorrect parameter type -502 Error getting
CLC Server Command Line Tools USER MANUAL
CLC Server Command Line Tools USER MANUAL Manual for CLC Server Command Line Tools 2.5 Windows, Mac OS X and Linux September 4, 2015 This software is for research purposes only. QIAGEN Aarhus A/S Silkeborgvej
Astaro Security Gateway V8. Remote Access via SSL Configuring ASG and Client
Astaro Security Gateway V8 Remote Access via SSL Configuring ASG and Client 1. Introduction This guide contains complementary information on the Administration Guide and the Online Help. If you are not
unigui Developer's Manual 2014 FMSoft Co. Ltd.
2 Table of Contents Foreword 0 3 Part I Installation 1 Requirements... 3 2 Installation... Instructions 4 9 Part II Developer's Guide 1 Web... Deployment 9 Sencha License... Considerations 9 Adjusting...
Enabling SSL and Client Certificates on the SAP J2EE Engine
Enabling SSL and Client Certificates on the SAP J2EE Engine Angel Dichev RIG, SAP Labs SAP AG 1 Learning Objectives As a result of this session, you will be able to: Understand the different SAP J2EE Engine
StreamServe Persuasion SP4 Service Broker
StreamServe Persuasion SP4 Service Broker User Guide Rev A StreamServe Persuasion SP4 Service Broker User Guide Rev A 2001-2009 STREAMSERVE, INC. ALL RIGHTS RESERVED United States patent #7,127,520 No
Unifying Information Security. Implementing TLS on the CLEARSWIFT SECURE Email Gateway
Unifying Information Security Implementing TLS on the CLEARSWIFT SECURE Email Gateway Contents 1 Introduction... 3 2 Understanding TLS... 4 3 Clearswift s Application of TLS... 5 3.1 Opportunistic TLS...
Release Notes for Epilog for Windows Release Notes for Epilog for Windows v1.7/v1.8
Release Notes for Epilog for Windows v1.7/v1.8 InterSect Alliance International Pty Ltd Page 1 of 22 About this document This document provides release notes for Snare Enterprise Epilog for Windows release
CHAPTER 7 SSL CONFIGURATION AND TESTING
CHAPTER 7 SSL CONFIGURATION AND TESTING 7.1 Configuration and Testing of SSL Nowadays, it s very big challenge to handle the enterprise applications as they are much complex and it is a very sensitive
LoadMaster SSL Certificate Quickstart Guide
LoadMaster SSL Certificate Quickstart Guide for the LM-1500, LM-2460, LM-2860, LM-3620, SM-1020 This guide serves as a complement to the LoadMaster documentation, and is not a replacement for the full
$ftp = Net::FTP->new("some.host.name", Debug => 0) or die "Cannot connect to some.host.name: $@";
NAME Net::FTP - FTP Client class SYNOPSIS use Net::FTP; $ftp = Net::FTP->new("some.host.name", Debug => 0) or die "Cannot connect to some.host.name: $@"; $ftp->login("anonymous",'-anonymous@') or die "Cannot
ProxyCap Help. Table of contents. Configuring ProxyCap. 2015 Proxy Labs
ProxyCap Help 2015 Proxy Labs Table of contents Configuring ProxyCap The Ruleset panel Loading and saving rulesets Delegating ruleset management The Proxies panel The proxy list view Adding, removing and
Configuring Secure Socket Layer HTTP
Finding Feature Information, page 1 Prerequisites for Configuring the Switch for Secure Sockets Layer HTTP, page 1 Restrictions for Configuring the Switch for Secure Sockets Layer HTTP, page 2 Information
Typeset in L A TEX from SGML source using the DocBuilder-0.9.8 Document System.
OS Mon version 2.1 Typeset in L A TEX from SGML source using the DocBuilder-0.9.8 Document System. Contents 1 OS Mon Reference Manual 1 1.1 os mon............................................ 4 1.2 cpu
DOCUMENTUM CONTENT SERVER CERTIFICATE BASED SSL CONFIGURATION WITH CLIENTS
DOCUMENTUM CONTENT SERVER CERTIFICATE BASED SSL CONFIGURATION WITH CLIENTS ABSTRACT This white paper is step-by-step guide for Content Server 7.2 and above versions installation with certificate based
MatrixSSL Getting Started
MatrixSSL Getting Started TABLE OF CONTENTS 1 OVERVIEW... 3 1.1 Who is this Document For?... 3 2 COMPILING AND TESTING MATRIXSSL... 4 2.1 POSIX Platforms using Makefiles... 4 2.1.1 Preparation... 4 2.1.2
Operating System Monitor Application (OS MON)
Operating System Monitor Application (OS MON) version 1.3 Joe Armstrong 1997-05-02 Typeset in L A TEX from SGML source using the DOCBUILDER 3.0 Document System. Contents 1 OS MON Reference Manual 1 1.1
Configuring SSL Termination
CHAPTER3 This chapter describes the steps required to configure a context on the Cisco Application Control Engine (ACE) module as a virtual SSL server for SSL termination. It contains the following major
Configuring Nex-Gen Web Load Balancer
Configuring Nex-Gen Web Load Balancer Table of Contents Load Balancing Scenarios & Concepts Creating Load Balancer Node using Administration Service Creating Load Balancer Node using NodeCreator Connecting
NAT TCP SIP ALG Support
The feature allows embedded messages of the Session Initiation Protocol (SIP) passing through a device that is configured with Network Address Translation (NAT) to be translated and encoded back to the
Internet Mail Client Control Library SSL Supplement
Codestone Ltd Internet Mail Client Control Library SSL Supplement Codestone Ltd 2004 Page 1 / 22 Welcome to the Internet Mail Client Control Library SSL Supplement we hope you will find the library to
Application Architecture
A Course on Internetworking & Network-based Applications CS 6/75995 Internet-based Applications & Systems Design Kent State University Dept. of Science LECT-2 LECT-02, S-1 2 Application Architecture Today
Dove User Guide Copyright 2010-2011 Virgil Trasca
Dove User Guide Dove User Guide Copyright 2010-2011 Virgil Trasca Table of Contents 1. Introduction... 1 2. Distribute reports and documents... 3 Email... 3 Messages and templates... 3 Which message is
BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: 10.1.1. Security Note
BlackBerry Enterprise Service 10 Secure Work Space for ios and Android Version: 10.1.1 Security Note Published: 2013-06-21 SWD-20130621110651069 Contents 1 About this guide...4 2 What is BlackBerry Enterprise
SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2
SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1
HTTPS Configuration for SAP Connector
HTTPS Configuration for SAP Connector 1993-2015 Informatica LLC. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise) without
To install and configure SSL support on Tomcat 6, you need to follow these simple steps. For more information, read the rest of this HOW-TO.
pagina 1 van 6 Apache Tomcat 6.0 Apache Tomcat 6.0 SSL Configuration HOW-TO Table of Contents Quick Start Introduction to SSL SSL and Tomcat Certificates General Tips on Running SSL Configuration 1. Prepare
Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2
Job Reference Guide SLAMD Distributed Load Generation Engine Version 1.8.2 June 2004 Contents 1. Introduction...3 2. The Utility Jobs...4 3. The LDAP Search Jobs...11 4. The LDAP Authentication Jobs...22
20.12. smtplib SMTP protocol client
20.12. smtplib SMTP protocol client The smtplib module defines an SMTP client session object that can be used to send mail to any Internet machine with an SMTP or ESMTP listener daemon. For details of
Apache, SSL and Digital Signatures Using FreeBSD
Apache, SSL and Digital Signatures Using FreeBSD AfNOG 2007 Unix System Administration April 26, 2007 Hervey Allen Network Startup Resource Center Some SSL background Invented by Netscape for secure commerce.
Implementing Secure Sockets Layer on iseries
Implementing Secure Sockets Layer on iseries Presented by Barbara Brown Alliance Systems & Programming, Inc. Agenda SSL Concepts Digital Certificate Manager Local Certificate Authority Server Certificates
SSL... 2 2.1. 3 2.2. 2.2.1. 2.2.2. SSL VPN
1. Introduction... 2 2. Remote Access via SSL... 2 2.1. Configuration of the Astaro Security Gateway... 3 2.2. Configuration of the Remote Client...10 2.2.1. Astaro User Portal: Getting Software and Certificates...10
Using the Push Notifications Extension Part 1: Certificates and Setup
// tutorial Using the Push Notifications Extension Part 1: Certificates and Setup Version 1.0 This tutorial is the second part of our tutorials covering setting up and running the Push Notifications Native
Clearswift Information Governance
Clearswift Information Governance Implementing the CLEARSWIFT SECURE Encryption Portal on the CLEARSWIFT SECURE Email Gateway Version 1.10 02/09/13 Contents 1 Introduction... 3 2 How it Works... 4 3 Configuration
Error Codes for F-Secure Anti-Virus for Firewalls, Windows 6.20
Error Codes for F-Secure Anti-Virus for Firewalls, Windows 6.20 The two tables described here list the error codes sent by F-Secure Content Scanner Server and F-Secure Anti-Virus for Firewalls. Error codes
Tivoli Endpoint Manager for Remote Control Version 8 Release 2. Internet Connection Broker Guide
Tivoli Endpoint Manager for Remote Control Version 8 Release 2 Internet Connection Broker Guide Tivoli Endpoint Manager for Remote Control Version 8 Release 2 Internet Connection Broker Guide Note Before
Migrating the SSL Offloading Configuration of the Alteon Application Switch 2424-SSL to AlteonOS version 27.0.0.0
Migrating the SSL Offloading Configuration of the Alteon Application Switch 2424-SSL to AlteonOS version 27.0.0.0 Table of Contents 1 Introduction... 1 2 Certificates Repository... 2 3 Common SSL Offloading
Session NM059. TCP/IP Programming on VMS. Geoff Bryant Process Software
Session NM059 TCP/IP Programming on VMS Geoff Bryant Process Software Course Roadmap Slide 160 NM055 (11:00-12:00) Important Terms and Concepts TCP/IP and Client/Server Model Sockets and TLI Client/Server
Integrated SSL Scanning
Version 9.2 SSL Enhancements Copyright 1996-2008. Finjan Software Inc. and its affiliates and subsidiaries ( Finjan ). All rights reserved. All text and figures included in this publication are the exclusive
Certificate Management. PAN-OS Administrator s Guide. Version 7.0
Certificate Management PAN-OS Administrator s Guide Version 7.0 Contact Information Corporate Headquarters: Palo Alto Networks 4401 Great America Parkway Santa Clara, CA 95054 www.paloaltonetworks.com/company/contact-us
Spirent Abacus. SIP over TLS Test 编 号 版 本 修 改 时 间 说 明
Spirent Abacus SIP over TLS Test 编 号 版 本 修 改 时 间 说 明 1 1. TLS Interview (Transport Layer Security Protocol) (1) TLS Feature Introduction: 1. TLS is a successor of Secure Sockets Layer (SSL), a cryptographic
NETWORK ADMINISTRATION
NETWORK ADMINISTRATION INTRODUCTION The PressureMAP software provides users who have access to an Ethernet network supporting TCP/IP with the ability to remotely log into the MAP System via a network connection,
Introduction to Socket Programming Part I : TCP Clients, Servers; Host information
Introduction to Socket Programming Part I : TCP Clients, Servers; Host information Keywords: sockets, client-server, network programming-socket functions, OSI layering, byte-ordering Outline: 1.) Introduction
Guideline for setting up a functional VPN
Guideline for setting up a functional VPN Why do I want a VPN? VPN by definition creates a private, trusted network across an untrusted medium. It allows you to connect offices and people from around the
HP OpenView Adapter for SSL Using Radia
HP OpenView Adapter for SSL Using Radia Radia SSL Adapter Guide Software Version: 2.0 for the UNIX and Windows operating systems Manufacturing Part Number: T3424-90064 August 2004 Copyright 2004 Hewlett-Packard
webmethods Certificate Toolkit
Title Page webmethods Certificate Toolkit User s Guide Version 7.1.1 January 2008 webmethods Copyright & Document ID This document applies to webmethods Certificate Toolkit Version 7.1.1 and to all subsequent
RMCS Installation Guide
RESTRICTED RIGHTS Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (C)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS
Network Programming with Sockets. Process Management in UNIX
Network Programming with Sockets This section is a brief introduction to the basics of networking programming using the BSD Socket interface on the Unix Operating System. Processes in Unix Sockets Stream
Enterprise SSL Support
01 Enterprise SSL Support This document describes the setup of SSL (Secure Sockets Layer) over HTTP for Enterprise clients, servers and integrations. 1. Overview Since the release of Enterprise version
FTP Client Engine Library for Visual dbase. Programmer's Manual
FTP Client Engine Library for Visual dbase Programmer's Manual (FCE4DB) Version 3.3 May 6, 2014 This software is provided as-is. There are no warranties, expressed or implied. MarshallSoft Computing, Inc.
SSL Configuration on Weblogic Oracle FLEXCUBE Universal Banking Release 12.0.87.01.0 [August] [2014]
SSL Configuration on Weblogic Oracle FLEXCUBE Universal Banking Release 12.0.87.01.0 [August] [2014] Table of Contents 1. CONFIGURING SSL ON ORACLE WEBLOGIC... 1-1 1.1 INTRODUCTION... 1-1 1.2 SETTING UP
Managing the SSL Certificate for the ESRS HTTPS Listener Service Technical Notes P/N 300-011-843 REV A01 January 14, 2011
Managing the SSL Certificate for the ESRS HTTPS Listener Service Technical Notes P/N 300-011-843 REV A01 January 14, 2011 This document contains information on these topics: Introduction... 2 Terminology...
NetApp Storage Encryption: Preinstallation Requirements and Procedures for SafeNet KeySecure
Technical Report NetApp Storage Encryption: Preinstallation Requirements and Procedures for SafeNet KeySecure Mike Wong, NetApp Neil Shah, NetApp April 2013 TR-4074 Version 1.2 NetApp Storage Encryption
openssl egg Bindings to the OpenSSL SSL/TLS library Extension for Chicken Scheme Version 1.1.1 Thomas Chust
openssl egg Bindings to the OpenSSL SSL/TLS library Extension for Chicken Scheme Version 1.1.1 Thomas Chust i Table of Contents 1 About this egg............................ 1 1.1 Version history..............................................
MS Enterprise Library 5.0 (Logging Application Block)
International Journal of Scientific and Research Publications, Volume 4, Issue 8, August 2014 1 MS Enterprise Library 5.0 (Logging Application Block) Anubhav Tiwari * R&D Dept., Syscom Corporation Ltd.
Crypto Lab Public-Key Cryptography and PKI
SEED Labs 1 Crypto Lab Public-Key Cryptography and PKI Copyright c 2006-2014 Wenliang Du, Syracuse University. The development of this document is/was funded by three grants from the US National Science
Apache Security with SSL Using Ubuntu
Apache Security with SSL Using Ubuntu These materials are licensed under the Creative Commons Attribution-Noncommercial 3.0 Unported license (http://creativecommons.org/licenses/by-nc/3.0/) Some SSL background
Kiwi SyslogGen. A Freeware Syslog message generator for Windows. by SolarWinds, Inc.
Kiwi SyslogGen A Freeware Syslog message generator for Windows by SolarWinds, Inc. Kiwi SyslogGen is a free Windows Syslog message generator which sends Unix type Syslog messages to any PC or Unix Syslog
BEA Weblogic Guide to Installing Root Certificates, Generating CSR and Installing SSL Certificate
BEA Weblogic Guide to Installing Root Certificates, Generating CSR and Installing SSL Certificate Copyright. All rights reserved. Trustis Limited Building 273 New Greenham Park Greenham Common Thatcham
ERserver. iseries. Securing applications with SSL
ERserver iseries Securing applications with SSL ERserver iseries Securing applications with SSL Copyright International Business Machines Corporation 2000, 2001. All rights reserved. US Government Users
Secure IIS Web Server with SSL
Secure IIS Web Server with SSL EventTracker v7.x Publication Date: Sep 30, 2014 EventTracker 8815 Centre Park Drive Columbia MD 21045 www.eventtracker.com Abstract The purpose of this document is to help
Configuration Manual
Configuration Manual Page 1 of 20 Table of Contents Chronicall Setup...3 Standard Installation...3 Non-standard Installation (Recording Library on Separate machine)...8 Configuring Call Recording through
Factory Application Certificates and Keys Products: SB700EX, SB70LC
Factory Application Certificates and Keys Products: SB700EX, SB70LC 1 Contents 1 Overview... 3 2 Certificates and Keys... 3 2.1 What is in a Certificate?... 4 3 SSL Certificates and Keys... 6 3.1 NetBurner
Whitepaper : Using Unsniff Network Analyzer to analyze SSL / TLS
Whitepaper : Using Unsniff Network Analyzer to analyze SSL / TLS A number of applications today use SSL and TLS as a security layer. Unsniff allows authorized users to analyze these applications by decrypting
Displaying SSL Certificate and Key Pair Information
CHAPTER6 Displaying SSL Certificate and Key Pair Information This chapter describes how to use the available show commands to display SSL-related information, such as the certificate and key pair files
Rocket UniVerse. Security Features. Version 11.2.3. April 2014 UNV-1123-SECU-1
Rocket UniVerse Security Features Version 11.2.3 April 2014 UNV-1123-SECU-1 Notices Edition Publication date: April 2014 Book number: UNV-1123-SECU-1 Product version: Rocket UniVerse V11.2.3 2 Copyright
Creating and Managing Certificates for My webmethods Server. Version 8.2 and Later
Creating and Managing Certificates for My webmethods Server Version 8.2 and Later November 2011 Contents Introduction...4 Scope... 4 Assumptions... 4 Terminology... 4 File Formats... 5 Truststore Formats...
FioranoMQ 9. High Availability Guide
FioranoMQ 9 High Availability Guide Entire contents Fiorano Software and Affiliates. All rights reserved. Reproduction of this document in any form without prior written permission is forbidden. The information
Generate CSR for Third Party Certificates and Download Unchained Certificates to the WLC
Generate CSR for Third Party Certificates and Download Unchained Certificates to the WLC Document ID: 70584 Contents Introduction Prerequisites Requirements Components Used Conventions Background Information
Relayd: a load-balancer for OpenBSD
Relayd: a load-balancer for OpenBSD Giovanni Bechis [email protected] University of Applied Sciences, Vienna, Austria May 5, 2012 what is relayd useful for? Reverse proxy Ssl accelerated reverse proxy
Configuring and Monitoring Database Servers
Configuring and Monitoring Database Servers eg Enterprise v5.6 Restricted Rights Legend The information contained in this document is confidential and subject to change without notice. No part of this
Secure Web Appliance. SSL Intercept
Secure Web Appliance SSL Intercept Table of Contents 1. Introduction... 1 1.1. About CYAN Secure Web Appliance... 1 1.2. About SSL Intercept... 1 1.3. About this Manual... 1 1.3.1. Document Conventions...
How to configure SSL proxying in Zorp 3 F5
How to configure SSL proxying in Zorp 3 F5 June 14, 2013 This tutorial describes how to configure Zorp to proxy SSL traffic Copyright 1996-2013 BalaBit IT Security Ltd. Table of Contents 1. Preface...
Apache Tomcat. Load-balancing and Clustering. Mark Thomas, 20 November 2014. 2014 Pivotal Software, Inc. All rights reserved.
2 Apache Tomcat Load-balancing and Clustering Mark Thomas, 20 November 2014 Introduction Apache Tomcat committer since December 2003 [email protected] Tomcat 8 release manager Member of the Servlet, WebSocket
FioranoMQ 9. High Availability Guide
FioranoMQ 9 High Availability Guide Copyright (c) 1999-2008, Fiorano Software Technologies Pvt. Ltd., Copyright (c) 2008-2009, Fiorano Software Pty. Ltd. All rights reserved. This software is the confidential
Computer Networks. Chapter 5 Transport Protocols
Computer Networks Chapter 5 Transport Protocols Transport Protocol Provides end-to-end transport Hides the network details Transport protocol or service (TS) offers: Different types of services QoS Data
2 Downloading Access Manager 3.1 SP4 IR1
Novell Access Manager 3.1 SP4 IR1 Readme May 2012 Novell This Readme describes the Novell Access Manager 3.1 SP4 IR1 release. Section 1, Documentation, on page 1 Section 2, Downloading Access Manager 3.1
Command Line Interface User Guide for Intel Server Management Software
Command Line Interface User Guide for Intel Server Management Software Legal Information Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel
Active Directory Adapter with 64-bit Support Installation and Configuration Guide
IBM Security Identity Manager Version 6.0 Active Directory Adapter with 64-bit Support Installation and Configuration Guide SC27-4384-02 IBM Security Identity Manager Version 6.0 Active Directory Adapter
Cleaning Encrypted Traffic
Optenet Documentation Cleaning Encrypted Traffic Troubleshooting Guide iii Version History Doc Version Product Date Summary of Changes V6 OST-6.4.300 01/02/2015 English editing Optenet Documentation
Quick Note 040. Create an SSL Tunnel with Certificates on a Digi TransPort WR router using Protocol Switch.
Quick Note 040 Create an SSL Tunnel with Certificates on a Digi TransPort WR router using Protocol Switch. Digi Support January 2014 1 Contents 1 Introduction... 2 1.1 Outline... 2 1.2 Assumptions... 2
Copyright 2013 EMC Corporation. All Rights Reserved.
White Paper INSTALLING AND CONFIGURING AN EMC DOCUMENTUM CONTENT TRANSFORMATION SERVICES 7.0 CLUSTER TO WORK WITH A DOCUMENTUM CONTENT SERVER 7.0 CLUSTER IN SECURE SOCKETS LAYER Abstract This white paper
Installation Procedure SSL Certificates in IIS 7
Installation Procedure SSL Certificates in IIS 7 This document will explain the creation and installation procedures for enabling an IIS website to use Secure Socket Layer (SSL). Check IIS for existing
This section describes how to use SSL Certificates with SOA Gateway running on Linux.
This section describes how to use with SOA Gateway running on Linux. Setup Introduction Step 1: Set up your own CA Step 2: SOA Gateway Server key and certificate Server Configuration Setup To enable the
