[PoC][Draft] TLS Bumping integration #23192
[PoC][Draft] TLS Bumping integration #23192LuyaoZhong wants to merge 53 commits intoenvoyproxy:mainfrom
Conversation
|
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
Merge following components for integration PoC - Certificate Provider framework - SNI-based cert selection in tls transport socket - A new network filter - BumpingFilter - Certificate Provider instance - LocalMimicCertProvider Signed-off-by: Luyao Zhong <luyao.zhong@intel.com> Signed-off-by: LeiZhang <lei.a.zhang@intel.com>
4c33c54 to
14af58d
Compare
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Signed-off-by: LeiZhang <lei.a.zhang@intel.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Signed-off-by: LeiZhang <lei.a.zhang@intel.com>
Add config for setting cert expiration time Bumping filter refactor Signed-off-by: LeiZhang <lei.a.zhang@intel.com> Signed-off-by: LeiZhang <lei.a.zhang@intel.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Fix issue of incorrectly copy cert subject to mimic cert. Use cert expiration time when expiration_time config is absent. Signed-off-by: LeiZhang <lei.a.zhang@intel.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Current local cert provider might generates multiple certs with the same SANs/CN and pkey type which is not our expectation, we need to fix the bug in cert provider and then restore this check Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
Signed-off-by: LeiZhang <lei.a.zhang@intel.com>
…oxy#23635) Signed-off-by: wbpcode <wangbaiping@corp.netease.com> Signed-off-by: Ryan Northey <ryan@synca.io> Signed-off-by: code <wangbaiping@corp.netease.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Signed-off-by: LeiZhang <lei.a.zhang@intel.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
fix clang_tidy warnings and fix format Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
Signed-off-by: Luyao Zhong <luyao.zhong@intel.com>
|
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
|
This pull request has been automatically closed because it has not had activity in the last 37 days. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
|
@mattklein123 Could you help reopen this draft PR? |
|
@LuyaoZhong in your design and implementation, is it expected that the TCP proxy/HCM would re-use the connection that was opened for fetching the certificate? Or would Envoy end up with 2 upstream connections per 1 downstream request that includes mimicking? |
We will not re-use the connection. So envoy would have 2 upstream connections per 1 downstream request if mimicking is required. And when corresponding mimic cert is ready, we don't need addition upstream connection, then it will be 1 upstream connection per 1 downstream request. But we hope it can re-use if it doesn't need dramatic change, do you have any suggestions? Would you mind share your use case? |
|
My use case is somewhat similar, but instead of having Envoy do the mimicking, I would like to query an external service that would do the mimicking and respond with a certificate. The problem I had in mind was that if an external service does this, then there would be no re-use of connections, and we'll end up with 2 TCP streams per 1 downstream request. However, seems like there's no better option at this time and supporting this on Envoy would be very expensive. In my case I'm investigating the option to integrate this as part of the SDS. Meaning that if a secret is unknown at TLS handshake time, Envoy will pause the handshake and call SDS to fetch the certificate on-demand. Then, since SDS is external service, it can do whatever it wants at the time the request for fetch was invoked. It can either respond with yet-provided secret (that is known to SDS), or it can have logic to do mimicking on the fly. Current problem with SDS is that it does not support "Give me all you have" or "Fetch on-demand" features. You have to subscribe to a named resource statically and SDS will only provide secrets for these subscriptions. |
|
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
|
wip |
|
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
|
wip |
|
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
|
This pull request has been automatically closed because it has not had activity in the last 37 days. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
|
What ever happened to this? |
NOT READY FOR REVIEW
This PR is to merge following parts, and do integration test.
Certificate Provider framework #19582
SNI-based cert selection in tls transport socket #22036
A new network filter - BumpingFilter #22582
Certificate Provider instance - LocalMimicCertProvider #23063
Signed-off-by: Luyao Zhong luyao.zhong@intel.com
Signed-off-by: LeiZhang lei.a.zhang@intel.com