吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 1331|回复: 4

[知识手册] 【RSA的无法解密性理解及其应用】

[复制链接]
书香 发表于 2025-3-18 20:53 | 显示全部楼层 |阅读模式

RSA算法大家可能听说过,另外一种就是RC4

大家通过互联网搜索RSA和RC4算法,看到文章中最多的一句话应该就是RSA算法很安全,无法被破解,然后就是一大推的推导公式,RC4则说不安全,容易被暴力破解
因此,这会让很多人有一个误区,那是不是我只要用了RSA,我的数据就是安全的,结果用了以后发现没用啊,自己的数据还是被破译了,这和网上说的不一样
网上说RSA算法无法被破解,自己用了数据却被解密出来了,哪些帖子还举了很多例子(比如某某大学科研团队尝试破解最终失败)证明,还说RSA曾经作为机密被封存直到多久才被公开,难道所有关于RSA文章的介绍都是在乱说?我们这节课就是要来阐述一下这个问题

关键技术解释(后文会用到)
hook(ip转向、驱动转向等):当a向b发送数据的时候,可以在发送时拦截下来,然后由自己任意修改,再转发给b

RC4(对称加密,对称指的是信息对等,加密和解密用的是同一个密码)
RC4使用1组密码对数据进行加密,也就是加密和解密使用的是相同的密码
这个密码有2种方式可以知道
1:暴力破解,就是1个个测试,用计算机去跑
2:通过每一次运算的结果进行猜测,大多数的数据都是有规律的,比如账号=123&密码=456,这里的账号=和密码=是固定开头,然后可以通过每一次运算的结果去猜出密码
3:内存od等方式读取,你本地肯定是要解密的,可以通过逆向工具找出这个密码,这并不难

RC4的破解现在甚至已经诞生出专业工具了

比如服务器和客户端之间采用RC4加密,首先RC4的运算规则是公开的,你现在又拿到了这个密码,那么你可以干一件大事,你可以自己写一个单独的程序,然后与服务器进行通信,从而实现欺骗服务器的作用

例子:
聊天工具使用RC4加密,当这个聊天工具发布到市场上的时候,就开始被黑客盯上了,黑客先在使用者的设备上安装hook程序,使用该聊天工具的用户a给用户b发了一个收款码,kook程序监控到以后,直接将该收款码换成黑客的,由于知道RC4的密码,那么服务器是会正常解密出这个收款码数据的,这个时候用户b收到的就是黑客的收款码了,这无疑是很可怕的

RSA(RSA加密,对称指的是信息不对等,加密和解密用的不是同一个密码)
RSA使用2组密码来对数据进行加解密,其中一组叫公钥(意思就是公开的,不怕黑客知道,直接打名牌),另外一组叫私钥(相当于RC4的加密密码),一个数据使用公钥加密后就只能使用私钥解密,如果使用私钥加密那就只能使用公钥解密
你无法使用公钥加密又使用公钥解密,你也无法使用私钥加密又使用私钥解密

例子:
聊天工具使用RSA加密,当这个聊天工具发布到市场上的时候,就开始被黑客盯上了,黑客先在使用者的设备上安装hook程序,使用该聊天工具的用户a给用户b发了一个收款码,kook程序监控到以后,拿到了发送给服务器的这个加密数据,也可以通过破解方式得到这个加密密码,但是这个加密密码只能用于加密,不能用于解密,解密的秘钥在服务器

重点:
听到这里,可能有些人认为有点道理,但是有一个疑问,这个发送给服务器的加密数据是本地计算的吧,YES,加密方式在本地吧,YES,那么直接修改本地的这个程序,在他发包之前我就修改数据,让这个本地的程序帮我封包不就可以了吗,你的思路是正确的,但这与RSA的强大没有关系

RSA算法的目的是防止数据在传输的过程中被篡改,而不是防止数据在计算的时候被篡改
我们与服务器进行数据通讯的时候,实际上是存在第3方程序的,你可以理解成将数据提交给这个第3方程序进行发送(wininet方式与winhttp方式),这里我们不进行过多的阐述,对于这个第3方程序的拦截修改是比较容易的

(大家要记住一句话,很重要,数据传输是由多个步骤共同完成的,这句话是关键,有利于你理解下面的内容)

总结:
你没有使用RSA算法等非对称算法,人家只要拿到你这个密码就可以对你的数据改改改了,你使用了RSA算法,破解者一定要看你的程序,分析出这个数据包有多少个成员
例子:
游戏发包使用RC4算法,只要拿到了这个密码,直接部署hook系统,直接解密出明文修改,游戏更新了也能在解密的数据中一眼知道更新了什么,封包简单


游戏使用了RSA算法,只能去分析这个游戏封包时包里面包含了哪些成员属性(金币,伤害,防御等),一个一个找,那属性如果几千上万个,那一个个找地址直接无语了,最重要的是一旦游戏更新,你可能又要找一次

两种不同的加密算法,要使用两种难度截然不同的破解方式

结语:网络通讯是由多个步骤完成的,RSA保证的是在传输过程中的不可篡改性,其他步骤由其他环节的技术来解决(比如VMP,SE等加壳工具是保护内存数据的不可篡改性)

问题1:你用了RSA算法,为什么数据被破解者拿到了?
其他环节没做好,不是在传输过程中被解密出来的


问题2:什么时候需要使用RSA算法,有必要使用吗?
尽量使用,你不能说破解者反正可以在其他步骤拿到你的数据,你传输过程就不弄了吧,那建议都别弄了,直接免费。。。

问题3:RSA的不可破解性到底指的是什么?
RSA的不可破解性指的是你只知道加密的结果和加密的密码,无法知道加密的内容,你只能使用od等汇编工具查看程序代码(汇编代码)才能知道加密了什么


问题4:还是不太懂,能不能说个我可能遇到的例子
比如你写了个程序,登录的时候会绑定机器码,提交给服务器的数据为:账号=111&密码的=222&机器码=333,这个机器码333每台设备取出来的不一样,现在破解者弄出一个hook程序,不管你哪台设备登录,反正提交的都是账号=111&密码的=222&机器码=333,也就是一张卡几百人用,你的加壳直接等于没加(根本用不上),可能你的壳还花了几千块,但是直接没用上,你气不气,然后你大概率会把责任归咎给壳(什么垃圾玩意,加了被秒破),壳表示自己也很无语,壳保护的是数据加密运算不被修改,你传输被修改它能咋办?

问题5:感觉哪里不对,RSA知道算法,知道密码不可以解密,RC4知道算法,知道密码可以解密,那自定义一个算法不也可以实现和RSA相同的效果?
这个问题问的非常好,RSA是保证传输过程中的不可解密性,前提是人家不分析程序,那么自定义一个算法,人家连解密规则都不知道,那不是更加安全?
RSA是能几乎100%保证传输过程的安全性(为什么说是几乎100%,因为量子计算机以后可能会解密成功,这是一个数学问题),但是不代表RSA在本地毫无作用

数学概念:
次方:一个数的次方表示多少个这个数相乘,2的3次方=2^3=2*2*2=8
质数:只能被1和自身整除的正整数,且大于1,5只能写成1*5,所以5是质数,6可以写成2*3,所以6不是质数
公约数:两个数除以这个公约数,还能得到2个整数,比如8/2=4,6/2=3,那么2就是公约数
最大公约数:12/4=3,12/2=6,16/4=4,16/2=8,4和2都是12与14的公约数,4是最大公约数
互质:两个正整数的最大公约数为1,则它们互质。
模运算:一种整数运算,其结果是被除数除以除数后的余数,符号mod,35/8=4+余数3,所以35 mod 8 =3

欧拉函数φ(n):表示小于n且与n互质的正整数的个数。


说人话就是RSA算法是利用上述概念算出来的,从数学角度已经证明了这种框架是目前算力最大的,配合上加壳软件后,会使得分析变得更复杂
也就是你使用的是自定义算法,我使用的是RSA,那么我们的软件同时加壳后,我的算力会更大,所以还是有区别的,但是你的如果是基于RSA的变体自定义,当然你的更牛逼


问题5:书香都是用RSA吗?
没有吧,我哪个修bug简单用哪个,因为RSA相对会更消耗服务器性能,这个看个人习惯

问题5:大概听懂了,能不能讲一下为什么RSA可以有2对密码,加密密码能加密不能解密?
这个大家可以百度RSA的运算原理,不过我估计大多数人看不懂,但是大家可以挑战下

问题5:一个RSA算法都这么复杂,好多都听不懂,学编程还要懂数学?
学编程不一定要懂数学,但是你的数学能力决定你的上限,如果你不懂数学,很多时候就只能找规律
目前编程里用到的数学知识:
基础数学运算:+ - * /
求模运算:35 mod 8 = 3
次方:几个几去相乘
基本会这些就行了,大多数软件都能写


高阶的:
娱乐棋牌:概率论,数理统计
矩阵:很多人写辅助小工具都听过矩阵,这个是线性代数里面的知识


总结:我觉得学编程和数学有关系,但不难,比如你要修改一个矩阵,你知道算法改哪里就行了,又不要你考试,你想写棋牌,知道如何去打乱成员再匹配概率就行了,也就是说你学编程对于数学的要求是你能看懂参考答案就行了

(点击返回课程目录https://www.52hb.com/thread-58658-1-1.html






吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
cunzhang2016 发表于 2025-3-18 21:05 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
小屁崽子 发表于 2025-3-19 08:15 | 显示全部楼层

没有绝对的安全。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
学编程的闹钟 发表于 2025-3-19 13:48 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
渣渣行 发表于 2025-4-9 13:44 | 显示全部楼层

谢谢分享,赚HB
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表