tls: introduce client 'session' event by sam-github · Pull Request #25831 · nodejs/node (original) (raw)

sam-github

OpenSSL has supported async notification of sessions and tickets since
1.1.0 using SSL_CTX_sess_set_new_cb(), for all versions of TLS. Using
the async API is optional for TLS1.2 and below, but for TLS1.3 it will
be mandatory. Future-proof applications should start to use async
notification immediately. In the future, for TLS1.3, applications that
don't use the async API will silently, but gracefully, fail to resume
sessions and instead do a full handshake.

See: https://wiki.openssl.org/index.php/TLS1.3#Sessions

Checklist

@nodejs-github-bot

@nodejs-github-bot nodejs-github-bot added c++

Issues and PRs that require attention from people who are familiar with C++.

lib / src

Issues and PRs related to general changes in the lib or src directory.

labels

Jan 30, 2019

@sam-github

@addaleax addaleax added tls

Issues and PRs related to the tls subsystem.

semver-minor

PRs that contain new features and should be released in the next minor version.

labels

Jan 30, 2019

addaleax

indutny

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

vsemozhetbyt

@vsemozhetbyt vsemozhetbyt added the author ready

PRs that have at least one approval, no pending requests for changes, and a CI started.

label

Feb 1, 2019

@sam-github

OpenSSL has supported async notification of sessions and tickets since 1.1.0 using SSL_CTX_sess_set_new_cb(), for all versions of TLS. Using the async API is optional for TLS1.2 and below, but for TLS1.3 it will be mandatory. Future-proof applications should start to use async notification immediately. In the future, for TLS1.3, applications that don't use the async API will silently, but gracefully, fail to resume sessions and instead do a full handshake.

See: https://wiki.openssl.org/index.php/TLS1.3#Sessions

@sam-github

addaleax pushed a commit that referenced this pull request

Feb 6, 2019

@sam-github @addaleax

OpenSSL has supported async notification of sessions and tickets since 1.1.0 using SSL_CTX_sess_set_new_cb(), for all versions of TLS. Using the async API is optional for TLS1.2 and below, but for TLS1.3 it will be mandatory. Future-proof applications should start to use async notification immediately. In the future, for TLS1.3, applications that don't use the async API will silently, but gracefully, fail to resume sessions and instead do a full handshake.

See: https://wiki.openssl.org/index.php/TLS1.3#Sessions

PR-URL: #25831 Reviewed-By: Anna Henningsen anna@addaleax.net Reviewed-By: Fedor Indutny fedor.indutny@gmail.com

This was referenced

Feb 15, 2019

sam-github added a commit to sam-github/node that referenced this pull request

Mar 19, 2019

@sam-github

This introduces TLS1.3 support and makes it the default max protocol, but also supports CLI/NODE_OPTIONS switches to disable it if necessary.

TLS1.3 is a major update to the TLS protocol, with many security enhancements. It should be preferred over TLS1.2 whenever possible.

TLS1.3 is different enough that even though the OpenSSL APIs are technically API/ABI compatible, that when TLS1.3 is negotiated, the timing of protocol records and of callbacks broke assumptions hard-coded into the 'tls' module.

This change introduces no API incompatibilities when TLS1.2 is negotiated. It is the intention that it be backported to current and LTS release lines with the default maximum TLS protocol reset to 'TLSv1.2'. This will allow users of those lines to explicitly enable TLS1.3 if they want.

API incompatibilities between TLS1.2 and TLS1.3 are:

sam-github added a commit that referenced this pull request

Mar 20, 2019

@sam-github

This introduces TLS1.3 support and makes it the default max protocol, but also supports CLI/NODE_OPTIONS switches to disable it if necessary.

TLS1.3 is a major update to the TLS protocol, with many security enhancements. It should be preferred over TLS1.2 whenever possible.

TLS1.3 is different enough that even though the OpenSSL APIs are technically API/ABI compatible, that when TLS1.3 is negotiated, the timing of protocol records and of callbacks broke assumptions hard-coded into the 'tls' module.

This change introduces no API incompatibilities when TLS1.2 is negotiated. It is the intention that it be backported to current and LTS release lines with the default maximum TLS protocol reset to 'TLSv1.2'. This will allow users of those lines to explicitly enable TLS1.3 if they want.

API incompatibilities between TLS1.2 and TLS1.3 are:

PR-URL: #26209 Reviewed-By: Anna Henningsen anna@addaleax.net Reviewed-By: James M Snell jasnell@gmail.com Reviewed-By: Rod Vagg rod@vagg.org

sam-github added a commit to sam-github/node that referenced this pull request

Apr 1, 2019

@sam-github

This introduces TLS1.3 support and makes it the default max protocol, but also supports CLI/NODE_OPTIONS switches to disable it if necessary.

TLS1.3 is a major update to the TLS protocol, with many security enhancements. It should be preferred over TLS1.2 whenever possible.

TLS1.3 is different enough that even though the OpenSSL APIs are technically API/ABI compatible, that when TLS1.3 is negotiated, the timing of protocol records and of callbacks broke assumptions hard-coded into the 'tls' module.

This change introduces no API incompatibilities when TLS1.2 is negotiated. It is the intention that it be backported to current and LTS release lines with the default maximum TLS protocol reset to 'TLSv1.2'. This will allow users of those lines to explicitly enable TLS1.3 if they want.

API incompatibilities between TLS1.2 and TLS1.3 are:

PR-URL: nodejs#26209 Reviewed-By: Anna Henningsen anna@addaleax.net Reviewed-By: James M Snell jasnell@gmail.com Reviewed-By: Rod Vagg rod@vagg.org

sam-github added a commit to sam-github/node that referenced this pull request

Apr 11, 2019

@sam-github

This introduces TLS1.3 support and makes it the default max protocol, but also supports CLI/NODE_OPTIONS switches to disable it if necessary.

TLS1.3 is a major update to the TLS protocol, with many security enhancements. It should be preferred over TLS1.2 whenever possible.

TLS1.3 is different enough that even though the OpenSSL APIs are technically API/ABI compatible, that when TLS1.3 is negotiated, the timing of protocol records and of callbacks broke assumptions hard-coded into the 'tls' module.

This change introduces no API incompatibilities when TLS1.2 is negotiated. It is the intention that it be backported to current and LTS release lines with the default maximum TLS protocol reset to 'TLSv1.2'. This will allow users of those lines to explicitly enable TLS1.3 if they want.

API incompatibilities between TLS1.2 and TLS1.3 are:

PR-URL: nodejs#26209 Reviewed-By: Anna Henningsen anna@addaleax.net Reviewed-By: James M Snell jasnell@gmail.com Reviewed-By: Rod Vagg rod@vagg.org

BethGriggs pushed a commit that referenced this pull request

Apr 15, 2019

@sam-github @BethGriggs

This introduces TLS1.3 support and makes it the default max protocol, but also supports CLI/NODE_OPTIONS switches to disable it if necessary.

TLS1.3 is a major update to the TLS protocol, with many security enhancements. It should be preferred over TLS1.2 whenever possible.

TLS1.3 is different enough that even though the OpenSSL APIs are technically API/ABI compatible, that when TLS1.3 is negotiated, the timing of protocol records and of callbacks broke assumptions hard-coded into the 'tls' module.

This change introduces no API incompatibilities when TLS1.2 is negotiated. It is the intention that it be backported to current and LTS release lines with the default maximum TLS protocol reset to 'TLSv1.2'. This will allow users of those lines to explicitly enable TLS1.3 if they want.

API incompatibilities between TLS1.2 and TLS1.3 are:

Backport-PR-URL: #26951 PR-URL: #26209 Reviewed-By: Anna Henningsen anna@addaleax.net Reviewed-By: James M Snell jasnell@gmail.com Reviewed-By: Rod Vagg rod@vagg.org

sam-github added a commit to sam-github/node that referenced this pull request

Apr 29, 2019

@sam-github

OpenSSL has supported async notification of sessions and tickets since 1.1.0 using SSL_CTX_sess_set_new_cb(), for all versions of TLS. Using the async API is optional for TLS1.2 and below, but for TLS1.3 it will be mandatory. Future-proof applications should start to use async notification immediately. In the future, for TLS1.3, applications that don't use the async API will silently, but gracefully, fail to resume sessions and instead do a full handshake.

See: https://wiki.openssl.org/index.php/TLS1.3#Sessions

PR-URL: nodejs#25831 Reviewed-By: Anna Henningsen anna@addaleax.net Reviewed-By: Fedor Indutny fedor.indutny@gmail.com