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>`__.