PortSmash 项目常见问题解决方案
项目基础介绍
PortSmash 是一个针对微架构攻击的证明性概念项目,主要用于展示 CVE-2018-5407 漏洞的利用。该项目通过利用 CPU 的同步多线程(SMT)技术,如英特尔的超线程技术,来执行侧信道攻击。PortSmash 项目的主要编程语言是 C 和 Shell 脚本。
新手使用注意事项及解决方案
1. 环境配置问题
问题描述:新手在配置环境时可能会遇到 OpenSSL 版本不兼容或安装失败的问题。
解决方案:
- 步骤 1:确保下载并安装 OpenSSL 1.1.0h 或更低版本。
- 步骤 2:使用以下命令下载并安装 OpenSSL:
cd /usr/local/src wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz tar xzf openssl-1.1.0h.tar.gz cd openssl-1.1.0h/ export OPENSSL_ROOT_DIR=/usr/local/ssl ./config -d shared --prefix=$OPENSSL_ROOT_DIR --openssldir=$OPENSSL_ROOT_DIR -Wl,-rpath=$OPENSSL_ROOT_DIR/lib make -j8 make test sudo checkinstall --strip=no --stripso=no --pkgname=openssl-1.1.0h-debug --provides=openssl-1.1.0h-debug --default make install_sw - 步骤 3:如果使用不同的路径,需要修改
Makefile和sync.sh中的路径配置。
2. 工具使用问题
问题描述:新手在使用 freq.sh 和 sync.sh 工具时可能会遇到频率调整或同步失败的问题。
解决方案:
- 步骤 1:确保
freq.sh脚本正确关闭了频率缩放和 TurboBoost。 - 步骤 2:在运行
sync.sh之前,确保两个受害者进程(openssl 和 ecc)分别在同一物理核心的不同逻辑核心上运行。 - 步骤 3:使用以下命令检查 CPU 核心配置:
grep '^processor\|^core id' /proc/cpuinfo - 步骤 4:根据输出结果,调整
sync.sh中的taskset命令,确保两个进程在同一物理核心上运行。
3. 数据生成和验证问题
问题描述:新手在生成和验证 ECDSA 签名数据时可能会遇到数据不匹配或验证失败的问题。
解决方案:
- 步骤 1:确保
openssl dgst命令生成的data.bin文件与签名数据data.sig匹配。 - 步骤 2:使用以下命令验证签名:
openssl dgst -sha512 -verify secp384r1.pem -signature data.sig data.bin - 步骤 3:如果验证失败,检查
secp384r1.pem文件是否正确生成,并确保data.bin和data.sig文件内容正确。 - 步骤 4:在
ecc工具的情况下,data.bin和secp384r1.pem文件可能无意义,且data.sig文件不会生成,因此无需验证。
通过以上步骤,新手可以更好地理解和使用 PortSmash 项目,避免常见问题的发生。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



