Skip to content
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

Remove signed HTTP request support #5137

Merged
merged 52 commits into from
Apr 19, 2023

Conversation

achamayou
Copy link
Member

@achamayou achamayou commented Mar 23, 2023

This completes #3875 by removing signed HTTP request support from CCF, after its deprecation in 3.0.

  • remove tests that make use of http request signing, see comment for explanation
  • resolve problem in membership and governance test with signed GETs (see below for discussion)
  • additional pass to remove dead code

@ghost
Copy link

ghost commented Mar 23, 2023

disable_signed_request_support@68757 aka 20230419.8 vs main ewma over 20 builds from 68151 to 68749

Click to see table

main

build_id build_number Commit latency factor tpcc_virtual_cft^ ls_virtual_cft^ tpcc_sgx_cft^ tpcc_sgx_cft_mem pi_ls_virtual_cft^ ls_jwt_virtual_cft^ pi_ls_jwt_virtual_cft^ ls_js_virtual_cft^ ls_sgx_cft^ ls_sgx_cft_mem ls_full_js_virtual_cft^ pi_ls_sgx_cft^ pi_ls_sgx_cft_mem ls_jwt_sgx_cft^ ls_jwt_sgx_cft_mem ls_js_jwt_virtual_cft^ pi_ls_jwt_sgx_cft^ pi_ls_jwt_sgx_cft_mem ls_js_sgx_cft^ ls_js_sgx_cft_mem hist_sgx_cft^ ls_full_js_sgx_cft^ ls_full_js_sgx_cft_mem ls_js_jwt_sgx_cft^ ls_js_jwt_sgx_cft_mem RB put (/s)^ CHAMP put (/s)^ RB get (/s)^ CHAMP get (/s)^
68151 20230411.7 0.76272 17323.8 45798 6276.77 8.21863e+07 47077.7 12408 13631.8 4414.32 15883.8 1.53396e+07 3718.39 16166.6 7.99955e+06 5559.18 1.45532e+07 3224.92 5703.5 4.06739e+06 1512.63 7.73741e+06 44941.6 1320.61 7.21312e+06 1235.68 6.95098e+06 832029 1.17578e+06 8.14029e+06 3.1781e+07
68159 20230412.1 0.807709 17021 43706 6292.53 8.24484e+07 48086.2 12359.1 13928.9 4270.39 15802.3 1.56017e+07 3748.95 16174.5 7.99955e+06 5495.72 1.4291e+07 3245.44 5673.6 4.06739e+06 1513.72 7.73741e+06 45182.8 1317.74 7.21312e+06 1240.45 6.68883e+06 826769 1.17839e+06 8.15524e+06 3.07683e+07
68193 20230412.10 0.774075 17207.1 43482 6266.3 8.21863e+07 47369.6 12449.4 13752.5 4247.31 15799.2 1.50774e+07 3738.91 16050.4 7.99955e+06 5474.2 1.45532e+07 3211.94 5668.6 4.06739e+06 1503.26 7.73741e+06 46751 1314.82 7.73741e+06 1230.66 6.95098e+06 833140 1.1776e+06 8.14661e+06 3.10628e+07
68268 20230412.29 0.795965 17113.6 45902 6298.94 8.21863e+07 48584.3 12798.2 12711.3 4247 15547.8 1.50774e+07 3547.58 16181.7 7.99955e+06 5505.03 1.45532e+07 3243.29 5699.2 4.06739e+06 1503.67 7.73741e+06 47055.9 1313 7.47526e+06 1236.43 6.95098e+06 828981 1.17523e+06 8.16668e+06 3.01909e+07
68283 20230413.2 0.78883 17235.5 43877.8 6324.96 8.19242e+07 47563.1 12908.7 12832.5 4259.58 15865.6 1.50774e+07 3698.52 16195 7.99955e+06 5562.67 1.45532e+07 3247.11 5680.2 4.06739e+06 1505.64 7.73741e+06 48458 1317.84 7.47526e+06 1238.36 6.95098e+06 829235 1.1773e+06 8.15553e+06 3.16768e+07
68301 20230413.9 0.758091 17063.5 45695.6 6219.58 8.29727e+07 48717 12755.8 13293.1 4480.02 15798 1.50774e+07 3621.28 16091.7 7.99955e+06 5563.34 1.45532e+07 3275.71 5628.5 4.06739e+06 1507.32 7.73741e+06 44469.1 1317.09 7.21312e+06 1235.52 6.95098e+06 833305 1.18036e+06 8.1718e+06 3.06596e+07
68308 20230413.11 0.80262 17144 45708.2 6260.11 8.21863e+07 47762.8 12778.2 13635.5 4205.29 15584.6 1.53396e+07 3760.71 16112.1 7.99955e+06 5562.34 1.45532e+07 3216.03 5614.9 4.06739e+06 1505.21 7.73741e+06 43935.2 1319.4 7.21312e+06 1238.69 6.95098e+06 829205 1.17134e+06 8.15413e+06 3.12638e+07
68330 20230413.20 0.793228 17182.5 43827.4 5688.34 8.32349e+07 47259.4 12248.9 12975.1 4240.85 15735.2 1.50774e+07 3722.91 16064.3 7.99955e+06 5523.08 1.48153e+07 3268.7 5667.8 4.06739e+06 1503.74 7.73741e+06 44804 1316.57 7.47526e+06 1233.42 6.95098e+06 836280 1.17953e+06 8.15257e+06 3.09132e+07
68374 20230413.33 0.798173 17322.5 45589.1 6220.09 8.27106e+07 48886.4 12688.4 13214.6 4435.93 15637.2 1.50774e+07 3748.15 16129.9 7.99955e+06 5508.92 1.48153e+07 3380.19 5666.6 4.06739e+06 1504 7.73741e+06 44689.8 1312.41 7.21312e+06 1235.93 6.95098e+06 829356 1.17599e+06 8.15011e+06 3.07028e+07
68383 20230413.36 0.805735 17106.6 45881.3 5606.69 8.29727e+07 48292.4 12276.4 13693.5 4458.04 15514.6 1.50774e+07 3707.87 16010.6 7.99955e+06 5473.76 1.45532e+07 3264.36 5631.8 4.06739e+06 1487.36 7.73741e+06 42605.2 1307.43 7.99955e+06 1210.28 6.95098e+06 833742 1.18003e+06 8.15283e+06 3.1468e+07
68402 20230414.4 0.80823 17187.4 45867.2 6289.92 8.21863e+07 48529.8 12874.3 13875.8 4263.83 15814 1.50774e+07 3632.66 16187.9 7.99955e+06 5560.83 1.48153e+07 3276.64 5670.4 4.06739e+06 1506.42 7.73741e+06 45133.8 1327.36 7.21312e+06 1240.87 6.95098e+06 830024 1.17124e+06 8.15504e+06 3.07397e+07
68410 20230414.8 0.798009 17108.8 43772.1 6310.83 8.21863e+07 48479.7 12769.6 13920 4439.71 15617.1 1.50774e+07 3583.54 16100.5 7.99955e+06 5541.71 1.45532e+07 3233.45 5670.8 4.06739e+06 1507.23 7.73741e+06 45943.3 1312.64 7.47526e+06 1232.23 6.95098e+06 839970 1.17944e+06 8.1555e+06 3.06536e+07
68516 20230414.34 0.799348 17083.7 45825.4 5628.62 8.24484e+07 49725.5 12332.7 12889.1 4435.14 15486.7 1.50774e+07 3721.34 15992.5 7.99955e+06 5561.54 1.48153e+07 3250.76 5627.2 4.06739e+06 1489.43 7.73741e+06 45407.9 1296.85 7.47526e+06 1225.68 6.95098e+06 837171 1.17883e+06 8.14787e+06 3.11767e+07
68527 20230417.2 0.767205 17117.8 47850.5 6277.54 8.21863e+07 50189.5 12399.3 13116.3 4460.79 15767.9 1.53396e+07 3752.1 16118.3 7.99955e+06 5559.33 1.48153e+07 3266.2 5674.8 4.06739e+06 1507.57 7.73741e+06 46419.2 1318.39 7.73741e+06 1231.74 6.95098e+06 823577 1.17993e+06 8.14936e+06 3.07752e+07
68574 20230417.16 0.804768 17041.7 47949.4 6238.13 8.21863e+07 43806 12199.3 13139.4 4263.07 15831.3 1.53396e+07 3739.82 16096.2 7.99955e+06 5559.88 1.45532e+07 3211.83 5671.2 4.06739e+06 1506.13 7.73741e+06 45724.6 1319.16 7.47526e+06 1233.86 6.95098e+06 840825 1.17591e+06 8.15595e+06 3.08778e+07
68677 20230417.36 0.828875 17108.2 43752.7 6313.33 8.21863e+07 47151.4 12430.1 12789.9 4266.35 15785.4 1.50774e+07 3722.67 16131.7 7.99955e+06 5530.47 1.45532e+07 3396.74 5670 4.06739e+06 1510.24 7.73741e+06 47950.1 1315.69 7.21312e+06 1235.08 6.95098e+06 838030 1.17422e+06 8.15449e+06 3.08132e+07
68693 20230418.2 0.757018 17189.1 43600.4 6288.59 8.21863e+07 47023.2 12471.4 13746.5 4251.16 15904.3 1.58639e+07 3747.27 16118.9 7.99955e+06 5573.78 1.45532e+07 3257.15 5646.2 4.06739e+06 1509.97 7.73741e+06 46332.2 1313.79 7.47526e+06 1235.86 6.95098e+06 835409 1.17998e+06 8.17186e+06 3.08648e+07
68696 20230418.4 0.788259 17365.6 45704 6272.37 8.24484e+07 41977.5 12456.2 13846 4447.66 15865.9 1.50774e+07 3798.51 16127.6 7.99955e+06 5542.62 1.45532e+07 3257.51 5672 4.06739e+06 1508.48 7.73741e+06 46319.7 1313.48 7.21312e+06 1237.83 6.95098e+06 834309 1.18203e+06 8.15134e+06 3.11848e+07
68740 20230419.1 0.785676 17092.6 43642.6 6297.62 8.19242e+07 49067 12540.6 13449.9 4381.43 15854.9 1.50774e+07 3742.83 16122.7 7.99955e+06 5522.26 1.45532e+07 3231.31 5672.4 4.06739e+06 1509.32 7.73741e+06 46321.1 1324.27 7.21312e+06 1242.27 6.95098e+06 830440 1.17572e+06 8.15154e+06 3.11298e+07
68749 20230419.6 0.794397 17361.1 43696.8 6230.77 8.1662e+07 47499.9 12881.3 12942 4283.48 15784.6 1.50774e+07 3717.19 16068.6 7.99955e+06 5507.37 1.45532e+07 3234.02 5631.7 4.06739e+06 1492.51 7.73741e+06 44222.2 1317.45 7.21312e+06 1238.57 6.95098e+06 835339 1.18013e+06 8.1554e+06 3.07942e+07

disable_signed_request_support

build_id build_number Commit latency factor tpcc_virtual_cft^ tpcc_sgx_cft^ tpcc_sgx_cft_mem ls_virtual_cft^ pi_ls_virtual_cft^ ls_jwt_virtual_cft^ pi_ls_jwt_virtual_cft^ ls_js_virtual_cft^ ls_sgx_cft^ ls_sgx_cft_mem pi_ls_sgx_cft^ pi_ls_sgx_cft_mem ls_full_js_virtual_cft^ ls_jwt_sgx_cft^ ls_jwt_sgx_cft_mem pi_ls_jwt_sgx_cft^ pi_ls_jwt_sgx_cft_mem ls_js_jwt_virtual_cft^ ls_js_sgx_cft^ ls_js_sgx_cft_mem hist_sgx_cft^ ls_full_js_sgx_cft^ ls_full_js_sgx_cft_mem ls_js_jwt_sgx_cft^ ls_js_jwt_sgx_cft_mem RB put (/s)^ CHAMP put (/s)^ RB get (/s)^ CHAMP get (/s)^
68729 20230418.12 0.820098 17155.8 6258.97 8.1662e+07 47858.5 48365.2 12353.4 12781 4253.77 15565.3 1.50774e+07 16123.2 7.99955e+06 3712.75 5512.38 1.45532e+07 5662.8 4.06739e+06 3238.11 1502.37 7.73741e+06 46633.9 1314.85 7.21312e+06 1237.79 6.95098e+06 841371 1.1763e+06 8.14826e+06 3.09039e+07
68732 20230418.13 0.78363 17061.2 6350.6 8.24484e+07 45673.9 47889.5 12925.2 13009.5 4372.05 15533.9 1.50774e+07 16117.6 7.99955e+06 3700.23 5546.42 1.45532e+07 5675.5 4.06739e+06 3237.47 1507.28 7.99955e+06 43995.5 1314.07 7.21312e+06 1231.61 6.95098e+06 830796 1.18222e+06 8.15572e+06 3.1361e+07
68735 20230418.14 0.786013 17096.7 6287.2 8.19242e+07 45717.3 48069.5 12327.6 13973.3 4256.3 15773.2 1.50774e+07 16135.6 7.99955e+06 3753.31 5545.88 1.48153e+07 5669.9 4.06739e+06 3239.73 1507.72 7.73741e+06 45818.6 1315.84 7.73741e+06 1237.29 7.21312e+06 833797 1.1767e+06 8.11832e+06 3.01004e+07
68747 20230419.5 0.806485 17086.6 6336.86 8.19242e+07 45714 49402.7 12496.3 13938 4441.32 15741.5 1.50774e+07 16052.8 7.99955e+06 3611.59 5519.32 1.45532e+07 5664.9 4.06739e+06 3213.4 1510.01 7.47526e+06 47290.2 1319.85 7.21312e+06 1234.55 6.95098e+06 825943 1.17484e+06 8.15371e+06 3.07093e+07
68757 20230419.8 0.782225 17199 6264.47 8.21863e+07 45795.6 47752 12975.2 13092.9 4258.92 15839 1.53396e+07 16106 7.99955e+06 3611.78 5561.35 1.45532e+07 5635.2 4.06739e+06 3235.78 1494.34 7.73741e+06 44621.9 1302.93 7.21312e+06 1231.46 6.95098e+06 831394 1.18075e+06 8.15517e+06 3.1983e+07

images

@achamayou achamayou changed the title Disable signed request support Disable signed HTTP request support Mar 23, 2023
tests/governance_js.py Outdated Show resolved Hide resolved
@achamayou
Copy link
Member Author

t_cose does not support passing in custom header parameters [1][2] when signing (nor when verifying, but we can and do re-parse there with QCBOR), which we need for CCF governance.

[1] https://github.com/laurencelundblade/t_cose/blob/master/examples/t_cose_basic_example_ossl.c#L262
[2] laurencelundblade/t_cose#5

@achamayou
Copy link
Member Author

The other problem with the proposal test is that it relies on being able to submit concurrent identical proposals, which is now caught by the replay proposal protection.

@achamayou
Copy link
Member Author

Following discussion with @jumaffre, I am removing the proposal_id_test, because:

  1. Updating create_signed_request to use COSE Sign1 requires substantial changes to t_cose that we don't have time to make now.
  2. Even with this change, the test would not work with the new replay protection functionality (tested separately).
  3. The logic covered by this test uniquely is relatively trivial (History rollback), generic KV conflict functionality is tested separately.

Copy link
Contributor

@jumaffre jumaffre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a changelog entry and I think some warning in the documentation so that this feature doesn't disappear silently (even though we've warned users that this was deprecated!). It's also not clear if users can make use of the new COSE signatures via built-in authentication policies, in both C++ and JS?

@achamayou
Copy link
Member Author

@jumaffre added comments in the doc and changelog. Looking at adding a user COSE Sign1 authentication policy, but probably in a separate PR.

@achamayou achamayou requested a review from jumaffre April 17, 2023 13:25
@achamayou achamayou merged commit 5b1c504 into microsoft:main Apr 19, 2023
@achamayou achamayou mentioned this pull request Mar 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants