首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AES密钥管理

AES密钥管理
EN

Security用户
提问于 2013-10-28 22:19:05
回答 1查看 2.7K关注 0票数 3

我在数据库中加密一个秘密。

我是使用AES加密的256位密钥和随机IV每次加密.

他们的AES密钥是硬编码的代码。每个IV被清空地存储在包含密码的行中的另一个字段中。

我如何改进这种加密?我相信我需要加密AES密钥,但我不确定最好的方案。请给我建议。

该秘密由同一组件加密和解密。我需要坚持这个(密码的)秘密。我正在使用C#。

EN

回答 1

Security用户

发布于 2013-10-28 22:46:38

AES密钥在代码中是硬编码的。

这就是问题所在。但是,不,用另一个密钥加密密钥(这将在代码中进行硬编码)并不能显著改善问题。

您必须做的是:写下攻击模型。你做加密是有原因的:你相信某个邪恶的人会试图.具体是什么?这就是攻击模型的要点:定义假定的攻击者可以做什么,以及他想要实现什么。只有使用一个明确定义的攻击模型,您才能开始考虑哪些安全算法和协议将对您有所帮助。

例如,加密是一个很好的保密工具:攻击者希望读取一些数据,但您不希望他成功。加密并不能解决机密性问题,它只是集中了一个问题:通过加密,数据保密问题变成了密钥保密问题。由于密钥较短,这可能(或不可能)使问题更容易处理。一个重要的问题是决定谁应该能够访问数据。

简而言之:如果数据应该在攻击者的机器上解密(例如,攻击者是用户,并且您希望阻止他访问原始数据,作为某种许可或DRM方案的一部分),那么,坦率地说,您就输了。您不能可靠和一贯地阻止某人访问自己硬件上的数据。这是因为逆向工程运行得很好。如果您堆积了加密层(密钥是用另一个密钥加密的,等等,直到初始密钥是硬编码的),您只需增加开发时间和反向工程时间;很可能您比攻击者花费更多的时间。

票数 5
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/44589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档