我很难理解如何使用TeslaCrypt ransomware解密使用他们的创造者提供的万能钥匙加密的文件。
据我所知,ransomware使用对称密码系统加密文件,然后使用非对称加密方案加密密钥。如何通过拥有主密钥来解密受影响的文件?
发布于 2016-07-30 15:53:59
在一个非常抽象的层次上:在每个受害者的机器上,除了加密的AES密钥外,还存储了解密这些文件所需的私钥的加密副本。此副本本身是用攻击者的公钥加密的,可以用攻击者的私钥(本文中称为“主密钥”)解密。
我将尝试用更详细的方式重新表述卡巴斯基的文章TeslaCrypt 2.0伪装成密码。
为了简单起见,我将跳过这样一个事实,即每个文件都可以使用不同的AES密钥进行编码。另外,实际实现可能有所不同(特别是可以向攻击者发送更多的数据,并在攻击者的一侧执行一些步骤)。无论如何,答案旨在解释主密码方案是如何工作的:
起初,受害者只有attacker-public-key (嵌入恶意软件)。
攻击者拥有attacker-private-key。
victim1-BTC-public-key (发送BTC)和BTC-private-key (撤回BTC)创建新的BTC地址。attacker-public-key和victim1-BTC-private-key作为ECDH的输入,ECDH生成encryption-key-1victim1-BTC-private-key和encryption-key-1,将结果存储为encrypted-victim1-BTC-private-key,忘记encryption-key-1victim1-BTC-private-key发送给攻击者并删除它。受害者拥有:attacker-public-key,victim1-BTC-public-key,encrypted-victim1-BTC-private-key。
攻击者拥有:attacker-private-key,victim1-BTC-private-key。
接下来,恶意软件开始加密文件:
victim1-AES-key (victim1-keypair-private-key)和victim1-keypair-public-key组成。victim1-BTC-public-key和victim1-AES-key作为ECDH的输入,ECDH生成encryption-key-2AES-key与encryption-key-2,将结果存储为加密-AES-key,忘记加密-密钥-2。受害者拥有:attacker-public-key,victim1-BTC-public-key,encrypted-victim1-BTC-private-key,victim1-keypair-public-key,encrypted-victim1-AES-key。
攻击者拥有:attacker-private-key,BTC-victim1-private-key。
现在受害者支付了赎金,攻击者释放了一个密钥来解密这些文件:
BTC-victim1-private-keyBTC-victim1-private-key和victim1-keypair-public-key作为ECDH的输入,ECDH计算encryption-key-2 (与上面相同)encrypted-victim1-AES-key与提供victim1-AES-key的encryption-key-2victim1-AES-key解密文件(S)没有其他受害者可以使用BTC-victim1-private-key做任何事情。
攻击者决定释放主密钥:
attacker-private-keyattacker-private-key和victim1-BTC-public-key作为ECDH的输入,ECDH生成encryption-key-1 (与上面相同)encrypted-victim1-BTC-private-key与encryption-key-1一起,将结果存储为victim1-BTC-private-keyBTC-victim1-private-key和victim1-keypair-public-key作为计算encryption-key-2的ECDH的输入。encrypted-victim1-AES-key与提供victim1-AES-key的encryption-key-2victim1-AES-key解密文件(S)在后一个场景中,任何受害者都可以首先使用attacker-private-key派生victim*-BTC-private-key,然后使用victim*-AES-key。
https://security.stackexchange.com/questions/131358
复制相似问题