一种用户态加密的即时通讯方法与系统与流程

文档序号:12493369阅读:260来源:国知局
一种用户态加密的即时通讯方法与系统与流程

本发明涉及计算机软件相关领域,具体涉及一种用户态加密的即时通讯方法与系统。属于信息安全技术领域。



背景技术:

即时通讯(Instant Messaging,简称IM),是一种基于互联网的即时交流消息方式,它允许两人或多人使用网络实时地传递文字消息、文件乃至实现语音与视频交流。当前国内外的即时通讯系统很多,其中市场占有率较高的有QQ、微信、WhatsApp、Skype等。但是随着用户的普及,巨大的潜在利益开始浮现,即时通讯系统也开始成为黑客和病毒的攻击目标。调查也表明,现在互联网用户已经越来越关注自己的隐私,开发者也开始开发更加安全的即时通讯系统。

加密是当前即时通讯系统常用的防护手段,即消息发送方与接收方协商一个消息密钥,然后在通讯时使用该消息密钥对通讯信息进行加解密。然而,现有的即时通讯系统采用的加密方案存在局限性:在这些加密方案中,消息密钥对服务器是可见的。由于即时通讯服务器是属于服务提供商所有,其运行不受用户控制,用户并不能保证服务商不会出于商业或其他的原因访问用户通讯内容,因此用户的隐私并不能真正的得到保护。实现一个对用户而言真正安全的即时通讯系统,是当前的迫切需求。



技术实现要素:

针对上述问题,本发明提供了一种用户态加密的即时通讯方法与系统。本发明基于用户特征构建仅由用户掌控的特征密码,并基于此用户特征密码对通讯内容进行加密,以达到向包括服务器在内的任何第三方隐藏通讯内容的目的。该方法安全性强,从而在实现点对点聊天、群聊、文件、图片传输等基本即时通讯系统功能的同时,保证了用户通讯信息的机密性。

为了实现上述目的,本发明采用以下技术方案:

一种用户态加密的即时通讯方法,通过客户端和服务器端实现,包括以下步骤:

A.为每个用户注册一个用户特征密钥和一对公私钥;

B.需要进行点对点聊天时,消息发送方随机构造一个密钥用于消息加密,以下称之为“消息密钥”;

C.消息发送方访问服务器以读取消息接收方的公钥;

D.消息发送方基于非对称加密算法,使用消息接收方的公钥加密消息密钥;

E.消息发送方基于对称加密算法,使用消息密钥加密待发送的消息内容;

F.消息发送方将加密后的消息密钥和消息发送给服务器端;

G.服务器端将加密后的消息密钥和消息发送给消息接收方;

H.消息接收方输入用户特征信息以登录系统;

I.消息接收方使用自己的私钥解密获取消息密钥;

J.消息接收方使用消息密钥对消息进行解密,获取消息内容。

进一步地,所述的用户态加密的即时通讯方法,采用以下技术方案以支持群组通信:

K.群主创建一个群,并为该群注册一对公私钥;

L.用户可以通过查找群名称以申请加入该群;群主通过该用户加入群的申请后,群主客户端使用该用户的公钥加密群私钥,并上传到服务器端;

M.需要进行群聊时,消息发送方随机构造一个消息密钥;

N.消息发送方访问服务器读取群公钥;

O.消息发送方基于非对称加密算法,使用群公钥加密消息密钥;

P.消息发送方基于对称加密算法,使用消息密钥加密消息内容;

Q.消息发送方将加密后的消息密钥和消息发送给服务器端;

R.服务器端将加密后的消息密钥和消息发送给群内其他成员;

S.消息接收方访问服务器端读取加密后的群私钥;

T.消息接收方使用自己的私钥解密获取群私钥;

U.消息接收方使用群私钥解密获取消息密钥;

V.消息接收方使用消息密钥对消息进行解密,获取消息内容。

进一步地,所述的用户态加密的即时通讯方法,其中,所述步骤A中具体包括:

A1.客户端请求注册用户输入特征信息,并根据该特征信息构建该用户独有的特征密钥;

A2.客户端为用户生成一对公钥和私钥;

A3.基于对称加密算法,客户端使用用户特征密钥加密用户私钥,并将加密后的私钥和未加密的公钥上传到服务器端。

进一步地,所述的用户态加密的即时通讯方法,其中,所述步骤H中具体包括:

H1.客户端请求消息接收方输入特征信息,并根据该特征信息构建该用户独有的特征密钥;

H2.客户端访问服务器端读取加密后的私钥;

H3.客户端使用用户特征密钥解密获取自己的私钥。

进一步地,所述的用户态加密的即时通讯方法,其中,所述步骤K中具体包括:

K1.群主客户端为群生成一对公钥和私钥;

K2.群主客户端使用群主的公钥加密群的私钥,然后将加密后的群私钥和未加密的群公钥上传到服务器端。

进一步地,所述的用户态加密的即时通讯方法,其中,所述步骤L中具体包括:

L1.群主通过某用户加入群的申请后,群主客户端访问服务器端读取该用户的公钥;

L2.群主客户端使用该用户的公钥加密群私钥,然后将加密后的群私钥上传到服务器端。

进一步地,所述的对称加密算法是可扩展的,支持以任意安全可靠的方式进行实现,如SM1算法、SM4算法、DES算法、AES算法等。所述的非对称加密算法也是可扩展的,支持以任意安全可靠的方式进行实现,如SM2算法、RSA算法等。

进一步地,所述的用户特征信息可以是指纹、虹膜、面孔等用户独有的生物信息,或者USB KEY、手势、密码等其他仅由用户控制的秘密信息。

进一步地,所述的根据用户特征信息构建用户特征密钥的过程是一个一一映射函数,即同样的用户特征信息总是对应到同样的用户特征密钥,不同的用户特征信息总是对应到不同的用户特征密钥。上述即时通讯方案最终的安全性取决于用户是否具备对应的用户特征。如果某用户具备该特征(比如指纹正确),则其可以通过用户特征获取用户私钥,然后通过用户私钥获取消息密钥,最后通过消息密钥获取消息内容。即当且仅当用户特征正确时用户才能获知通讯消息内容。

一种用户态加密的即时通讯系统,包括服务器端、若干客户端,所述客户端分别通过网络与服务器端连接。

所述服务器端包括:

即时通讯服务组件,主要用于提供基本的即时通讯服务,转发用户加密的信息;

云存储组件,主要用于存储用户的公私钥信息和加密的聊天记录,并及时响应用户发起的读写请求。

所述客户端分别包括:

用户特征读取组件,主要用于在用户登录和注册时读取用户输入的用户特征信息;

加解密组件,主要用于生成加解密所需的密钥和相关参数,并对发送的消息进行加密操作,对接收的消息进行解密操作。

和现有技术相比,本发明具有如下优势:

1.安全性强,排除了服务器查看用户通讯信息的可能,保证了只有发送者和接收者了解通讯信息内容;

2.密钥管理方便,用户只需在注册和登录时输入正确的用户特征信息,此后便可像使用普通即时通讯产品一样使用本方法和系统,加解密过程对用户透明。

附图说明

图1是本发明一种用户态加密的即时通讯系统的结构图;

图2是本发明的用户注册流程图;

图3是本发明的用户登录流程图;

图4是本发明的单聊消息传输流程图;

图5是本发明的新建群流程图;

图6是本发明的用户加入群流程图;

图7是本发明的群聊消息传输流程图。

具体实施方式

下面将详细描述本发明的各个方面的特征,但不以任何方式限制本发明的范围。

本实施例的用户态加密的即时通讯方法,通过客户端和服务器端实现,图1是其系统结构图,包括以下步骤:

A.用户注册:记用户编号为i,为用户i注册用户特征密钥FKi和一对公私钥PKi、SKi;用户注册流程如图2所示;

B.单聊:单聊消息传输流程如图4所示,记消息发送方为用户a,消息接收方为用户b。a随机构造一个密钥k用于消息加密;

C.a访问服务器端读取b的公钥PKb

D.a使用PKb加密k,得到AEnc(k,PKb);

E.记待发送的消息内容为M,a使用k加密M,得到SEnc(M,k);

F.a将AEnc(k,PKb)和SEnc(M,k)发送给服务器端;

G.服务器端将AEnc(k,PKb)和SEnc(M,k)发送给b;

H.b输入用户特征信息Fb以登录系统;用户登录流程如图3所示。

I.b使用自己的私钥SKb解密AEnc(k,PKb)获取消息密钥k;

J.b使用消息密钥k解密SEnc(M,k)获取消息内容M;

所述的用户态加密的即时通讯方法,采用以下技术方案以支持群组通信:

K.新建群:记群主为a,新建群g,a为群g注册一对公私钥PKg、SKg;新建群流程如图5所示;

L.添加群成员:记新成员为用户b,群主a通过用户b加入群g的申请后,a客户端使用b的公钥PKb加密群私钥SKg,并将AEnc(SKg,PKb)上传到服务器端;用户加入群流程如图6所示;

M.群聊:群聊消息传输流程如图7所示,记消息发送方为用户a,群为g,要发送的消息内容为M',a随机构造一个消息密钥k';

N.a访问服务器端读取群公钥PKg

O.a基于非对称加密算法,使用群公钥PKg加密消息密钥k',得到AEnc(k',PKg);

P.a基于对称加密算法,使用消息密钥k'加密消息内容M',得到SEnc(M',k');

Q.a将加密后的消息密钥AEnc(k',PKg)和消息SEnc(M',k')发送给服务器端;

R.服务器端将加密后的消息密钥AEnc(k',PKg)和消息SEnc(M',k')发送给群内其他成员,如用户b;

S.b访问服务器端读取用自己公钥加密的群私钥AEnc(SKg,PKb);

T.b使用自己的私钥SKb解密获取群私钥SKg

U.消息接收方使用群私钥SKg解密AEnc(k',PKg)获取消息密钥k';

V.消息接收方使用消息密钥k'解密SEnc(M',k')获取消息内容M'。

所述的用户态加密的即时通讯方法,其中,所述步骤A中具体包括:

A1.用户i输入特征信息Fi,客户端根据该特征信息构建该用户独有的特征密钥:

FKi=Trans(Fi);

A2.客户端为用户i生成一对公钥和私钥:{PKi,SKi}=Keygen(i);

A3.使用FKi加密SKi,并将{SEnc(SKi,FKi),PKi}上传到服务器。

所述的用户态加密的即时通讯方法,其中,所述步骤H中具体包括:

H1.用户b输入特征信息Fb,客户端根据该特征信息构建该用户独有的特征密钥:

FKb=Trans(Fb);

H2.b访问服务器读取SEnc(SKb,FKb);

H3.b使用FKb解密SEnc(SKb,FKb)获取自己的私钥SKb

所述的用户态加密的即时通讯方法,其中,所述步骤K中具体包括:

K1.客户端为群g生成一对公钥和私钥{PKg,SKg}=Keygen(g);

K2.客户端使用群主的公钥PKa加密群的私钥SKg,然后将{AEnc(SKg,PKa),PKg}上传到服务器端。

所述的用户态加密的即时通讯方法,其中,所述步骤L中具体包括:

L1.群主通过用户b加入群g的申请后,群主客户端访问服务器端读取该用户的公钥PKb

L2.群主客户端使用PKb加密SKg,然后将加密后的群私钥AEnc(SKg,PKb)上传到服务器端。

对以上涉及函数的解释:

Trans是一个任意满足一一映射条件的函数。在本实施例中,可规定用户特征信息为长度16字节的密码,映射条件为“等于”,即Fi=Trans(Fi)

SEnc和SDec是一对对称加解密算法,支持以任意安全可靠的方式进行实现,如SM1算法、SM4算法、DES算法、AES算法等。在本实施例中,可选取AES实现。

AEnc和ADec是一对非对称加解密算法,支持以任意安全可靠的方式进行实现,如SM2算法、RSA算法等。Keygen是该非对称加密算法的密钥产生函数。在本实施例中,可选取RSA实现。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1