vb.net – 如何最好地加密/解密SQL Server数据以防止开发人员看到它?

这是一个有趣的问题,我正在寻找一种能让它保持可行的模式.

我正在为学校系统构建智能客户端应用程序.它将包含有关学生的信息,包括他们的成绩单,病假等等.它将生成学生级报告,包括他们的报告卡,每个报告都由老师提供非常个性化的评论.该应用程序将通过Web服务从远程服务器检索数据.

所以这些数据非常机密.我将在数据库中对其进行加密,并在检索时对其进行解密 – 没问题.

问题是我和我的团队应该永远不会看到生产明文数据.然后出现一个有趣的问题来调查生产错误!我们想要打开与用户相同的记录,看看他们看到了什么.但如果我们这样做,我们就会违反保密规定.

我的想法是这样的,并不完美.

>首先,在存储到数据库之前加密数据,在UI上解密.那里什么新鲜事.
>其次,在UI中放置一种机制来混淆特权数据. (即,姓名和教师叙述是特权的;年级不是.)我不会对它进行加密,而是对其进行模糊处理 – 即使是简单的键移也足够了.原因是,这些报告充满了文字.如果我加密段落并在报表中显示结果,它将是一个坚固的大写字符墙,看起来与原始文本完全不同.如果我对字母字符进行键移,那将是不可读的,但仍然看起来像段落,句子,项目符号列表等.在不添加视觉复杂功能的情况下,更容易看出出现了什么问题.
>第三,我提出了一个配置设置来执行此UI混淆,仅适用于SysAdmin角色,而不是教师或SchoolAdmin.在开发过程中,我将此配置设置为False,并针对假明文进行开发.对于生产,我们将其设置为True,从那时起,我们只看到混淆的文本.

最后,对于我们绝对必须看到学生记录的明文的情况,我们在UI中有一个覆盖配置设置的覆盖设置,并显示明文.我们在人力层面管理这一点 – 通知学校管理部门,因为这个原因,我们需要看到这个学生的记录等.签字签字,抱怨的同意,律师们争抢他们的喷气机,冲洗和重复.

思考?我觉得这必须是一个很好的基础.如果可能的话,请帮我改进这个计划.

实际上,您不需要在UI处解密数据. sql Server具有为您进行实时加密的工具.如果有人需要查看明文,他们可能会被放入一个角色,给予他们许可(并在他们完成时取出).

但是,如果看到数据中断了机密性,那么显然您永远无法看到生产数据.唯一的解决方案是使用munged数据或完全随机数据的数据副本.

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...