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

Users' quote verification #972

Merged
merged 14 commits into from
Mar 23, 2020
Merged

Conversation

jumaffre
Copy link
Contributor

Resolves #926

Building on #962, this PR allows application endpoints to verify a quote supplied by an unknown (i.e. not registered in the ccf.users table) client against 1) the client certificate supplied by the TLS connection and 2) a list of trusted enclave measurements, stored in the new ccf.users.code_ids table.

Assuming that clients are running in enclaves, this lets users self-register without going through a full round of governance to add a new user, as long as new users can provide evidence that they are running in a trusted enclave.

Since the solution is very much like the join protocol, I have refactored quoteverification.h (now quote.h as I moved quote generation code from nodestate.h in there too).

The aim is not to test this end-to-end (this would require setting up client enclaves, etc.) but provide the building blocks for app developers to do that.

@jumaffre jumaffre requested a review from a team as a code owner March 20, 2020 16:20
@ghost
Copy link

ghost commented Mar 20, 2020

self_register_users@6209 aka 20200323.18 vs master ewma over 30 builds from 5908 to 6191
images

@codecov-io
Copy link

codecov-io commented Mar 23, 2020

Codecov Report

Merging #972 into master will decrease coverage by 0.10%.
The diff coverage is 20.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #972      +/-   ##
==========================================
- Coverage   68.28%   68.17%   -0.10%     
==========================================
  Files         103      103              
  Lines        8234     8248      +14     
==========================================
+ Hits         5622     5623       +1     
- Misses       2612     2625      +13     
Flag Coverage Δ
#unit_BFT 68.17% <20.00%> (-0.10%) ⬇️
#unit_CFT 68.16% <20.00%> (-0.12%) ⬇️
Impacted Files Coverage Δ
src/enclave/rpccontext.h 85.71% <ø> (ø)
src/node/genesisgen.h 57.76% <0.00%> (ø)
src/node/rpc/memberfrontend.h 65.83% <0.00%> (-1.58%) ⬇️
src/node/networktables.h 100.00% <100.00%> (ø)
src/node/rpc/nodefrontend.h 78.77% <100.00%> (-0.23%) ⬇️
src/tls/verifier.h 91.23% <100.00%> (+0.32%) ⬆️

@jumaffre jumaffre merged commit 101da50 into microsoft:master Mar 23, 2020
eddyashton pushed a commit to eddyashton/CCF that referenced this pull request Mar 24, 2020
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.

Self-registered Users
4 participants