summaryrefslogtreecommitdiff
path: root/doc/rst/legacy/nss_releases/nss_3.21_release_notes/index.rst
blob: b28c354666c29ea53f1756b0158cc2a95a671b6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
.. _mozilla_projects_nss_nss_3_21_release_notes:

NSS 3.21 release notes
======================

.. container::

   2016-01-07, this page has been updated to include additional information about the release. The
   sections "Security Fixes" and "Acknowledgements" have been added.

`Introduction <#introduction>`__
--------------------------------

.. container::

   The NSS team has released Network Security Services (NSS) 3.21, which is a minor release.

.. _distribution_information:

`Distribution Information <#distribution_information>`__
--------------------------------------------------------

.. container::

   The HG tag is NSS_3_21_RTM. NSS 3.21 requires NSPR 4.10.10 or newer.

   NSS 3.21 source distributions are available on ftp.mozilla.org for secure HTTPS download:

   -  Source tarballs:
      https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_21_RTM/src/

.. _security_fixes_in_nss_3.21:

`Security Fixes in NSS 3.21 <#security_fixes_in_nss_3.21>`__
------------------------------------------------------------

.. container::

   -  `Bug 1158489 <https://bugzilla.mozilla.org/show_bug.cgi?id=1158489>`__
      ` <https://bugzilla.mozilla.org/show_bug.cgi?id=1138554>`__ /
      `CVE-2015-7575 <http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7575>`__ - Prevent
      MD5 Downgrade in TLS 1.2 Signatures.

.. _new_in_nss_3.21:

`New in NSS 3.21 <#new_in_nss_3.21>`__
--------------------------------------

.. container::

.. _new_functionality:

`New Functionality <#new_functionality>`__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. container::

   -  ``certutil`` now supports a ``--rename`` option to change a nickname (`bug
      1142209 <https://bugzilla.mozilla.org/show_bug.cgi?id=1142209>`__)
   -  TLS extended master secret extension (`RFC
      7627 <https://datatracker.ietf.org/doc/html/rfc7627>`__) is supported (`bug
      1117022 <https://bugzilla.mozilla.org/show_bug.cgi?id=1117022>`__)
   -  New info functions added for use during mid-handshake callbacks (`bug
      1084669 <https://bugzilla.mozilla.org/show_bug.cgi?id=1084669>`__)

   .. rubric:: New Functions
      :name: new_functions

   -  *in nss.h*

      -  **NSS_OptionSet** - sets NSS global options
      -  **NSS_OptionGet** - gets the current value of NSS global options

   -  *in secmod.h*

      -  **SECMOD_CreateModuleEx** - Create a new SECMODModule structure from module name string,
         module parameters string, NSS specific parameters string, and NSS configuration parameter
         string. The module represented by the module structure is not loaded. The difference with
         **SECMOD_CreateModule** is the new function handles NSS configuration parameter strings.

   -  *in ssl.h*

      -  **SSL_GetPreliminaryChannelInfo** - obtains information about a TLS channel prior to the
         handshake being completed, for use with the callbacks that are invoked during the handshake
      -  **SSL_SignaturePrefSet** - configures the enabled signature and hash algorithms for TLS
      -  **SSL_SignaturePrefGet** - retrieves the currently configured signature and hash algorithms
      -  **SSL_SignatureMaxCount** - obtains the maximum number signature algorithms that can be
         configured with **SSL_SignaturePrefSet**

   -  *in utilpars.h*

      -  **NSSUTIL_ArgParseModuleSpecEx** - takes a module spec and breaks it into shared library
         string, module name string, module parameters string, NSS specific parameters string, and
         NSS configuration parameter strings. The returned strings must be freed by the caller. The
         difference with **NSS_ArgParseModuleSpec** is the new function handles NSS configuration
         parameter strings.
      -  **NSSUTIL_MkModuleSpecEx** - take a shared library string, module name string, module
         parameters string, NSS specific parameters string, and NSS configuration parameter string
         and returns a module string which the caller must free when it is done. The difference with
         **NSS_MkModuleSpec** is the new function handles NSS configuration parameter strings.

   .. rubric:: New Types
      :name: new_types

   -  *in pkcs11t.h*

      -  **CK_TLS12_MASTER_KEY_DERIVE_PARAMS{_PTR}** - parameters {or pointer} for
         **CKM_TLS12_MASTER_KEY_DERIVE**
      -  **CK_TLS12_KEY_MAT_PARAMS{_PTR}** - parameters {or pointer} for
         **CKM_TLS12_KEY_AND_MAC_DERIVE**
      -  **CK_TLS_KDF_PARAMS{_PTR}** - parameters {or pointer} for **CKM_TLS_KDF**
      -  **CK_TLS_MAC_PARAMS{_PTR}** - parameters {or pointer} for **CKM_TLS_MAC**

   -  *in sslt.h*

      -  **SSLHashType** - identifies a hash function
      -  **SSLSignatureAndHashAlg** - identifies a signature and hash function
      -  **SSLPreliminaryChannelInfo** - provides information about the session state prior to
         handshake completion

   .. rubric:: New Macros
      :name: new_macros

   -  *in nss.h*

      -  **NSS_RSA_MIN_KEY_SIZE** - used with NSS_OptionSet and NSS_OptionGet to set or get the
         minimum RSA key size
      -  **NSS_DH_MIN_KEY_SIZE** - used with NSS_OptionSet and NSS_OptionGet to set or get the
         minimum DH key size
      -  **NSS_DSA_MIN_KEY_SIZE** - used with NSS_OptionSet and NSS_OptionGet to set or get the
         minimum DSA key size

   -  *in pkcs11t.h*

      -  **CKM_TLS12_MASTER_KEY_DERIVE** - derives TLS 1.2 master secret
      -  **CKM_TLS12_KEY_AND_MAC_DERIVE** - derives TLS 1.2 traffic key and IV
      -  **CKM_TLS12_MASTER_KEY_DERIVE_DH** - derives TLS 1.2 master secret for DH (and ECDH) cipher
         suites
      -  **CKM_TLS12_KEY_SAFE_DERIVE** and **CKM_TLS_KDF** are identifiers for additional PKCS#12
         mechanisms for TLS 1.2 that are currently unused in NSS.
      -  **CKM_TLS_MAC** - computes TLS Finished MAC

   -  *in secoidt.h*

      -  **NSS_USE_ALG_IN_SSL_KX** - policy flag indicating that keys are used in TLS key exchange

   -  *in sslerr.h*

      -  **SSL_ERROR_RX_SHORT_DTLS_READ** - error code for failure to include a complete DTLS record
         in a UDP packet
      -  **SSL_ERROR_NO_SUPPORTED_SIGNATURE_ALGORITHM** - error code for when no valid signature and
         hash algorithm is available
      -  **SSL_ERROR_UNSUPPORTED_SIGNATURE_ALGORITHM** - error code for when an unsupported
         signature and hash algorithm is configured
      -  **SSL_ERROR_MISSING_EXTENDED_MASTER_SECRET** - error code for when the extended master
         secret is missing after having been negotiated
      -  **SSL_ERROR_UNEXPECTED_EXTENDED_MASTER_SECRET** - error code for receiving an extended
         master secret when previously not negotiated

   -  *in sslt.h*

      -  **SSL_ENABLE_EXTENDED_MASTER_SECRET** - configuration to enable the TLS extended master
         secret extension (`RFC 7627 <https://datatracker.ietf.org/doc/html/rfc7627>`__)
      -  **ssl_preinfo_version** - used with **SSLPreliminaryChannelInfo** to indicate that a TLS
         version has been selected
      -  **ssl_preinfo_cipher_suite** - used with **SSLPreliminaryChannelInfo** to indicate that a
         TLS cipher suite has been selected
      -  **ssl_preinfo_all** - used with **SSLPreliminaryChannelInfo** to indicate that all
         preliminary information has been set

.. _notable_changes_in_nss_3.21:

`Notable Changes in NSS 3.21 <#notable_changes_in_nss_3.21>`__
--------------------------------------------------------------

.. container::

   -  NSS now builds with elliptic curve ciphers enabled by default (`bug
      1205688 <https://bugzilla.mozilla.org/show_bug.cgi?id=1205688>`__)
   -  NSS now builds with warnings as errors (`bug
      1182667 <https://bugzilla.mozilla.org/show_bug.cgi?id=1182667>`__)
   -  The following CA certificates were **Removed**

      -  CN = VeriSign Class 4 Public Primary Certification Authority - G3

         -  SHA1 Fingerprint: C8:EC:8C:87:92:69:CB:4B:AB:39:E9:8D:7E:57:67:F3:14:95:73:9D

      -  CN = UTN-USERFirst-Network Applications

         -  SHA1 Fingerprint: 5D:98:9C:DB:15:96:11:36:51:65:64:1B:56:0F:DB:EA:2A:C2:3E:F1

      -  CN = TC TrustCenter Universal CA III

         -  SHA1 Fingerprint: 96:56:CD:7B:57:96:98:95:D0:E1:41:46:68:06:FB:B8:C6:11:06:87

      -  CN = A-Trust-nQual-03

         -  SHA-1 Fingerprint: D3:C0:63:F2:19:ED:07:3E:34:AD:5D:75:0B:32:76:29:FF:D5:9A:F2

      -  CN = USERTrust Legacy Secure Server CA

         -  SHA-1 Fingerprint: 7C:2F:91:E2:BB:96:68:A9:C6:F6:BD:10:19:2C:6B:52:5A:1B:BA:48

      -  Friendly Name: Digital Signature Trust Co. Global CA 1

         -  SHA-1 Fingerprint: 81:96:8B:3A:EF:1C:DC:70:F5:FA:32:69:C2:92:A3:63:5B:D1:23:D3

      -  Friendly Name: Digital Signature Trust Co. Global CA 3

         -  SHA-1 Fingerprint: AB:48:F3:33:DB:04:AB:B9:C0:72:DA:5B:0C:C1:D0:57:F0:36:9B:46

      -  CN = UTN - DATACorp SGC

         -  SHA-1 Fingerprint: 58:11:9F:0E:12:82:87:EA:50:FD:D9:87:45:6F:4F:78:DC:FA:D6:D4

      -  O = TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Kasım 2005

         -  SHA-1 Fingerprint: B4:35:D4:E1:11:9D:1C:66:90:A7:49:EB:B3:94:BD:63:7B:A7:82:B7

   -  The following CA certificate had the Websites **trust bit turned off**

      -  OU = Equifax Secure Certificate Authority

         -  SHA1 Fingerprint: D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3A

   -  The following CA certificates were **Added**

      -  CN = Certification Authority of WoSign G2

         -  SHA1 Fingerprint: FB:ED:DC:90:65:B7:27:20:37:BC:55:0C:9C:56:DE:BB:F2:78:94:E1

      -  CN = CA WoSign ECC Root

         -  SHA1 Fingerprint: D2:7A:D2:BE:ED:94:C0:A1:3C:C7:25:21:EA:5D:71:BE:81:19:F3:2B

      -  CN = OISTE WISeKey Global Root GB CA

         -  SHA1 Fingerprint: 0F:F9:40:76:18:D3:D7:6A:4B:98:F0:A8:35:9E:0C:FD:27:AC:CC:ED

   -  The version number of the updated root CA list has been set to 2.6

.. _bugs_fixed_in_nss_3.21:

`Bugs fixed in NSS 3.21 <#bugs_fixed_in_nss_3.21>`__
----------------------------------------------------

.. container::

   This Bugzilla query returns all the bugs fixed in NSS 3.21:

   https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&classification=Components&query_format=advanced&product=NSS&target_milestone=3.21

`Acknowledgements <#acknowledgements>`__
----------------------------------------

.. container::

   The NSS development team would like to thank Karthikeyan Bhargavan from
   `INRIA <http://inria.fr/>`__ for responsibly disclosing the issue in `Bug
   1158489 <https://bugzilla.mozilla.org/show_bug.cgi?id=1158489>`__.

`Compatibility <#compatibility>`__
----------------------------------

.. container::

   NSS 3.21 shared libraries are backward compatible with all older NSS 3.x shared libraries. A
   program linked with older NSS 3.x shared libraries will work with NSS 3.21 shared libraries
   without recompiling or relinking. Furthermore, applications that restrict their use of NSS APIs
   to the functions listed in NSS Public Functions will remain compatible with future versions of
   the NSS shared libraries.

`Feedback <#feedback>`__
------------------------

.. container::

   Bugs discovered should be reported by filing a bug report with
   `bugzilla.mozilla.org <https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS>`__ (product NSS).