Skip to content

Support TLS 1.3 half-closed connections #86366

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
dimaqq mannequin opened this issue Oct 30, 2020 · 1 comment
Open

Support TLS 1.3 half-closed connections #86366

dimaqq mannequin opened this issue Oct 30, 2020 · 1 comment
Assignees
Labels
3.10 only security fixes topic-SSL type-feature A feature request or enhancement

Comments

@dimaqq
Copy link
Mannequin

dimaqq mannequin commented Oct 30, 2020

BPO 42200
Nosy @tiran, @dimaqq

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = 'https://github.com/tiran'
closed_at = None
created_at = <Date 2020-10-30.02:24:05.303>
labels = ['expert-SSL', 'type-feature', '3.10']
title = 'Support TLS 1.3 half-closed connections'
updated_at = <Date 2020-10-30.02:24:05.303>
user = 'https://github.com/dimaqq'

bugs.python.org fields:

activity = <Date 2020-10-30.02:24:05.303>
actor = 'Dima.Tisnek'
assignee = 'christian.heimes'
closed = False
closed_date = None
closer = None
components = ['SSL']
creation = <Date 2020-10-30.02:24:05.303>
creator = 'Dima.Tisnek'
dependencies = []
files = []
hgrepos = []
issue_num = 42200
keywords = []
message_count = 1.0
messages = ['379908']
nosy_count = 2.0
nosy_names = ['christian.heimes', 'Dima.Tisnek']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = 'enhancement'
url = 'https://bugs.python.org/issue42200'
versions = ['Python 3.10']

@dimaqq
Copy link
Mannequin Author

dimaqq mannequin commented Oct 30, 2020

(apologies if this was raised before, I couldn't find it in bugs, mailing lists or discourse).
(also apologies if I misunderstood something about the protocol)

Up to an including TLS 1.2, a single close notify terminates both upstream and downstream; Starting with TLS 1.3 there are separate close notify alerts for upstream and downstream.

This means that it's possible to have a TLS connection in half-closed state, e.g. to send "GET / HTTP xx; close notify" and then wait for the server response.

Today, that's not possible, at least in asyncio, as evidenced by https://bugs.python.org/issue39951
(I did not check synchronous wrapped sockets)

@dimaqq dimaqq mannequin added the 3.10 only security fixes label Oct 30, 2020
@dimaqq dimaqq mannequin assigned tiran Oct 30, 2020
@dimaqq dimaqq mannequin added topic-SSL type-feature A feature request or enhancement 3.10 only security fixes labels Oct 30, 2020
@dimaqq dimaqq mannequin assigned tiran Oct 30, 2020
@dimaqq dimaqq mannequin added topic-SSL type-feature A feature request or enhancement labels Oct 30, 2020
@ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.10 only security fixes topic-SSL type-feature A feature request or enhancement
Projects
None yet
Development

No branches or pull requests

1 participant