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

RSA SIP #35

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

RSA SIP #35

wants to merge 6 commits into from

Conversation

MatheusFranco99
Copy link
Contributor

No description provided.

sips/rsa_network_authentication.md Outdated Show resolved Hide resolved
sips/rsa_network_authentication.md Outdated Show resolved Hide resolved
sips/rsa_network_authentication.md Outdated Show resolved Hide resolved
Copy link
Contributor

@GalRogozinski GalRogozinski left a comment

Choose a reason for hiding this comment

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

another thing that we need to specify is when we we still use BLS. We said that before extrapolating the signature we should check for BLS validity to thrawt attacks

Copy link
Contributor

@GalRogozinski GalRogozinski left a comment

Choose a reason for hiding this comment

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

The most important part is the specification. We need to write that we have a check that the RSA public key is known to the contract (you implied it in other sections but it should be specified).

Also write down which specific padding scheme should be used (PSS) without "or".

When I read the Specification section it sounds more like some preliminary intro to RSA and crypto. This is not the point of this section. In general I don't think this should be in the SIP.

It should be concise and give clear instructions to the implementor. Usually with pseudo-code but not necessarily.
For example in one line you can write that we use a 2048 bits key with PSS. In another line write that we have to be compliant with standards (and link to NIST) and that would be enough.

The following security and design considerations should be thoroughly addressed:

1. Key Length and Security: The security of RSA encryption is highly dependent on the length of the key used. For instance, shorter keys are more vulnerable to brute-force attacks. The [US National Institute of Standard and Technology (NIST)](https://www.nist.gov) approves a minimum of 2048-bit RSA keys. Check the first table of section 1.5 of their [Security Policy](https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp4172.pdf), released in 2023 July, for this reference.
2. Padding Schemes: RSA signatures require the use of padding schemes to ensure security. Poorly implemented or outdated padding schemes can expose the system to padding oracle attacks, where an attacker can gain unauthorized access to encrypted data. Employing secure padding schemes, such as PKCS#1 v1.5 or PSS, is essential to prevent these vulnerabilities.
Copy link
Contributor

Choose a reason for hiding this comment

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

write down which exact specific padding scheme is used

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

@GalRogozinski
Copy link
Contributor

Great!
I am waiting with the merge to give pressure to check the PSS recommendation!

@MatheusFranco99 MatheusFranco99 self-assigned this Feb 1, 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