外行问个数据库存储用明文还是秘文的问题

  • n
    netzerg
    非程序员!
    尝试抄着网上的代码写了个病例数据库,完成了个雏形。
    突然想到安全问题。
    数据都是明文存储在数据库中的,肯定很不安全。但是如果每个内容都加密后再存储,那么使用数据库的查询语句应该就没法直接查询了吧?
    难道要每条记录读取-->解密-->比较?这样也太麻烦了吧。
    我好像也没搜索到简单的解决方法。搜到的都是介绍加密算法的,太深奥了
  • h
    hans_marke
    以前连密码都有用明文的
  • l
    lumi
    用户密码加密而且是加盐的,其它都是明文,金融领域这种安全性高的数据库我没接触过,没法回答,但一般都有开审计。数据库所在的主机安全等级反而更高些
  • n
    netzerg
    回复3#lumi

    因为是病历数据库,牵涉到隐私问题,明文存储怕泄露隐私。
    目前想到的解决方案是涉及姓名、身份证、电话、地址等个人信息的字段进行加密,其他信息就明文存储了。
  • q
    qhy15
    有要求的数据字段 密文存。比如身份信息这种。

    另外数据库数据不能随便看呀,要申请审批才能看到几条,涉密字段申请也看不到。 iSO fly ~
  • f
    funcc
    一般数据都是明文存储。普通人不要有数据库权限就可以了。见过第三方支付机构,手机号,银行卡号,身份证号之类隐私数据,一个值存储到3个字段(星号打码,hash,密文)
  • l
    lumi
    回复4#netzerg

    数据库本身的安全性更重要,要让人没法访问到数据库,加密数据库里的部分很敏感的数据就行了,比如密码。数据库审计功能是好东西,但国内用的不多
  • 河之南
    这个贴子有意思
  • s
    songco
    设计上符合行业要求就行,没必要过度设计……做好审计日志够用了

    另外还是多专注下操作系统安全,数据库系统安全,还有两个系统的访问控制,一般出问题的都是权限控制混乱导致的,有些公司甚至一些大厂都有大家都是生产环境管理员的情况
    iOS fly ~
  • l
    lumi
    csdn数据库以前存的用户名密码都是明文,结果被爆库了,我至今还收着一个几百兆的用户密码文件。所以密码加密并且加盐很重要
  • f
    flyingforce
    你还是相信没有数据库的用户名密码,没有办法查询到数据库内容,来得简单。

    现代数据库系统已经发展了好多年,大多数的数据库应该你把存储内容拿出来,你不启动数据库引擎是没办法看懂那些内容的。更何况有些数据库连文件系统都是自己管理的,你连一般理解上的不通过数据库引擎把内容拿出来都做不到

    仔细看你所想的,“数据明文存在数据库,肯定不安全” 这个想法是不正确的,不安全的是人管理数据库密码的方式,或者数据库权限设置的方式,但是从没听说过信息内容存在数据库后,在没有数据库权限的情况下,内容被泄露了;虽然理论上是做得到的。
  • z
    znm
    本质存储都是明文
    磁盘可以加密,硬盘丢了没事
    传输加密,网络层盗不走
    内容加密也要密码和你访问数据库的密码没区别,泄漏了都一样
    访问上严格限制client ip
    监控访问日志

    大概就这么定义吧 iOS fly ~
  • n
    netzerg
    谢谢以上各位的解答,看来是我想多了。
  • j
    jo123
    若干年前,工行某地的一块存储阵列里的硬盘流出,上面的大量用户数据泄露。后来阵列也引入了硬件加密功能,保证写到盘上的都是密文,就算别人拿到也无法解密。
    数据库存储肯定是明文,否则性能太差,而加密工作交给硬件加密卡,对上层透明。
  • 屋大维
    加密user单独存表,病例无所谓吧iOS fly ~
  • q
    qile
    回复1#netzerg

    网上代码可否分享下,打印是如何实现的,另外加密现在使用的好像比较少
  • 黑桃酒
    我不懂啊 我想问

    如果查询加密数据库

    你把查询的内容也过一次加密过程再查不就行了?反正加密算法是一样的

    查出来后再解密结果查看 这样大数据库还是加密的不就安全了吗
  • n
    netzerg
    回复16#qile

    东抄西抄拼凑的,没有现成整套的代码。没有打印功能
  • n
    netzerg
    回复17#黑桃酒

    这个办法我也想到了,就是有些牵涉到计算的不行
  • l
    lesgle
    可以了解下“同态加密”,高隐私数据,尤其是基因数据等都会利用这种加密形式处理。

    同态加密(英语:Homomorphic encryption)是一种加密形式,它允许人们对密文进行特定形式的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。换言之,这项技术令人们可以在加密的数据中进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密。其意义在于,真正从根本上解决将数据及其操作委托给第三方时的保密问题,例如对于各种云计算的应用。
  • w
    wflove
    病例的隐私保护,楼主可以搜一下HIPAA法案和HIPAA合规
  • f
    flyingforce
    这个复杂度太高了,不是楼主这种业务需求所需要的;简单的加法同态和乘法同态在使用中都得想清楚场景,估计一个用不好就挂了;全同态真的用到数据库上要想不影响性能是不太可能的,而且好像到现在也没有哪个数据库真用了这个
    数据库物理上就在楼主附近的时候,真要解决别人获得了硬盘直接读取数据的问题,就是如楼上所说用硬件加密卡;但是如果要没有密码直接读取数据,得把数据库引擎黑了,这个大多数人都做不了,而能做这个事情的人,估计也没啥可能性去为了楼主的数据干这个
  • i
    ifsn
    21L说得对 按法律法规来处理数据

    存储来说应该算是明文吧 不过也不是说 用记事本打开就能看懂里面的内容那类
  • l
    ljy1005
    国内大多数是md5 所以一定要设置的复杂点
  • n
    netzerg
    参考楼上各位的意见,我觉得需要做好以下几点:
    1,用户权限分级
    2,按权限显示内容
    3,数据库操作记录及审计

    以下两点根据情况再加:
    1,同一个用户账户同时登录限一个
    2,个人隐私相关数据秘文存储
  • i
    iorlkyok
    回复26#netzerg

    安全是一个很大的范围。找个做安全规划的给你讲讲
  • m
    mijuu
    两个事情

    数据库被黑客拖库前的数据安全,这个是内部管理的事情,和加密无关,看谁能接触到数据和密钥,你能向用户展示明文,那必定有内部人员可以获得数据,做好内审是要点。

    数据库被拖库之后的安全,密码可以加盐哈希防止反推明文,其他必要的敏感数据可以存脱敏用于查询,再存密文用于还原,密钥存到非数据库的物理设备或硬件卡,即使单一拖库也无法拿到真实数据。