Padding implementation is not constant-time
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Tranquilla
- Stack tecnologico
- rust
- Ambito
- cryptography, security
Direzione di ricerca
Review this crate's RSA padding-mode implementation alongside the RSA guidance draft and the Marvin Toolkit analysis linked in the issue. Focus on PKCS#1 v1.5 depadding and error handling, then use static analysis and Marvin Toolkit results to verify that the implementation follows constant-time guidance and avoids the reported sidechannels.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
This is a followup to #19, which was originally about the modular exponentiation implementation not being constant-time, and also became our general tracking issue for the subsequent Marvin Attack.
We've gone to great lengths in crypto-bigint to produce the closest thing we can to a constant-time implementation of modular exponentiation, and while we still need to e.g. verify that's truly the case via static analysis tooling, based on the latest analysis from the Marvin Toolkit it seems like the remaining sidechannels in our implementation are probably no longer coming from crypto-bigint, but are instead in this crate's implementation of RSA padding modes.
PKCS#1 v1.5 in particular notably has a long history of sidechannels going back to Bleichenbacher's original 1998 attack, and attacks like Marvin can be seen as an evolution of that attack.
This I-D contains guidance for implementing RSA in constant-time, including things like handling depadding errors using strategies like implicit rejection:
https://datatracker.ietf.org/doc/draft-irtf-cfrg-rsa-guidance/
- Lingua principale
- Rust
- Stelle
- 673
- Fork
- 190
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di RustCrypto/RSA
-
Bump MSRV to 1.89 Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
RustCrypto/RSA#707 · 2 commenti · 1 reazione ·
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 74/100
RustCrypto/RSA#703 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
RustCrypto/RSA#686 · 4 commenti ·
-
`rsa` v0.10 release tracking Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
RustCrypto/RSA#647 · 9 commenti · 1 reazione ·
-
broken rust docs Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
RustCrypto/RSA#641 · 3 reazioni ·
Tutte le issue di RustCrypto/RSA
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
TheLarkInn/aipm#2413 ·
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
todo:ticket
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
taikoxyz/taiko-mono#22168 · 1 commento ·