关于逃亡时如何确保网络通讯安全——IM篇
本文面向使用Windows 7及XP的,计算机知识有限的用户(本文注重详尽的教程而非细节教学,具体原理请自行Google),对高级用户及其他操作系统用户仅供参考(用Linux的家伙自己都能搞定吧!)。悲催啊,昨天晚上喝多了,今儿还连夜赶这文章,残念……图片啥的就免了,排版能看就行吧……
目的
逃亡、被通~缉、怀疑自己通讯被监控、高度机密内容、城市紧急状态、网络管制、私密内容、身份可能被仿冒等等,具备非常广泛的适用范围。
下面是正文,首先介绍本教程基于何种技术和方法确保即时通讯的传输安全及防止身份仿冒。
所涉技术及软件
1.通过数字证书及数字签名体系及生成非对称密钥来确保安全性,本教程使用开源的GnuPG来加密明文及认证使用者身份。GnuPG的介绍见维基百科,非对称加密的介绍
2.本文所述IM基于开源的XMPP标准实现即时通讯。
3.本文所涉端到端加密通讯载体的自建服务端使用ejabberd搭建。(非必须)
4.本文所涉端到端加密通讯载体的第三方服务端使用Google的Google talk服务。
5.本文所涉IM软件为开源的psi客户端。
请注意,本文无法阻止本地木马或者键盘记录工具对信息的窃取行为,所以务必定期认真检查计算机本地环境的安全状况。
本文无法隐藏或伪装终端IP地址,若需反追踪切记配合跨国代理服务器!
本文并非万能,最终安全性也取决于使用者的安全意识,请妥善保管证书私钥以确定仅自己能够接触或者他人难以触及,否则仍然有被仿冒的可能。
非对称密钥的生成及管理
首先是Win7
安装及生成个人证书
1.到官网下载安装gpg4win,此工具为GnuPG官方网站推荐的Windows下工具套件,相当好用。(2.1.0版本在XP下有问题,我没有找到原因。GnuPG的官方网站为 gnupg.org)
2.安装它,完成后开始菜单会生成一个名为gpg4win的程序组文件夹,里面有一个图标似乎是女人脑袋的程序,名为Kleopatra,运行它,话说图标真的丑爆了。
3.点击左上角的File,在弹出窗口点击”Create a personal OpenPGP key pair”(不含引号),我们来生成一个证书。
Name当然填写你的大名,Email写你常用且安全的邮箱,推荐使用打开了两步验证的gmail。comment随便写,可以写一些备注。
点击Advanced setting,RSA右边的下拉菜单选中3072bits,下方的复选框选中Authentication,点击ok
点击Next后会弹出对话框要求输入证书口令(Enter passphrase),注意这是非常重要的,请一定将其设置的足够长、足够复杂、绝非常用、至少同时包含字母数字以及至少1个标点符号,且长度大于8位,ok以后会要求你确认密码,重复输入完毕后点击ok。
证书已经被生成了,最后一个步骤会问你是否需要备份你的证书(Make a backup of your key pair),你可以选择将其导出并备份,若需备份。建议使用7Zip软件将其加密打包(7Zip使用AES加密),放到互联网上的某个角落,然后销毁本地的备份文件。
接下来我们需要导出一份公钥,以便收件人能够确认你的身份且加密消息。你可以通过选中自己的证书上然后“点击右键选择Export Certificates”或者“按组合快捷键Ctrl+E”或者“点击工具栏中硕大的Export Certificates(未选中证书时该按钮为灰色不可选)”达成该目的。注意不要选择任何形式的“Export Secret Keys”,这是导出私钥而非公钥。
传递及导入证书
1.公钥的传递过程是有可能被劫持的,应当尽量选择安全性高或者不通过第三方的传递方法,例如使用U盘或者类似介质人肉传递。最低要求也得使用具备SSL 传输加密的Email,例如GMail(假如你信任Google的话,你们信不信我不知道,反正我是信了)
2.得到一份公钥文件以后,默认情况下应当是一个asc后缀的文件,其他格式也有可能,反正只管导入,Kleopatra的界面非常直观,直接在主界面找到“import certificates”点击它,接着选中需要导入的公钥文件,确认即可。
3.前期较为复杂的步骤均已完成,证书方面已经没有什么问题了,最后强调下,务必确保私钥及私钥口令的安全性,切记。
WindowsXP
由于gpg4win套件在XP上似乎未必能够正常工作,所以分开讲下XP下的安装方法,较Win7麻烦一些
首先在官方ftp服务器找到GnuPG本体的Windows安装包 ftp://ftp.gnupg.org/gcrypt/binary/ 目前最新版本为1.4.9(点击下载),接着在 ftp://ftp.gnupg.org/gcrypt/gpgee/ 下载最新版gpgee,目前最新版本为1.3.1
然后在 http://www.tech-faq.com/gnupg-shell.html 下载Windows下的gnupg shell,目前版本为1.0,点击下载
首先安装刚才下载的gnupg-w32cli-1.4.9.exe,接着解压并安装gpgee,最后安装gnupg shell,一上来就会让你创建证书,过程参考前面的win7,有空我会找到XP的电脑补齐这段。
实现端到端加密通讯
1.先到psi官网下载它 http://psi-im.org/download/ (目前最新版本为0.14)
安装包 http://downloads.sourceforge.net/psi/psi-0.14-win-setup.exe
免安装压缩包 http://downloads.sourceforge.net/psi/psi-0.14-win32.zip
繁体中文语言包 http://psi-im.org/download/lang/psi_zh_TW.qm
(注:官方并没有简体中文语言包,虽然能找到简体中文版,但出于安全考虑,强烈建议到官网下载!)
2.解压/安装好psi以后,将繁体中文语言包复制到程序安装目录
3.运行psi.exe (鸟语的话关掉再打开)
4.点击左上角的“一般”,点击“帳號設定”,点击“增加”,“名稱”右边写希望显示的名称。
下一个页面的Jabber ID填写你的帐号,ejabberd服务端为用户名@域名,Google talk帐号为用户名@gmail.com,“密碼”当然填写密码。
下方的复选框全部勾选,不过最后一个“記錄訊息歷史”可以酌情勾选。
切换到“細項”选项卡,在OpenGPG项中点选“選擇鑰匙”,勾选你前面生成的那个RSA密钥。
切换到“連線”选项卡,“加密連線”后面的下拉菜单中选中“總是”。
点击下面的save,帐号设定完毕。
5.再次点选界面左上角的“一般”,点击“選項”,在左边找到“雜項”,右边有个“检查拼字”,确保取消勾选,若选中的话聊天的时候中文下面也会有一堆蛋疼的红色波浪线……
点击ok
6.点击上方的“狀態”,点击“線上”,中间可能弹出窗口要求输入RSA证书口令,登录完成。假设该帐号显示名为gmail的话,右边会有一把黄色小锁,代表你可以使用端到端加密功能。
7.打开一个希望加密的会话,这时上方的锁是灰色的,表示本次会话未被加密(只是没有端到端加密,刚才已经为Google talk开启了TLS加密),点击锁,它会变成黄色,代表会话将被加密,这时你再输入信息并发送会提示你选择需要使用的密钥(未点击小锁时可以随便发,没有任何障碍),注意你们双方需要已经完成前文所述的公钥交换,选择交流目标的公钥并确定,于是一条加密的消息就发出去了,对面也会收到实时解码的明文。
整个过程中连Google talk服务器也无法得知你们的交谈内容,再加上Google本身的TLS加密传输,在终端安全没有问题的情况下窃听你们的交流内容估计只有掌握了成熟的量子计算机科技的外星人能够实现了。
出于进一步的安全考量,我还自行搭建了ejabberd服务器做紧急通讯用(也许永远用不到,也希望永远用不到……),没有安装除离线消息以外的任何消息记录模块,具体搭建过程等有空会写一下的……貌似这个的教程非常少啊,我啃了三天三夜的鸟语文档lol鸟语苦逼泪流满面……
好了,总算码完了,脑子一片混乱写的东西就甭指望多好了,反正其实主要还是写给朋友看的,睡觉啊啊啊啊……
©2011 WooDragon
本博客内容若无注明均为原创, WooDragon 版权所有,转载请遵守 Creative Commons 3.0 协议并标注出处。