[GH-ISSUE #5042] [Feature Request] Enable kcp encryption #3967

Closed
opened 2026-05-05 14:31:27 -06:00 by gitea-mirror · 2 comments
Owner

Originally created by @f0re1gnKey on GitHub (Nov 2, 2025).
Original GitHub issue: https://github.com/fatedier/frp/issues/5042

Describe the feature request

According to the description of kcp-go, without encryption

The contents of the packets are completely anonymous with encryption, including the headers (FEC, KCP), checksums, and contents. Note that no matter which encryption method you choose at the upper layer, if you disable encryption, the transmission will be insecure, as the header is plaintext and susceptible to tampering, such as jamming the sliding window size, round-trip time, FEC properties, and checksums. AES-128 is suggested for minimal encryption, as modern CPUs come with AES-NI instructions and perform better than salsa20 (check the table above).

Q: Should I enable encryption?
A: Yes, for the security of the protocol, even if the upper layer has encryption.

Even if the upper layer has used tls encryption, the control header of kcp still needs to be encrypted and protected.

Describe alternatives you've considered

No response

Affected area

  • Docs
  • Installation
  • Performance and Scalability
  • Security
  • User Experience
  • Test and Release
  • Developer Infrastructure
  • Client Plugin
  • Server Plugin
  • Extensions
  • Others
Originally created by @f0re1gnKey on GitHub (Nov 2, 2025). Original GitHub issue: https://github.com/fatedier/frp/issues/5042 ### Describe the feature request According to the description of kcp-go, without encryption The contents of the packets are completely anonymous with encryption, including the headers (FEC, KCP), checksums, and contents. Note that no matter which encryption method you choose at the upper layer, if you disable encryption, the transmission will be insecure, as the header is plaintext and susceptible to tampering, such as jamming the sliding window size, round-trip time, FEC properties, and checksums. AES-128 is suggested for minimal encryption, as modern CPUs come with AES-NI instructions and perform better than salsa20 (check the table above). Q: Should I enable encryption? A: Yes, for the security of the protocol, even if the upper layer has encryption. Even if the upper layer has used tls encryption, the control header of kcp still needs to be encrypted and protected. ### Describe alternatives you've considered _No response_ ### Affected area - [ ] Docs - [ ] Installation - [ ] Performance and Scalability - [x] Security - [ ] User Experience - [ ] Test and Release - [ ] Developer Infrastructure - [ ] Client Plugin - [ ] Server Plugin - [ ] Extensions - [ ] Others
Author
Owner

@fatedier commented on GitHub (Nov 3, 2025):

frp does not aim to provide traffic obfuscation. In frp, KCP is used solely to improve throughput in poor/unstable (lossy) network conditions.

<!-- gh-comment-id:3478772271 --> @fatedier commented on GitHub (Nov 3, 2025): frp does not aim to provide traffic obfuscation. In frp, KCP is used solely to improve throughput in poor/unstable (lossy) network conditions.
Author
Owner

@f0re1gnKey commented on GitHub (Nov 3, 2025):

This issue is closed because the author has explicitly stated that the KCP will not be protected.

<!-- gh-comment-id:3478796839 --> @f0re1gnKey commented on GitHub (Nov 3, 2025): This issue is closed because the author has explicitly stated that the KCP will not be protected.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#3967
No description provided.