关于数据库:数据加密

关于数据库:数据加密

Data Encryption

存储大量信用卡信息的数据库是我们刚刚完成的系统的必然部分。 我想要的是卡号的最终安全性,由此我们建立了一种加密和解密的机制,但是我们自己无法解密任何给定的卡号。

我所追求的是一种即使在数据库级别也可以保护此信息的方法,因此没有人可以进入并产生一张卡号文件。 其他人如何克服这个问题? 什么是"标准"方法?

至于数据的使用情况,这些链接都是私有和安全的,除了创建记录并对其进行加密之外,不执行卡号的传输,因此我不必担心前端,后端。

好吧,数据库是ORACLE,所以我可以使用PL / SQL和Java。


不乏处理器愿意存储您的CC信息并将其交换为令牌的代币,您可以使用该令牌对存储的号码进行计费。这使您脱离了PCI合规性,但仍允许按需计费。根据需要存储CC的原因,这可能是更好的选择。

大多数公司将其称为"客户档案管理",实际上在费用上是??相当合理的。

我知道的一些提供者(无特定顺序):

  • 授权.NET客户信息管理器
  • TrustCommerce城堡
  • 脑树

除非您是付款处理商,否则您实际上不需要存储任何形式的抄送信息。

查看您的要求,实际上没有太多需要存储抄送信息的情况


不要存储信用卡号,而应存储哈希值。当您需要验证新数字是否与存储的数字匹配时,请对新数字进行哈希处理并将其与存储的哈希进行比较。如果它们匹配,则数字在理论上是相同的。

另外,您可以通过让输入卡号的用户输入密码来加密数据。您可以将其用作加密/解密密钥。

但是,任何有权访问您的数据库和源代码的人(即您和您的团队)都会发现解密该数据很简单(即修改实时代码,以便将输入的所有解密密钥通过电子邮件发送到一次性的Hotmail帐户等)。


如果您因为不想让用户重新输入而存储信用卡信息,则任何形式的散列都将无济于事。

您什么时候需要使用信用卡号?

您可以将信用卡号存储在一个更安全的数据库中,而在主数据库中仅存储足以向用户显示的信息以及对该卡的引用。可以将后端系统锁定得更多,并仅将实际信用卡信息用于订单处理。您可以根据需要通过一些主密码对这些数字进行加密,但是密码必须由获取数字的代码所知道。

是的,您只是解决了一些问题,但是很多安全性更多的是关于减少攻击范围而不是消除攻击范围。如果要消除它,则不要在任何地方存储信用卡号!


对于电子商务类型的用例(例如Amazon 1-Click),您可以使用用户现有的强密码对CC(或密钥)进行加密。 假设您仅存储密码的哈希值,则仅存储用户(或彩虹表),但是必须在每个用户上运行它,并且如果未提供相同的密码,则将不起作用-不仅仅是 1散列相同)可以对其进行解密。

密码更改时,您必须格外小心地重新加密数据,如果他们忘记了密码,数据将毫无价值(并且需要由用户重新输入)-但是,如果付款是由用户发起的 ,那么效果会很好。


如果您使用的是Oracle,则可能对透明数据加密感兴趣。不过,仅提供企业许可证。

Oracle还具有用于加密的实用程序-解密,例如DBMS_OBFUSCATION_TOOLKIT。

对于"标准",您感兴趣的适当标准是PCI DSS标准,该标准描述了需要采取哪些措施来保护敏感的信用卡信息。


我会对称加密(AES)安全的盐化哈希(SHA-256 + salt)。加盐大的盐就足够了,但是如果数据库而不是代码泄漏,那么加密会增加一点额外的费用,届时或其他方式会有彩虹表用于加盐的哈希。当然,将密钥存储在代码中,而不是数据库中。

值得注意的是,没有什么可以保护您免受弯曲的队友的侵害,例如,他们还可以在哈希之前存储日期的副本。您必须妥善保管代码存储库,并对信用卡处理路径中的所有代码进行频繁的代码修订。此外,还应尽量减少从接收数据到对数据进行加密/散列的时间,以确保从内存中清除了存储数据的变量。


知道数据库服务器和语言/平台类型会很有帮助,这样我们可以更具体一些,但是我将研究SHA。


推荐阅读

    linux命令大全数据库?

    linux命令大全数据库?,服务,系统,平台,状态,软件,通用,环境,数据,神州,地址,

    linux上数据库的命令?

    linux上数据库的命令?,服务,系统,信息,地址,命令,密码,工具,管理,数据,单位,

    linux命令dm数据库?

    linux命令dm数据库?,地址,软件,时间,设备,名字,服务,位置,名称,公司,命令,lin

    linux数据库查找命令?

    linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,

    linux数据库同步命令?

    linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,D

    linux建立数据库命令?

    linux建立数据库命令?,软件,系统,工作,数据,密码,工具,数据库,一致,网络,服

    linux命令进数据库?

    linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,

    linux数据库检查命令?

    linux数据库检查命令?,服务,状态,地址,位置,系统,信息,命令,工作,情况,密码,

    linux命令进去数据库?

    linux命令进去数据库?,地址,服务,名字,系统,数据库,工具,基础,工作,管理,网

    linux数据库基础命令?

    linux数据库基础命令?,地址,工作,基础,系统,命令,信息,情况,工具,设备,目录,l

    数据库导出命令linux?

    数据库导出命令linux?,数据,系统,名称,密码,软件,服务,情况,网上,工具,文件,L

    linux数据库删除命令?

    linux数据库删除命令?,软件,服务,产品,名称,系统,不了,地址,管理,电脑,命令,L

    linux数据库操作命令?

    linux数据库操作命令?,信息,系统,网络,地址,分析师,数据,名称,管理,基础,命

    linux连数据库命令?

    linux连数据库命令?,服务,地址,密码,名字,系统,软件,一致,命令,数据库,读法,

    备份数据库命令linux?

    备份数据库命令linux?,服务,网络,备份,数据,工具,设备,系统,一致,数据库,命

    linux登录数据库命令?

    linux登录数据库命令?,地址,系统,名字,服务,软件,标准,灵活,命令,数据库,读

    linux数据库选择命令?

    linux数据库选择命令?,系统,地址,工作,软件,管理,信息,工具,基础,命令,服务,

    linux数据库版本命令?

    linux数据库版本命令?,密码,服务,地址,工具,系统,环境,基础,网络,基础知识,

    linux运行数据库命令?

    linux运行数据库命令?,服务,系统,工作,信息,代码,命令,文件,数据库,下面,目

    linux命令行连数据库?

    linux命令行连数据库?,地址,服务,信息,名字,数据库,密码,网络,一致,软件,系