Dan*_*son 4 password-protection
我正在研究一个与许多外部系统API交互的系统:s.他们中的大多数都需要某种身份验证.为了便于使用,有一个"应用程序可以访问"的AppConfig,它存储配置信息以及外部系统的凭据.
我的问题是,将用户名和密码(以明文形式)存储到应用程序配置文件中的外部系统是不是一个坏主意.如果是这样,你怎么避免它?
要访问配置文件,您必须危及服务器的文件系统或其他服务器(当然还有任何开发人员的系统)上的git存储库.我一直在考虑加密配置文件中的密码不会增加安全级别,因为加密密钥也必须存储在某个地方.我错了吗?
我非常感谢您解释如何解决这个问题的答案.
解
好的,所以这是我的最终解决方案.我使用OpenSSL创建了一个简单的库来加密和解密我的敏感数据.加载配置时,将从用户检索密钥,但在存储在文件中的生产服务器上除外.它仍然不是最佳解决方案,但它比我以前的"解决方案"更好.
谢谢您的回答.我会接受韦恩的回答,因为它是最有用的.
良好的安全性很难.
正如布鲁斯施奈尔所说,"安全是一种权衡." 您必须决定您希望获得此信息的安全程度,以及您希望花多少时间来保护所述信息.而且你绝对不想让密码只是以纯文本形式放在那里,这是一个禁忌.如果您处于可以接受用户身份验证的情况.
尽管安全性很难,但您可以做一些事情.
1)使用某种类型的编译程序进行加密/解密.您不希望有人打开Python/perl脚本并说"啊哈,这只是一个简单的XYZ加密",尽管理想情况下您不需要简单的加密.
2)通过默默无闻的安全不是真正的安全,但它可以帮助对抗随意的窥探.例如,命名文件"passwords.txt"并不是一个非常好的主意,但加密密码然后使用隐写术来隐藏用户/传递某些图像文件会更好.
3)查找强大的加密/解密算法.其中一些已经在大多数语言中实现,您只需导入一个库.这可能是坏的或好的,取决于你认为你想要这些东西的安全性.
但老实说,这个系统真的很糟糕 - 安全明智.理想情况下,你有一个双方认证,然后信任的中间人做所有的转动和交易.例如,当您登录计算机时,您告诉计算机您是授权用户.从那里你可以运行你的所有程序,他们不会询问或关心你的用户/通行证组合 - 只是你是一个授权用户.他们从操作系统(中间人)那里获得这些信息.哎呀,甚至SO使用openID来决定你是一个值得信赖的用户 - 他们不关心你在其他网站上的凭据是什么,只是其他网站说"是的,这是一个有效的用户".
如果您有选项,我会认真考虑切换您的身份验证模型.如果没有,祝你好运.
| 归档时间: |
|
| 查看次数: |
2399 次 |
| 最近记录: |