Discuss / 区块链 / 如何防止中间人攻击(MITM Attack)

如何防止中间人攻击(MITM Attack)

Topic source

猎杀属性

#1 Created at ... [Delete] [Delete and Lock User]

由于存在消息、签名和公钥完全被中间人替换的问题(先不讨论在BTC中这样做有没有意义),中心化网站通过CA(Certificate Authority)来验证公钥的正确性,在区块链世界中,特别是比特币中,由于匿名的存在,哪怕消息、签名和公钥甚至地址被中间人篡改都不容易察觉,请问比特币中有任何机制避免这一安全问题吗

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

你理解错了中间人攻击。

中间人攻击是篡改消息,比如消息是Bob发给Alice的“给小明转100元”,签名就是

sign(bob_priv_key, “给小明转100元”)

中间人会篡改消息为“给小明转10000元”,然后自己签名发给Alice,Alice收到了错误的消息然后给小明转了10000,注意Alice被骗是因为她误以为签名是bob但实际上签名是中间人

比特币的签名人如果是A,签名就是:

sign(a_priv_key, tx: from A to X, 0.1btc)

任何人都可以改消息,问题是改消息就得自己签名,自己签名和tx里的from A对不上

矿工打包交易,只看from是谁就验证谁的签名,from是A签名是B那直接丢弃

猎杀属性

#3 Created at ... [Delete] [Delete and Lock User]

From A 同样是通过网络传输,没有被修改的可能吗?

廖老师已经说得挺明白了。

我这里补充一下 From A

我这里补充一下 “From A 同样是通过网络传输,没有被修改的可能吗?”,我觉得是是有可能的,但是没有必要。

sign(bob_priv_key, “给小明转100元”)

sign(a_priv_key, tx: from A to X, 0.1btc)

(1)From A修改成From B,代表你需要要有B的私钥;

sign(b_priv_key, tx: from A to 黑客, 0.1btc)

(2)如果to X需要修改成to 中间人的话,那么也需要有A的私钥哈。

sign(a_priv_key, tx: from A to 黑客, 0.1btc)

(3)from 和 to都修改的话,操作的自己账户给别人转钱或者给自己转钱?

sign(黑客_priv_key, tx: from A to 黑客账户 or 其他账户, 0.1btc)

所以说是很没必要吧?

私钥泄漏了才有解,否则是无解。

回复貌似有bug哈哈。在我写完之后点击提交按钮后,之前没有写完的内容竟然被提交上去了。幸好可以返回上一页,回复的内容还在,copy,刷新、重新点击提交就好了。


  • 1

Reply