Skip to content

Commit 1d7322b

Browse files
authored
feat: use different public-key length certs for TLS (#2080)
1 parent e6cba6d commit 1d7322b

22 files changed

+450
-77
lines changed

.config/CredScanSuppressions.json

+18-2
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,27 @@
1818
"_justification": "Legitimate development X.509 Certificate Private Key"
1919
},
2020
{
21-
"file": "src/BenchmarksApps/TLS/HttpSys/testCert.pfx",
21+
"file": "src/BenchmarksApps/TLS/Certificates/2048/testCert-2048.pfx",
2222
"_justification": "Legitimate development X.509 Certificate Private Key"
2323
},
2424
{
25-
"file": "src/BenchmarksApps/TLS/Kestrel/testCert.pfx",
25+
"file": "src/BenchmarksApps/TLS/Certificates/2048/cert.pem",
26+
"_justification": "Legitimate development X.509 Certificate Private Key"
27+
},
28+
{
29+
"file": "src/BenchmarksApps/TLS/Certificates/2048/key.pem",
30+
"_justification": "Legitimate development X.509 Certificate Private Key"
31+
},
32+
{
33+
"file": "src/BenchmarksApps/TLS/Certificates/4096/testCert-4096.pfx",
34+
"_justification": "Legitimate development X.509 Certificate Private Key"
35+
},
36+
{
37+
"file": "src/BenchmarksApps/TLS/Certificates/4096/cert.pem",
38+
"_justification": "Legitimate development X.509 Certificate Private Key"
39+
},
40+
{
41+
"file": "src/BenchmarksApps/TLS/Certificates/4096/key.pem",
2642
"_justification": "Legitimate development X.509 Certificate Private Key"
2743
},
2844
{

scenarios/tls.benchmarks.yml

+41-9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
imports:
22
- https://raw.githubusercontent.com/dotnet/crank/main/src/Microsoft.Crank.Jobs.Bombardier/bombardier.yml
33
- https://raw.githubusercontent.com/dotnet/crank/main/src/Microsoft.Crank.Jobs.HttpClient/httpclient.yml
4+
- https://github.com/dotnet/crank/blob/main/src/Microsoft.Crank.Jobs.Wrk/wrk.yml?raw=true
45
- https://github.com/aspnet/Benchmarks/blob/main/scenarios/aspnet.profiles.yml?raw=true
56
- https://github.com/aspnet/Benchmarks/blob/main/build/azure.profile.yml?raw=true
67

@@ -18,11 +19,12 @@ jobs:
1819
# behavioral settings
1920
mTLS: false # enables settings on http.sys to negotiate client cert on connections
2021
tlsRenegotiation: false # enables client cert validation
22+
certPublicKeyLength: 2048 # controls cert with such a length is used for the test
2123
# debug settings
2224
certValidationConsoleEnabled: false
2325
statsEnabled: false
2426
logRequestDetails: false
25-
arguments: "--urls https://{{serverAddress}}:{{serverPort}} --mTLS {{mTLS}} --certValidationConsoleEnabled {{certValidationConsoleEnabled}} --statsEnabled {{statsEnabled}} --tlsRenegotiation {{tlsRenegotiation}} --logRequestDetails {{logRequestDetails}}"
27+
arguments: "--urls https://{{serverAddress}}:{{serverPort}} --mTLS {{mTLS}} --certValidationConsoleEnabled {{certValidationConsoleEnabled}} --statsEnabled {{statsEnabled}} --tlsRenegotiation {{tlsRenegotiation}} --logRequestDetails {{logRequestDetails}} --certPublicKeyLength {{certPublicKeyLength}}"
2628

2729
kestrelServer:
2830
source:
@@ -35,11 +37,12 @@ jobs:
3537
mTLS: false
3638
tlsRenegotiation: false
3739
tlsProtocols: "tls12,tls13"
40+
certPublicKeyLength: 2048 # controls cert with such a length is used for the test
3841
# debug settings
3942
certValidationConsoleEnabled: false
4043
statsEnabled: false
4144
logRequestDetails: false
42-
arguments: "--urls https://{{serverAddress}}:{{serverPort}} --mTLS {{mTLS}} --certValidationConsoleEnabled {{certValidationConsoleEnabled}} --tlsProtocols {{tlsProtocols}} --statsEnabled {{statsEnabled}} --tlsRenegotiation {{tlsRenegotiation}} --logRequestDetails {{logRequestDetails}}"
45+
arguments: "--urls https://{{serverAddress}}:{{serverPort}} --mTLS {{mTLS}} --certValidationConsoleEnabled {{certValidationConsoleEnabled}} --tlsProtocols {{tlsProtocols}} --statsEnabled {{statsEnabled}} --tlsRenegotiation {{tlsRenegotiation}} --logRequestDetails {{logRequestDetails}} --certPublicKeyLength {{certPublicKeyLength}}"
4346

4447
dockerLinuxKestrelServer:
4548
sources:
@@ -58,13 +61,28 @@ jobs:
5861
certValidationConsoleEnabled: false
5962
statsEnabled: false
6063

64+
dockerLinuxNginxServer:
65+
sources:
66+
dockerNginx:
67+
repository: https://github.com/aspnet/benchmarks.git
68+
branchOrCommit: main
69+
dockerFile: dockerNginx/src/BenchmarksApps/TLS/Nginx/Dockerfile
70+
dockerImageName: dockerNginx
71+
dockerContextDirectory: dockerNginx/src/BenchmarksApps/TLS
72+
port: 8080
73+
readyStateText: Application started.
74+
environmentVariables:
75+
urls: "https://*:8080" # any ip, port 8080
76+
6177
scenarios:
6278

6379
# HTTP.SYS
6480

6581
tls-handshakes-httpsys:
6682
application:
6783
job: httpSysServer
84+
variables:
85+
certPublicKeyLength: 2048
6886
load:
6987
job: httpclient
7088
variables:
@@ -78,14 +96,12 @@ scenarios:
7896
application:
7997
job: httpSysServer
8098
variables:
99+
certPublicKeyLength: 2048
81100
mTLS: true # enables settings on http.sys to negotiate client cert on connections
82101
tlsRenegotiation: true # enables client cert validation
83-
certValidationConsoleEnabled: false # only for debug purposes
84-
serverPort: 8080 # IMPORTANT: not to intersect with other tests in case http.sys configuration impacts other benchmarks
85102
load:
86103
job: httpclient
87104
variables:
88-
serverPort: 8080 # in sync with server
89105
path: /hello-world
90106
presetHeaders: connectionclose
91107
connections: 32
@@ -98,9 +114,8 @@ scenarios:
98114
application:
99115
job: httpSysServer
100116
variables:
101-
mTLS: false
117+
certPublicKeyLength: 2048
102118
tlsRenegotiation: true
103-
certValidationConsoleEnabled: false # only for debug purposes
104119
load:
105120
job: httpclient
106121
variables:
@@ -117,6 +132,8 @@ scenarios:
117132
tls-handshakes-kestrel:
118133
application:
119134
job: kestrelServer
135+
variables:
136+
certPublicKeyLength: 2048
120137
load:
121138
job: httpclient
122139
variables:
@@ -130,8 +147,8 @@ scenarios:
130147
application:
131148
job: kestrelServer
132149
variables:
150+
certPublicKeyLength: 2048
133151
mTLS: true
134-
certValidationConsoleEnabled: false # only for debug purposes
135152
load:
136153
job: httpclient
137154
variables:
@@ -147,9 +164,9 @@ scenarios:
147164
application:
148165
job: kestrelServer
149166
variables:
167+
certPublicKeyLength: 2048
150168
mTLS: false
151169
tlsRenegotiation: true
152-
certValidationConsoleEnabled: false # only for debug purposes
153170
load:
154171
job: httpclient
155172
variables:
@@ -221,6 +238,21 @@ scenarios:
221238
job: dockerLinuxKestrelServer
222239
# openssl version is already pre-installed with base image (latest)
223240
dockerFile: dockerKestrel/src/BenchmarksApps/TLS/Kestrel/Dockerfile.azurelinux
241+
load:
242+
job: httpclient
243+
variables:
244+
path: /hello-world
245+
serverPort: 8080
246+
presetHeaders: connectionclose
247+
connections: 32
248+
serverScheme: https
249+
sslProtocol: tls12
250+
251+
tls-handshakes-docker-nginx:
252+
application:
253+
job: dockerLinuxNginxServer
254+
buildArguments:
255+
- CERT_KEY_LENGTH=2048
224256
load:
225257
job: httpclient
226258
variables:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDrTCCApWgAwIBAgIUHKdletylaQOCsLr2hYlAx7CtYNUwDQYJKoZIhvcNAQEL
3+
BQAwfzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
4+
DVNhbiBGcmFuY2lzY28xFTATBgNVBAoMDEV4YW1wbGUgQ29ycDEWMBQGA1UECwwN
5+
SVQgRGVwYXJ0bWVudDEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNDAxMTE1
6+
MTU1WhcNMjYwNDAxMTE1MTU1WjB/MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2Fs
7+
aWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEVMBMGA1UECgwMRXhhbXBs
8+
ZSBDb3JwMRYwFAYDVQQLDA1JVCBEZXBhcnRtZW50MRQwEgYDVQQDDAtleGFtcGxl
9+
LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtHEw2SKpAIBN/M
10+
zYNHdeUBr/+rl70+NULPOCNtHLBWxgb5qkhUi+weU3Szyju6ahYWeWLSmll9pEA8
11+
dyrR0D6OHo39o6RqH4KNHBMyIM3b1zvYdQCoXWFIBaLMzgS4I6YorMmiaIdd/rjT
12+
4IerkewQUidRUKD517dogWNwE8rP75joEGBPkTdA1g5EvqdrZFMEqfjvISr8VPns
13+
05BVBjOLpFmipKh+kgDvvnqENJKKUN3U34LobYuq+eJHgQljvE5NCF7lq3GtaGsB
14+
pVu1BnMmxA9mlxeEXbV7XcDbU4uYu03RG1b0zTNPf35YFTCj7ENe+xSwzpOEX7os
15+
zuBco+kCAwEAAaMhMB8wHQYDVR0OBBYEFOI/5fWJQJ7i4FDRi6LcINvIbjQ+MA0G
16+
CSqGSIb3DQEBCwUAA4IBAQA0MIxYSs3VI8DGQE/FLkNyDjVGK01LRliyTL6EEiAm
17+
I9PiCq5WYH+29u8wJV6YeveQ00EUx0IbHOo1Ojki0oDByNjnEU2JKEr+FeSi320Q
18+
GT9kn/tQuTTHZMIlqFOO+01f15ApaEyfOhDS1qC1zZWyjXSNC7/bVT1wVlH+hBGl
19+
n/VnaarlE4IQjH7XlVplYNwN6Cpl4796ns5q9nfQIFyePxJmUptvsaLWkICcF8fL
20+
oZfbxFLc8l/xT/vFpzHga096Ruhvqqolj7oGY2eFxAf/oUZqWPIa4zCP3WUaWPeU
21+
sBIETpjNwtjcrScm6D+DQO4B5eixCtrK51ye5/2t0Jb7
22+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC7RxMNkiqQCATf
3+
zM2DR3XlAa//q5e9PjVCzzgjbRywVsYG+apIVIvsHlN0s8o7umoWFnli0ppZfaRA
4+
PHcq0dA+jh6N/aOkah+CjRwTMiDN29c72HUAqF1hSAWizM4EuCOmKKzJomiHXf64
5+
0+CHq5HsEFInUVCg+de3aIFjcBPKz++Y6BBgT5E3QNYORL6na2RTBKn47yEq/FT5
6+
7NOQVQYzi6RZoqSofpIA7756hDSSilDd1N+C6G2LqvniR4EJY7xOTQhe5atxrWhr
7+
AaVbtQZzJsQPZpcXhF21e13A21OLmLtN0RtW9M0zT39+WBUwo+xDXvsUsM6ThF+6
8+
LM7gXKPpAgMBAAECggEABxOKxcLVzDbGsF+AYyB/yj/DvbO8emXFBMQ9s8ul/4fC
9+
gyBLQzZmnxe6QY5K6vItRgO4DHg2utZDhDsvVDU0sC3AkSREsFa44BRNkPAeSzOu
10+
W1A02OnZCsRPlN+LkqQT5222sbEVpV/I2y+uVpIGDoHDXkGf+/p/ddUDZpV6j07h
11+
bsJCmXsNGWgy3PvF/WvLPS1PQ4ktVku2k9MdDoTVxOB1WipFw5mnO8Pe0v24gJuK
12+
QQLnQXUneRI53+2eU5iekdYp8RXxIsZIx37zysuUvKA5cfLCMztEcOgPor9/Zbph
13+
8SnUrMgSnbQGtEQA+jILtiUX3zAzfxnqdZIENIG+8QKBgQD2G2A6RJ3CzoFbh3dK
14+
C4ihGmHBR39w4eW9mpqzb9+a0bZzKdgPGML7dYeFz9Zr7WpJRKpsrvuOkm9m8h27
15+
T7rbVRNveKaJB35VwqEm+wFKg6z6ORWQmjYr0BObxF4wv41unmPN8BmliVVkQKQd
16+
B89xhZmpcYg1d8aC/+8jcxVHPQKBgQDCzk0Uio113qNDROJxsbiVtAOFvcL9kFhs
17+
EewRjc9dE6eujhO290ZoiEKz8V4zOpsz0mMJuS0/pM2wJNXWRzDN+UCmYboqpT0T
18+
O1cXRDMt8NLb6RxAn66lhj66s1oTVflYhHHm9Ytxf960EsvtmCHIJvYldy4/YP9H
19+
BPgM0wr6HQKBgHrcLczI5m0TBHb6CK45Vcr/TZ/cnp1u2G8wGFzN07YJTWjukcLv
20+
nJ9GDBLcL/IPQsky81VwgXqqVdzxr7AL3H+UWDCE7bZovEP59tNr6TgWxirghoh6
21+
w+JZbQCNJmx1pBh+D9sGKvd9uNhkgMlRVdkZVh3F5La0hbBuLibnU88NAoGAPAjh
22+
/lOYttuPCvseohU4IoKgl0Xc4tHqPhvj2aEPZ8rX4VaNwtQ/0ZU0oUngUv9bt0O+
23+
G9ACntuGPCON9wRniQKopt31RpE32kZuV5BACYdvJDCZ8VyEsSRHDriZKN5VAq+G
24+
frvrZmYW1v339NfuiUVglDk/em7FHTjtzN35Qw0CgYBqc1Dcz7vOs7sHQr2cslEI
25+
dGAwlV9F3D8bYgKt2cYtgbNIK6gfmZmJBbfVTtwataV9oV2o6cbeNK8SL7qScc3R
26+
Pbu3UNpFk7cBlHi9OVJwdpZaYG8ITkQGvwa8V6+EwgzOKcrHgBC9Efso20v32SyN
27+
9JJgBEYMrvx2awpN+af1iA==
28+
-----END PRIVATE KEY-----
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
Bag Attributes
2+
localKeyID: 6A 28 3F AA A7 FF FC 12 9D F2 4C C0 E7 52 11 86 C7 92 62 19
3+
subject=CN = localhost
4+
5+
issuer=CN = localhost
6+
7+
-----BEGIN CERTIFICATE-----
8+
MIIFCzCCAvOgAwIBAgIUAi7DqcEn4EsBm1lN4UcmmuxWPq0wDQYJKoZIhvcNAQEL
9+
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MCAXDTIxMDIyNjE4MzI0OVoYDzIxMjEw
10+
MjAyMTgzMjQ5WjAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEB
11+
AQUAA4ICDwAwggIKAoICAQDI5+DbDLpVmRFFB9YR1NwAbdPzf7cV8RB32pNVHzLj
12+
iJ9LNSq8yvI/k6xD3p8XHVJEC3TGMuOVK4Cn277nX9KSU/7lELMlz+yGikwli3aI
13+
u4A7NE84ACfR6ZFelAGcGr2nMze6K2YDwhhqG8SUBIhAjzjIXSf2+cv0Cq38cEX1
14+
WKy1h5xJm7FwuKlZsHmJw5Osk+8mFgHJ5TmKqJYtVd7b/ytAmeM2ByZ4eVCZ31rR
15+
ELKZ2uEWoCImLCtCfohxEnhrLm09yB7JrbbT/3JXHXyQUn3kGMczgwL/IZZwqtAf
16+
E4SiHVLI3cFwO3VJjpRfAbg3xFbxwzhmdlri3WsKT3iEp3P08WPi6dL7WF+PjpMl
17+
d9RZ587NBSqCmVfgBjY05wEcONSPyPY1gi5ZBDBm6J23feAOgZ8AZu/RKdAVgYBu
18+
Kr6o6ZKqsJ+U+M5cwrXw/Rv78YQyr9ZlfKALbybMKMrYuc9DqbPGBbryLxklh9kN
19+
wMJvt8FHEcmlbT5BsZJmm7JztPouN7mxMy1ZVJlGreyPD0mxET+O4DCz7UsA2CvB
20+
pKzLcRRHKKNbCwaeV/1UJKiyg4QWDGltlIKkIEhppv2vspl0Gh7xpZISJuWtmWiJ
21+
o03zSr7NUNvXRY3pmNQXad7PHanVyTCopCCpTiAQljDTTb803NGyKBHx3cz17HU9
22+
xQIDAQABo1MwUTAdBgNVHQ4EFgQUGyQOi+8yPBZziF7ruCfQB4ooTMUwHwYDVR0j
23+
BBgwFoAUGyQOi+8yPBZziF7ruCfQB4ooTMUwDwYDVR0TAQH/BAUwAwEB/zANBgkq
24+
hkiG9w0BAQsFAAOCAgEAHf+FN6rHdZJPdmUO1skpS9iVgXrKWGwo20Qrd3MttKfk
25+
xzFpOZLBEyn/qWmZe1YQqdcm4Yd7OjnKRb62zwE8gyTJlaA30qXGoJZrouWEAsWZ
26+
2//2h/Ju6XNy47p5F2UKAKqqGcSaDy9HEQF0wNwRz45LKYlJE7v7eDqo2TOampoH
27+
UXNRF9lKI4o+CKkSRquoqGXfw6GJmnxrozTzWl00igSXrX3+HkiKHNOgzaOoS+pP
28+
nFl/HI/jOFYh8AG/18U5iFBSTjXiyXmFvkb4309c188fJd1UMOVY1tbcfFWSftnL
29+
Ybk8UmGagtI9S8ExuQvk34TGDwj0vdKGiTBdL/qQ1vzxqLo2U7fHRcktSo27Ogtp
30+
JCzfyXKb41Cu4VOmzllTlhbg/p68rEeYcVIeZl86Yh3bFZNVpvHW9vzn8iLIXpGf
31+
nyt/XXG0cgkTPeWZ+zTPHLx/9YZBXViUuXobXLeUhueCaWGHYPkzKcV1c1B9oJjc
32+
/3JWbJVERFxMGgJpQUrTMerUCmY3C2lfPBm48ZmPCjmUUdWsh5vu2pVe+3hBIFeb
33+
Y/kkOuRqAmiW+EmjFNQNdcxsDstd1AeipapPSH0TLWTqvAs8MndoNmfHyOFomV38
34+
Els5LL5Pomm27oVq6JM1geF1jKShAnO/w/dlRXcB0PFJIlpWKpw7OE5qqPpoiZY=
35+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
Bag Attributes
2+
localKeyID: 6A 28 3F AA A7 FF FC 12 9D F2 4C C0 E7 52 11 86 C7 92 62 19
3+
Key Attributes: <No Attributes>
4+
-----BEGIN PRIVATE KEY-----
5+
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
54+
lOZIsIthM9vRTfPNs6cuapFulsL0qWM=
55+
-----END PRIVATE KEY-----
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Certificates
2+
3+
Certificate public-key length contributes to performant significantly, therefore there are 2 sets of certificates in corresponding directories ([2048 bit](./2048/) and [4096 bit](./4096/)).
4+
5+
Both directories have a `testCert.pfx` and `cert.pem`/`key.pem` (different certs, but same key-length).

0 commit comments

Comments
 (0)