关于安全聊天的一个想法

麻花疼和360的争吵现在真成了个全民参与的讨论话题呀,真可惜我对360没有感情,表达出对 QQ 的感情则会显得十分不斯文,所以这篇不打算谈那些玩意儿;倒是看到网上有些评论很是有趣,比如说我最喜欢的一条:腾讯顺便做点好事吧,请用户停止使用ie6,否则无法使用qq

 

嗯,我在想的问题是,如果我要做出一个是人就敢相信的闭源聊天软件的话,恐怕只能这样:

  1. 允许导入 (个人已有的) PGP Public Key 和个人账号绑定在一起;[ 不需要你来生成;尤其不需要你知道密钥 ]
  2. 假如我绑定了一个公钥,别人发给我消息时,将会在他的客户端用我的公钥实现非对称加密; [ 不要把隐私传到了你的服务器 ]
  3. 对话过程中需要上传到服务器的数据要么是明文+公开协议,要么就是通过我的公钥加密了的密文,我可以随时通过抓包工具来进行检查,确保没有小动作; [ 不要传些我不需要你传的数据 ]
  4. 我收到信息之后不需要聊天软件帮忙解密;帮我打开 PGP 窗口或是 GPG 控制台、输入好密文、等着我输密码那倒还可以。 [ 你还是不要接触密钥 ]
  5. 手动下载更新包,不需要用到管理员权限、不需要网络连接。
  6. 谁他妈愿意用这么复杂个玩意儿呀!

我想这些乱七八糟的是因为好奇我什么时候会愿意继续用 QQ ;于是结论便是: 基本上不太可能有那一天了。

 

自解压不神奇

小时候总以为自解压文件肯定用到了某种诡异的 PE 格式上的 trick,要不然 Linux 下为什么没怎么见过自解压的东东呢。

 

然而昨天翻 7-zip 代码的时候惊讶的发现了真相——

你应该已经注意到了,7-zip 可以打开自解压文件。

——所以?

 

 

自解压文件其实就是一个精简版的 7-zip 紧连着对应的 7z 压缩文件,它把自己作为压缩包打开,然后解压,就是这样。

 

 

 

根据这个原理,挖出某公有领域的 rijndael-alg-fst.c,某 gpl 的 sha256.c 以及 zlib 中的 crc32.c,然后码了 800+ 行代码,俺自己也成功的做了个可以自解密的 AES 加密工具 —— Windows/Linux 通用,支持大文件,CBC 模式,自己挺喜欢的,哈哈,改天放出。