Tôi chỉ đọc bài viết này RSA keys under 1024 bits are blocked và trong phần mềm .NET của tôi, tôi sử dụng rộng rãi các khóa 384bit. Chương trình của tôi vẫn có thể tạo/lưu/đọc các khóa từ MachineKeyStore bằng RSACryptoServiceProvider? Hay tôi buộc phải gửi một bản vá?. Net: Các khóa RSA của tôi vẫn hoạt động sau tháng 8 năm 2012?
Trả lời
Đây là câu trả lời được đề xuất cho câu hỏi được đưa ra trong nhận xét.
Bạn có thể tìm cách sử dụng phương pháp đối xứng để xác thực khách hàng. Tôi giả sử ngay bây giờ bạn đang sử dụng một lược đồ ký RSA điển hình, trong đó một băm tin nhắn được ký bởi một khóa riêng của khách hàng, sau đó nó có thể được xác minh bằng khóa công khai.
Bạn có thể thực hiện trao đổi khóa liên tục và sau đó mã hóa thông báo thông báo bằng khóa đó thay vì khóa không đối xứng. Bạn sẽ vẫn được đảm bảo rằng bất cứ ai đã gửi tin nhắn đều biết khóa bí mật, mặc dù bạn sẽ không có cách nào để xác minh xem thư có được gửi bởi máy khách hay máy chủ (vì cả hai đều biết khóa). Nếu khách hàng thách thức máy chủ trong quá trình xác thực, điều đó sẽ giúp ngăn chặn người đàn ông trong các cuộc tấn công giữa (mặc dù khách hàng sẽ cần phải có khóa công khai của máy chủ được nhúng cục bộ)
Tôi đánh giá cao đề xuất của bạn, nhưng nó không liên quan gì đến câu hỏi ban đầu. Nó sẽ là một nhiệm vụ lớn để thuyết phục tất cả người dùng của tôi nâng cấp trước tháng 8 năm 2012, vì vậy tôi không thay đổi mã hoặc lược đồ mã hóa. Bên cạnh đó, hệ thống là phong nha, giống như email, vì vậy khách hàng không thể lưu trữ một danh sách cố định của khóa công khai, họ phải được chuyển cùng với thông điệp. Sau đó, họ có thể chọn để đưa vào danh sách trắng các khóa nhất định, để bất cứ khi nào họ nhận được một thư khác, có thể yên tâm rằng đó là từ cùng một người gửi như trước đây. – Muis
Nếu giảm thiểu kích thước chữ ký là rất quan trọng, thì RSA kém lựa chọn để bắt đầu. DSA và ECDSA đều tạo ra chữ ký ngắn hơn với sức mạnh lớn hơn nhiều mà RSA. Tuy nhiên, cả DSA hoặc ECDSA sẽ không đạt được tốc độ xác minh chữ ký cho RSA 384.
Nếu bạn phải tiếp tục sử dụng các khóa bạn có thì bạn sẽ phải thay đổi mã để tránh sử dụng các API mã hóa của Microsoft. Bạn có thể sử dụng ví dụ thư viện Bouncycastle C# nếu bạn sử dụng C#. Cuối cùng, bạn có thể khiếu nại với Microsoft về điều này. Tôi nghi ngờ nó sẽ làm tốt nhưng bạn luôn có thể thử.
Khiếu nại chính của tôi là họ đã thông báo điều này chỉ 1 tháng trước khi họ thực hiện thay đổi đột phá này. Tôi có một cơ sở được cài đặt gần nửa triệu người dùng và không có chức năng tự động cập nhật, do đó sẽ không có cách nào để đảm bảo mọi người được nâng cấp trước khi bản vá được truy cập. – Muis
@Joshua Tôi nghe bạn. –
Lưu ý rằng tạo khóa và quan trọng hơn, việc tạo chữ ký nhanh hơn rất nhiều khi sử dụng ECDSA so với khóa RSA có cường độ tương tự. Vì vậy, nó phụ thuộc vào giao thức và tổng số hệ thống có lợi nhất. –
tôi nhận được trả lời từ Microsft (Kurt L Hudson), và bản cập nhật này chỉ ảnh hưởng đến chainbuilding, vì vậy nó có vẻ RSACryptoServiceProvider sẽ tiếp tục hoạt động với keysizes nhỏ sau ngày năm 2012.
Theo bài viết được liên kết, mọi thứ sử dụng chức năng xây dựng chuỗi bị ảnh hưởng, bao gồm SSL và S/MIME (aka CMS). Những người dùng khác có kích thước khóa nhỏ nên kiểm tra giao thức và chức năng nào họ sử dụng. –
- 1. Các vấn đề với IE10 và flexbox - Bản thảo tháng 3 năm 2012 không hoạt động?
- 2. Ngoại lệ sau khi nâng cấp lên tháng 6 năm 2012 SDK
- 3. Mẫu biến thể trong VS 2012 (Visual C++ Tháng 11 năm 2012 CTP)
- 4. iOS: Định dạng ngày - 20 tháng 9 năm 2012
- 5. Aptana 3.1.1 (17 tháng 4 năm 2012) Không theo dõi các thay đổi bằng Git
- 6. Làm thế nào tôi có thể định dạng 07/03/2012 đến ngày 07 tháng 3 năm 2012 trong C#
- 7. .NET có cho tôi số tuần sai trong ngày 29 tháng 12 năm 2008 không?
- 8. Tôi muốn điền năm năm vào danh sách thả xuống bằng javascript và các năm sẽ sau năm hiện tại
- 9. Đường ray - thả xuống (chọn) tháng/năm
- 10. Phân chia các Mảng Ngày dựa trên Tháng hoặc Năm
- 11. Rails 3.2 - haml vs. erb. Haml có nhanh hơn không? (tháng 2 năm 2012)
- 12. Java: Làm thế nào để tôi có được ngày của x ngày trong một tháng (ví dụ: Thứ hai thứ ba trong tháng 2 năm 2012)
- 13. Ảnh Mosaic trong Mathematica: một ví dụ từ năm 2008 không hoạt động trong Mathematica 8
- 14. Kết nối vẫn không hoạt động sau khi đóng
- 15. ngày tháng trước năm 1970
- 16. Các khóa công khai/riêng tư của RSA trong YAML
- 17. sắp xếp theo mmyy (tháng và năm)
- 18. ReSharper không hoạt động đúng trong Visual Studio 2012 chạy trên Windows 8
- 19. tải RSA khóa công khai từ file
- 20. Intellisense trong dự án mvc4 không hoạt động trong năm 2012 chuyên nghiệp?
- 21. Nhưng tại sao DOM của trình duyệt vẫn rất chậm sau 10 năm nỗ lực?
- 22. Apache Velocity vẫn là một dự án đang hoạt động?
- 23. Ký và xác minh RSA với C#, BouncyCastle và khóa RSA đã nhập - Ví dụ về Python hoạt động và mẫu C# mã không hoạt động bên trong
- 24. Chuyển đổi Ngày giờ theo định dạng "ngày 6 tháng 4 năm 2012"
- 25. DateTime.Parse không thành công cho ngày hôm nay (01 tháng 3 năm 2012)! o_0
- 26. Cành: mỗi tháng trong năm
- 27. cách so sánh tháng năm với DateParse
- 28. Có bao nhiêu tháng của tháng người đàn ông thần thoại vẫn được áp dụng?
- 29. nhóm theo mongoose.js tháng, năm sử dụng
- 30. chọn tổng số() nhóm theo năm và tháng?
wow nhờ đã làm cho tôi nhận thấy điều này. – ericosg
Rất có thể bạn sẽ gặp rắc rối (nếu không có bản vá này thì một trong những bản tiếp theo), nhưng mã hiện tại của bạn thiếu sót ở nơi đầu tiên: khóa RSA 384 bit là WEAK và bạn phải cân nhắc cập nhật chúng lên ít nhất 1024 bit ASAP không chờ đợi các bản vá lỗi của Microsoft. –
Bạn có thể mở khóa 384 bit trên máy tính để bàn trong vài ngày. Hoặc đã là tuần. – Wug