TLS session key re-negotiation
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 50
- Forks
- 36
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 2
Description
Session keys created by a TLS handshake are small and should be thrown out after a while (usually a certain number of payload bytes transferred within the session) to mitigate an attacker's ability to guess them.
The current handshake upcall does not support renegotiation. Instead, it treats a key reneg request as an error that is fatal to a session, then sets up a fresh session. This is typically not a significant problem because RPC connections/sessions are long-lived.
We would like the netlink upcall protocol and tlshd eventually to handle renegotiation. In this case, the upcall would pass a socket that already has a TLS session on it, and tlshd would redirect that to the library so that a reneg handshake can be done. The result should be that a fresh session key is plugged into the socket via setsockopt(3).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the netlink upcall protocol and the tlshd handshake path described in the issue. Define how an upcall carrying an already-sessioned socket is redirected for renegotiation, and verify that a fresh session key is installed through setsockopt(3).
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, linux
- Domain
- networking, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100