MyException - 我的异常网
当前位置:我的异常网» VC/MFC » [讨论] 关于微软Crypt API安全的思考解决方案

[讨论] 关于微软Crypt API安全的思考解决方案(3)

www.MyException.Cn  网友分享于:2013-01-16  浏览:43次


1, 如果你是希望加密一个磁盘里的文件, 或者任何其他类似的静止固定数据, 那么对称加密很适合,以DES为典型,快而且稳。加密完了以后,口令记在脑中,天知地知。

2,如果你是希望加密一条通信链路,那么非对称加密很适合,RSA有着很好的数学基石,但RSA有个问题,速度会比DES慢些,所以,变态的方法可以搞RSA,DES混合使用。注意,这时候,RSA只帮你做到数据在网络传输的过程中避免窃听而已。

3, 加密算法归算法,钥匙归钥匙,两者千万不能混为一谈。无论任何公司,他的算法都可以写在纸上给你慢慢看,你可以慢慢研究,爱怎么跟踪就怎么跟踪。没有任何公司对这些算法的保密感兴趣。然而,钥匙一定是高度保密的。如果有任何天才上司希望你搞一个算法,别人不知就你们知,从而完成加密工作,你头脑一定要清晰:这算法的本身就是钥匙或者钥匙的一部分,而这种想法一看就是小白级。

4,任何把钥匙静态地存在算法执行的机器上的企图都是浪费时间,任何程序都可以跟踪,所以,无论你以什么形式,怎么样去加密你的钥匙,有限此的加密钥匙最后必然归结为最后一根钥匙的安全问题。

5,进程之间的安全问题属于操作系统的问题,千万不要跟加密本身混为一谈。一个普通进程是无法查看另外一个进程的内存,除了操作系统一级。所以,你用c语言随便搞个指针乱指,那个内存要么是相对位置,要么根本就无权访问。

6,防止一个进程越权访问另一个进程里的私有数据,这是操作系统的事,上帝的归上帝,凯撒的归凯撒,别在加密上打主意,是另外一个问题。实际上,进程启动以后,才把钥匙放在内存中,关机以后就挥发掉,这是比较稳妥的办法,这就是基于以上的假定。可惜就这么简单的原理,我怎么说,单位那些天才就是想不明白。

我这做了c版的对称和非对称的加密算法,谁要需要就连我拿即可。QQ:15011768
------解决方案--------------------
我想你把事情想的太简单了。

------解决方案--------------------
值得学习。40、42、55楼都说得相当好,不过55楼说的有点深奥,我这小白级的没怎么搞明白。呵呵。
------解决方案--------------------
40楼说的不错.你的程序(或者系统)里的加密算法只能保证加密以后的数据的安全,加密之前的安全是另一个级别或层次的问题.
运行你的程序的计算机不安全,或者运行你的系统的系统不安全,或者使用系统的操作方法或者制度不安全,都是影响到系统的安全性的更重要的因素.
------解决方案--------------------
简单点解释, 假如它能hook到你的加密用的API,他根本无需解密,因为这意味着他可以直接拿到你加密前的明文..
------解决方案--------------------
探讨
朋友, 也许你混淆了几个问题, 而这几个问题通常在安全一类的需求中偏偏很容易被混淆, 我试图梳理一下,将其分解为原始子问题, 看看能否说明白:

1, 如果你是希望加密一个磁盘里的文件, 或者任何其他类似的静止固定数据, 那么对称加密很适合,以DES为典型,快而且稳。加密完了以后,口令记在脑中,天知地知。

2,如果你是希望加密一条通信链路,那么非对称加密很适合,RSA有着很好的数学基石,但RSA有个问题,速度会比DES慢…

------解决方案--------------------
我说他想的太简单了,就是因为有的机器你是没有机会hook的。

还有,越是公开的算法越难破解。

------解决方案--------------------
加密只能保证网络传输安全。在别人控制了你的电脑的情况下,加密是毫无用处的,别人有大把手段可以得到你的密码,比如键盘hook等。所以网络传输做的安全容易,因为有现成的加密算法;但是最怕的就是别人在你电脑上安木马,这样你的安全就从源头上出现了问题。
------解决方案--------------------
62楼的朋友, 我不认同所谓反调试就是终极解决办法. 如果将程序的运行视为对于给定的输入,在有限时间内给出输出, 那么经反调试保护的程序也可以视为一个具有某种输入输出特性的黑合. 敌人需要的不是程序的逻辑的细节, 可能需要的是把这个黑合提炼出来归己所用. 所以, 从某个角度来看, 即使是反调试, 也是一条马其顿防线.
因为这是一个难以完美解决的问题, 我只能交给操作系统和编译系统, 而外部的攻击往往是由操作系统完成防御.
而现实应用中, 假定破坏是来自内部,防的往往是自己人, 这的确是一个棘手的难题.
------解决方案--------------------
62楼的朋友, 我不认同所谓反调试就是终极解决办法. 如果将程序的运行视为对于给定的输入,在有限时间内给出输出, 那么经反调试保护的程序也可以视为一个具有某种输入输出特性的黑合. 敌人需要的不是程序的逻辑的细节, 可能需要的是把这个黑合提炼出来归己所用. 所以, 从某个角度来看, 即使是反调试, 也是一条马其顿防线.
因为这是一个难以完美解决的问题, 我只能交给操作系统和编译系统, 而外部的攻击往往是由操作系统完成防御.
而现实应用中, 假定破坏是来自内部,防的往往是自己人, 这的确是一个棘手的难题.
------解决方案--------------------
的确可以确解API之类的加密,而且有时连HOOK也不用,直接自己写一个Advapi32.dll,把想要拦截的API自己写一些处理代码,冒充原来的API,放到你的应用程序下面,
什么密钥之类的东东还不是手到擒来.
------解决方案--------------------
加强HOOK API的检查,比如调用前对IAT进行检查、对API的代码段进行校验(检测Inline HOOK)

这是楼主项目里成本比较小的改变了。

------解决方案--------------------
探讨
用openssl
静态链接

------解决方案--------------------
探讨
40 41 其余一些扯远了吧

------解决方案--------------------
探讨
62楼的朋友, 我不认同所谓反调试就是终极解决办法. 如果将程序的运行视为对于给定的输入,在有限时间内给出输出, 那么经反调试保护的程序也可以视为一个具有某种输入输出特性的黑合. 敌人需要的不是程序的逻辑的细节, 可能需要的是把这个黑合提炼出来归己所用. 所以, 从某个角度来看, 即使是反调试, 也是一条马其顿防线.

文章评论

我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
 程序员的样子
程序员的样子
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
我的丈夫是个程序员
我的丈夫是个程序员
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员的鄙视链
程序员的鄙视链
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
总结2014中国互联网十大段子
总结2014中国互联网十大段子
那些争议最大的编程观点
那些争议最大的编程观点
程序员都该阅读的书
程序员都该阅读的书
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
如何成为一名黑客
如何成为一名黑客
10个调试和排错的小建议
10个调试和排错的小建议
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
编程语言是女人
编程语言是女人
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员必看的十大电影
程序员必看的十大电影
老程序员的下场
老程序员的下场
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
为什么程序员都是夜猫子
为什么程序员都是夜猫子
每天工作4小时的程序员
每天工作4小时的程序员
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
一个程序员的时间管理
一个程序员的时间管理
代码女神横空出世
代码女神横空出世
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
Java程序员必看电影
Java程序员必看电影
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
漫画:程序员的工作
漫画:程序员的工作
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
我是如何打败拖延症的
我是如何打败拖延症的
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有