我在C#.Net中有一个Windows应用程序,它使用mysql数据库存储数据。 Mysql DB和Windows应用程序位于同一台计算机上。我正在对系统进行安全审核,要求之一是对C#和Mysql之间的所有通信进行加密。我已经实现了openssl并且连接已经加密,但是我还需要加密c#和mysql之间的数据通信。例如,当从c#执行插入查询时,数据包软件(echo mirage)显示明文(带有数据的整个插入查询)可能是我的c#应用程序使用硬代码查询而不是存储过程的原因。如何加密流量?请帮助
答案 0 :(得分:0)
如果您的要求之一是“加密C#和Mysql之间的所有流量”,那么我建议将require_secure_transport
系统变量(在您的MySQL Server上)设置为1。这将防止出现任何不安全的连接完全创建。
您还需要根据this tutorial(在注释中引用)将MySQL服务器配置为使用SSL。
在C#程序中,确保连接字符串中有SslMode=Required
。这将确保C#和MySQL之间的所有流量,包括查询和响应,都经过加密(除了在连接开始时进行的简短的纯文本握手之外)。
完成此操作后,Echo Mirage(或任何网络数据包捕获工具)将无法在网络上读取查询的纯文本。