如何让密钥说出秘密?将PGP用于开源情报侦察的方法

  • 密钥也能作为情报资源?是的,而且是很厉害的情报资源,因为它能挖出谷歌和其他搜索引擎挖不到的东西……

PGP 密钥有多种用途,但存在的主要原因之一是允许某人验证并保护其在线身份。它们可用于对文档或软件进行数字签名、验证用户名或电子邮件地址、或对文档进行加密。

无论将它们用作什么用途,PGP密钥始终与用户名或电子邮件地址绑定,因此,无论哪里有PGP密钥,都可能存在对开源调查有用的信息片段

这篇文章将展示 PGP 密钥如何在开源情报调查中用作信息源。

研究用户名和电子邮件地址是大多数开源情报工作的基本任务,但是,PGP 密钥还可以提供其他信息,从而能以大多数电子邮件和用户名调查方法普遍会遗漏的方式帮助在不同实体之间建立链接

例如,PGP公钥经过编码,这意味着搜索引擎无法读取其内容;也就是意味着,分析PGP密钥有时可能会发现 Google 和其他搜索引擎找不到的东西。

This sample of a public PGP key shows why keyword searches will not lead to the identification of the associated username or e-mail address.

在某些常见的暗网市场中用于验证身份的 PGP 密钥也经常在其他平台上重用,因此,最终可以链接到明网身份。

请注意:上述同时也是安全提示!

您可以在此处阅读美国和德国当局如何使用PGP密钥将两个暗网市场管理员帐户链接到真实的电子邮件地址。

以上这些只是关于其众多用途中的几个例子。

如果可以找到PGP密钥,就可以找到电子邮件地址或用户名,并且由于PGP密钥是唯一的和用于验证的,因此,无论您在何处找到密钥,都可以确信它与相同的电子邮件地址或用户名相关联。

本指南的其余部分将介绍一些常见的地方以查找PGP密钥,它们的结构、以及如何分析它们才能提取与该密钥相关的用户名或电子邮件地址。

PeeGeePee.com

首先应该清楚,使用PGP密钥的人自己很少会这样做,或者说并没有想到这样做;另一方面公钥必然是要公开列出的,以便人们可以验证其身份并允许其他人发送经过加密的电子邮件。

有许多公共PGP密钥服务器,但是 PeeGeePee.com 具有很清晰的格式,有助于解释PGP密钥结构。

请注意,PeeGeePee.com 编辑了与密钥关联的实际电子邮件地址(大多数PGP密钥服务器一开始甚至都没有显示太多信息)—— 但是,作为开源情报调查人员,这才是我们真正想要的细节。

下面将说明如何从PGP密钥中提取电子邮件地址,但是值得注意的是有关PGP密钥的一些其他信息:

每个PGP密钥都有唯一的指纹。指纹从完整密钥派生,然后可以进一步缩写为长版和短版。

这些指纹使PGP密钥更易于共享(例如,它们非常适合您的名片),但是,也使得它们更易于在互联网和其他PGP密钥服务器上进行搜索

请注意,指纹通常在前面用 0x 缩短,后跟8个十六进制字符,例如 0xA1B2C3D4 等:

PGP key fingerprint abbreviated for sharing…and searching.

其他信息将确认密钥的创建时间(这对于构建开源调查报告的时间线来说很有帮助),它尚未被撤销以及到期日期是何时(尽管并非所有密钥都具有到期日期)。

还要记得,该密钥可用于加密、签名、认证和身份验证。

从PGP密钥中提取电子邮件地址的方法

确定了感兴趣的PGP密钥后,如果一开始没有用户名或电子邮件地址,则只需做一些工作即可提取它。

此示例将结合两个内置的 Linux 命令 curl 和 gpg 来下载和提取感兴趣的密钥。

默认情况下,Curl 内置于 Linux 和 Mac OS 中;大多数 Linux 版本中也安装了 GPG,但是您需要使用 Homebrew 在 Mac 上安装 GPG。

可能要明确一下,PGP(Pretty Good Privacy)是密钥/加密类型,GPG(Gnu Privacy Guard)是用于管理和创建 PGP 密钥的软件。很绕嘴……

对于 Windows,有 GPG4Win,它将允许您下载和导入PGP密钥,本指南中不会引用它。

以下是一个安装入门视频指南,以及这里的介绍,帮助您导入公钥以确定电子邮件地址。

本示例将使用这里从 PeeGeePee.com 完全随机选择的密钥。这是过期的钥匙,但是依旧可以用来说明其原理。

您要提取和分析的文件是包含公钥的 .asc 文件。要获得该URL请右键单击它并复制链接路径。

下面是步骤。

1、打开一个终端并输入以下命令(Ctrl + Shift + V将URL粘贴到终端中)。

$ curl https://peegeepee.com/B3889B1D99B288587ADBC2BDCE92C995CC4803BB.asc

2、输出将如下所示:

这是完整的PGP公钥,其中包含我们想要的信息,但由于无法直接阅读,因此它本身并不是很有用。

这就是GPG的用武之地了。GPG是用于创建和管理PGP密钥的程序,通常用于加密电子邮件或签名软件,但是因为它可以解码原始PGP公钥块,所以当我们要查找哪个用户名或电子邮件地址链接到感兴趣的PGP密钥时,可以使用它。

要在命令行中执行此操作,可以使用(|)来获取 curl命令的输出,而不是将完整的PGP打印到终端中,您可以将 curl 命令的结果传递给 gpg,以便它为您读取密钥并告诉您相关的电子邮件地址是什么

3、命令如下:

$ curl https://d.peegeepee.com/B3889B1D99B288587ADBC2BDCE92C995CC4803BB.asc | gpg

它给出了这样的输出:

现在,您已经得到了此人的姓名和与PGP密钥关联的完整电子邮件地址!

请注意,Google 找不到与此电子邮件地址匹配的内容,因为它无法轻松索引公共PGP服务器:

当PGP密钥与用户名而不是电子邮件地址相关联时,此命令以相同的方式返回数据,只是用用户名代替电子邮件。

现在是一个真实的例子了……

Keybase — 揭露马虎的小骇客

Keybase.io 是一个非常受欢迎的公共PGP密钥服务器。它本身就几乎是一个社交媒体平台。

用户具有关注者、指向其他平台上的个人资料的链接、与特定钥匙关联的多个设备的列表、以及个人资料照片(尽管并非总是本人照片)。

如上这个例子,请注意,用户的电子邮件地址未在其个人资料中列出,因此搜索引擎无法轻松将其编入索引。

于是有必要以与上述示例类似的方式从PGP密钥下载并提取电子邮件地址。

为了展示这对开源调查的帮助,下面将演示如何帮助验证一个粗心的小骇客的身份,此人去年对 Protonmail 发起DDOS攻击时使用的绰号是 Opt1cz。

当 Protonmail 在 Reddit 上发布情况更新时,一个名为 Opt1cz 的用户发布了对该消息的回复,声称他和他的帮派对这场DDOS攻击负责

他在 Reddit 上唯一的其他帖子是在 Reddit KeybaseProofs 论坛上发布的:

他提供了指向他的 Keybase 个人资料的链接:

如果可以知道他的电子邮件地址将很有帮助 —— 于是,可以通过如上所述结合 curl 和 gpg 的方法来获得。URL始终采用以下格式:

curl https://keybase.io/username/pgp_keys.asc

顺便说一句,这也意味着在进行用户名搜索时,您始终可以在 Keybase 上尝试目标用户名,然后尝试使用此方法来获取电子邮件地址。

要找出 Opt1cz 的电子邮件地址是什么,请使用以下命令:

$ curl https://keybase.io/opt1cz/pgp_keys.asc | gpg

这将在终端中提供以下输出:

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3165  100  3165    0     0   5178      0 --:--:-- --:--:-- --:--:--  5171
pub  4096R/396BD3BB 2018-07-01 opt1cz <[email protected]>
sub  4096R/5A61C24C 2018-07-01 [expires: 2034-06-27]

因此,从中您可以了解到他的电子邮件地址是什么了 —— 非常有用。

当然,由于他在 Keybase 上具有可识别的关注者,因此,也有可能找到他们的电子邮件地址和用户名,并开始对他的在线同事进行更好的了解。

如果您对PGP密钥的开源情报调查应用有任何疑问,Keybase 甚至提供了一个有用的图形来显示用户的密钥如何链接到他们的社交媒体帐户、和他们自己的硬件:

如果您怀疑某人真的会愚蠢到DDOS自己的电子邮件提供商?答案是肯定的,他确实是个愚蠢的人,现在因自己的麻烦而判入狱三年。⚪️

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据