tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

index.rst (14382B)


      1 .. _mozilla_projects_nss_faq:
      2 
      3 NSS FAQ
      4 =======
      5 
      6 .. _general_questions:
      7 
      8 `General Questions <#general_questions>`__
      9 ------------------------------------------
     10 
     11 .. _what_is_network_security_services_.28nss.29:
     12 
     13 `What is Network Security Services (NSS) <#what_is_network_security_services_.28nss.29>`__
     14 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     15 
     16 .. container::
     17 
     18   NSS is set of libraries, APIs, utilities, and documentation designed to support cross-platform
     19   development of security-enabled client and server applications. It provides a complete
     20   open-source implementation of the crypto libraries used by Mozilla and other companies in the
     21   Firefox browser, AOL Instant Messenger (AIM), server products from Red Hat, and other products.
     22 
     23   For an overview of NSS, see :ref:`mozilla_projects_nss_overview`. For detailed information on the
     24   open-source NSS project, see `NSS Project Page <https://wiki.mozilla.org/NSS>`__.
     25 
     26 .. _what_can_i_do_with_nss.3f_is_nss_appropriate_for_my_application.3f:
     27 
     28 `What can I do with NSS? Is NSS appropriate for my application? <#what_can_i_do_with_nss.3f_is_nss_appropriate_for_my_application.3f>`__
     29 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     30 
     31 .. container::
     32 
     33   If you want add support for SSL, S/MIME, or other Internet security standards to your
     34   application, you can use Network Security Services (NSS) to do so. Because NSS provides complete
     35   support for all versions of SSL and TLS, it is particularly well-suited for applications that
     36   need to communicate with the many clients and servers that already support the SSL protocol.
     37 
     38   The PKCS #11 interface included in NSS means that your application can use `hardware
     39   accelerators <#what_hardware_accelerators_are_supported.3f>`__ on the server and
     40   :ref:`mozilla_projects_nss_faq#how_do_i_integrate_smart_cards_into_my_application_using_nss_3f`
     41   for two-factor authentication.
     42 
     43 .. _how_does_nss_compare_to_openssl.3f:
     44 
     45 `How does NSS compare to OpenSSL? <#how_does_nss_compare_to_openssl.3f>`__
     46 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     47 
     48 .. container::
     49 
     50   `OpenSSL <https://www.openssl.org/>`__ is an open source project that implements server-side SSL,
     51   TLS, and a general-purpose cryptography library. It does not support PKCS #11. It is based on the
     52   SSLeay library developed by Eric A. Young and Tim J. Hudson. OpenSSL is widely used in Apache
     53   servers and is licensed under an Apache-style licence.
     54 
     55   NSS supports both server and client applications as well as
     56   :ref:`mozilla_projects_nss_pkcs11_faq` and S/MIME. To permit its use in as many contexts as
     57   possible, NSS is licensed under the `Mozilla Public License <https://www.mozilla.org/MPL/>`__,
     58   version 2.
     59 
     60 .. _how_does_nss_compare_to_sslref.3f:
     61 
     62 `How does NSS compare to SSLRef? <#how_does_nss_compare_to_sslref.3f>`__
     63 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     64 
     65 .. container::
     66 
     67   SSLRef was an early reference implementation of the SSL protocol. It contains bugs that were
     68   never fixed, doesn't support TLS or the new 56-bit export cipher suites, and does not contain the
     69   fix to the Bleichenbacher attack on PKCS#1.
     70 
     71   Netscape no longer maintains SSLRef or makes it available. It was built as an example of an SSL
     72   implementation, not for creating production applications.
     73 
     74   NSS was designed from the ground up for use by commercial developers. It provides a complete
     75   software development kit that uses the same architecture used to support security features in
     76   many client and server products from Netscape and other companies.
     77 
     78 .. _what_platforms_and_development_environments_are_supported.3f:
     79 
     80 `What platforms and development environments are supported? <#what_platforms_and_development_environments_are_supported.3f>`__
     81 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     82 
     83 .. container::
     84 
     85   .. warning::
     86 
     87      This section is out of date
     88 
     89   iPlanet E-Commerce Solutions has certified NSS 3.1 on 18 platforms, including AIX 4.3, HP-UX
     90   11.0, Red Hat Linux 6.0, Solaris (2.6 or later), Windows NT (4.0 or later), and Windows 2000.
     91   Other contributors are in the process of certifying additional platforms. The NSS 3.1 API
     92   requires C or C++ development environments.
     93 
     94   For the latest NSS release notes and detailed platform information, see `Project
     95   Information <https://wiki.mozilla.org/NSS>`__.
     96 
     97 .. _what_cryptography_standards_are_supported.3f:
     98 
     99 `What cryptography standards are supported? <#what_cryptography_standards_are_supported.3f>`__
    100 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    101 
    102 .. container::
    103 
    104   NSS supports `SSL v2 and v3 <https://developer.mozilla.org/en-US/docs/Glossary/SSL>`__,
    105   `TLS <https://developer.mozilla.org/en-US/docs/Glossary/TLS>`__, `PKCS
    106   #5 <https://developer.mozilla.org/en-US/docs/Glossary/PKCS_.235>`__, `PKCS
    107   #7 <https://developer.mozilla.org/en-US/docs/Glossary/PKCS_.237>`__, `PKCS
    108   #11 <https://developer.mozilla.org/en-US/docs/Glossary/PKCS_.2311>`__, `PKCS
    109   #12 <https://developer.mozilla.org/en-US/docs/Glossary/PKCS_.2312>`__,
    110   `S/MIME <https://developer.mozilla.org/en-US/Glossary/en-US/docs/Glossary/S.2FMIME>`__, and
    111   `X.509 v3 <https://developer.mozilla.org/en-US/docs/Mozilla/Security/x509_Certificates>`__
    112   certificates. For complete details, see `Encryption Technologies Available in NSS
    113   3.11 <http://www-archive.mozilla.org/projects/security/pki/nss/nss-3.11/nss-3.11-algorithms.html>`__
    114 
    115 .. _what_is_the_relationship_between_nss_and_psm.3f:
    116 
    117 `What is the relationship between NSS and PSM? <#what_is_the_relationship_between_nss_and_psm.3f>`__
    118 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    119 
    120 .. container::
    121 
    122   Personal Security Manager (PSM) is built on top of NSS. It consists of libraries and a daemon
    123   designed to support cross-platform development of security-enabled client applications. The PSM
    124   binary provides a client module that performs cryptographic operations on behalf of applications.
    125   Netscape Personal Security Manager ships with Netscape 6 and the Gateway Connected Touch Pad with
    126   Instant AOL, and is also available for use with Communicator 4.7x.
    127 
    128 .. _where_can_i_get_the_source.3f:
    129 
    130 `Where can I get the source? <#where_can_i_get_the_source.3f>`__
    131 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    132 
    133 .. container::
    134 
    135   For instructions on how to check out and build the NSS source code, see
    136   :ref:`mozilla_projects_nss_nss_sources_building_testing`.
    137 
    138 .. _how_much_does_it_cost.3f:
    139 
    140 `How much does it cost? <#how_much_does_it_cost.3f>`__
    141 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    142 
    143 .. container::
    144 
    145   NSS source code and binaries (when they become available) are completely free. No license fees,
    146   no royalty fees, no subscription fees.
    147 
    148 .. _developer_questions:
    149 
    150 `Developer Questions <#developer_questions>`__
    151 ----------------------------------------------
    152 
    153 .. _what_hardware_accelerators_are_supported.3f:
    154 
    155 `What hardware accelerators are supported? <#what_hardware_accelerators_are_supported.3f>`__
    156 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    157 
    158 .. container::
    159 
    160   NSS supports the PKCS #11 interface for hardware acceleration. Since leading accelerator vendors
    161   such as Chrysalis-IT, nCipher, and Rainbow Technologies also support this interface, NSS-enabled
    162   applications can support a wide variety of hardware accelerators.
    163 
    164 .. _how_do_i_integrate_smart_cards_into_my_application_using_nss.3f:
    165 
    166 `How do I integrate smart cards into my application using NSS? <#how_do_i_integrate_smart_cards_into_my_application_using_nss.3f>`__
    167 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    168 
    169 .. container::
    170 
    171   NSS supports the PKCS #11 interface for smart card integration. Applications that use the PKCS
    172   #11 interface provided by NSS will therefore support smart cards from leading vendors such as
    173   ActiveCard, Litronic, SafeNet, and SecureID Technologies that also support the PKCS #11
    174   interface.
    175 
    176 .. _does_nss_require_netscape_portable_runtime_.28nspr.29.3f:
    177 
    178 `Does NSS require Netscape Portable Runtime (NSPR)? <#does_nss_require_netscape_portable_runtime_.28nspr.29.3f>`__
    179 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    180 
    181 .. container::
    182 
    183   .. rubric:: To provide cross-platform support, NSS utilizes Netscape Portable Runtime (NSPR)
    184      libraries as a portability interface and implementation that provides consistent
    185      cross-platform semantics for network I/O and threading models. You can use NSPR throughout
    186      your application or only in the portion that calls into NSS. Mozilla strongly recommends that
    187      multithreaded applications use the NSPR or native OS threading model. (In recent NSPR
    188      releases, the NSPR threading model is compatible with the native threading model if the OS has
    189      native threads.) Alternatively, you can adapt the open-source NSPR implementation to be
    190      compatible with your existing application's threading models. More information about NSPR may
    191      be found at `Netscape Portable
    192      Runtime <https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR>`__.
    193      :name: to_provide_cross-platform_support_nss_utilizes_netscape_portable_runtime_nspr_libraries_as_a_portability_interface_and_implementation_that_provides_consistent_cross-platform_semantics_for_network_io_and_threading_models._you_can_use_nspr_throughout_your_application_or_only_in_the_portion_that_calls_into_nss._mozilla_strongly_recommends_that_multithreaded_applications_use_the_nspr_or_native_os_threading_model._in_recent_nspr_releases_the_nspr_threading_model_is_compatible_with_the_native_threading_model_if_the_os_has_native_threads._alternatively_you_can_adapt_the_open-source_nspr_implementation_to_be_compatible_with_your_existing_applications_threading_models._more_information_about_nspr_may_be_found_at_netscape_portable_runtime.
    194 
    195 .. _can_i_use_nss_even_if_my_application_protocol_isn.27t_http.3f:
    196 
    197 `Can I use NSS even if my application protocol isn't HTTP? <#can_i_use_nss_even_if_my_application_protocol_isn.27t_http.3f>`__
    198 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    199 
    200 .. container::
    201 
    202   Yes, TLS is independent of application protocols. It works with common Internet standard
    203   application protocols (HTTP, POP3, FTP, SMTP, etc.) as well as custom application protocols using
    204   TCP/IP.
    205 
    206 .. _how_long_does_it_take_to_integrate_nss_into_my_application.3f:
    207 
    208 `How long does it take to integrate NSS into my application? <#how_long_does_it_take_to_integrate_nss_into_my_application.3f>`__
    209 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    210 
    211 .. container::
    212 
    213   The integration effort depends on an number of factors, such as developer skill set, application
    214   complexity, and the level of security required for your application. NSS includes detailed
    215   documentation of the SSL API and sample code that demonstrates basic SSL functionality (setting
    216   up an encrypted session, server authentication, and client authentication) to help jump start the
    217   integration process. However, there is little or no documentation currently available for the
    218   rest of the NSS API. If your application requires sophisticated certificate management, smart
    219   card support, or hardware acceleration, your integration effort will be more extensive.
    220 
    221 .. _where_can_i_download_the_nss_tools.3f:
    222 
    223 `Where can I download the NSS tools? <#where_can_i_download_the_nss_tools.3f>`__
    224 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    225 
    226 .. container::
    227 
    228   Binary builds of NSS for several platforms including the command-line tools can be downloaded
    229   from
    230   `http://ftp.mozilla.org/pub/mozilla.o...y/nss/releases/ <http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/>`__.
    231   NSPR, which you will need as well, can be downloaded from
    232   http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/.
    233 
    234 .. _how_can_i_learn_more_about_ssl.3f:
    235 
    236 `How can I learn more about TLS? <#how_can_i_learn_more_about_ssl.3f>`__
    237 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    238 
    239 .. container::
    240 
    241   See https://developer.mozilla.org/en-US/docs/Glossary/TLS.
    242 
    243 .. _licensing_questions:
    244 
    245 `Licensing Questions <#licensing_questions>`__
    246 ----------------------------------------------
    247 
    248 .. _how_is_nss_licensed.3f:
    249 
    250 `How is NSS licensed? <#how_is_nss_licensed.3f>`__
    251 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    252 
    253 .. container::
    254 
    255   NSS is available under the `Mozilla Public License <https://www.mozilla.org/MPL/>`__, version 2.
    256 
    257 .. _is_nss_available_outside_the_united_states.3f:
    258 
    259 `Is NSS available outside the United States? <#is_nss_available_outside_the_united_states.3f>`__
    260 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    261 
    262 .. container::
    263 
    264   .. warning::
    265 
    266      This section is out of date
    267 
    268   Yes; see `Build Instructions for NSS
    269   3.1. <NSS_reference/Building_and_installing_NSS/Build_instructions>`__ and
    270   ftp://ftp.mozilla.org/pub/mozilla.org/security/. However, NSS source code is subject to the U.S.
    271   Export Administration Regulations and other U.S. law, and may not be exported or re-exported to
    272   certain countries (Cuba, Iran, Iraq, Libya, North Korea, Serbia, Sudan, Syria, and
    273   Taleban-controlled areas of Afghanistan as of January 2000) or to persons or entities prohibited
    274   from receiving U.S. exports (including those (a) on the Bureau of Industry and Security Denied
    275   Parties List or Entity List, (b) on the Office of Foreign Assets Control list of Specially
    276   Designated Nationals and Blocked Persons, and (c) involved with missile technology or nuclear,
    277   chemical or biological weapons).
    278 
    279   For more information about U.S. export controls on encryption software, see the `Mozilla Crypto
    280   FAQ <Mozilla_Crypto_FAQ#1-3>`__.