Tôi có câu hỏi liên quan đến C#.Tháo C#
Tôi hiện đang làm việc trên một sản phẩm phần mềm y tế và một trong những điều quan trọng là đảm bảo rằng dữ liệu của bệnh nhân được mã hóa. Tôi có hai câu hỏi liên quan đến điều này:
1.) Bảo mật của Microsoft .NET thực hiện AES (Rijndael) từ System.Security.Cryptography như thế nào? Liệu nó có bất kỳ lỗi bảo mật được biết đến, hoặc tôi tốt chỉ bằng cách sử dụng thực hiện MS? (lưu ý, tôi biết nền tảng cơ bản về cách các thuật toán này hoạt động, nhưng tôi không thực sự sâu vào nó để có được một ý tưởng về cách thức hoạt động của nó).
2.) Vì dữ liệu được lưu trữ trên cùng một máy tính như ứng dụng, làm cách nào để nhận thông tin từ ứng dụng C#? Giả sử tôi đã ở đâu đó trong các mã
string encrypPassword = "ThisIsMyPassword";
string encryptedString = EncryptString(ClearString, encrypPassword);
// save encryptedString to harddrive
Tôi biết rằng kẻ tấn công chỉ có thể đi xuống mã lắp ráp, và tại thời điểm đó không có gì là tất cả những gì có thể làm chống lại điều này (hệ thống có để có thể mã hóa/giải mã dữ liệu), nhưng có giống như một phím tắt cho C# để lấy encrypPassword, vì nó được quản lý hay không, điều gì đó vẫn yêu cầu bạn đi xuống mã lắp ráp?
bản sao có thể có của [Cách lưu trữ khóa mã hóa một cách an toàn trong một hội đồng .NET] (http://stackoverflow.com/questions/2528405/how-to-safely-store-encryption-key-in-a-net- lắp ráp) – Rawling
Điểm 2) là vấn đề chính của bạn, đừng lo lắng về 1). –
Bạn có thể xem DPAPI, xem ví dụ: http://stackoverflow.com/q/5620028/60761 –