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

Draft 02: More Security Considerations Randomness #26

Closed
kyzer-davis opened this issue Nov 8, 2022 · 4 comments
Closed

Draft 02: More Security Considerations Randomness #26

kyzer-davis opened this issue Nov 8, 2022 · 4 comments

Comments

@kyzer-davis
Copy link
Collaborator

As per Brendan Moran, notes on this will be delivered on the emailer to add to security considerations.

@kyzer-davis
Copy link
Collaborator Author

Possibly add reference that points too:
https://github.com/peteroupc/peteroupc.github.io/blob/master/random.md

@kyzer-davis kyzer-davis changed the title Draft 01: Security Considerations for Running out of Random Draft 02: Security Considerations for Running out of Random Jan 20, 2023
@kyzer-davis kyzer-davis changed the title Draft 02: Security Considerations for Running out of Random Draft 02: More Security Considerations Randomness Jan 31, 2023
kyzer-davis added a commit that referenced this issue Feb 1, 2023
@fabiolimace
Copy link

fabiolimace commented Feb 5, 2023

Perhaps you could use this sentence structure:

Implementations MUST ${verb_phrase} unless explicitly stated otherwise.

We see this structure in some specifications like this paragraph in RFC-4648:

Implementations MUST reject the encoded data if it contains
characters outside the base alphabet when interpreting base-encoded
data, unless the specification referring to this document explicitly
states otherwise.

In this case, a possible instance of this structure is:

Implementations MUST use a cryptographically-secure PRNG unless the documentation explicitly states otherwise.

In other words, if the implementer uses a Xorshift generator, they MUST make that clear in the documentation.

Does that make sense to you?

@kyzer-davis
Copy link
Collaborator Author

kyzer-davis commented Feb 6, 2023

@fabiolimace the problem with using a MUST is there is no alternative and by adding "unless the documentation explicitly states otherwise" it sort of goes against the defined MUST.

SHOULD verbiage allows an alternative assuming you know the risks and have a good reason for doing so. e.g some old machine/library that can only do PRNG and not CSPRNG.

I also don't see any reference to RFC 4648 in our doc? What made you look at that spec?

@fabiolimace
Copy link

fabiolimace commented Feb 8, 2023

I understand. The SHOULD modal allows for an alternative approach.

I think it would be nice if the user of the code could know when the implementation isn't using a PRNG as recommended by the spec, especially when the code is closed and it's not possible to verify this. EDIT: sorry no one would do it.

By the way, I was reading this RFC-4648 and I randomly remembered this issue. Let's forget it. :)

kyzer-davis added a commit that referenced this issue Feb 16, 2023
- Describe Nil/Max UUID in variant table #16
- Further Clarify that non-descript node IDs are the preferred method in distributed UUID Generation #49
- Appendix B, consistent naming #55
- Remove duplicate ABNF from IANA considerations #56
- Monotonic Error Checking missing newline #57
- More Security Considerations Randomness #26
- SHA265 UUID Generation #50
- Expand multiplexed fields within v1 and v6 bit definitions # 43
- Clean up text in UUIDs that Do Not Identify the Host #61
- Revise UUID Generator States section #47
- Expand upon why unix epoch rollover is not a problem #44
- Delete Sample Code Appendix #62
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants