2007年6月21日星期四

王子午说,密钥和私钥是两个概念

中午冲凉出来,遇到王子午,对门儿的"the will-be expert on infomation
security",我问他,密钥和私钥是什么关系,他说,是两个概念……

前几天,我信誓旦旦要把QQ协议搞清楚,因为工作中需要做这样一件事,从头说起:
设A,B为两个QQ用户,身份认证方式都是"需要验证"。
今A向B提出加好友请求,消息经服务器中转给B,B收到后回复给服务器一条消息(outpacket a8),服务器收到outpacket
a8后四件事:1、在A的好友列表中添加B,2、在B的好友列表中添加A,3、通知A说B已经同意你的请求并且加你为好友了,4、返回给B一条消息(inpacket
a8)说你同意A为你的好友的操作完成了。
利用ethereal+lumaqq debugger工具,可以成功解密inpacket
a8,正文内容和lumaqq接口定义一致,这里解密用到了B登录时服务器返回的Session
Key。但是无法用这个会话密钥解密outpacket a8,虽然这才是我想要的。捕获到的outpacket
a8是用另一种方式加密的,可能是密钥不同,也可能是算法不同。
一旦成功解密outpacket a8,就可以从接口直接完成"同意加好友并反过来加请求者为好友"的操作了。

密码学很有用,要求数学功底很深。王子午同学在数论方面很强,去了中科院安全所,令我十分钦佩。我不打算研究加密算法,但是基本的密码学常识还是应该具备的……

没有评论: