网络安全实验_基于通信加密的聊天工具

  简单的思路就是客户端、服务器端通过RSA公钥交换,进而服务器将使用客户端RSA公钥加密后的DES密钥传递给客户端,从而完成密钥交换,在通信过程中使用DES密钥对明文,以及使用对方公钥产生明文的数字签名进行加密,从而实现秘密通信与数据一致性检验。

  未实现身份认证的功能,当第三方截取客户端发送给服务器端的公钥,并发送给客户端自己的公钥与DES密钥时,可以冒充服务器端与客户端进行通信。


初始化服务器端
  1. 初始化UI页面
  2. 生成服务器端RSA私钥公钥
  3. 生成DES密钥
  4. 启动3个服务器端口(msgPort,RSAPort,DESPort)
    1.   msgPort用于接发信息
    2.   RSAPort用于接收客户端发送过来的客户端公钥,以及用于发送服务器端的公钥
    3.   DESPort用于发送DES密钥(由客户端RSA公钥加密后)
  5. 启动2个线程(KeyThread,RecThread)
    1. KeyThread
      1. 初始化
      2. 启动
        1. 发送服务器端的RSA公钥
        2. 发送由客户端公钥加密过的DES密钥
    2. RecThread
      1. 初始化
      2. 启动
      3. 循环{
        1. 接收并用DES密钥解密客户端端发送过来的密文
        2. 接收并用DES密钥解密客户器端发送过来的MD5数字签名
        3. 对明文做一致性检验(客户端公钥以及明文作为输入)}  
服务器端发送Buttion绑定事件
  1. 生成明文MD5数字签名(明文,服务器端私钥作为输入)
  2. 对明文用DES密钥加密并发送
  3. 对数字签名用DES密钥加密并发送 
初始化客户端
  1. 初始化UI页面
  2. 生成客户端RSA私钥公钥 
客户端连接Button绑定事件
  1. 初始化3个socket(RSA,DES,MSG)
    1. MSGSocket用于接发加密信息
    2. DESSocket用于接发DES密钥(由客户端公钥加密)
    3. RSASocket用于接发服务器端公钥
  2. 初始化并启动2个线程(KeyThread,RecThread)
    1. KeyThread
      1. 初始化
        1. 发送给服务器客户端的RSA公钥
      2. 启动
        1. 接收服务器端的RSA公钥
        2. 接收由客户端公钥加密过的DES密钥并进行解密
        3. 保存客户端RSA公钥私钥,服务器端公钥,DES密钥
    2. RecThread
      1. 初始化
      2. 启动
        1.   循环{
          1. 接收并用DES密钥解密服务器端发送过来的密文
          2. 接收并用DES密钥解密服务器端发送过来的MD5数字签名
          3. 对明文做一致性检验(服务器公钥以及明文作为输入)} 
客户端发送Buttion绑定事件
  1. 生成明文MD5数字签名(明文,客户端私钥作为输入)
  2. 对明文用DES密钥加密并发送
  3. 对数字签名用DES密钥加密并发送 
                                 

转载于:https://www.cnblogs.com/hellomrk/p/3524097.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值