手把手教你使用端到端加密聊天:Android篇

手把手教你使用端到端加密聊天:Android篇

如果你还不知道什么是端到端加密什么是GnuPG,请先阅读这篇文章:手把手教你使用端到端加密聊天:综述

现在这篇文章是接续上面那篇文章,面向安卓用户的教程。

软件安装

安卓端GPG程序又叫OpenKeyChain,应用商店大概率是找不到的,不过既然你用的是安卓嘛,你也可以在Fdroid或者APKPure上找到下载,也可以点击此处下载:openkeychain_5.7.5.apk(不确保是最新的)。注意:在部分国内定制的安卓系统上(例如我自己用的鸿蒙以及同学的MIUI)可能会提示应用未验证安全,这主要是因为应用没有在应用商店上架,可能需要你关闭纯净模式或者类似功能才能安装。

国内ROM系统安装OpenKeychain的警告

密钥生成

首次运行时程序会要求你生成一个密钥对(如果没有出现该画面你可以从应用右上角菜单选择“管理我的密钥”进入),你可以选择“创建密钥”直接创建、“使用安全令牌”以便从安全令牌导入(也就是智能卡,设置相对复杂,不在这篇文章讨论范围内,但我们会在文章拾遗部分简要提到)、或者“从文件导入密钥”以便从文件导入(当你想在多个设备上使用同一个密钥,请选择该选项并导入私钥,我们也将在文章拾遗部分讲解这一方法)。

程序首次运行界面

这里我们选择“创建密钥”以全新生成一个密钥,此时程序要求输入到一个你的名称,此处可以填写实名也可以填写昵称(推荐),根据你的需要填写即可,主要用途是方便别人辨认是你。

然后会要求填写一个电子邮件地址,如果你需要将GnuPG用于电子邮件那么请填写实际的电子邮件地址,否则随便填写一个也可以,同时如果你有多个电子邮件地址也可以添加更多的(但是这个功能在我手机上会导致程序崩溃,你可以使用电脑版或者参考下文添加密码保护的步骤,里面可以设置新的用户标识)。

最后程序显示你已经输入的信息以便确认,如果你不清楚密钥服务器是什么,请不要勾选上传至密钥服务器(关于密钥服务器我们将在文章拾遗部分讨论)。

且慢!为了安全我们推荐为私钥设置一个保护密码,保护密码设置后每次调用私钥(解密和签名)都将需要这个密码(如果你认为不需要可以直接点击创建密钥),具体操作为点击右上角三个竖点菜单键,点击“更改密钥配置”。点击“变更密码”,输入一个密码然后重复确认后确定,然后保存即可。

你会注意到这个界面也可以添加更多用户标识,如果你想将次密钥用于你的其他名称或者电子邮件,可以在此添加。不过一般来说如果不是有特殊需求,我推荐为不同的身份使用不同的密钥,毕竟生成密钥是很容易的。

最后设置完毕后同样单击创建密钥,等待十几秒后创建完毕。

密钥管理

此时程序会显示主页面,上面有我们刚刚创建的新密钥。

再复习一下加密的流程,首先我们需要添加其他人的公钥,核对指纹,才能给其他人发送加密消息或者文件。

密钥指纹

点击你的密钥,选择右上角菜单,点击“更多密钥详情”,并选择分享即可查看相应密钥指纹。
添加别人公钥时,只有在你本地密钥指纹和对方密钥指纹一样时才能确保公钥没有被掉包,通信才是安全的(详细信息请查阅“非对称加密 中间人攻击”)。

如何核对指纹呢?如果你和对方处于线下,那么可以直接通过扫描对应密钥二维码进行,如果处于线上,你们可以从多个不同渠道确认指纹(例如QQ、电话、邮件等)。我们在下面提到具体操作。

添加和分享公钥有两种方式,一种是从文件添加,一种是从剪贴板添加,分别对应着通过文件分享和通过文本分享。我认为后者使用更方便。

从文件添加公钥

分享公钥时点击相应密钥,选择红色圈的分享按钮,即可通过社交软件进行分享。


收到公钥时,第一种方法是直接打开,选择“OpenKeychain:导入密钥”,确认后即可导入。

第二种方法是在创建密钥那里从文件导入,第二种方法较为麻烦,大部分人找不到文件位置,不推荐使用。

从剪切板添加公钥

剪切板添加公钥较为方便,因为直接通过文本即可传递密钥,我推荐使用这种方法。

分享密钥时直接选择密钥后选择红色圆圈所示的复制,粘贴到社交平台发送即可。

收到密钥时先将文本内容全部复制,然后打开软件(有时候软件会提醒发现密钥,但是似乎那个功能有bug不用管它),然后进入主页面右上角菜单,选择“管理我的密钥”,点击“从文件导入密钥”,右上角再次点击菜单,选择“从剪切板读取”即可。

指纹核对

添加其他人的公钥后,点击对应密钥,我们会发现界面是橙色的,这是因为还没有核对密钥,核对密钥也有两种方法,我之前已经提到过,如果你想通过二维码核对,点击二维码按钮然后扫码即可,如果你想直接核对,点击右上角菜单里的“通过指纹确认”即可

注意,此时程序会要求你选择一个密钥,这是为了确认操作是由你本人完成的,需要用你自己的私钥去确认这个密钥,随便选择一把你的私钥即可,如果有密码程序将要求输入私钥密码,然后即可确认完成,此时该密钥的页面将会变成绿色。

接下来我们就可以给对方发送加密消息或者文件了。

消息的加密

加密消息时,直接选择对方密钥,然后点击图中的文本加密

此时出现的页面有三个输入框,最上面是需要加密到的人。是的,一次性可以加密给多个人,你只需要在已有名字后面输入对方邮箱或者名称部分内容然后选中即可,此处不再演示;中间的框是签名密钥,根据需要你可以选择是否进行签名,而对方软件将验证签名有效性。最下面则是你需要发送的消息。

最后点右上角进行复制或分享给接收者即可(如果你选择了签名会要求对应私钥的密码)。

消息的解密

解密文本时,先将文本全部复制,然后进入程序主页面点击左侧菜单,选择“加密/解密”。

再选择“从剪贴板导入”。

此时会要求对应私钥的密码,然后就能看到解密后的消息,注意此时程序会同时校验签名,如果你没有添加对方公钥、签名不合法或者没有签名则会提示签名无效。

文件的加密解密

细心的你应该发现文件加密解密就在刚刚那个页面上,其他加密、签名等操作都是一样的,而解密时可以直接打开也可以从这个界面导入,此处不再赘述。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注