FavoriteLoading
0

RSA密钥安全漏洞检测工具

它使您能够测试RSA公钥以了解所描述的漏洞。

目前该工具支持以下主要格式:

 

X509证书,DER编码,每个文件一个* .der,* .crt
X509证书,PEM编码,每个文件更多,* .pem
RSA PEM编码私钥,公钥,每个文件更多,* .pem(必须有正确的标题----- BEGIN RSA ...)
SSH公钥,* .pub,以“ssh-rsa”开头,每行一个
ASC编码的PGP密钥,* .pgp,* .asc。每个文件更多,必须有正确的标题----- BEGIN PGP ...
APK android应用程序,* .apk
每行文本文件的一个模数* .txt,模数可以是a)base64编码数,b)十六进制编码数,c)十进制编码数
具有模数的JSON文件,每行一条记录,支持带有密钥“证书”的密钥“cert”/证书数组的密钥“mod”(int,base64,hex,dec编码支持)的证书, base64编码DER。
LDIFF文件 -  LDAP数据库转储。以“; binary”结尾的任何字段都将尝试解码为X509证书
Java Key Store文件(JKS)。尝试使用空的密码和一些常用的,使用--jks-pass-file指定更多的密码
PKCS7签名与用户证书

 

检测工具是有意的单文件实现,便于集成/操作。

Pip安装

用pip安装(安装所有依赖项)

 

pip install roca-detect

本地安装

在包的根文件夹中执行:

 

pip install --upgrade --find-links=. .

依赖

可能需要安装其他依赖关系,因此  pip 可以安装例如加密包。

CentOS / RHEL:

 

sudo yum install python-devel python-pip gcc gcc-c++ make automake autoreconf libtool openssl-devel libffi-devel dialog

Ubuntu的:

sudo apt-get install python-pip python-dev build-essential libssl-dev libffi-dev swig

用法

打印基本用法:

 

# If installed with pip / manually
roca-detect --help

# Without installation (can miss dependencies)
python fingerprint/detect.py

测试工具接受多个文件名/目录作为输入参数。它返回报告,显示有多少个文件已被指纹识别(以及哪些文件)。

例:

在所有SSH密钥和known_hosts上递归运行:

$> roca-detect ~/.ssh
2017-10-16 13:39:21 [51272] INFO ### SUMMARY ####################
2017-10-16 13:39:21 [51272] INFO Records tested: 92
2017-10-16 13:39:21 [51272] INFO .. PEM certs: . . . 0
2017-10-16 13:39:21 [51272] INFO .. DER certs: . . . 0
2017-10-16 13:39:21 [51272] INFO .. RSA key files: . 16
2017-10-16 13:39:21 [51272] INFO .. PGP master keys: 0
2017-10-16 13:39:21 [51272] INFO .. PGP total keys:  0
2017-10-16 13:39:21 [51272] INFO .. SSH keys:  . . . 76
2017-10-16 13:39:21 [51272] INFO .. APK keys:  . . . 0
2017-10-16 13:39:21 [51272] INFO .. JSON keys: . . . 0
2017-10-16 13:39:21 [51272] INFO .. LDIFF certs: . . 0
2017-10-16 13:39:21 [51272] INFO .. JKS certs: . . . 0
2017-10-16 13:39:21 [51272] INFO No fingerprinted keys found (OK)
2017-10-16 13:39:21 [51272] INFO ################################

PGP密钥

为了测试您的PGP密钥,您可以从您的电子邮件客户端导出它,或从PGP密钥服务器下载它,例如https://pgp.mit.edu/

您还可以使用  gpg 命令行实用程序导出您的公钥:

 

gpg --armor --export your@email.com > mykey.asc

高级用例

检测工具提取可显示的关键字信息:

 

roca-detect.py --dump --flatten --indent  ~/.ssh/

先进的安装方法

虚拟环境

通常建议为项目创建一个新的python虚拟环境:

 

virtualenv ~/pyenv
source ~/pyenv/bin/activate
pip install --upgrade pip
pip install --upgrade --find-links=. .

单独的Python 2.7.13

它不会与较低的Python版本一起工作。使用  pyenv 安装新的Python版本。它内部下载Python源并安装它  ~/.pyenv

 

git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL
pyenv install 2.7.13
pyenv local 2.7.13

 

 

下载ROCA检测工具