我绝不是安全期望,并希望在以下场景中提供一些帮助/指针。需要明确的是,这个问题更多的是加密而不是银行细节。
我需要以安全的方式存储英国direct debit details,以便将其发送给付款服务提供商进行标记化。目前我正在使用带有256位密钥的RijndaelManaged和每条信息(帐户名,帐号和排序代码)的唯一IV。该密钥未与此信息一起存储。
我得到的问题,以及排序代码为例,我们知道英国银行分类代码只包含数字,只有6位数字。因此,存在一小部分它们,因此字典可以很容易地包含每一个字典。
如果存储此信息的数据库遭到入侵和转储,解密信息是多么容易,因为IV与每个加密的排序代码一起存储,RijndaelManaged算法是众所周知的,只有999,999排序要检查的代码?
此外,如果攻击者的唯一“未知”是私钥,比如说,他已经知道某个特定的排序代码,是否可以确定私钥?我不相信它可以不做相当多的计算,但我不确定......
我当时认为用随机字符填充排序代码会使解密这些信息变得更难,但是这个填充也需要存储在某处。
答案 0 :(得分:1)
在不知道密钥的情况下无法解密数据。字典攻击是不可能的,因为字典完全取决于密钥。但是,值得注意的是,如果对手获得密钥,他可以解密整个数据库。
没有必要用随机数据填充明文,因为初始化向量基本上是相同的。
但是,存储和处理卡数据有许多重要的要求和规定。不正确地遵守它们可能会使您受到各种法律威胁或其他昂贵的制裁。许多人选择将所有复杂的东西留给支付处理器,而不是冒着风险。