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

EDN D2S Review AIs #10262

Closed
12 tasks done
mwbranstad opened this issue Jan 21, 2022 · 15 comments · Fixed by #10486
Closed
12 tasks done

EDN D2S Review AIs #10262

mwbranstad opened this issue Jan 21, 2022 · 15 comments · Fixed by #10486

Comments

@mwbranstad
Copy link
Contributor

mwbranstad commented Jan 21, 2022

@tjaychen
Copy link

which mubi signals did you guys have in mind? If it's the lc sync ones those are already covered.
If it's the software configuration bits, I don't really think there's a need.
If it's the OTP allow read bits I also don't think there is a need since that will be double gated by a required software exploit.

Good point on adding the note for the security notes, but I think for the FIPS stuff, I'm pretty sure we determined LONG ago all the masking modules can live without it. And OTBN already has split random bus (with the implication that the high quality ones must be FIPS).

@msfschaffner
Copy link
Contributor

msfschaffner commented Jan 22, 2022

Oh so for the MUBI item above I just wanted to double check whether the prim_mubi*_sync and prim_lc_sync modules have sec buffers to create the buffered copies.

If they do, @mwbranstad could use a combinational version (no sync flop) of prim_mubi*_sync to create multiple MUBI copies and consume them in several places using the decode function.
This should obviate the need to do any additional manual buffering of a single decoded bit.

As it looks right now, I believe prim_lc_sync uses sec buffers:

prim_sec_anchor_buf u_prim_buf (
.in_i(lc_en[k]),
.out_o(lc_en_out[k])
);
end

But prim_mubi*_sync does not:

prim_buf u_prim_buf (
.in_i(mubi[k]),
.out_o(mubi_out[k])
);

Should we align this?

@tjaychen
Copy link

i actually purposefully left sec_anchor_buf outside of mubi_sync. I don't think all mubi_sync qualify as critical nets we have to bury. So if we go down that route I think that would be too many. The life cycle broadcast signals are a category of their own, that's why I buried them into prim_lc_sync directly.

We can make a reasonable argument that all mubi should fall into this category, but I was a bit concerned it would become too many and should be dealt with on a case by case basis.

@msfschaffner
Copy link
Contributor

Yeah that is a good point and the occurences within CSRNG probably fall into this category as you mentioned above.

That being said, I think there may still be value in using prim_mubi*_sync to create multiple copies if there are multiple endpoints, in order to ensure these all use separate decoders. WDYT?

@tjaychen
Copy link

tjaychen commented Jan 22, 2022 via email

@msfschaffner
Copy link
Contributor

Indeed, that is the reason.

@mwbranstad, this means that you can go ahead with the solution we had discussed in the meeting today that uses the prim_mubi*_sync (with async parameter set to 0) to generate copies of the MUBI and then consume the copies at the individual endpoints using individual decode function calls.

@mwbranstad
Copy link
Contributor Author

Thanks @msfschaffner and @tjaychen for precise clarification on this point.

@mwbranstad
Copy link
Contributor Author

@cdgori chris, can you confirm the last two checklist items, then check them off?

@cdgori
Copy link

cdgori commented Jan 28, 2022

@cdgori chris, can you confirm the last two checklist items, then check them off?

I added the missing countermeasure and aligned the entire spreadsheet with the HJSON, so those 2 tasks are complete.

I can't edit your comment to check the boxes though (?)

@mwbranstad
Copy link
Contributor Author

@msfschaffner all the boxes are checked now. Should we close this issue, or are there some additional steps to do before that happens in the security review flow?

mwbranstad added a commit to mwbranstad/opentitan that referenced this issue Jan 31, 2022
Approval of this PR will close all related review issues and signify
that entropy_src, csrng, and edn blocks have completed D2S checkpoints.
Closes lowRISC#10095.
Closes lowRISC#10096.
Closes lowRISC#10262.

Signed-off-by: Mark Branstad <[email protected]>
@msfschaffner
Copy link
Contributor

@mwbranstad same comment as on #10096 (comment), number 3). Also, some of the links above seem to be broken.

@mwbranstad
Copy link
Contributor Author

Fixed broken links.

@msfschaffner
Copy link
Contributor

Thanks for fixing them @mwbranstad. Just noting here that it seems interesting to see several mentions of #10132 which does not touch any of the EDN files... did you perchance paste the wrong reference?

@mwbranstad
Copy link
Contributor Author

yes, the links were indeed wrong, and have now been corrected.

@msfschaffner
Copy link
Contributor

Thanks for correcting them.
It looks like we've addressed all EDN items then (waiting to close this via the D2S PR).

msfschaffner pushed a commit to mwbranstad/opentitan that referenced this issue Feb 4, 2022
Approval of this PR will close all related review issues and signify
that entropy_src, csrng, and edn blocks have completed D2S checkpoints.
Closes lowRISC#10095.
Closes lowRISC#10096.
Closes lowRISC#10262.

Signed-off-by: Mark Branstad <[email protected]>
msfschaffner pushed a commit to mwbranstad/opentitan that referenced this issue Feb 4, 2022
Approval of this PR will close all related review issues and signify
that entropy_src, csrng, and edn blocks have completed D2S checkpoints.
Closes lowRISC#10095.
Closes lowRISC#10096.
Closes lowRISC#10262.

Signed-off-by: Mark Branstad <[email protected]>
Signed-off-by: Michael Schaffner <[email protected]>
msfschaffner pushed a commit that referenced this issue Feb 7, 2022
Approval of this PR will close all related review issues and signify
that entropy_src, csrng, and edn blocks have completed D2S checkpoints.
Closes #10095.
Closes #10096.
Closes #10262.

Signed-off-by: Mark Branstad <[email protected]>
Signed-off-by: Michael Schaffner <[email protected]>
luismarques pushed a commit to luismarques/opentitan that referenced this issue Feb 9, 2022
Approval of this PR will close all related review issues and signify
that entropy_src, csrng, and edn blocks have completed D2S checkpoints.
Closes lowRISC#10095.
Closes lowRISC#10096.
Closes lowRISC#10262.

Signed-off-by: Mark Branstad <[email protected]>
Signed-off-by: Michael Schaffner <[email protected]>
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 a pull request may close this issue.

8 participants