首页 > 代码库 > 我眼中的信息安全
我眼中的信息安全
***********************************************声明******************************************************
原创作品,出自 “晓风残月xj” 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj)。
由于各种原因,可能存在诸多不足,欢迎斧正!
*********************************************************************************************************
我眼中的信息安全
Information security in my eyes
徐进
Xu Jin
(中国地质大学(武汉) 计算机学院计算机科学与技术系, 武汉 中国 430074)
(China university of geosciences (wuhan) computer science and technology department of computer
college , wuhan, China, 430074)
摘 要 信息安全是指信息传输、存储、处理过程中涉及硬件、软件的安全技术。互联网技术的蓬勃发展,促进了从IT时代向DT时代的转型,在这过程中,信息安全显得越来越重要。密码学是信息安全的重要组成部分,本文根据作者对信息安全尤其是密码学的发展历史的简单理解,同时结合作者在腾讯安全部门实习期间的接触到的一些信息安全知识,谈谈作者眼中的信息安全。
关键词 信息安全;密码;私钥加密;公钥加密;数字签名认证;MD5;哈希;
Abstract Information security is the security technology involving both hardware technology and software technology in theprocess of information transmission, storageandprocession .The rapid development of Internet technology promotes the transformation from the IT era to the DT era, during the procession, information security becomes more and more important. Cryptography is an important part of information security. According to my understanding of information security especially the development history of cryptography and combining with my experience worked as an intern in Tencent security department at the same time, I talks about information securityin my eyes.
Key word Information security; Password; Private_key encryption; Public_key encryption; Digital signature authentication; MD5; Hash
1 信息安全简史
信息安全是指信息传输、存储、处理过程中硬件、软件的安全技术,保证其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,信息服务不中断。信息安全主要包括以下五方面的内容,即需保证信息的保密性、真实性、完整性、未授权拷贝和所寄生系统的安全性。
提起信息安全简史,不得不提密码学简史,下面简单罗列一些密码学发展过程中的我认为较为重要的几件事。
1.1 Caesar密码
提起古代战场,人们不禁联想到:铁骑咆哮,风沙卷天,刀光剑影,血雨腥风……其实古代战争不仅有悲壮残酷的一面,还有促进文明的一面。古罗马帝国时期的Caesar密码就是在战争中诞生的密码学起源。Caesar密码能把明文信息变换为敌人难以看懂的密文信息你,当把密文传递到自己伙伴那边时,又可方便地还原明文信息。Caesar密码规则相对简单:加密时,把字母A变成D、B变为E、……、W变为Z、X变为A、Y变为B、Z变为C,即密文由明文字母循环移3位得到;解密时,由密文变为明文也相当简单的,只需将所有字符前移3个位置。这日后被称为密码学的起源。
1.2 Vigenere密码和Beaufort密码
Caesar密码属于单表密码,由于单表密码通过概率的方式及其容易就被破解,16世纪时亨利3世改进了单表加密的Caesar密码体制,形成了Vigenere密码体制,这以后密码正式进入了多表密码体制的时代。在美国的南北战争中,多表替代体制发挥着重要好的作用,Vigenere密码和Beaufort密码是多表代替密码的典型例子。与此同时,密码破译技术也在飞速进步,W.Firedman在1918年所作的使用重合指数破译多表密码成为密码学上的里程碑,随后各国军方对此进行深入研究,一度使得当时世界的密码体制遭到冲击。
1.3 C.Shannon的《保密系统的通信理论》
1949年的某天,C.Shannon将自己进行编写的《保密系统的通信理论》发表在了贝尔系统杂志上。在该文中,C.Shannon提出了保密系统的数学模型、随机密码、 纯密码、 完善保密性、理想保密系统、唯一解距离、理论保密性和实际保密性等重要概念,并提出评价保密系统的5条标准,即保密度、密钥量、加密操作的复杂性、误差传播和消息扩展。论文开创了用信息理论研究密码的新途径,一直为密码研究工作者所重视。它不仅是分析古典密码(譬如上文所说的单表代换和多表代换密码)的重要工具,而且也是探索现代密码理论的有力武器[1]。
1.4 DES标准
DES是一种使用密钥加密的块算法。20世纪70年代中期,随着计算机技术的蓬勃发展,密码学也开始高速发展发展起来。1977年美国国家标准局(ANSI)首次公布了数据加密标准DES用于非军事的国家机关,在当时这一体制是牢不可破的,之后NSA每隔5年就会重新评定DES的安全性。DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密,具体流程见图1[2]。
图1 DES算法图
随着计算设备的数据处理能力越来越强,终于在1995年5月DES遭到攻破,这也一度使得各国更改自己的加密标准。
1.5 RSA算法
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。DES虽然退出了人们的视野,但依然是使用最为广泛的一套密码体制。在70年代中期Diff-Hellman率先提出公钥密码的构想,他认为一个密钥进行加解密的这种方式安全性远远不能达到之后人们的需求,RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。RSA公开密钥密码体制,具体步骤见图2。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解[3]。
图2 RSA算法图解
2 接触的信息安全知识
在腾讯MIG桌面安全产品部实习期间,我对安全技术有了初步的了解。实习期间,我的其中一项任务就是对给定安装包在不安装的前提下解压后提取某个指定.exe文件计算MD5。MD5:Message Digest Algorithm(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。我的理解MD5是一种信息摘要算法,主要是通过特定的Hash散列方法将文本信息转换成简短的信息摘要,压缩+加密+Hash算法的结合体,是绝对不可逆的,具体步骤见图3。这种算法简单高效同时安全性在很大程度上可以得到保证,尽管王小云教授证明出MD5碰撞的可能,但目前这并不妨碍MD5加密的有效性,原因是她不是从MD5密文得到明文,而是通过明文得到能加密一致的碰撞值,故MD5的有着广泛的应用,下面是MD5常用的几个应用场景:
1)、一致性验证
MD5的典型应用是对一段文本信息产生信息摘要,以防止被篡改。
2)、数字证书
如果有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
3)、安全访问认证
在Unix系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。更多MD5的知识请参看我的CSDN个人博客(账号:晓风残月xj;参见博文《MD5算法原理与实现》链接http://blog.csdn.net/xiaofengcanyuexj/article/details),在实习期间写过一篇关于MD5的总结博客。
图3 MD5算法流程
上文中所说的指定.exe文件就是Windows下的应用程序主进程所在源文件,服务器直接传递MD5值客户端这边可以直接读取,然后在客户端这边同时计算指定.exe文件的MD5,二者进行对比,如果相同则认为是正确的源文件,否则一定不是正确的源文件,这就是数字签名认证,类似的技术有MD5、CRC32、SHA等,这些都是基于Hash思想的简单高效的算法;为什么要进行数字签名认证呢?原因有二:
第一、在网络传输过程中会发生可能发生误差,这些误差可能骗过TCP/IP协议族,从而导致应用程序出错;
第二、有些恶意软件可能伪装成同名的源文件,或者是篡改其中部分源代码,导致不可预估的安全事故。
实习期间,所在项目组开发的产品为全民WiFi,是一款宣传上主打游戏与安全功能的软硬件结合产品。关于安全功能,主要是联合腾讯电脑管家进行病毒查杀以及人工防蹭网。前者电脑管家的安全技术较为成熟,主要有本地病毒库比对以及在线云查杀,病毒本质上是一段恶意代码,可能掌握其特征然后运用技术处理;后者则是通过在MVC的视图层增加一个按钮屏蔽特定设备以使其连不上本机WiFi。还有一点体会较为深刻就是在编写底层驱动程序时由于要求的系统权限较高,一个可能的解决办法就是联系微软获得相应权限(因为在桌面上Windows操作系统几乎垄断,而Windows操作系统是不开源的);还有,一些拥有特殊权限的应用程序是很容易被杀毒软件误报为是病毒的,当时有内测用户反映在装有360安全卫士的PC上,安装全民WiFi客户端时会提示是病毒,这一定程度上说明杀毒软件的局限性:只有通过注册认证的软件厂商才能通过检测,至于该应用程序到底是不是病毒有时与技术无关,涉及认为因素(周所周知,腾讯与360的那场著名的3Q大战对整个行业的影响至今存在)。
此外,在实习期间了解了一些安全相关知识和新闻。当时正值微软停止对XP操作系统提供保护后一段时间,鉴于国内XP操作系统安装量巨大,腾讯电脑管家安全团队配合微软官方响应“系统升级计划”,联合金山、搜狗、知道创宇、乌云,以及KEEN等国内知名安全与漏洞平台,针对过渡期继续使用XP系统的用户推出“联合防御计划”,其中包括XP系统漏洞响应规范及主动防御机制,提供便利的系统升级渠道及安全服务,帮助有系统升级需求的用户顺利完成系统升级。
结合个人经历,感觉仅就技术而言,当下有3大类技术尤其重要:搜索、安全、大数据。当然它们之间有交集,其中安全技术又显得更加贴近每个用户:每个人都不想自己的隐私被无情地公布在别人视线里。当今,信息安全问题已越来越突出,掌握必要的信息安全技术还是很有必要的。
致 谢 在此特别感谢我的室友,在写这篇文章的过程中,得到过他们的大力帮助;同时感谢计科一班的王一鹤同学和授课的程池老师,在他们的敦促下我得以按时完成报告!
参 考 文 献
[1] 密系统的通信理论, http://baike.baidu.com/view/1593449.htm?fr=aladdin 2013,12,26
[2] DES, http://baike.baidu.com/item/DES?fr=aladdin 2014,11,04
[3] RSA算法, http://baike.baidu.com/view/10613.htm?from_id=210678&type=syn&fromtitle=RSA 2014,10,30
在此声明,上述是我的信息安全概论结课报告,由于大四了,不想把太多精力放在一些介绍性的课程上,所以没有用心做,很多资料摘抄自网上,结果低分飘过,在此表示感谢!
我眼中的信息安全