- 论坛徽章:
- 0
|
by sinan_mil
假想背景:
20**年, C国毒菜组织D对internet进行了严密的监控.
众多网站迫于D的淫威, 清洗了自由民主的呼声.
C国最大的即时聊天软件也清洗了自由民主的言论.
这个时候, 广大的人民需要安全和秘密的通讯解决方案.
分析D的监控:
D投资浩大建立了"功夫网", 以监听C国的每个网民发出每一个字符.
这告诉我们: 通讯必须加密.
D利用其手下暴力机构, 胁迫IT行业实体企业同D合作, 监控C国网民.
这告诉我们: 通讯必须不存在一个中心, 这样才能使D无法找到通讯系统的要害.
我们的目标:
编写一个功能和界面上类似我国QQ的即时通讯(IM)软件, 但此IM软件不能有中心服务器.
基本功能:
添加好友, 好友通讯, 建立群, 群聊, 广播消息(消息散发机制)
本文提出的解决方案: 简单的说: 就是利用email当一块缓存, 完成P2P所需要的信息传递.
假定A和B通讯来说明问题.
A: IP: 10.1.1.1 email: A@A.com
B: IP: 10.1.1.2 email: B@B.com
A想同B联系, A知道B的邮箱为B@B.com
A向B@B.com发了一封加密的信, 其内容为: B,我是A, 我的IP是10.1.1.1, 2000端口开了, 收到联系我.
B检测到有邮件, 读邮件后, 同A建立tcp连接, 说: A,我是B, 我来了.
然后, A和B开始通讯(加密的).
这里有2个重点:1, B的email A必须知道,也就是: 人的ID是一个email地址.
2, 必须有一个程序检测email的到来.POP3协议.
下边我们来看一个好友上线的结构图
+--------------+
| 人1(好友人2) | (取得人2上线email后激活人2图像)
+--------------+
|
/|\ (人2上线email)
|
+---------+ / +--------------+
| email 1 | ---(我上线了 IP: **** )----- | 人2(好友人1) |
+---------+ \ +--------------+
编写这个软件需要的技术:
email的操作, tcp/udp
加密库(这个没玩过)
界面仿qq, 可使用gtk库.
开源发布.
使用人群先锁定论坛. |
|