Privacy/Reviews/Telemetry/SSL Certificates And Errors: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
 
(3 intermediate revisions by one other user not shown)
Line 24: Line 24:


== Measurement to Collect ==
== Measurement to Collect ==
We will collect five histograms of data.
See {{bug|707275}}
 
We will collect five categories of data in nine histograms
* SSL/TLS Version
* SSL/TLS Version
  0 - Unknown SSL/TLS Version
  0 - Unknown SSL/TLS Version
Line 32: Line 34:
  4 - SSLv3.1 / TLS 1.0
  4 - SSLv3.1 / TLS 1.0
* Negotiated Ciphersuite
* Negotiated Ciphersuite
** The values are an index mapping to the array SSL_ImplementedCiphers in [http://mxr.mozilla.org/mozilla-central/source/security/nss/lib/ssl/sslenum.c sslenum.c]
** All implemented ciphersuites will be collected, though partitioned into different histograms
** If elliptic curve cryptography (ECC) is not enabled at compile time, then the values are stored as index + 256. This leaks some information about a user's build.
** CIPHERSUITE
** Retrieving the ciphersuite from the data involves performing a lookup in the table, adjusting for ECC if needed.
*** These are SSLv3+ ciphersuites that are less than 0x0100
* Generic SSL/TLS Certificate Error
** CIPHERSUITE_OTHER
** Below values are defined in [http://mxr.mozilla.org/mozilla-central/source/security/manager/ssl/public/nsIX509Cert.idl nsIX509Cert.idl]
*** These are SSLv2 / informational ciphersuites that which start with either 0xFE or 0xFF
** Mapping of below errors to NSS SEC_* errors can be found in [http://mxr.mozilla.org/mozilla-central/source/security/manager/ssl/src/nsNSSCertificate.cpp nsNSSCertificate.cpp]
** CIPHERSUITE_C0
0 - NOT_VERIFIED_UNKNOWN
*** These are ECC ciphers that start with 0xC0
1 - CERT_REVOKED
** Converting from a bucket to ciphersuite involves taking the bitwise-or of the high-bit for histogram and the bucket.
2 - CERT_EXPIRED
*** There are no collisions in the CIPHERSUITE_OTHER case for now.
3 - CERT_NOT_TRUSTED
n - Index into ciphersuite partition
  4 - ISSUER_NOT_TRUSTED
* Error
5 - ISSUER_UNKNOWN
** SSL_ERROR
  6 - INVALID_CA
*** Errors of the form SSL_ERROR_x defined in [http://mxr.mozilla.org/mozilla-central/source/security/nss/lib/ssl/sslerr.h sslerr.h]
  7 - USAGE_NOT_ALLOWED
*** error base = (-0x3000)
* Detailed SSL/TLS Certificate Error
** SSL_ERROR_SEC
** The above generic errors may map to more specific errors
*** Errors of the form SEC_ERROR_x defined in [http://mxr.mozilla.org/mozilla-central/source/security/nss/lib/util/secerr.h secerr.h]
** More than one of the below errors can occur. The resulting value will be the bitwise-or of the applicable flags
*** error base = (-0x2000)
*** Self-signed and untrusted can not occur at the same time
** SSL_ERROR_NSPR
  1 - Self-signed Certificate
*** Errors of the form PR_x defined in prerr.h
2 - Untrusted Issuer
*** error base = (-6000L)
4 - Domain Mismatch
  n - ErrorCode adjusted by appropriate error base
8 - Invalid Time (expired / not valid yet)
* Server RSA Public Key Modulus
  0 - Server doesn't use RSA
  n - # of bits in server modulus
* SSL/TLS Intolerant site
** Logs connection attempts to sites which do not implement TLS properly
  1 - Server is intolerant


= Privacy Considerations =
= Privacy Considerations =

Latest revision as of 18:03, 21 February 2012


This page documents one type of data collected by telemetry: what is collected, the problem we seek to solve by collecting the data, and how we minimize any risks to users' privacy in deploying the measurement.

Status:

Engineering Contact: David Chan
Product Contact: David Chan
Privacy Contact: Sid Stamm
Document State: [ON TRACK]

Problem Statement

What problem will this solve?

  1. Does a significant percentage of our userbase visit sites with weak encryption e.g. < 512bit RSA, < SSLv3, weak ciphers?
  2. What kind of certificate related errors are our user's encountering?

Measurement to Collect

See bug 707275

We will collect five categories of data in nine histograms

  • SSL/TLS Version
0 - Unknown SSL/TLS Version
1 - Not Used
2 - SSLv2
3 - SSLv3
4 - SSLv3.1 / TLS 1.0
  • Negotiated Ciphersuite
    • All implemented ciphersuites will be collected, though partitioned into different histograms
    • CIPHERSUITE
      • These are SSLv3+ ciphersuites that are less than 0x0100
    • CIPHERSUITE_OTHER
      • These are SSLv2 / informational ciphersuites that which start with either 0xFE or 0xFF
    • CIPHERSUITE_C0
      • These are ECC ciphers that start with 0xC0
    • Converting from a bucket to ciphersuite involves taking the bitwise-or of the high-bit for histogram and the bucket.
      • There are no collisions in the CIPHERSUITE_OTHER case for now.
n - Index into ciphersuite partition
  • Error
    • SSL_ERROR
      • Errors of the form SSL_ERROR_x defined in sslerr.h
      • error base = (-0x3000)
    • SSL_ERROR_SEC
      • Errors of the form SEC_ERROR_x defined in secerr.h
      • error base = (-0x2000)
    • SSL_ERROR_NSPR
      • Errors of the form PR_x defined in prerr.h
      • error base = (-6000L)
n - ErrorCode adjusted by appropriate error base
  • Server RSA Public Key Modulus
0 - Server doesn't use RSA
n - # of bits in server modulus
  • SSL/TLS Intolerant site
    • Logs connection attempts to sites which do not implement TLS properly
1 - Server is intolerant

Privacy Considerations

This section will contain potential privacy risks and measures taken to minimize them. The privacy contact will fill this out.

Consent and Privacy Policy Considerations

This section contains notation of any changes to privacy policies or user opt-in/opt-out consent UX that is updated to include this measurement. The privacy contact will fill this out.

Alignment with Operating Principles

This section briefly describes how the measurement and technique lines up with our operating principles. The privacy contact will fill this out.'

Transparency / No Surprises
-
Real Choice
-
Sensible Defaults
-
Limited Data
-