基于同态加密的垃圾邮件过滤方案设计
2016-10-18卫少林卫文学
卫少林+卫文学
"""摘要:作为目前最常用的通信方式,电子邮寄给人们的生活带来了极大便利,同时也带来了诸多安全性问题。针对网络中的垃圾邮件问题,该文提出了一种基于同态加密的垃圾邮件过滤方案,其采用同态加密策略对加密后邮件进行了过滤,最终实现了邮件内容的保密及垃圾邮寄的过滤,解决了垃圾邮件对人们的困扰。
关键字:电子邮件;同态加密;解决方案
中图分类号:TP309 文献标识码:A 文章编号:1009-3044(2016)21-0046-02
Abstract: Electronic mail as the most commonly used means of communication has brought great convenience to peoples lives ,and brings many security problems.Aiming at the problem of spam in network,this paper puts forward a kind of spam filtering scheme based on homomorphic encryption,it use the encryption method to filter the encrypted message.Finally, it realizes the confidentiality of mail content and spam mail filtering and solves the problem of spam to people.
Key words: electronic mail; encryption; solution
随着人与人之间通信需求的增长,电子邮件作为一种实时、便捷的通信方式得到了快速发展与普及。邮件是当前Internet中最多的两项应用之一[1]。然而,随着电子邮件的普及,人们在学习生活中不自觉地将自己的邮箱地址对外公开,例如:网站的会员注册,另外,随着互联网的发展,某些非正常用户通过一些非正式的手段穷举、猜测来窃取用户的邮件地址。据互联网协会2015年第10次反垃圾邮件调查结果表明:2014年11月~2015年3月,中国互联网用户收到的垃圾邮寄比例相对同时期其他年份有明显增长。由于垃圾邮件造成的经济损失也越发的严重,根据12321举报中心在2015年下半年垃圾邮件调查报告显示[2]:垃圾邮件给用户造成的主要影响为浪费人们时间以及浪费设备网络资源,其次误导用户受骗,造成经济损失。该文将主要针对垃圾邮件问题,采用同态加密的思想,实现垃圾邮寄的有效过滤以及用户隐私的保护。
1 背景知识
1.1垃圾邮件的定义
垃圾邮件没有一个统一的定义,国际互联网邮件协会于1997年10月做了题名为“不请自来的大量邮件的定义以及其产生的原因”的报告[3]。该报告提出首次提出了垃圾邮件的完整性定义即:不请自来的大量邮件,受到了人们广泛的认可。中国互联网协会对垃圾邮件定义与其基本一致,并在其基础上将包含虚假信息以及发信地址模糊的邮件归为垃圾邮件。
1.2垃圾邮件的过滤
针对垃圾邮件的过滤,人们提出来多种解决方法。
1)设置黑白名单。用户设置邮箱黑名单,服务器根据名单进行单项过滤。
2)反向域名解析及时。邮寄服务器拒绝接收动态分配或没有注册域名的Ip地址邮件。
3)基于内容的邮件过滤。主要有基于规则的过滤方法和贝叶斯过滤方法,是当前反垃圾邮件用到的主要技术[4],如基于规则的Rough set方法[5]。
1.3同态加密
同态加密是一种基于数学难题的计算复杂性理论的密码学技术。其目的为寻求一种操作,对同态加密的数据进行该操作,使得其结果等效于对原数据进行对应操作所加密的结果。为了便于理解,该文以实例对其思想进行描述。
假设A让B 将金子打造为项链,为防止B打造过程中窃取金子,又不影响B进行项链的打造,A进行如下操作。
1)A将金子锁于封闭盒子当中。
2)B可以在不打开盒子的前提下进行项链的打造。
3)A打开盒子得到打造的项链。
该实例逻辑对应关系。
a)盒子:加密算法。
b)上锁操作:数据的同态加密。
c) 加工操作:对同态加密数据的处理。
d) 开锁操作:对处理结果的同态解密。
同态加密算法形式化描述:设m0和m1是明文空间M中的元素,f是M上的运算,E是M上的加密算法,如果存在一个有效的操作函数F使得[6]:
则称E就是针对f的同态加密算法,同态加密的意义在于对于任意复杂的f总能构造出相应的F与之对应。
2 方案设计
2.1电子邮件的工作原理
目前电子邮件主要采用客户机/服务器结构来完成信息在计算机之间的传递。电子邮件系统主要包括客户端用户以及邮箱服务器两部分组成,电子邮件的投递过程可描述为,用户通过客户端投递邮件,邮件服务器接受用户邮件,然后根据目标服务器进行存储转发。另外,当其他服务器向用户服务器发来邮件时,用户邮箱服务器对接收的邮件进行存储等待特定用户登陆读取。其工作过程如图1所示。
根据图1可知,计算机之间邮件的传递主要基于简单传输协议即SMTP/邮寄协议即POP3协议,在电子邮件的发送阶段主要根据SMTP协议来发送邮件,POP3协议主要负责电子邮件的接收。而SMTP/POP3协议是一种非安全的传输协议,两者均为采用任何安全机制,使得电子邮件信息以明文的形式在服务器之间进行传递,这就导致了相关安全问题,例如:邮件内容伪造以及假冒攻击等等。另外在电子邮件出现之初,电子邮件基于快速准确投递的原则,使得SMTP协议过于信任邮件数据中的信息,对邮件的可信度不进行相关的校验,导致了大量垃圾邮件的出现,使得垃圾邮件肆无忌惮的进入用户邮箱,影响网络用户的网络带宽造成网络系统的瘫痪。
摘要:计算机远程监控技术是世界上工业自动化发展到一定程度的重要技术,由于工业生产过程中的自动化和生产设备分散化,传统的现场监控措施已经不能满足当前的监控需求,必须发展以计算机软件为基础的远程监控系统。本文从计算机软件技术下的远程监控系统特点、重要性和架构出发,探讨如何优化当前工业中所需要的远程监控系统。
关键词:计算机软件技术;远程监控系统;系统构架;网络系统
中图分类:TP311 文献标识码:A 文章编号:1009-3044(2016)21-0035-02
远程监控系统不同于以往的现场监控和直接监控技术,是针对现代化大工业生产的适应性监控技术。基于计算机的远程监控系统主要包括计算机软件系统和网络传输系统,其中网络传输系统包括现场控制网络系统、企业内部网络系统以及互联网通信系统,在这个网络系统之上还需要具体的软件系统提供相应的支持。
1 远程监控系统的计算机软件设计思路
远程监控系统的计算机软件设计要依托当前的互联网技术发展,实现灵活的远程监控需要依靠良好的网络建设和充分的软件支持,远程监控系统的软件设计要从底层架构的构建开始向上逐步攀升,以符合最终的监控系统应用需求。
1.1 基于C/S结构的远程监控系统设计思路
C/S结构最早出现在上世纪末,即服务器和客户端组成的联通网络,在这个网络系统中,服务器通过数据库管理客户端之间的信息和联结,允许或限制客户端进行数据库的读写,同时统筹整个数据网络的信息传输情况,并对整体的数据安全进行防护措施更新。在C/S结构的监控系统中,客户端和服务器的正常互动本身就是最重要的数据传输行为,客户端在申请相关信息的时候必须符合服务器的相关规则。这样才能保证整个监控系统的正常运转。
1.2 基于B/S结构的远程监控系统设计思路
B/S结构系统即利用浏览器和服务器之间的联结进行监控系统信息处理的方式,和上文中提到的监控系统设计方式不同,这种设计思路主要是利用Web浏览器来对服务器进行访问,省略了专用的客户端机构,通过URL定位来进行数据库资源的访问和读写。B/S结构的远程监控设计系统主要利用HTML语言进行软件层面的构建,与C/S结构的远程监控系统设计相比,B/S结构系统比较符合当前系统移动化和智能化的发展趋势。
在B/S结构系统的设计思路当中,对用户操作的简化处于一个相当重要的地位,要确保软件系统的扩展性和易用性,同时由于使用web进行系统和用户之间的交互,远程监控系统的维护与更新都只需要对服务器上的根程序进行调整,就可以实现系统的实时监控与更新。
2 远程监控系统计算机软件的设计流程简析
2.1 远程监控系统计算机软件的主要模块
一般远程监控系统的计算机软件可以分为两个主要模块,即服务器端的程序模块和客户端的程序模块,在B/S结构设计思路的远程监控系统中,客户端的程序模块可以被简化和省略,本文从两种设计思路出发,所以服务器端程序模块和客户端程序模块都需要做出一定分析。
2.1.1 计算机远程监控系统当中服务器端的软件模块
在远程监控系统当中,服务器端的程序起到总领全体数据的作用,一般有以下几个重要模块需要在软件设计的过程中进行着重考虑。首先是网络模块,就是指对客户端连接进行监听的模块,,负责网络层之间数据传输的合理运行。其次是数据编码模块,使用行程编码或者霍夫曼编码模式进行图片传输的压缩编码,在远程监控系统当中图片和视频的传输十分重要,因此编码技术在程序中所占的比重很大。最后是主框架模块,负责服务器的信息处理以及传输,一般使用合理的架构能够提高服务器处理信息的效率。
2.1.2 计算机远程监控系统当中客户端的软件模块
和传统的C/S结构计算机远程监控系统软件不同,B/S结构的计算机远程监控系统软件不需要专门的客户端软件模块,只需要在服务器端利用HTML语言编写一个用户界面就可以对远程监控系统进行操作和数据存取,因此客户端软件模块这一项主要是针对C/S结构下正常运转所使用和编制的。
在计算机远程监控系统的客户端软件中,有以下几个部分需要特别关注。首先是接收服务器信息与上传信息的网络模块,与服务器端不同,这里的网络模块重点在于数据的接收和发送,对网络正常运转和处理方面的功能有所弱化,同时也要注重正常连接的维持。其次,数据解码模块也是要和服务器端的数据编码模块配套,可以根据不同的编码解码语言设计多套数据编码解码模块以便操作。另外,在B/S结构下,编码和解码模块都是整合在服务器端模块当中的。最重要的是用户的操作模块,为用户提供简单易懂的操作界面以及相关的系统使用参考,在操作模块设计的过程中应该注重操作的便捷性和易用性。
2.2 远程监控系统计算机软件设计的主要过程
计算机远程监控系统主要包括客户端软件和服务器端软件,在软件设计的过程中要首先对这两个模块进行分别设计。然而在使用的过程中要通过客户端的软件对服务器端的数据进行调动,因此两者之间的连接和传输功能要优先落实,也就是远程控制系统的实现。远程控制系统需要有专门的口令传输通道,并且可以根据各项命令对服务器端进行各种操作。当远程控制系统顺利地将客户端与服务器端连接起来的时候,整个计算机软件系统就基本成型了。
3 计算机远程监控系统的安全问题分析
远程监控系统在未来会越来越多地运用于工业生产的各个流程之中,而且随着网络技术的发展,远程监控系统的作用范围半径也会不断增强,这样远程监控系统的安全问题就必须得到重视。远程监控系统的主要作用是现场信息的测控以及远程对信息的查看,在传输过程中如果不保证数据的安全性,就很容易被别有用心的人利用,导致数据传输不完整或者数据传说过程中出现的数据泄露。计算机远程监控系统的安全问题主要应该从以下几个方面考虑: