首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储敏感数据

如何存储敏感数据
EN

Security用户
提问于 2017-03-14 21:12:56
回答 1查看 249关注 0票数 0

我已经做了一个程序,它的感官数据硬编码到它。让我们想象一下,敏感的数据是我在家里的保险箱的密码。

我意识到,在应用程序的源代码中硬编码数据是非常不安全的。如果有人能够侵入我的系统,他/她可以使用十六进制编辑器/调试器来查找该字符串。所以我想出了一个想法,在硬盘上创建一个包含密码的文件,用强大的算法对其进行加密,然后让程序在启动时请求密钥。如果输入正确的键,应用程序将能够解析内容。如果输入了错误的密钥,应用程序将解析垃圾并崩溃,但攻击者无法获得密码。为了确保没有人能拿到那把钥匙,我会把它打印在一张纸上,放在家里。我的主要问题是:

我想使用一种安全的加密算法,同时又有一个相对较小的密钥。到目前为止,我已经看过的algoithms (RSA,AES)使用的是长密钥,在每次启动应用程序时,我都不想输入这些密钥。是否有一个算法能满足我的需要,或者另一个“计划”,它和我的想法一样安全?

PS:我知道,当应用程序在成功引导后将密码加载到内存中时,攻击者可以在那里获得密码。但这是另一天的话题。

EN

回答 1

Security用户

回答已采纳

发布于 2017-03-14 21:29:55

因为您在评论中提到,这是一台远程linux机器,可以通过internet访问。我会用2因素身份验证来设置SSH。

SSH-2FA:https://www.digitalocean.com/community/tutorials/how-to-set-up-multi-factor-authentication-for-ssh-on-ubuntu-14-04示例

另外,你提到它是个人使用的,所以如果他们一开始就能够访问机器,就像你提到的那样,他们可以用密码方法反向工程你的程序,因为他们假设他们可以访问你的机器,他们可以安装某种监控软件/键盘记录器,并捕获密码。

正如dandavis所提到的,可以使用PBKDF2:

"PBKDF2将伪随机函数(如基于哈希的消息验证代码)应用于输入密码或密码以及一个盐值,并多次重复该过程以生成派生密钥,然后在随后的操作中作为密码密钥使用。所增加的计算工作使密码破解变得更加困难,被称为密钥拉伸。“来源:https://en.wikipedia.org/wiki/PBKDF2

但是总的来说,由于它只在您的个人计算机上运行,我将重点关注保护机器本身,然后担心应用程序。设置一些防火墙规则和SSH与2FA将是我的建议。

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

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

复制
相关文章

相似问题

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