社区
C语言
帖子详情
如何才能防止别人从内存中读取数据
shangzhihaohao
2012-05-22 08:43:47
在做一个需要加密的东西,客户端从服务器接收密钥,先不考虑别人从网络上截取密钥,在客户端接收到密钥后,怎么才能防止他从内从中把密钥读取出来呢?从内从中读取数据都有哪些方法,分别应该怎么防止?
...全文
5470
35
打赏
收藏
如何才能防止别人从内存中读取数据
在做一个需要加密的东西,客户端从服务器接收密钥,先不考虑别人从网络上截取密钥,在客户端接收到密钥后,怎么才能防止他从内从中把密钥读取出来呢?从内从中读取数据都有哪些方法,分别应该怎么防止?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
35 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cgweb
2013-07-09
打赏
举报
回复
在计算机系统系统中对于读入到内存中的数据是无法被加密的,对于服务器而言我们可以使用自动假面的SED硬盘,其中配有加密芯片,它采用了AES128位加密,如果是软件装的是windows 2008可以采用bitlocker加密驱动器,如果采用linux系统可以采用加密文件系统,如果工作站采用了MAC OSX系统可以采用file vault2加密方式,初次意外开可以选用开源的TrueCype加密软件。这都可以延缓数据被破解但无法消除其可能性。
lwhwei
2012-06-03
打赏
举报
回复
加个壳,把代码vm了
像写外挂一样弄不就得了,还要弄啥,没有绝对的安全的
helyna
2012-05-31
打赏
举报
回复
你客户端只要牵扯到解密,那你就没办法了。
无涯大者
2012-05-31
打赏
举报
回复
深层次的技术问题。
ye1320240
2012-05-28
打赏
举报
回复
[Quote=引用 33 楼 的回复:]
客户端收到结果后还要解密
引用 31 楼 的回复:
如果是加密,你为什么不把加密的模块放在服务器那边,客户端就负责接收加密后的结果
[/Quote]
我想问下楼主,你想要保密的数据是什么?是那密钥,还是?
shangzhihaohao
2012-05-26
打赏
举报
回复
引用25楼的话回答你:“就好比家里的大门都要装把锁一样,虽然是防君子不防小人的,但也没人因为锁不是绝对安全的就家里大门不上锁的”
[Quote=引用 32 楼 的回复:]
内存中放密钥没有安全的,楼主不要乱费劲了
[/Quote]
shangzhihaohao
2012-05-26
打赏
举报
回复
客户端收到结果后还要解密
[Quote=引用 31 楼 的回复:]
如果是加密,你为什么不把加密的模块放在服务器那边,客户端就负责接收加密后的结果
[/Quote]
风攸雨
2012-05-26
打赏
举报
回复
内存中放密钥没有安全的,楼主不要乱费劲了
ye1320240
2012-05-25
打赏
举报
回复
如果是加密,你为什么不把加密的模块放在服务器那边,客户端就负责接收加密后的结果
觅食的猫猫
2012-05-24
打赏
举报
回复
你把给他的密码弄成他的电话号码,看他还散布么。
开发者孙小聪
2012-05-24
打赏
举报
回复
哦 原来是这样呀
dj0379
2012-05-24
打赏
举报
回复
补充说一句,就API层或者ring0级别的防护,可以去看雪论坛上搜一下,应该会有合适你的方法,不过矛和盾是相互的,除非你自己程序也不读写数据区,否则暂时是没有方法做到不让别人读取你的数据区的,因为操作系统没有提供区分敌我程序的明显界线。
dj0379
2012-05-24
打赏
举报
回复
软件安全的攻防战本来就没有绝对的安全,不过事情还是需要一步步从不同层面上去做的,就好比家里的大门都要装把锁一样,虽然是防君子不防小人的,但也没人因为锁不是绝对安全的就家里大门不上锁的。
网络层明文传输当然是要不得的,USB KEY也不是绝对安全的,只要有人像做贼,终归还是不安全的。
先看看怎么做好我们能做的措施吧,就内存防其他进程读取思路上,我觉得不是很好,其实你可以做一个类似自己的内存管理的东西,有一个特定的HASH算法来定位内存,然后有一个自己的私有策略动态搬移内存。就像楼上说的,我们应该减少密钥在内存固定区域的停留时间,用完就销毁或者,每次都像去澡堂洗澡时一样租用不同的储物柜。这样增加软件安全的复杂度。
shangzhihaohao
2012-05-23
打赏
举报
回复
我也没想着要绝对安全,只想知道别人常用的一些方法,和我用什么方法应对这些方法就行。
[Quote=引用 11 楼 的回复:]
这个应该没办法。
密码也没有绝对的安全。
只是解密需要花费的时间不同罢了。
如果解密花销的费用大于解开密码所得的费用,大部分的人会放弃解密。
[/Quote]
shangzhihaohao
2012-05-23
打赏
举报
回复
结贴吧,在知网搜几篇论文写个报告上去凑合一下得了。
shangzhihaohao
2012-05-23
打赏
举报
回复
不是不考虑,是考虑过了,不想在这里提出来,实验室主要是搞网络的,所以在网络传输方面了解的多一些。
[Quote=引用 18 楼 的回复:]
哥是搞安全的,给你权威解释吧
楼主不要费劲了,软件算法必然有一段时间密钥是明文存在内存中的,技术手段只能够减少这个存在时间,比如加密后立即请利用过的堆栈
只有硬件加密(加密卡/usbkey等),密钥不出卡才能达到你的要求
软件加密必须默认本地内存的安全性,可以有一些小打小闹的安全增强手段,比如做成驱动,只有内核级进程和超级管理员权限才能访问你的内存之类,但都不能根本解决问题
……
[/Quote]
MSOKD
2012-05-23
打赏
举报
回复
对啊,是什么东西要求这么高
cobra_chen
2012-05-23
打赏
举报
回复
这个应该没办法。
密码也没有绝对的安全。
只是解密需要花费的时间不同罢了。
如果解密花销的费用大于解开密码所得的费用,大部分的人会放弃解密。
自信男孩
2012-05-23
打赏
举报
回复
还是要做一下加密,这样相对安全一些。至于加密的复杂度要看信息的安全度。
AnYidan
2012-05-23
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
其实我并不想做这些事,只是领导觉得别人可以从内从读取密钥很不安全,但是又找不出更好的方案,所以让我写个报告上去,说明一下现在都有什么方式从内存获取密钥,有什么方法可以防止,评估一下安全级别
[/Quote]
香港黑社会群殴是,拿木棒的安全些,还是拿刀的安全些?
加载更多回复(15)
Android客户端与服务器端的json数据交互(内含大量知识点)
Android客户端与服务器端的json数据交互(内含大量知识点),包含文件的上传,文件浏览器等。
linux2.6.1内核源码注释
包含LINUX内核同步、信号、
内存
、调度、文件系统、网络系统、时钟等部分的源码注释。前后历时三年,算是干货。
Android快速开发系列 10个常用工具类 程序源码
代码为博客实例代码,有问题博客留言:http://blog.csdn.net/lmj623565791/article/details/38965311
Android
内存
数据读取与修改/
内存
代码注入/
内存
dump
在Android的逆向时,对
内存
数据的操作主要有三种:
内存
数据读取与修改,
内存
代码注入,
内存
dump。之前对这三种操作的概念比较模糊,因此找了些资料整理如下,加深自己的理解。 修改数据 修改
内存
数据 修改
内存
数据需要在十六进制窗口
中
进行编辑,可先将反汇编窗口与十六进制窗口同步。如下图所示,在反汇编窗口
中
点击鼠标右键弹出菜单,选
中
”Synchroni
【Redis为什么把数据放到
内存
中
,Redis如何进行数据持久化】
Redis为什么把所有数据放到
内存
中
? 因为Redis的定位就是一个
内存
数据库。
内存
的
读取数据
是最快的,如果放到硬盘,磁盘IO的速度势必会严重影响Redis的性能,那就和一般的关系型数据库相比没什么优势可言,而且随着现在
内存
硬件成本的降低,
内存
已经不是问题,性能才是关键,现在硬盘只是成为了一种持久化方案而已。 Redis持久化有什么用? 持久化就是把
内存
的数据写到磁盘
中
去,
防止
服务宕机了
内存
数丢失。 Redis 有那几种持久化方式? Redis提供两种持久机制: RDB (默认)和 AOF机制 RDB :
C语言
70,014
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章