引言勒索病毒Wannacry爆发已经过去一周了,由于该病毒采用加密用户文件方式进行勒索,许多朋友对该病毒文件加解密过程比较感兴趣。在已见到的病毒分析报告[1-4]中对文件加解密过程描述的比较零散。为便于全面理解病毒使用的密码技术,本文综合多家的分析报告,从密码技术角度勾勒出该病毒文件加解密基本框架。包括加密策略、密钥结构、密钥生成与保护等,为有兴趣者提供该病毒使用密码技术的画像。文章最后指出了病毒文件加解密分析遗留的问题。
1.密码要素
RSA2048非对称密码算法国际标准非对称密码算法。其功能由Windows系统提供API接口,病毒调用该算法对密钥实施加密保护。算法使用一对公、私钥进行加解密操作:公钥负责加密,私钥负责解密(反之亦可,同于数字签名)。密钥长度2048比特(256个字节)。AES-128对称密码算法
美国标准,国际流行对称密码算法。编程库函数编译连接到病毒程序中。该算法对感染主机文件实施加密。算法采用128比特数据分组加密方式,加解密密钥相同,密钥长度128比特(16个字节)。网络密钥对(WK)
由病毒攻击者生成,一组全网使用的公私钥对(WKp,WKs)。作用于RSA2048算法,保护受感染主机的“主机密钥TK”,其公钥(WKp)随病毒文件传播,私钥(WKs)由病毒攻击者掌握。主机密钥对(TK)病毒在每个感染主机上生成的公私钥对(TKp,TKs)。作用于RSA2048算法,保护“文件密钥FK”,其公钥(TKp)明存在00000000.pky文件中,私钥(TKs)由网络密钥对(WKp)加密存放在00000000.eky文件中。文件密钥(FK)
病毒加密文件时生成的随机数。每加密一个文件生成一个FK。
本文将以上要素用图例表示: