home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-1.iso / CDROM / FAQs / Security / ssl-talk-faq < prev    next >
Encoding:
Internet Message Format  |  1996-09-27  |  51.8 KB

  1. Path: informatik.tu-muenchen.de!fu-berlin.de!nntp.zit.th-darmstadt.de!voskovec.radio.cz!news-feed.inet.tele.dk!news.inet.tele.dk!enews.sgi.com!news.mathworks.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv
  2. From: Christopher Allen <ChristopherA@consensus.com>
  3. Newsgroups: alt.security,comp.security.misc,comp.protocols,sci.crypt,comp.infosystems.www.misc,alt.answers,comp.answers,news.answers,sci.answers
  4. Subject: [SSL-Talk List FAQ] Secure Sockets Layer Discussion List FAQ v1.0.1
  5. Followup-To: poster
  6. Date: 27 Sep 1996 09:24:24 GMT
  7. Organization: Consensus Development Corporation, Berkeley, CA, US <http://www.consensus.com/>
  8. Lines: 1291
  9. Approved: news-answers-request@MIT.EDU
  10. Distribution: world
  11. Expires: 10 Nov 1996 09:21:53 GMT
  12. Message-ID: <computer-security/ssl-talk-faq_843816113@rtfm.mit.edu>
  13. NNTP-Posting-Host: bloom-picayune.mit.edu
  14. Summary: This document is a summary of FAQ (Frequently Asked
  15.     Questions) found on the SSL-Talk discussion list regarding technical
  16.     implemenation issues of the Secure Sockets Layer protocol, a
  17.     transport level security protocol used for securing web servers and
  18.     clients (such as Netscape Navigator) and other internet
  19.     applications.
  20. X-Last-Updated: 1996/09/18
  21. Originator: faqserv@bloom-picayune.MIT.EDU
  22. Xref: informatik.tu-muenchen.de alt.security:39707 comp.security.misc:33873 sci.crypt:54742 comp.infosystems.www.misc:54988 alt.answers:18881 comp.answers:21302 news.answers:82595 sci.answers:5130
  23.  
  24. Content-type: text/x-usenet-FAQ;
  25.     version=1.0.1;
  26.     title="[SSL-Talk List FAQ] Secure Sockets Layer Discussion List FAQ v1.0.1"
  27. Archive-name: computer-security/ssl-talk-faq
  28. Posting-Frequency: monthly
  29. Last-modified: Wed Sep 18 12:00:00 PDT 1996
  30. Version: 1.0.1 (text) Wed Sep 18 12:00:00 PDT 1996
  31. URL: http://www.consensus.com/security/ssl-talk-faq.html
  32. Copyright-Notice: (c) Copyright 1996 by Consensus Development Corporation -- All Rights Reserved
  33.  
  34.  
  35.                               SSL-Talk FAQ
  36.              Secure Sockets Layer Discussion List FAQ v1.0.1
  37.  
  38.                       Wed Sep 18 12:00:00 PDT 1996
  39.  
  40.                            FAQ Maintained by:
  41.                Christopher Allen <Christopher@consensus.com>
  42.                     Consensus Development Corporation
  43.                         <http://www.consensus.com/>
  44.  
  45.          The latest edition of this FAQ can always be found at:
  46.           <http://www.consensus.com/security/ssl-talk-faq.html>
  47.            <http://www.consensus.com/security/ssl-talk-faq.txt>
  48.           <ftp://ftp.consensus.com/pub/security/ssl-talk-faq.txt>
  49.  
  50.     (c) 1996 Consensus Development Corporation - All Rights Reserved
  51.  
  52.     All information contained in this work is provided "as is." All
  53.     warranties, expressed, implied or statutory, concerning the accuracy
  54.     of the information of the suitability for any particular use are
  55.     hereby specifically disclaimed. While every effort has been taken to
  56.     ensure the accuracy of the information contained in this work,
  57.     the authors assume(s) no responsibility for errors or omissions, or
  58.     for damages resulting from the use of the information contained
  59.     herein.
  60.  
  61.     This work may be copied in any printed or electronic form for
  62.     non-commercial, personal, or educational purposes if the work is not
  63.     modified in any way, that the copyright notice, the notices of any
  64.     other author included in this work, and this copyright agreement
  65.     appear on all copies.
  66.  
  67.     Consensus Development Corporation also grants permission to
  68.     distribute this work in electronic form over computer networks for
  69.     other purposes, provided that, in addition to the terms and
  70.     restrictions set forth above, Consensus Development Corporation
  71.     and/or other cited authors are notified and that no fees are charged
  72.     for access to the information in excess of normal online charges
  73.     that are required for such distribution.
  74.  
  75.     This work may also be mentioned, cited, referred to or described
  76.     (but not copied or distributed, except as authorized above) in
  77.     printed publications, on-line services, other electronic
  78.     communications media, and otherwise, provided that Consensus
  79.     Development Corporation and any other cited author recieves
  80.     appropriate attribution.
  81.  
  82.     Comments about, suggestions about or corrections to this document
  83.     are welcomed.  If you would like to ask us to change this document
  84.     in some way, the method we appreciate most is for you to actually
  85.     make the desired modifications to a copy of the posting, and then to
  86.     send us the modified document, or a context diff between the posted
  87.     version and your modified version (if you do the latter, make sure
  88.     to include in your mail the "Version:" line from the posted
  89.     version).  Submitting changes in this way makes dealing with them
  90.     easier for us and helps to avoid misunderstandings about what you
  91.     are suggesting.
  92.  
  93.     Many people have in the past provided feedback and corrections; we
  94.     thank them for their input.
  95.  
  96.     In particular, many thanks to:
  97.  
  98.         Tim Dierks <TimD@consensus.com>
  99.         Charles Neerdaels <chuckn@netscape.com>
  100.         Eric Greenberg <ericg@netscape.com>
  101.         Tom Weinstein <tomw@netscape.com>
  102.         Jonathan Zamick <JonathanZ@consensus.com>
  103.  
  104.     Remaining ambiguities, errors, and difficult-to-read passages are
  105.     not their fault. :)
  106.  
  107.  
  108. ------------------------------
  109.  
  110. CONTENTS
  111.  
  112.     1) THE SSL-TALK LIST
  113.     2) GENERAL SSL QUESTIONS
  114.     3) USING PROXIES, GATEWAYS AND FIREWALLS WITH SSL
  115.     4) SSL PROTOCOL QUESTIONS
  116.     5) CERTIFICATE RELATED QUESTIONS
  117.     6) SSL IMPLEMENTATION QUESTIONS
  118.         6.1) NETSCAPE QUESTIONS
  119.         6.2) MICROSOFT QUESTIONS
  120.     7) SSL TOOLKIT QUESTIONS
  121.         7.1) SSLREF QUESTIONS
  122.         7.2) SSL PLUS QUESTIONS
  123.         7.3) SSLEAY QUESTIONS
  124.  
  125.  
  126. ------------------------------
  127.  
  128. 1) THE SSL-TALK LIST
  129.  
  130. This section contains information about the SSL-Talk list.
  131.  
  132.  
  133. 1.1) What is the SSL-Talk List?
  134.  
  135.     The SSL-Talk List is an email list intended for discussion of the
  136.     technical points of the SSL protocol and its implementation.
  137.  
  138.  
  139. 1.2) What is SSL?
  140.  
  141.     SSL is the Secure Sockets Layer protocol. Version 2.0 originated by
  142.     Netscape Development Corporation, and version 3.0 was designed with
  143.     public review and input from industry, and is defined at
  144.         <http://home.netscape.com/eng/ssl3/index.html>
  145.  
  146.  
  147. 1.3) How do I subscribe to SSL-Talk?
  148.  
  149.     Send mail to the email address <ssl-talk-request@netscape.com>
  150.     with the *subject* being the single word SUBSCRIBE. You need not
  151.     put any text in the body of your message.
  152.  
  153.     Please do not send requests to the SSL-Talk list.
  154.  
  155.  
  156. 1.4) Once I am subscribed, how to I send mail to SSL-Talk?
  157.  
  158.     Any mail addressed to <ssl-talk@netscape.com> will be sent to *all*
  159.     members of the SSL-Talk mailing list.
  160.  
  161.  
  162. 1.5) How do I unsubscribe from SSL-Talk?
  163.  
  164.     To remove your name from the ssl-talk list send mail to the address
  165.     <ssl-talk-request@netscape.com> with the *subject* being the single
  166.     word UNSUBSCRIBE. You need not put any text in the body of your
  167.     message.
  168.  
  169.     Please do not send requests to the SSL-Talk list.
  170.  
  171.  
  172. 1.6) I've tried unsubscribing several times from SSL-Talk but it doesn't
  173. seem to work -- what can I do?
  174.  
  175.     The most common problem is that you are attempting to unsubscribe
  176.     using an email address different than that with which you subscribed
  177.     Check with your mail administrator and make sure that you don't have
  178.     an alias or ".forward" file sending mail to you from another
  179.     address.
  180.  
  181.     Another common problem is that the subdomain of your mailer has
  182.     changed, for example, "mail.consensus.com" has been renamed
  183.     "server.consensus.com".
  184.  
  185.     In either case, sending mail with the "From:" line matching the
  186.     account you subscribed with should unsubscribe you from the list.
  187.  
  188.     If this still doesn't work, send mail to <sslref@netscape.com>
  189.     describing your problems unsubscribing, what email addresses you
  190.     think you may have subscribed with, and if you think you may have a
  191.     different mail address subscribed.
  192.  
  193.     Please don't send mail to the general SSL-Talk list to unsubscribe;
  194.     it will only frustrate you and the rest of the recipients.
  195.  
  196.  
  197. 1.7) Where is SSL-Talk archived?
  198.  
  199.     There is a hypertext archive of the list at
  200.         <http://coho.stanford.edu/~hassan/hymail/ssl/current/>
  201.  
  202.     In some cases we have found that this archive occasionally is
  203.     missing some messages -- if you know of any alternative archive
  204.     sites, please let us know.
  205.  
  206.     We are not aware of any text archives of the list.
  207.  
  208.  
  209. ------------------------------
  210.  
  211. 2) GENERAL SSL QUESTIONS
  212.  
  213. This section contains general information on SSL and the SSL
  214. protocol.
  215.  
  216.  
  217. 2.1) What is the current version of the SSL protocol?
  218.  
  219.     The previous version of SSL, version 2.0 is documented at
  220.         <http://home.netscape.com/newsref/std/SSL_old.html>
  221.  
  222.     The current version is 3.0, as documented at
  223.         <http://home.netscape.com/eng/ssl3/index.html>
  224.  
  225.     Errata to the SSL 3.0 Specification is periodically posted on
  226.     the SSL discussion list, and is available at
  227.         <http://home.netscape.com/eng/ssl3/ssl-errata.html>
  228.  
  229.  
  230. 2.2) Where can I get a "management overview" of SSL and web security?
  231.  
  232.     There is a brief overview and FAQ on Netscape security called
  233.     "On Internet Security", available at
  234.         <http://home.netscape.com/info/security-doc.html>
  235.  
  236.     There is a brief introduction on how Netscape uses public key
  237.     cryptography in the SSL protocol called "Using Public Key
  238.     Cryptography" at
  239.         <http://home.netscape.com/newsref/ref/rsa.html>
  240.  
  241.     An overview on certificates and VeriSign's Digital IDs is at
  242.         <http://digitalid.verisign.com/crp_intr.htm>.
  243.  
  244.  
  245.  
  246. 2.3) Where can I get a more in-depth look at SSL and web security?
  247.  
  248.     The online version of the technical specifications for the SSL 3.0
  249.     protocol is at
  250.         <http://home.netscape.com/eng/ssl3/ssl-toc.html>
  251.  
  252.     A PostScript version is also available at
  253.         <http://home.netscape.com/eng/ssl3/index.html>
  254.  
  255.     A FAQ for SSLeay, a freeware implementation of the SSL 2.0 protocol
  256.     is available at
  257.         <http://www.psy.uq.oz.au/~ftp/Crypto/>
  258.  
  259.     A rather broad list of public key related documents, with a focus on
  260.     certificates and standards can be found at
  261.         <http://www.zoo.net/~marcnarc/PKI/References.htm>
  262.  
  263.  
  264. 2.4) What software supports SSL 2.0 and SSL 3.0?
  265.  
  266.     WebCompare offers a list of security features supported by over 100
  267.     different servers and clients at
  268.         <http://webcompare.iworld.com/compare/security.shtml>
  269.  
  270.     Currently it is not very accurate. If you know of changes please
  271.     contact David Strom <david@strom.com>.
  272.  
  273.  
  274. 2.5) I'm confused by all the different laws that different countries
  275. have on export and import of cryptographic applications. Is there
  276. one place I can go to find out?
  277.  
  278.     There is an impressive "International Law Crypto Survey" of
  279.     cryptographic laws and regulations throughout the world at
  280.         <http://cwis.kub.nl/~frw/people/koops/lawsurvy.htm>
  281.  
  282.     RSA Data Security, Inc. offers an Acrobat version of their
  283.     "Frequently Asked Questions: Export" at
  284.         <http://www.rsa.com/PUBS/exp_faq.pdf>
  285.  
  286.     Other information on US export issues can be found at
  287.     the Electronic Frontier Foundation's web site at
  288.         <http://www.eff.org/>
  289.  
  290.  
  291. ------------------------------
  292.  
  293. 3) USING PROXIES, GATEWAYS AND FIREWALLS WITH SSL
  294.  
  295. This section contains information on how the SSL protocol interacts
  296. with proxy servers, security gateways, and firewalls.
  297.  
  298.  
  299. 3.1) What exactly is the meaning of "proxy" mentioned in the
  300. Netscape Navigator "Network Preferences" menus?
  301.  
  302.     A proxy server is a computer program that resides on your firewall
  303.     and acts as a conduit between your computer and the broader
  304.     Internet. In addition to acting as network guardian and logging
  305.     traffic, a proxy server can also provide an enterprise cache for
  306.     files as well as replication and site-filtering services.
  307.  
  308.     Any application which needs to communicate through a proxy has to
  309.     negotiate with the proxy first before continuing through the
  310.     firewall. Netscape Navigator works with many different types of
  311.     proxies (such as the CERN proxy server and their own Netscape Proxy
  312.     Server) and gateways that use the SOCKS protocol.
  313.  
  314.     One problem with SSL-based traffic is that it does not work with
  315.     caching and replication with proxy servers. For a proxy server to
  316.     support SSL it must either support SOCKS, or use a special SSL
  317.     Tunneling protocol. The Netscape Proxy Server supports both
  318.     SOCKS and the SSL Tunnneling protocol.
  319.  
  320.  
  321. 3.2) How does SSL work through (application level) firewalls,
  322. gateways and proxy servers?
  323.  
  324.     SSL was specifically designed for security between client and
  325.     server and to avoid any kind of 3-way man-in-the-middle attack.
  326.     Thus SSL cannot be proxied through traditional application level
  327.     firewalls (such as the CERN proxy server) as SSL considers these
  328.     proxy servers as such a middle-man.
  329.  
  330.     The simplest solution to this is to use a packet filtering firewall.
  331.     You set it up to open up a reserved and trusted port for the
  332.     SSL+HTTP or SSL+NNTP services (443 or 563 respectively) allowing all
  333.     traffic on those ports to be passed through unrestricted. The risk
  334.     with this solution is that an internal attacker could attempt to use
  335.     these trusted ports without using SSL and there is no way for the
  336.     firewall to know.
  337.  
  338.     SSL also can work with gateways that support the SOCKS protocol, a
  339.     protocol independent proxy mechanism. SOCKS is a generic byte
  340.     forwarding gateway, between client and server, and generally works
  341.     at the socket level. If all you want is TCP/UDP restricions based on
  342.     client IP or server IP, SOCKS works fine.
  343.  
  344.     However, most non-SSL HTTP proxies work at the protocol level and
  345.     have the ability to understand header information related to the
  346.     protocol. This goes beyond SOCKS to allow the firewall administrator
  347.     to use the header information for filtering and/or monitoring the
  348.     traffic. Also SOCKS does not offer the firewall administrator
  349.     sufficient information regarding the request such that it can fully
  350.     log and/or evaluate the request in order to allow or deny it.
  351.  
  352.     A more secure approach is to use a firewall that supports the SSL
  353.     Tunnelling CONNECT extension method as described in the Internet
  354.     draft
  355.         <ftp://ftp.internic.net/internet-drafts/draft-luotonen-ssl-tunneling-02.txt>
  356.  
  357.     In the case of SSL Tunneling, the client initiates an SSL connection
  358.     via normal HTTP, then handshakes and creates a secure connection to
  359.     the server via a byte-forwarding tunnel. The proxy has access to the
  360.     client-proxy request headers, but the session is encrypted, and once
  361.     the handshake occurs the proxy acts identically to a SOCKS gateway.
  362.     This will allow the firewall to monitor the requests, but not the
  363.     traffic itself.
  364.  
  365.     The biggest difference between the two methods is that when using
  366.     SOCKS, DNS resolution is the responsibility of the client, whereas
  367.     when requests are forwarded through a proxy, DNS resolution is the
  368.     responsibility of the proxy.
  369.  
  370.     The are three additional things that the SSL Tunnelling mechanism
  371.     does with the proxy server that do not happen when using SOCKS:
  372.  
  373.         * The user agent is sent (for example,
  374.           "Mozilla/3.0/Macintosh").
  375.  
  376.         * A proxy authorization is sent which allows you to use
  377.           passwords to control external Internet access.
  378.  
  379.         * The standard is more easily extensible: for example, the
  380.           client could in theory send the URL being requested to the
  381.           firewall (or anything else). However, there is no standard
  382.           to support this behavior and as far as we know there are
  383.           no products which do it.
  384.  
  385.     The Netscape Proxy Server supports this SSL Tunnelling CONNECT
  386.     extension methods for tunnelling SSL, and its use is described in
  387.         <http://developer.netscape.com/library/one/sdk/proxy/unixguide/ssl-tunl.htm>
  388.  
  389.     Another solution, also available using the Netscape Proxy Server, is
  390.     that the proxy server can spoof SSL on behalf of the internal
  391.     client; the proxy will initiate SSL between itself and other servers
  392.     on the Internet but be unsecure inside the firewall between the
  393.     proxy server and the client. This compromise means that client
  394.     authentication is not possible, as only server authentication is
  395.     available of the remote sites, however you gain the ability for
  396.     client authentication to the proxy. It's up to the administrator as
  397.     to which is more important, until such time as a better solution
  398.     arises. The description of this feature in the Netscape Proxy Server
  399.     is at
  400.          <http://developer.netscape.com/library/one/sdk/proxy/unixguide/ssl-tunl.htm#518342>
  401.  
  402.     Reverse proxies are a solution for serving secure content inside
  403.     a firewall to outside clients. For the Netscape Proxy Server
  404.     this is described at
  405.         <http://developer.netscape.com/library/one/sdk/proxy/unixguide/revpxy.htm>
  406.  
  407.     It is possible for a proxy server to hold both client and server
  408.     keys for its internal clients, allowing SSL sessions to be carried
  409.     out twice (once between the client and proxy server, and again
  410.     between the proxy server and the secure server) and thus allow the
  411.     proxy server to listen-in on the conversation without having the
  412.     private keys of external servers. Clearly this isn't reasonable for
  413.     the general internet, but it is a viable solution for corporate
  414.     requirements inside a firewall.
  415.  
  416.     The current 2.1 beta of the Netscape Proxy Server supports this
  417.     feature. It can be used as above, or simply to create a secure
  418.     tunnel between sites across an unsecure network. This is really
  419.     multiple sessions of SSL, and not really an end-to-end secure
  420.     connection. This means that 2.1 beta has full SSL support (as
  421.     opposed to just SSL tunneling) and can therefore do client
  422.     authentication and serve documents like a secure server, or request
  423.     documents like an SSL enabled client. SSL doesn't allow recursive
  424.     encryption, so when used in this fashion, you lose the transparency
  425.     of the proxy and get multiple segments of secure connections,
  426.     rather than a single end-to-end connection.
  427.  
  428.  
  429. 3.3) Since SSL is supposed to withstand replay attacks, does this
  430. preclude proxy servers from caching the data?
  431.  
  432.     A proxy server must just pass SSL directly through without caching.
  433.  
  434.  
  435. 3.4) What ports does SSL use?
  436.  
  437.     Theoretically SSL can transparently secure any TCP based protocol
  438.     running on any port if both sides know the other side is using SSL.
  439.     However, in practice, seperate port numbers have been reserved for
  440.     each protocol commonly secured by SSL -- this allows packet
  441.     filtering firewalls to allow such secure traffic through.
  442.  
  443.     As of September 1996, SSL has the following port numbers reserved
  444.     with the Internet Assigned Numbers Authority (IANA), a part of the
  445.     Internet Engineering Task Force (IETF):
  446.  
  447.         Keyword     Decimal    Description
  448.         -------     -------    -----------
  449.         https       443/tcp    https
  450.         ssmtp       465/tcp    ssmtp
  451.         snews       563/tcp    snews
  452.         ssl-ldap    636/tcp    ssl-ldap
  453.         spop3       995/tcp    SSL based POP3
  454.  
  455.  
  456. 3.5) Do you have any information on sftp?
  457.  
  458.     The name sftp conflicts with a prococol called simple file transfer
  459.     protocol. As far as we can tell ftps has not been applied for, nor
  460.     does it appear in the SSL 3.0 specification.
  461.  
  462.  
  463. ------------------------------
  464.  
  465. 4) SSL PROTOCOL QUESTIONS
  466.  
  467. This section contains more detailed information on the SSL protocol.
  468.  
  469.  
  470. 4.1) Does SSL protect users from replay attack by eavesdroppers or
  471. message interceptors?
  472.  
  473.     Yes. Both the client and the server provide part of the random data
  474.     used to generate the keys for each connection. (The client and
  475.     server random portions from the connection that initiates a session
  476.     are also used to generate the master secret associated with that
  477.     session.) Additionally, each record is protected with a MAC that
  478.     contains a sequence number for the message.
  479.  
  480.  
  481. 4.2) The record protocol sits underneath the other protocols, right?
  482. It appears that information can be sent only in blocks. Does
  483. there have to be a one-to-one mapping between write() calls on the
  484. client/server and SSL records? Is there some other blocking
  485. taking place when user data is being sent?
  486.  
  487.     The record layer takes a data stream from the higher layers and
  488.     fragments it into records. If the write is longer than 2^14 bytes
  489.     (with headers), the record layer will generate multiple records.
  490.     Multiple writes can be condensed into a single record.
  491.  
  492.  
  493. 4.3) It appears that there is no way in the SSL protocol to
  494. resynchronize blocks if they get out of synch. Is that true?
  495.  
  496.     Yes, SSL relies on an underlying reliable protocol to assure that
  497.     bytes are not lost or inserted. There was some discussion of
  498.     reengineering the future TLS protocol to work over datagram
  499.     protocols such as UDP, however, most people at a recent TLS meeting
  500.     felt that this was inappropriate layering.
  501.  
  502.  
  503. 4.4) Why does SSL3 have Diffie-Hellman encryption at all? What good is
  504. it? Exchanging random numbers that are encrypted with the server's (or
  505. client's) public key would seem to be an adequate way of getting the
  506. secret bits across. Why have DH as well?
  507.  
  508.     Anonymous DH key exchange doesn't require the use of certificates.
  509.     Ephemeral DH allows you to use signing-only certificates, and it
  510.     protects the session from future compromise of the server's private
  511.     key. Another advantage of DH is that the patent expires next year.
  512.  
  513.  
  514. 4.5) What is TLS? What happened at these meetings? Has anything come out
  515. of them yet?
  516.  
  517.     TLS is the Transport Layer Security working group of the IETF
  518.     (Internet Engineering Task Force). It is the working group
  519.     responsible for moving transport layer protocols such as SSL
  520.     through the standards tracks.
  521.  
  522.     IETF working groups do most of their activities through mailing
  523.     lists and thrice-annual IETF meetings. The first official TLS
  524.     working group meeting was June 1996 in Montreal. (Before then it was
  525.     an unofficial BOF "birds of a feather" group.)
  526.  
  527.     The discussion list for IETF-TLS is at IETF-TLS@W3.ORG. You
  528.     subscribe and unsubscribe by sending to IETF-TLS-REQUEST@W3.ORG with
  529.     subscribe or unsubscribe in the SUBJECT of the message. Archives of
  530.     the list are at
  531.         <http://lists.w3.org/Archives/Public/ietf-tls>
  532.  
  533.     There was a day-long pre-Montreal meeting last May in Palo Alto, the
  534.     minutes of which are at
  535.         <http://lists.w3.org/Archives/Public/ietf-tls/msg00185.html>
  536.  
  537.     These minutes give a fairly complete list of technical issues and
  538.     possible solutions.
  539.  
  540.     The minutes for the official TLS working group meeting in Montreal
  541.     are in two messages at
  542.         <http://lists.w3.org/Archives/Public/ietf-tls/msg00217.html>
  543.         <http://lists.w3.org/Archives/Public/ietf-tls/msg00212.html>
  544.  
  545.  
  546. 4.6) When did MD5 get "disavowed"?
  547.  
  548.     It hasn't been truly "disavowed", but weaknesses have been
  549.     discovered such that some people believe that an alternative should
  550.     be found. These weaknesses were found by Dr. Hans Dobbetin
  551.     <dobbertin@skom.rhein.de> of the German Information Security Agency
  552.     in a paper called "Cryptanalysis of MD5 Compress" dated May 2, 1996.
  553.     A postscript version of the paper is at
  554.         <http://www.cs.ucsd.edu/users/bsy/dobbertin.ps>.
  555.  
  556.     SSL uses MD5 in combination with SHA for all negotiation. It also
  557.     uses MD5 alone in most negotiated cipher suites. However, in these
  558.     cases it is used with the HMAC construction, which strengthens it
  559.     such that there are no known problems with this construction.
  560.  
  561.     It has been proposed with TLS to start phasing out all use of MD5.
  562.  
  563.  
  564. 4.7) Can anyone explain to me the purpose of pad1 and pad2, and why
  565. the numbers 0x36 and 0x5c were chosen?
  566.  
  567.     The purpose of the construction of a "keyed-MAC" in the form of
  568.     HASH(K,pad2,HASH(K,pad1,text)) was proposed by the cryptographer
  569.     Hugo Krawczyk of IBM as much more secure alternative to traditional
  570.     MACs. In a paper last year he demonstrated a proof that even if the
  571.     hash function was relatively weak (as MD5 has since proven itself to
  572.     be) the addition of the secret key in the function makes it
  573.     significantly more secure. The particular method proposed by
  574.     Krawczyk is now known as an HMAC.
  575.  
  576.     The particular construction that Netscape uses for SSL is based on
  577.     the original internet-draft of last November, and since that time it
  578.     has been revised such that it XOR the pads rather than appending
  579.     them -- a nice consequence of which is that pads are of the same
  580.     size whether you use MD5 or SHA and it also allows for long keys and
  581.     has some security advantages. Our understanding is that this version
  582.     of HMAC has now been approved and will soon be assigned an RFC. The
  583.     current draft is at
  584.         <ftp://ftp.internic.net/internet-drafts/draft-ietf-ipsec-hmac-md5-00.txt>
  585.  
  586.     In the proposals we've seen for the IETF-TLS working group the
  587.     scheme SSL 3.0 uses will be replaced by the official RFC HMAC
  588.     technique.
  589.  
  590.     The particular pad bytes used are the ones defined in Krawczyk's
  591.     original HMAC paper.  We believe that they are relatively arbitrary.
  592.     The salient property is that half the bits differ: the hamming
  593.     distance between 0x36 and 0x5c is 4 out of a possible 8. We don't
  594.     know if the fact that each of the pads also has a hamming weight of
  595.     4 is significant or not.
  596.  
  597.  
  598. 4.8) Are you aware of any SSL toolkits supporting client authentication?
  599.  
  600.     SSLeay is able to do SSL 2.0 client authentication, however, we
  601.     don't know of any browsers that support SSL 2.0 client
  602.     authentication.
  603.  
  604.     SSLRef 3.0 and SSL Plus are two toolkits that now support SSL 3.0
  605.     client authentication.
  606.  
  607. 4.9) What SSL implementations should I test against?
  608.  
  609.     There is no formal conformance testing, but Netscape does currently
  610.     offer an interoperability test server that has been used to test
  611.     conformance with many other implementations of SSL 3.0. This server
  612.     is located at
  613.         <https://www3.netscape.com/>
  614.  
  615.     VeriSign also has an "Authentic Site" program listing various sites
  616.     that use SSL authentication. Also included is a test page that
  617.     requires that you present a valid VeriSign client certificate.
  618.     More information on the Authentic Site program is at
  619.         <http://www.verisign.com/authentic/>
  620.  
  621.     Some other sites that client authentication can be tested against
  622.     are
  623.         <https://www.bassandco.com/secure/>
  624.         <https://in-103.infospace.com/>
  625.  
  626.  
  627. ------------------------------
  628.  
  629. 5) CERTIFICATE RELATED QUESTIONS
  630.  
  631. This section contains information on certificates used by the SSL
  632. protocol.
  633.  
  634.  
  635. 5.1) How does Netscape handle client certificates in Navigator 3.0?
  636.  
  637.     Netscape describes their framework for web-based key generation and
  638.     certificate issuing on their web pages at
  639.         <http://home.netscape.com/eng/security/certs.html>
  640.  
  641.  
  642. 5.2) What is the format of the SSL certificates used by Netscape
  643. Navigator?
  644.  
  645.     Netscape has documented their SSL 2.0 certificate format at
  646.         <http://home.netscape.com/newsref/std/ssl_2.0_certificate.html>.
  647.  
  648.  
  649. 5.3) I am distributing load on several different web servers and I
  650. don't want to have to have a different certificate for each. How can
  651. I do this?
  652.  
  653.     When establishing a secure connection in SSL, many SSL clients
  654.     applications, including Netscape's Navigator, check the common name
  655.     of the certificate against the name of the site in the URL. If it
  656.     doesn't match, the client application warns the user. Thus the
  657.     preferred format of a common name of an SSL server
  658.     is a simple DNS name like "www.consensus.com".
  659.  
  660.     To support multiple servers you can use a round-robin DNS to send
  661.     each request for "www.consensus.com" to different IP addresses. As
  662.     Netscape Navigator does not check to see that the IP address matches
  663.     the original domain name (reverse-IP), this will work for each
  664.     round-robin server.
  665.  
  666.     Netscape's Navigator will also allow for some simple pattern
  667.     matching. Netscape has documented a number of different possiblities
  668.     in their SSL 2.0 Certificate Format web pages at
  669.         <http://home.netscape.com/newsref/std/ssl_2.0_certificate.html>
  670.  
  671.     Note, however, none of these regular expression/pattern matching
  672.     choices are accepted by VeriSign. In the past they have accepted
  673.     server certificate common names with regular expressions, but these
  674.     are no longer allowed.
  675.  
  676.     Other CAs may have different policies regarding use of regular
  677.     expressions in common names.
  678.  
  679.  
  680. 5.4) When comparing a URL against the common name of the certificate,
  681. why don't you do a reverse-DNS lookup?
  682.  
  683.     DNS is not a secure name service, and trying to treat it like one
  684.     could be a security hole. The purpose of checking the common name
  685.     against the URL is to make sure that at least the user's expectation
  686.     of what site the user is visiting is not compromised.
  687.  
  688.  
  689. 5.5) Does Netscape require hierarchical naming (that is, distinguished
  690. names) for its certificates?
  691.  
  692.     Yes, Netscape requires distinguished names.
  693.  
  694.  
  695. 5.6) Where can I get more information on certificates?
  696.  
  697.     VeriSign, the default CA (Certificate Authority) used by Netscape
  698.     and most other WWW browsers has a FAQ at
  699.         <http://digitalid.verisign.com/id_faqs.htm>
  700.  
  701.     There is also a good resource of links to a variety of certificate
  702.     technical and policy issue sites available at
  703.         <http://www.zoo.net/~marcnarc/PKI/References.htm>.
  704.  
  705.  
  706. 5.7) What other CAs are there besides VeriSign?
  707.  
  708.     We know of these CAs:
  709.  
  710.         EuroSign - The European Certification Authority
  711.             <http://eurosign.com/>
  712.         COST Computer Security Technologies <http://www.cost.se/>
  713.         Thawte Consulting <http://www.thawte.com/certs/>
  714.  
  715.     In addition, we have heard that Entrust (Northern Telecom/NorTel),
  716.     GE, and the US Postal Service may be announcing CA services, but
  717.     we don't have web pages for them.
  718.  
  719.  
  720. 5.8) How do I set up my own Certificate Authority?
  721.  
  722.     There is some support for creating your own CA in SSLeay; there is
  723.     information on how to integrate it with Netscape available at
  724.         <http://wheat.webvision.com/~dhm/wvca-howto.html>
  725.  
  726.  
  727. 5.9) What criteria should I use in deciding between one CA and another?
  728.  
  729.     The purpose of a Certificate Authority is to bind a public key to
  730.     the common name of the certificate, and thus assure third parties
  731.     that some measure of care was taken to ensure that this binding
  732.     is valid. A measure of a Certificate Authority is their "Policy
  733.     Statement" which states what measures they take for each class of
  734.     certificate they offer to ensure that this binding of identity
  735.     with public key is valid.
  736.  
  737.  
  738. ------------------------------
  739.  
  740. 6) SSL IMPLEMENTATION ISSUES
  741.  
  742. This section offers specific implementation details of different SSL
  743. clients and servers that are not specific to the protocol.
  744.  
  745.  
  746. ------------------------------
  747.  
  748. 6.1) NETSCAPE QUESTIONS
  749.  
  750. Sub-section 6.1 is maintained by Eric Greenberg <erig@netscape.com> --
  751. any comments or questions should be sent to him.
  752.  
  753.  
  754. 6.1.1) Will SSL 3.0 functionality be available to Java applets via the
  755. Netscape plug-in interfaces available as part of LiveConnect in Netscape
  756. 3.0?
  757.  
  758.     It will not be in 3.0, but Netscape is looking at it for a future
  759.     release.
  760.  
  761.  
  762. 6.1.2) Does the Netscape browser cache on disk data that has been sent
  763. over by https?
  764.  
  765.     Navigator 3.0 has an option to allow caching of data fetched
  766.     over SSL connections. The default setting is to not cache data.
  767.  
  768.     In Navigator 2.0, documents fetched using SSL were cached in the
  769.     same way as non-SSL documents. You could use the "Pragma: no-cache"
  770.     HTTP header to disable caching for a particular page. In Navigator
  771.     1.0 documents fetched with SSL were not cached.
  772.  
  773.  
  774. 6.1.3) Is the cached data encrypted using some key?
  775.  
  776.     No, Netscape has never encrypted documents that are stored in the
  777.     cache.
  778.  
  779.  
  780. 6.1.4) The Help Information for Netscape's Enterprise 2.0 server
  781. indicates that the server supports 6 ciphers for SSL 2.0 and 6
  782. ciphers for SSL 3.0. However, the Encryption|Security Preferences
  783. menu in the server Manager displays only 2 choices for SSL 2.0 and 3
  784. choices for SSL 3.0. How can I select the other choices?
  785.  
  786.     You have the export version of the server which supports only the
  787.     ciphers displayed. If you want to use the others, you must
  788.     use the US-only (non-export) version.
  789.  
  790.  
  791. 6.1.5) What mechanisms will be available for "aging" passphrases used
  792. to unlock certificate databases. Will these be configurable?
  793.  
  794.     At this point no mechanisms exist in Netcape's Navigator, and
  795.     therefore aging is not configurable. Presumably the future of
  796.     personal certificate databases requires smartcards, but until that
  797.     time aging is an application specific function.
  798.  
  799.  
  800. 6.1.6) Is Netscape adopting any open standards for APIs in these
  801. areas? Is Netscape working with any standards bodies or other groups on
  802. such APIs? Is there any word on the emerging security architectures,
  803. such as Microsoft's Crypto-API, RSA's LOCT, or GSS-API?
  804.  
  805.     Netscape has been participating in a number of working groups
  806.     interested in standard security APIs. At this point Netscape has not
  807.     adopted a single security API approach or committed to a specific
  808.     proposed standard security API. Eventually Netscape may use all or
  809.     some subset (or perhaps none) of these specific architectures.
  810.     Netscape welcomes customer comments or suggestions on this topic.
  811.  
  812.  
  813. 6.1.7) Does Netscape use "regular" RSA libraries (such as BSAFE) or
  814. "custom" RSA code?  More specifically, is Netscape using BSAFE 3.0?
  815.  
  816.     BSAFE 3.0 is currently being integrated in all of Netscape's
  817.     products. Netscape has modified portions of the BSAFE API to improve
  818.     efficiency in the heavy load environment of their products, but
  819.     Netscape continues to integrate the upgraded code from RSA as
  820.     soon as practical.
  821.  
  822.  
  823. 6.1.8) Will Netscape client authentication be interoperable with
  824. other SSL implementations?
  825.  
  826.     We can't speak to which specific implementations have been testing
  827.     against our server. Netscape does currently offer an
  828.     interoperability test server that has been used to test conformance
  829.     with many other implementations of SSL 3.0. This server is located
  830.     at
  831.         <https://www3.netscape.com/>
  832.  
  833.  
  834. 6.1.9) How might Netscape offer more "cryptographic flexibility,"
  835. such as selection of algorithms and authentication without
  836. encryption?
  837.  
  838.     SSL 3.0 allows for authentication-only (and even encrypt only)
  839.     methods. Algorithm selection is negotiated by the client and the
  840.     server. The Navigators "Security Preferences:General" allow the
  841.     user to define per algorithm overrides for each SSL2 or SSL3
  842.     session.
  843.  
  844.  
  845. 6.1.10) Isn't encrypt-only SSL open to "man-in-the-middle" attacks?
  846.  
  847.     Yes, even though SSL 3.0 supports encrypt-only (through the
  848.     SSL_DH_anon_WITH_DES_CBC_SHA ciphersuite), there are many possible
  849.     attacks against it, and we recommend against using it. SSL *MUST*
  850.     have strong authentication at the record layer or it becomes open to
  851.     some attacks. It doesn't matter if the application has
  852.     authentication at the application layer.
  853.  
  854.  
  855. 6.1.11) Are the 512-bit RSA keys used by exportable applications
  856. generated on the fly by the server? How often are they changed? (The
  857. spec recommends every 500 transactions.) Does the Netscape server
  858. take care of changing them automatically?
  859.  
  860.     In the Netscape 2.0 servers, if the server's public key is longer
  861.     than 512 bits, it generates a temporary 512-bit export key at
  862.     start-up time. This key is regenerated only when the server is
  863.     restarted. Netscape does it this way because generating a key can
  864.     take several seconds.
  865.  
  866.     The 500 transaction limit is only a guideline and largely depends on
  867.     how valuable the information being encrypted is.  For information
  868.     for which you worry about how often the key is regenerated you
  869.     should probably be using something stronger than a 40-bit symmetric
  870.     key anyway.
  871.  
  872.  
  873. 6.1.12) What are the plans for mechanisms for adding root keys and
  874. accepting root certificates for future use?
  875.  
  876.     Root keys for CA (Certificate Authority) certificates are loaded
  877.     through an automatic process using an SSL connection to a previously
  878.     unknown CA. Also new releases of the Navigator have added additional
  879.     CA root keys.
  880.  
  881.     Presumably in the future loading a root cert object through a local
  882.     process, such as from disk, LDAP, or other out-of-band mechanism,
  883.     will be a supported addition or in place of the present method of
  884.     connecting to a trusted server and downloading the certificate
  885.     chain.
  886.  
  887.  
  888. 6.1.13) With regard to the certificate extensions documentation at
  889. <http://home.netscape.com/eng/security/certs.html> what X.509v3
  890. certificate extensions will the release 3.0 Navigator use?
  891.  
  892.     The following extensions are supported in some way by Navigator 3.0:
  893.  
  894.         netscape-revocation-url
  895.         netscape-ca-revocation-url
  896.  
  897.     A button will appear on the Document Info page for server's whose
  898.     certificate (or CA's cert) contains these extension. When the button
  899.     is pressed the CA will be queried via HTTP GET, and will display a
  900.     dialog to indicate to the user if the cert is good or not.
  901.  
  902.         netscape-cert-renewal-url
  903.  
  904.     If a user attempts to use a client certificate that has expired, a
  905.     dialog will be displayed warning them that their cert has expired,
  906.     and if this extension exists, a button will be on the dialog that
  907.     will bring up a window displaying the URL.
  908.  
  909.         netscape-ca-policy-url
  910.  
  911.     A button will be displayed on the Document Info for server certs
  912.     that contain this extension. When press a window displaying the
  913.     policy URL will be opened.
  914.  
  915.         netscape-ssl-server-name
  916.  
  917.     This extension is used in place of the common name when it exists to
  918.     verify the domain name of the site.
  919.  
  920.         netscape-comment
  921.  
  922.     A Netscape-specific place for comments.
  923.  
  924.  
  925. 6.1.14) Does the Navigator actually use the revocation URL
  926. or CA revocation URL?
  927.  
  928.     There is no automatic revocation check. As mentioned above, a button
  929.     allowing manual checks is displayed on the Document Info page. This
  930.     feature was added because some people needed revocation, but we did
  931.     not have time to support full CRLs. In a future release we will
  932.     support CRLs, and possibly other forms of revocation technology.
  933.  
  934.  
  935. ------------------------------
  936.  
  937. 6.2) MICROSOFT QUESTIONS
  938.  
  939. The text for sub-section 6.2 was grabbed from various documents
  940. found at
  941.         <http://www.microsoft.com/intdev/security/>
  942.  
  943.  
  944. 6.2.1) Which of Microsoft's products will support SSL?
  945.  
  946.     Internet Explorer 3.0 provides support for SSL versions 2.0 and 3.0
  947.     and for Private Communication Technology (PCT) version 1.0. It will
  948.     include support for the Transport Layer Security Protocol (TLS),
  949.     which is being considered by IETF.
  950.  
  951.  
  952. 6.2.2) Which Microsoft products support Client Authentication?
  953.  
  954.     Client authentication as implemented by Microsoft Internet Explorer
  955.     3.0 is interoperable with popular Web servers that support secure
  956.     sockets layer (SSL) 3.0 client authentication.
  957.  
  958.     Microsoft is working to extend the complete set of technology
  959.     components necessary for webmasters to incorporate client
  960.     authentication in their Web applications. This includes extending
  961.     Windows NT(r) Server operating system support for challenge and
  962.     response and the SSL 2.0 protocol used by Microsoft Internet
  963.     Information Server to also include support for client authentication
  964.     through the SSL 3.0 protocol.
  965.  
  966.  
  967. ------------------------------
  968.  
  969. 7) SSL TOOKIT QUESTIONS
  970.  
  971. This section offers specific details of different SSL development
  972. toolkits that are not specific to the protocol.
  973.  
  974.  
  975. ------------------------------
  976.  
  977. 7.1) SSLREF QUESTIONS
  978.  
  979. This subsction contains information on SSLRef 3.0 which was
  980. codeveloped by Netscape Communications Corp. of Mountain View,
  981. California <http://home.netscape.com/> and Consensus Development
  982. Corporation of Berkeley, California <http://www.consensus.com/>.
  983.  
  984.  
  985. 7.1.1) What is SSLRef 3.0?
  986.  
  987.     SSLRef 3.0 is a reference implementation of the SSL (Secure Sockets
  988.     Layer) protocol. SSLRef 3.0 is intended to aid and accelerate
  989.     developers' efforts to provide security within TCP/IP applications.
  990.     It can also be used to qualify other implementations of version 3.0
  991.     of the SSL protocol.
  992.  
  993.     SSLRef 3.0 consists of a software library, distributed as ANSI C
  994.     source-code, that can be compiled on Windows 95/NT and Solaris
  995.     platforms, and then linked into TCP/IP application programs. SSLREF
  996.     3.0 also was designed to be easily ported to a wide variety of
  997.     other platforms and operating systems.
  998.  
  999.     More information on SSLRef can be found at
  1000.         <http://home.netscape.com/newsref/std/sslref.html>
  1001.  
  1002.     If you are a US or Canadian citizen you can download SSLRef 3.0 at
  1003.         <http://wwwus.netscape.com/eng/US-Current/>
  1004.  
  1005.  
  1006. 7.1.2) How can I license SSLRef 3.0? What does it cost? With what restrictions?
  1007.  
  1008.     The SSLRef 3.0 distribution includes a license for non-commercial
  1009.     use. For commercial licensing, send mail to <sslref@netscape.com>.
  1010.  
  1011.     The SSLRef 3.0 commercial license is Part Number 70-01128-00 and the
  1012.     price is $30,000. The license agreement is a flat one-time fee, not
  1013.     a recurring royalty.
  1014.  
  1015.     SSLRef 3.0 may not be exported. However, the encryption options in
  1016.     SSLRef 3.0 can be limited to make exportable products.
  1017.  
  1018.     SSLRef 3.0 does not include an RSA/BSAFE licencse for required
  1019.     cryptographic functions. Most users would use BSAFE or RSAREF.
  1020.  
  1021.         For BSAFE information contact RSA at
  1022.             <http://www.rsa.com/>
  1023.  
  1024.         For RSAREF information contact Consensus Development at
  1025.             <http://www.consensus.com/rsaref/>
  1026.  
  1027.  
  1028. ------------------------------
  1029.  
  1030. 7.2) SSL PLUS QUESTIONS
  1031.  
  1032. This sub-section contains information specific to the SSL Plus: SSL
  1033. 3.0 Integration Suite(tm) software toolkit developed by Consensus
  1034. Development Corporation of Berkeley, California
  1035. <http://www.consensus.com/>.
  1036.  
  1037.  
  1038. 7.2.1) What is the relationship between SSLRef and SSL Plus?
  1039.  
  1040.     SSLRef 3.0 was written by Netscape Development Corporation and
  1041.     Consensus Development Corporation. SSL Plus is a derivative of
  1042.     SSLRef 3.0, is fully supported and offers unique value-added
  1043.     features.
  1044.  
  1045.     SSL Plus 1.0 includes support, updates, upgrade to TLS when spec is
  1046.     completed, a VeriSign certificate request tool, a "signer" file
  1047.     format for storing keys and certificates, is qualified for
  1048.     additional platforms, and system integration services are available.
  1049.  
  1050.     SSLRef 3.0 offers 5 ciphersuites:
  1051.  
  1052.       * Unprotected
  1053.         (SSL_NULL_WITH_NULL_NULL)
  1054.  
  1055.       * RSA authenticated, unencrypted, with MD5
  1056.         (SSL_RSA_WITH_NULL_MD5)
  1057.  
  1058.       * RSA authenticated with exportable RC4 encryption, and MD5
  1059.         (SSL_RSA_EXPORT_WITH_RC4_40_MD5)
  1060.  
  1061.       * RSA authenticated with DES encryption, and SHA
  1062.         (SSL_RSA_WITH_DES_CBC_SHA)
  1063.  
  1064.       * Diffie-Hellman anonymous key exchange with DES encryption,
  1065.         and SHA
  1066.         (SSL_DH_anon_WITH_DES_CBC_SHA)
  1067.  
  1068.     SSL Plus 1.0 adds support for an additional 6 ciphersuites (with
  1069.     more planned for the future):
  1070.  
  1071.       * RSA authenticated, unencrypted, with SHA
  1072.         (SSL_RSA_WITH_NULL_SHA)
  1073.  
  1074.       * RSA authenticated with non-exportable RC4 encryption, with
  1075.         MD5 or SHA
  1076.         (SSL_SSL_RSA_WITH_RC4_128_MD5 & SSL_RSA_WITH_RC4_128_SHA)
  1077.  
  1078.       * RSA authenticated with Triple-DES encryption, with SHA
  1079.         (SSL_RSA_WITH_3DES_EDE_CBC_SHA)
  1080.  
  1081.       * Diffie-Hellman anonymous key exchange with RC4 encryption,
  1082.         with MD5
  1083.         (SSL_DH_anon_WITH_RC4_128_MD5 &
  1084.          SSL_DH_anon_WITH_3DES_EDE_CBC_SHA)
  1085.  
  1086.       * Diffie-Hellman anonymous key exchange with Triple-DES
  1087.         encryption and SHA
  1088.         (SSL_DH_anon_WITH_RC4_128_MD5 &
  1089.          SSL_DH_anon_WITH_3DES_EDE_CBC_SHA)
  1090.  
  1091.     For more information on SSL Plus features see
  1092.         <http://www.consensus.com/SSLPlus/sslplus_stats.html>
  1093.  
  1094.  
  1095. 7.2.2) What is the relationship with SSL Plus and SSLRef 2.0?
  1096.  
  1097.     There is no relationship between SSLRef 2.0 and SSL Plus -- SSL Plus
  1098.     is based on the SSLRef 3.0 which was not based on SSLRef 2.0.
  1099.  
  1100.  
  1101. 7.2.3) How can I license SSL Plus? What does it cost? With what
  1102. restrictions?
  1103.  
  1104.     A non-commercial license of SSL Plus is not available, only
  1105.     commercial licenses. However, evaluation versions are available upon
  1106.     signing a non-disclosure and beta test agreement.
  1107.  
  1108.     The price for SSL Plus is $40,000, and includes a one-year standard
  1109.     support contract. Premium support is available for an additional
  1110.     fee.  The license agreement is a flat one-time fee, not a recurring
  1111.     royalty.
  1112.  
  1113.     SSL Plus toolkit may not be exported. However, products built with
  1114.     SSL Plus may limit the encryption options to exportable algorithms
  1115.     and thus be able to be exported.
  1116.  
  1117.     SSL Plus does not include an RSA/BSAFE license for cryptographic
  1118.     functions required.  Most users would use BSAFE or RSAREF:
  1119.  
  1120.         For BSAFE information contact RSA at
  1121.             <http://www.rsa.com/>
  1122.  
  1123.         For RSAREF information contact Consensus Development at
  1124.             <http://www.consensus.com/rsaref/>
  1125.  
  1126.  
  1127.     Copies of the evaluation NDA and beta agreement, the standard
  1128.     product license agreement, and standard support contract for
  1129.     SSL Plus are located at
  1130.         <http://www.consensus.com/sslplus/sslplus_contracts.html>
  1131.  
  1132.  
  1133. 7.2.4) Is there any relationship between SSL Plus and Winsock 1.1 or
  1134. Winsock 2.0? Which Winsock would you recommend using to test our
  1135. SSL? Does it matter if Winsock 1.1 or 2.0 architecture is used?
  1136.  
  1137.     No -- SSL Plus is designed to be transport independent and work with
  1138.     both socket and stream styles of I/O. SSL Plus includes some
  1139.     examples of using WinSock 1.1 in the Win32 builds of our sample
  1140.     code. However, we recommend that you write your own callback code if
  1141.     you want better handling of your I/O than what our sample routines
  1142.     provide.
  1143.  
  1144.  
  1145. 7.2.5) How does the data flow within the application, WinSock, SSL,
  1146. TCP/IP stack layers?
  1147.  
  1148.     The short answer is that you insert SSL Plus between your I/O and
  1149.     your application code.
  1150.  
  1151.     Basically, you call SSL Plus instead of your read and write. SSL
  1152.     Plus does its stuff and calls your callback code to do the I/O. Data
  1153.     comes through your I/O routines, through SSL Plus, and then finally
  1154.     to your application.  SSL Plus only manages the data flowing through
  1155.     the connection; it does not handle setting up and tearing down the
  1156.     underlying network connection; your application should open the
  1157.     network connection, then hand it off to SSL Plus for SSL handshaking
  1158.     and data transfer. (This step is not shown in the diagram).
  1159.  
  1160.     Normal:
  1161.  
  1162.          -------------
  1163.         | Application |
  1164.          -------------
  1165.              ^
  1166.              | I/O Calls
  1167.              v
  1168.          -------------
  1169.         | WinSock     |
  1170.          -------------
  1171.              ^
  1172.              | TCP Calls
  1173.              v
  1174.          -------------
  1175.         | Internet    |
  1176.          -------------
  1177.  
  1178.  
  1179.     SSL Plus:
  1180.  
  1181.          -------------
  1182.         | Application |
  1183.          -------------
  1184.              ^
  1185.              | SSL I/O Calls
  1186.              v
  1187.          -------------     I/O Callbacks   --------------------
  1188.         | SSL Plus    | <---------------->| Your Callback Code |
  1189.          -------------                     --------------------
  1190.                                                     ^
  1191.                                                     | I/O Calls
  1192.                                                     v
  1193.                                                -------------
  1194.                                               | WinSock     |
  1195.                                                -------------
  1196.                                                     ^
  1197.                                                     | TCP Calls
  1198.                                                     v
  1199.                                                -------------
  1200.                                               | Internet    |
  1201.                                                -------------
  1202.  
  1203.  
  1204. 7.2.6) A part of my impression is that with the WinSock 2.0
  1205. architecture, the application need only chose an appropriate SSL
  1206. enabled service provider. Does SSL Plus support this?
  1207.  
  1208.     As you noted, with WinSock 2.0 there is some disussion of
  1209.     functionality that allows you to create a module that you could add
  1210.     to WinSock 2.0.
  1211.  
  1212.     At this time we do not believe that this functionality is actually
  1213.     shipping (as Microsoft was supporting PCT but is now supporting
  1214.     SSL 3), but we do know that it is part of their plans. See the
  1215.     MS-ISF (Microsoft Internet Security Framework) description at
  1216.         <http://www.microsoft.com/intdev/security/>
  1217.  
  1218.     We can't speak to when or if Microsoft will add it to their system
  1219.     software, or if another third-party offers such a module.
  1220.  
  1221.     Meanwhile, there has been some discussion on what changes might be
  1222.     required under WinSock 2.0 to do SSL located at
  1223.         <http://home.netscape.com/newsref/std/ssl_integration.html>
  1224.  
  1225.     In the future (post version 1.1, see our features page) we may offer
  1226.     either more robust sample callback code for WinSock 1.1 and/or 2, or
  1227.     we may actually write our own WinSock 1.1 substitute or 2.0 module
  1228.     that you call as you would call WinSock and avoid the callbacks
  1229.     all together. Neither would be available before the end of the year.
  1230.  
  1231.  
  1232. 7.2.7) Does SSL Plus support yielding?
  1233.  
  1234.     SSL Plus 1.0 includes support for processor yielding during
  1235.     cryptographic operations. Because developers provide their own I/O
  1236.     routines, they can do yielding during I/O. Our examples do not
  1237.     demonstrate I/O yielding.
  1238.  
  1239.  
  1240. 7.2.8) I don't understand the nomenclatures of constants such as
  1241. "SSL_RSA_EXPORT_WITH_RC4_40_MD5" -- where are they defined?
  1242.  
  1243.     They are found in include/cryptype.h, but are actually defined
  1244.     by the SSL 3.0 spec.
  1245.  
  1246.  
  1247. 7.2.9) Where are these cipher suites defined?
  1248.  
  1249.     In the file ciphers.c there is an array of values and implementation
  1250.     pointers for supported cipher suites.
  1251.  
  1252.  
  1253. 7.2.10) Can I change the order of the values in ciphers.c?
  1254.  
  1255.     Yes. The order affects the preference; in general, the highest one
  1256.     on the client's list which the server supports will be selected.
  1257.  
  1258.  
  1259. 7.2.11) Can this be done programmatically in the API?
  1260.  
  1261.     No, it is configured at compile time. We will be adding runtime
  1262.     support in the near future because it will be needed for future test
  1263.     frameworks.
  1264.  
  1265.  
  1266. 7.2.12) Does SSL Plus support compression?
  1267.  
  1268.     Not at this time. If there is a specific customer requirement, or if
  1269.     a compression cipher suite is defined we expect to support it in the
  1270.     future, but otherwise we have no plans here.
  1271.  
  1272.  
  1273. 7.2.13) In sslrec.c function SSLWriteRecord(), the data buffer is
  1274. copied, encrypted, then enqueued on the SSL write queue. The function
  1275. then returns. What thread services the write queue? How is the
  1276. thread created?
  1277.  
  1278.     The write queue is serviced by the public function called
  1279.     SSLServiceWriteQueue(). It is called in a number of places in
  1280.     ssltrspt.c, including with every call to SSLWrite(). Data to be
  1281.     written is sent to the I/O layer as you exit out of the write
  1282.     function (for example, right near the bottom of SSLWrite).
  1283.  
  1284.     If SSLWrite() returns SSLWouldBlockError, then make a call to
  1285.     SSLServiceWriteQueue() to service the write queue. (You could
  1286.     instead make a call to SSLWrite() with more data to be written, but
  1287.     this is unlikely.)
  1288.  
  1289.     The write queue is not serviced by a separate execution thread. The
  1290.     write queue mechanism was designed to support non-blocking I/O
  1291.     without undue overhead.
  1292.  
  1293.  
  1294. ------------------------------
  1295.  
  1296. 7.3) SSLEAY QUESTIONS
  1297.  
  1298. This sub-section contains information specific to the SSLeay
  1299. toolkit developed by Eric Young <eay@mincom.com>
  1300.  
  1301.  
  1302. 7.3.1) Where is the SSLeay FAQ?
  1303.  
  1304.     There is a very complete SSLeay FAQ at:
  1305.         <http://www.psy.uq.oz.au/~ftp/Crypto/>
  1306.  
  1307. ------------------------------------------------------------------------
  1308. ...Christopher Allen                  Consensus Development Corporation..
  1309. ...<ChristopherA@consensus.com>                 1563 Solano Avenue #355..
  1310. ...                                             Berkeley, CA 94707-2116..
  1311. ...Home of "SSL Plus:                      o510/559-1500  f510/559-1505..
  1312. ... Security Integration Suite(tm)" <http://www.consensus.com/SSLPlus/>..
  1313.  
  1314.  
  1315.