Padding implementation is not constant-time
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- rust
- Lĩnh vực
- cryptography, security
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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/
- Ngôn ngữ chính
- Rust
- Star
- 673
- Fork
- 190
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của RustCrypto/RSA
-
Bump MSRV to 1.89 Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
RustCrypto/RSA#707 · 2 bình luận · 1 reaction ·
-
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 74/100
RustCrypto/RSA#703 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
RustCrypto/RSA#686 · 4 bình luận ·
-
`rsa` v0.10 release tracking Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
RustCrypto/RSA#647 · 9 bình luận · 1 reaction ·
-
broken rust docs Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
RustCrypto/RSA#641 · 3 reaction ·
Tất cả issue của RustCrypto/RSA
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
TheLarkInn/aipm#2413 ·
-
documentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
todo:ticket
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
taikoxyz/taiko-mono#22168 · 1 bình luận ·