【发布时间】:2017-02-17 23:32:03
【问题描述】:
我继承了一个与 Facebook 集成的 Rails 应用程序,并对从 Facebook 发送的令牌进行加密,并将其保存为用户的身份验证令牌。
由于各种原因,我最终更新了我的 Ruby,并且发生了一些 Gemfile 更改,导致应用出现问题。最重要的是对attr_encrypted 的更改,它通过encrypted gem 处理保存到数据库中的Facebook 令牌的加密。
问题在于,该应用程序已经上线并且已经有很多用户,其基本秘密加密密钥对于新更新的attr_encrypted 的安全标准来说太短了。具体来说,当我现在尝试加密令牌时(目前在测试中;我还没有实时推送这些更改),会抛出一个错误,指出密钥需要为 32 个字节。
问题:
有没有人建议更新到更安全的令牌?如果我更改令牌,我假设这将破坏令牌的解密,因此我可能会永久失去读取/使用数据库中所有用户身份令牌的能力。这显然很成问题,所以我想在这里仔细检查一下我的想法。
我目前的想法是迁移:运行一个遍历每个身份的迁移,使用我的旧密钥解密存储的令牌,然后使用更长的新密钥保存新加密的令牌。
然后我可以毫无问题地摆脱旧密钥。对?关于attr_encrypted gem 的特殊性或我可能没有考虑到的一般加密问题,任何人都可以想到的任何问题?
【问题讨论】:
-
那么,什么是旧版本,什么是新版本?
标签: ruby-on-rails encryption attr-encrypted