iX8NEGGn

iX8NEGGn

V2EX 第 474770 号会员,加入于 2020-03-07 02:12:24 +08:00
今日活跃度排名 13314
根据 iX8NEGGn 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
iX8NEGGn 最近回复了
这不是操作系统提供的吧,取决于软件是否提供分词功能
#11 ,理解正确。

不过我有一句话少打了一个“不”字,应该是:“公钥和私钥是为了确保上面说的公开参数 p 、g 、A 、B 不被中间人两边冒充。(使用私钥、公钥对它们进行签名和验签)”。

以及信任本机本地证书后,中间人欺骗两端替换掉 A 、B 时,可以选择替换成同一个数,这样两个预主密钥就是相同的,只有一个预主密钥。
“两边的随机数虽然会变,但开始交互随机数的时候报文还是未加密的,我理解是可以拿到”
随机数就上面说的 a 、b ,你拿不到。

“就是这个 master key 不知道怎么理解?是公钥还是私钥呢”
既不是公钥也不是私钥,公钥和私钥是为了确保上面说的公开参数 p 、g 、A 、B 被中间人两边冒充。
上面说的 K 便是 “pre-master-key (预主密钥)”,然后由预主密钥经过一系列变化得到“master key (主密钥)”。

“本机上有办法可以直接抓解密后的包,到了另一台机器上就解不了”
本机抓包就是交换公开参数 p 、g 、A 、B 时,中间人两边冒充是对方把 A 和 B 都替换掉。也就是对客户端替换掉服务端发来的 B ,自己和客户端协商了一个预主密钥。对服务端替换掉客户端发来的 A ,自己和服务端协商了另一个预主密钥。中间人拿着两个预主密钥分别和两端通信,但两端都误以为是和真正的对方通信。
不好意思,公式里面里包含 markdown 语法,回复纯文本导致格式丢失了,我用截图重写发下:

https://i2.100024.xyz/2024/02/01/1stnh.webp
我简单的介绍下“DH 密钥协商算法”,想了解更多可以搜索这个关键字。

算法步骤:

步骤 1 )发送方和接收方协商一个大质数 p 和 p 的一个原根 g ;

步骤 2 )发送方秘密选择一个大随机整数 a ,计算 A = ga % p ,公开发送 A 给接收方;

步骤 3 )接收方秘密选择一个大随机整数 b ,计算 B = gb % p ,公开发送 B 给发送方;

步骤 4 )双方计算出密钥

​ 发送方:Sa = Ba % p = (gb % p)a % p = gab % p ;

​ 接收方:Sb = Ab % p = (ga % p)b % p = gab % p ;

​ 可知:K = Sa = Sb ;

知道 p 、g 、A 、B 不能计算出密钥 K ,除非还至少知道 a 或 b 其中一个,a 、b 并不发送给对方,只保存在各自内存中,协商出 K 后就销毁了。

也就是,虽然开始的大质数和原根 p 、g 以及随机数 A 、B 都未加密,但是算不出 K 。

实例:

假如 p = 23 ,g = 5

发送方选取的秘密数字 a = 6 , 那么 A = 56 % 23 = 8 , 将 A 发送给接收方

接收方选取的秘密数字 b = 15 ,那么 B = 515 % 23 = 19 ,将 B 发送给发送方

发送方计算出的密钥 Sa = 196 % 23 = 2

接收方计算出的密钥 Sb = 815 % 23 = 2
不行,密钥协商时,两端临时使用的参数,只保存在内存中,交换参数计算得到主密钥后就销毁了,这玩意叫完美向前安全
我的连声音开到百分之七八十都会破音,卖了又不值钱,只能考虑换发声单元了
@wangkun025 我一两个月没更新,一直提示更新,没有这个横幅,可以确定是最佳添加的
用 C# 的 winform 写个小玩意就好,我之前的程序就写过这玩意,很快。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2604 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 15:32 · PVG 23:32 · LAX 07:32 · JFK 10:32
Developed with CodeLauncher
♥ Do have faith in what you're doing.