【问题标题】:Encrypt connection connection string or password (sqlserver CE + app windows phone)加密连接连接字符串或密码(sqlserver CE + app windows phone)
【发布时间】:2012-03-29 17:44:47
【问题描述】:

加密 SQL SErver CE(本地数据库)的连接字符串或 Windows Phone 应用程序的密码连接的最佳方法是什么?因为如果你有纯文本,例如:

"Data Source='isostore:/database.sdf';Password='mypassword';"

如果有人反编译您的应用程序,则很容易受到攻击。

但是,如果我在文件中(存储在隔离存储中)有加密密码,如果有人反编译应用程序,因为他可以看到要解密的代码,也可能容易受到攻击。

另一种方法是使用未存储的密钥进行加密。问题是我不希望用户每次都输入密码或密码才能访问......如果他忘记了他的密码或密钥,则无法访问您的私人数据。

数据库中包含的数据属于基本类型(联系人、任务等)。数据不是高风险或机密...

有什么想法吗?

【问题讨论】:

    标签: windows-phone-7 encryption passwords sql-server-ce connection-string


    【解决方案1】:

    这个最近的问题包含许多有用的建议 - How can I securely embed a static string (key) in C#?

    但是,对于访问本地数据库,我不确定您是否需要这种安全性 - 我认为 WP7 沙盒会保护您的数据库免受其他应用程序的影响。

    【讨论】:

      【解决方案2】:

      如果您将敏感数据存储在手机本地,则始终存在安全风险,有几种方法可以缓解这种情况。

      i) 使用手机内置的ProtectedData.Protect,没有额外的熵数据 - 这将加密数据,用户无需输入任何内容

      ii)再次使用 ProtectedData.Protect 但让用户输入密码并将其用作附加熵值,但正如您所说,如果他们忘记密码,您将无法取回数据

      iii) 将数据存储在基于云的服务中,并让应用根据需要检索详细信息。

      希望这会有所帮助。

      【讨论】:

      • 最后,经过深思熟虑,我决定使用 Protectdata + 附加密钥(选项 ii)
      【解决方案3】:

      在手机上没有密码(即使是模糊形式)的唯一方法是在第一次需要时从远程/网络服务器检索它,然后使用 ProtectedData 类将其存储在设备上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-05
        • 2016-02-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多