‘壹’ 大学生宿舍笔记本电脑防盗的问题
“小天使·笔记本防盗软件”系列产品简介:
擎天软件公司生产的“小天使-笔记本电脑防盗软件”系列产品已经获得两大政府权威机构立项支持,累计投资金额近100万:
1、国家科学技术部科技型中小企业技术创新基金管理中心立项,立项代码:09C26226115691
2、西安市科技计划项目(企业技术创新工程-青年科技人才创业项目中被列入2010年度青年科技人才创业计划,项目编号 CY1004。(西安市科学技术局、西安市财政局 、高新区管委会)
“小天使”防盗软件作为电脑防盗的首创品牌和领军品牌,已经为国内数百家企业广泛使用,拥有自主知识产权,已获多项国家专利授权。公司产品“防盗报警软件”核心技术均采用国防级加密算法,延续数十年的核心代码技术,质量稳定,性能可靠。公司倡导的"从消防到预防"的 安防理念已经得到愈来愈多的用户认可,并广泛在警方、企业、校园、笔记本生产企业等领域投入应用,为开创、建立中国的笔记本防盗行业而兢兢业业。 我们正在创造一个行业! 我们的目标,我们的使命是:让电脑成为人类历史上第一个永远不会丢失的物品。
产品三大特点:(给您的电脑,三层保护)
一、第一层保护——小天使·报警器
触发式高频声音报警器(让你的电脑会大叫救命)
当别人动你的电脑时(触发报警动作),你的笔记本就会自动报警(通过喇叭和音响以最高的音量发出防盗报警的声音,而且无论你的
系统声音选项是否是静音还是处于最小音量状态,小天使都会以最大音量发出报警声。
考虑细节特点,贴心周全:
1、如果报警时您的电脑音量不够大,没关系,报警前小天使笔记本防盗软件会自动调整Windows系统音量到最大。
2、万一您忘记了把电脑的声音关闭了,也没关系,小天使会自动关闭静音状态,然后发出警报。
3、电脑内置的PC喇叭会同时进行鸣叫,即便音响系统故障了、被破坏了,仍然可发出高频的警报笛声。
4、触发报警的条件考虑全面,包括:①有人拔出你的笔记本电脑A/C电源、②企图注销系统或关机、③拔出USB鼠标(或任意USB设备)、
④移动鼠标、 ⑤或者在XX分钟没有鼠标或键盘动作,则自动进入保护状态,也就是进入可随时触发报警器的敏感状态。
5、小天使报警器有自我防御功能,可以避免被别有用心的人恶意破坏。(含进程保护等技术)
2、第二层保护——小天使·定位追踪器
虽然有了电脑报警器,但是我们在一些情况下,还是有可能丢失电脑,那么万一丢失了,怎么才能找回来呢?
那就要用到“小天使·定位追踪器”了。
“小天使·定位追踪器”一旦启动,就相当于给您的电脑安装上了一个“定位追踪装置”,笔记本电脑被偷走后,“小天使”
便能自动向擎天公司的追踪服务器中心提供该笔记本的IP地址、电话号码、QQ聊天记录等信息,这样便可协助警方找回笔记本。
“小天使”会以一种无法被察觉的方式不时的向中心服务器报道笔记本所在的位置。
“小天使”可以说是“史上最匪夷所思的笔记本防盗软件”因为不论是盗窃者重新安装Windows还是格式化整个系统,都无法
破坏本软件。只要他一上网,仍然逃脱不了我们的监视追踪!必要的时候,它还可以在你的控制下,远程遥控摄像头,进行拍照,
以便获得犯罪嫌疑人照片。
3、第三层保护——小天使·数据保险箱
本软件还可自动对硬盘的内容进行加密或销毁处理,即使笔记本被偷您也不用担心信息泄露。
总结:这三层防护一起为您构筑起了一道钢铁防线
——首先,我们不让电脑丢; 万一丢了,我们能追踪回来; 万一找不回来,我们的重要文件数据也是安全的。
“小天使防盗跟踪软件”是一套集合目前国内外几乎所有电脑防盗技术之大成的综合性电脑防盗产品。其覆盖包括:声音报警+远程追踪
+保险公司+摄像头+聊天记录+数据保险箱,等等一应俱全,是中国第一款由国人完全自主研发的电脑防盗软件在警方刑侦破案、
校园、企业等等不同领域获应用,并且取得一定反响。已通过公安部检测,而且有保险公司承担第三方保险。
‘贰’ 学习网络安全的大学生,毕业考试会不会直接实战
网络安全学习起来比较的枯燥,导致许多的学生在平时的时候没能完全的掌握老师所传达的知识。马上又要面临毕业,心里就会产生怀疑如果毕业考试比较深入,但自己又学习的不够深入,会不会没发通过考试,导致自己毕不了业。笔者在这里可以明确的告诉你,你平时所学的知识肯定会用到,但至于需要用到多少,这个在于你取决的方向。
所以,并不是学习网络安全,在毕业考试的时候就只能够做关于网络安全的毕业设计,你有很多的选择。但是呢不管选择做什么,毕业考试的时候都是需要自己动手的,自己查资料然后完成毕业设计,指导老师只会给出建议和提出要求,剩下的都需要学生自己去完成。
我觉得我们的同学也不用太过担心,我原来也是,感觉自己学的不扎实,害怕自己完成不了毕业考试,但是万事总是开头难,当你鼓起勇气动手去做的时候,可能刚开始会有点慢,一段时间以后进步就会非常大,通过毕业考试也不在话下。
‘叁’ 自学信息安全!!!
天津市高等教育自学考试课程考试大纲
课程名称:
信息安全
课程代码:7172
第一部分
课程性质与目标
一、课程性质与特点
《信息安全》是高等教育自学考试软件工程专业的一门专业课程。通过本课程的学习,使学生对信息安全的重要性和与信息安全有关的基本概念、方法和技术有一个全面的了解并将其运用到实践中去。
本课程主要讲述信息安全的理论及应用,包括密码学的基本理论及应用、网络攻击及防护、WEB安全威胁及防范、计算机病毒的防范以及电子商务的安全。
本大纲是根据高等教育自学考试软件工程专业(独立本科段)的指导思想和培养目标编写的,立足于培养将信息安全技术应用于本领域、本行业的复合型应用人才。大纲内容尽可能简明实用,便于教师操作和学生掌握。
二、课程目标与基本要求
通过本课程的学习和考试,使学生对信息安全方面的知识有全面的了解,并能将信息安全方面的知识和技术运用于实践中。课程的基本要求包括:
1、了解计算机安全的基本概念以及相关的标准;
2、掌握计算机病毒的基本结构和防治的基本办法;
3、了解密码学的基本概念及古典密码学的加密与分析方法、shannon密码学理论和序列密码的基本概念;
4、掌握现代加密方法,包括DES、Rijndael、RSA等算法;
5、掌握密码技术在信息安全中的应用;
6、掌握网络安全技术、网络系统安全策略与设计、网络操作系统安全、数据库安全、虚拟专用网安全及防火墙技术等;
7、了解Web面临的安全威胁和防范技术及电子商务安全等。
三、与本专业其他课程的关系
信息安全涉及多学科知识,在学习本课程之前应先行学习本专业的计算机网络技术,并应有一定的计算机操作系统、高等数学方面的知识。
第二部分 考核内容与考核目标
第一章
绪论
一、学习目的与要求
通过本章学习,了解信息安全的基本概念及网络信息安全的标准,对信息安全的重要性及研究内容有一个初步了解。
二、考核知识点与考核目标
(一)信息安全基本概念(重点)
识记:信息安全基本概念、信息安全面临的威胁、网络信息安全特征与保护技术、网络信息安全与保密学。
(二)网络信息安全(重点)
识记:网络信息安全体系结构框架、网络信息安全机制及安全标准。
第二章 计算机病毒概述
一、学习目的与要求
通过本章的学习,对计算机病毒的概念、特点及反病毒技术有一个了解,掌握计算机病毒的检测与防范方法。
二、考核知识点与考核目标
(一)计算机病毒的发生和发展(一般)
识记:计算机病毒的起源与发展历史。
(二)计算机病毒产生的原因(次重点)
识记:计算机病毒产生的原因、典型病毒及特点、防治病毒的基本技术。
(三)计算机病毒的检测与消除(重点)
识记:计算机病毒的检测类型及检测方法。
应用:计算机病毒消除方法。
第三章 密码学概论
一、学习目的与要求
通过本章的学习,掌握信息加密的基本概念和传统密码学的加密方法与分析方法,了解shannon密码学理论和序列密码、Hill密码、一次一密方案的基本概念。
二、考核知识点与考核目标
(一)信息加密的基本概念(重点)
识记:信息加密的基本概念。
(二)传统密码学(重点)
识记:单表代换密码、多表代换密码、多字母代换密码、一次一密方案的概念。
应用:单表代换密码、多表代换密码、多字母代换密码的加密方法与分析方法。
(三)shannon理论(一般)
识记:信息量和熵的定义及有关定理,完善保密性与实际保密性的概念。
(四)序列密码(一般)
识记:序列密码的概念和分类、密钥流概念。
(五)仿射密码(重点)
识记:Hill密码概念、加法密码、乘法密码、仿射密码。
理解:Hill密码体制。
应用:Hill加密与解密。
第四章 加密算法
一、学习目的与要求
通过本章学习,了解对称密码算法和公开密钥密码算法、数据加密标准DES算法和Rijndael算法,以及RSA等加密算法。
二、考核知识点与考核目标
(一)分组密码(次重点)
识记:分组密码概念及设计原则,分组密码中常用函数与S盒设计。
理解:分组密码的工作方式。
(二)DES与Rijndael算法(重点)
识记:DES与Rijndael等算法的特点。
理解:DES算法和Rijndael算法的加密与解密的实现。
(三)密码攻击方法(次重点)
识记:密码攻击的概念。
理解:密码攻击形式、统计分析破译法、已知明文攻击破译法。
(四)双钥密码体制(重点)
识记:双钥密码体制的基本概念与特点、公钥密码背景。
理解:RSA密码体制与EIGamal密码体制。
第五章 密码应用
一、学习目的与要求
通过本章学习,了解密码技术在信息安全中的应用,掌握密码与安全协议概念、数字签名和身份认证方法以及CA与公钥密码基础实施的相关概念及应用。
二、考核知识点与考核目标
(一)数字签名体制(重点)
识记:RSA签名的概念,几种特殊的数字签名,常规密码安全协议与高级安全密码协议。
理解:RSA签名体制与数字签名标准,不可否认数字签名方案。
(二)hash函数(一般)
识记:生日攻击概念。
理解:MD与SHA算法。
(三)身份识别协议(重点)
识记:身份识别的概念和作用。
理解:schnonr身份识别方案及信息隐藏技术。
(四)CA与数字证书(重点)
识记:CA的基本概念、申请与撤消证书的流程。
(五)公开密钥基础设施(次重点)
识记:证书的类型和证书内容,CA、证书主体、证书用户之间的关系、强身份认证与不可否认的概念、X.509证书系统概念及内容。
第六章 计算机网络系统集成安全技术
一、学习目的与要求
通过本章学习,掌握网络安全策略与设计以及防火墙和入侵检测技术,了解网络操作系统安全、数据库安全。
二、考核知识点与考核目标
(一)网络系统安全策略与设计(重点)
识记:网络的安全体系与安全设计。
理解:网络系统实体安全与网络安全措施、PPDR-A模型。
(二)网络操作系统安全(重点)
识记:网络操作系统的安全问题及安全访问控制、安全操作系统设计与实施、数据库安全防护、PKI技术内容。
理解:Windows
NT安全、UNIX安全、Linux安全、VPN安全技术、PKI工程。
(三)防火墙技术(重点)
识记:黑客攻击特征与防范技术、防火墙概念及作用,防火墙的局限性,网络测试工具。
理解:防火墙的体系结构及组合形式、几种主要的防火墙技术。
(四)入侵检测(重点)
识记:入侵检测的概念,入侵检测系统的分类。
应用:入侵检测的过程与技术,入侵检测系统的选择和评价。
(五)网络安全防护(重点)
应用:多层次网络安全防护及网络安全策略。
第七章 网络通信安全保密技术
一、学习目的与要求
通过本章学习,了解网络通信保密技术类型、保密通信技术要求及类型、网络通信加密安全措施、网络通信访问与接入控制、电子邮件安全、IP安全、Web安全。
二、考核知识点与考核目标
(一)网络通信保密技术(次重点)
识记:保密通信基本要求、网络通信信息流控制与通信保密技术。
(二)Web安全(次重点)
识记:Web安全基本问题。
理解:SSL安全技术、HTTP/SHTTP的安全性。
(三)网络通信加密安全措施(次重点)
识记:加密密钥的分配管理、链路加密、端—端加密概念。
理解:网络通信加密形式、链路加密和端—端加密原理及特点。
(四)网络通信访问与接入控制(次重点)
识记:通信访问安全机制、接入访问安全控制。
(五)电子邮件安全(一般)
识记:PGP加密方案、PGP公钥管理。
(六)电子商务安全(次重点)
识记:电子商务安全问题、典型电子交易协议。
理解:电子支付系统与SET安全技术、电子商务安全策略。
(七)IP安全(次重点)
识记:IP安全主要内容
理解:IP安全技术
第三部分 有关说明与实施要求
一、考核目标的能力层次表述
本课程的考核目标共分为三个能力层次:识记、理解、应用,它们之间是递进等级的关系,后者必须建立在前者基础上。其具体含义为:
识记:能知道有关的名词、概念、知识的含义,并能正确认识和表述,是低层次的要求。
理解:在识记的基础上,能全面把握基本概念、基本原理、基本方法,能掌握有关概念、原理、方法的区别与联系,是较高层次的要求。
应用:在理解的基础上,能运用基本概念、基本原理、基本方法联系学过的多个知识点分析和解决有关的理论问题和实际问题,是最高层次的要求。
二、教材
《网络与信息安全教程》
林柏钢编着 机械工业出版社 2004年7月第1版
三、自学方法指导
1、在开始阅读指定教材某一章之前,先翻阅大纲中有关这一章的考核知识点及对知识点的能力层次要求和考核目标,以便在阅读教材时做到心中有数、突出重点、有的放矢。
2、在了解考试大纲内容的基础上,根据考核知识点和考核要求,在阅读教材时,要逐段细读,逐句推敲,集中精力,吃透每一个知识点,对基本概念必须深刻理解,对基本理论必须彻底弄清,对基本方法必须牢固掌握,并融会贯通,在头脑中形成完整的知识体系。
3、在自学过程中,既要思考问题,也要做好阅读笔记,把教材中的基本概念、原理、方法等加以整理,这可从中加深对问题的认识、理解和记忆,以利于突出重点,并涵盖整个内容,可以不断提高自学能力。同时,在自学各章内容时,能够在理解的基础上加以记忆,且勿死记硬背。
4、完成书后作业和适当的辅导练习是理解、消化和巩固所学知识,培养分析问题、解决问题及提高能力的重要环节。在做练习之前,应认真阅读教材,按考核目标所要求的不同层次,掌握教材内容,在练习过程中多所学知识进行合理的回顾与发挥,注重理论联系实际和具体问题具体分析,解题时应注意培养逻辑性,针对问题围绕相关知识点进行层次(步骤)分明的论述或推导,明确各层次(步骤)间的逻辑关系。
四、对社会助学的要求
1、应熟知考试大纲对课程提出的总要求和各章的知识点。
2、应掌握各知识点要求达到的能力层次,并深刻理解对各知识点的考核目标。
3、辅导应以考试大纲为依据,指定教材为基础,不要随意增删内容,以免与大纲脱节。
4、辅导时,应对学习方法进行指导。提倡“认真阅读教材,刻苦钻研教材,主动争取帮助,依靠自己学通”的方法。
5、辅导时,要注意突出重点,对考生提出的问题,不要有问即答,要积极启发引导。
6、注意对应考者能力的培养,特别是对自学能力的培养,要引导学生逐步学会独立学习,在自学过程中善于提出问题、分析问题、解决问题的能力。
7、要使考生了解试题的难易与能力层次高低两者不完全是一回事,在各个能力层次中存在不同难度的试题。
8、助学学时:本课程共4学分,建议总学时72学时,课时分配如下:
章
次
内
容
学
时
第一章
绪论
2
第二章
计算机病毒概述
8
第三章
密码学概论
12
第四章
加密算法
12
第五章
密码应用
12
第六章
计算机网络系统集成安全技术
12
第七章
网络通信安全保密技术
14
总学时
72
五、关于考试命题的若干规定
1、本大纲各章所提到的内容和考核目标都是考试内容。试题覆盖到章,适当突出重点。
2、试卷中对不同能力层次的试题比例大致是:“识记”为10%、“理解”为30%、“应用”为60%。
3、试题难易程度要合理:易、较易、较难、难比例为2:3:3:2。
4、每份试卷中,各类考核点所占比例约为:重点占65%、次重点占25%、一般占10%。
5、本课程命题采用的基本题型包括名词解释、单项选择题、填空题、简答题、应用题、计算题等。
6、考试采用闭卷笔试,考试时间150分钟,采用百分制评分,60分为合格。
六、题型示例
(一)填空
计算机病毒由引导模块、传染模块和
模块构成。
(二)单选题
差分密码分析是采用
方法攻击选优分组密码的。
A、已知密文攻击
B、已知明文攻击
C、选择明文攻击
D、选择密文攻击
(三)名词解释
超级冲杀
ARP欺骗
(四)简答题
1、说明双重签名的实现方法?
2、说明SET协议的主要目标?
(五)计算题
已知公开密钥为e=5,n=35,密文c=10,求明文。
(六)应用题
写出利用SET协议实现用户双方认证的过程。
天津市高等教育自学考试课程考试大纲
课程名称:信息安全
课程代码:7172
‘肆’ 关于使用c#进行文件夹加密的问题!!
要不把文件看成比特流加密好了。
.Net中常见的加密和编码算法集成在.NET Framework中
名称空间:System.Security.Cryptography
需要掌握System.Security.Cryptography名字空间的功能和用于解决特定方案的类。
你可以去研究下喔
‘伍’ 大学数学系老师课余时间的研究课题都为哪类请举例说明
数学有相当多的分支:你的问题太泛了。
我就举几个例子吧。比如搞基础数学的,像数论的就可以搞密码研究,例如山东大学的王小云就是搞加密算法的,用的是纯数学函数方面的东西。密码学和数学结合相当紧密的,国内西电的应用数学就是因为她的密码学而闻名的。还有搞信号的,也要数学系的老师,还有搞网络算法的,数学系的老师也搞,总之涉及的领域相当多,你说的还有楼上说的都只是些表面浅层的东西。
‘陆’ 大学生医保电子凭证参保地是在家乡还是学校
大学生医保电子凭证参保地是在学校。
医保电子凭证由国家医保信息平台统一签发,是基于医保基础信息库为全体参保人员生成的医保身份识别电子介质。电子凭证通过实名/实人认证技术,采用加密算法形成电子标识,具备安全可靠、认证唯一等重要特点。参保人可通过电子凭证享受各类在线医疗保障服务。
(6)大学生加密算法扩展阅读:
医保电子凭证具有身份凭证、信息记录、自助查询、医保结算、缴费及待遇领取、办理医保业务等功能,确保群众能够在互联网上高效、安全地享受医疗保障部门的各项公共服务。参保人可通过国家医保App,或者通过微信、支付宝等经由国家医保局认证授权的第三方渠道激活使用。
在安全性上,医保电子凭证通过实名、实人认证,采用国产加密算法,数据加密传输,动态二维码展示,确保个人信息和医保基金使用安全。它由国家医保信息平台统一生成,标准全国统一,跨区域互认,参保人可依此在全国办理有关医保业务,堪称“一码在手,医保无忧”。
‘柒’ 软件加密与解密的前言
隐蔽软件(surreptitious software)是近十年来计算机安全研究领域新兴的一个分支。在隐蔽软件的研究过程中不仅需要借鉴计算机安全方面的技术,还会用到计算科学其他领域的大量技术,如密码学、隐写术、数字水印、软件量度(software metric)、逆向工程以及编译器优化等。我们使用这些技术来满足在计算机程序中安全存储秘密信息的需求,尽管这些需求的表现形式千差万别、各不相同。本书中“秘密”一词的意思比较广,书中所介绍技术(代码混淆、软件水印和指纹、防篡改技术以及软件“胎记”等)的使用目的是防止他人剽窃软件中的智力成果。比如,软件中使用指纹技术可以用来跟踪软件是否被盗版,代码混淆技术能够加大攻击者逆向分析软件的难度,而防篡改技术则可以使别人很难制作软件的破解版,等等。
好了,现在我们来讲讲为什么需要阅读本书,谁使用隐蔽软件以及本书将会涵盖哪些内容。
为什么阅读本书
与传统的安全研究不同,隐蔽软件不关心如何使计算机免于计算机病毒入侵,它关心的是计算机病毒的作者是如何防止他人分析病毒的!同样,我们也不关心软件到底有没有安全漏洞,我们关心的是如何隐蔽地在程序中加入一些只有在程序被篡改时才会执行的代码。密码学研究领域中,被加密数据的安全性依赖于加密密钥的隐秘性,而我们现在研究的恰恰是如何隐藏密钥。软件工程中有大量的软件量度技术,以确保程序结构良好,本书中将使用同样的技术使程序复杂难读。本书中描述的很多技术都是基于编译器优化技术研究开发的算法的,但是编译优化的目的是使编译器生成个头尽量小、运行速度尽量快的程序,而使用本书中介绍的一些技术却会使生成的程序个头又大,执行起来又慢。最后,传统的数字水印和隐写术是想办法把要隐藏的信息藏到图像、音频、视频甚至纯文本文件中,而隐蔽软件则是把需要隐藏的信息藏到计算机代码中。
那么,为什么要阅读本书呢?为什么要了解一种不能防止计算机被病毒或者蠕虫攻击的安全技术?为什么要学习一种只会让代码体积变大而执行速度变慢的编译优化技术?为什么要把精力花在一种违反了密码学基本前提(即密钥是不可能被攻击者获得的)的密码学分支上呢?
回答是,传统的计算机安全和密码学研究成果有时并不能解决实际工作中遇到的且亟待解决的安全问题。比如,在本书中将展示如何使用软件水印技术防止软件盗版。软件水印是在程序中嵌入的唯一标识(类似信用卡的卡号或者版权声明),通过这个标识,程序的某个副本就和你(程序的作者)或者客户联系在了一起。要是你发现市场上在卖自己软件的盗版光盘,就可以通过在盗版软件中提取的水印追查制作这个盗版软件的母版 当初是哪个家伙从你这里买走的。当给合作商提供新开发的游戏的测试版时,你也可以在测试版中加上数字水印。要是你感觉有人泄露了你的代码,就能(从众多的合作商中)找出肇事者,并把他送上法庭。
又比如,在程序的新版本中加上了某个新的算法,你当然不希望竞争对手也得到这个算法,并把它加到他们的软件中。这时,你就可以去混淆程序,使之尽可能变得复杂难懂,使竞争对手逆向分析软件时效率很低。而如果确实怀疑某人剽窃了你的代码,本书也会教你如何使用软件“胎记”证实你的怀疑。
再比如,你的程序中包含有某段不能为人所知的代码,并且你想确保没有这段代码程序就不能正常运行。例如,你肯定不希望黑客修改程序中的软件使用许可验证代码,或者可用于解密数字版权管理系统中mp3文件的密钥。第7章将讨论多种防篡改技术,确保受到篡改的程序停止正常运行。
听说你把密钥放在可执行文件里了?这主意实在太糟糕了!以往的经验告诉我们,任何类似“不公开,即安全” 的做法最终都将以失败告终,而且不管在程序中怎样隐藏密钥,最终它都逃不出一个足够顽强的逆向分析人员的手心。当然,必须承认你的做法也还是对的。本书中介绍的所有技巧都不能保证软件能永远免于黑客的毒手。不必保证某个东西永远处于保密的状态,也不必保证程序永远处于不可能被篡改的状态,更不需要保证代码永远不会被剽窃。除非这个研究领域有什么重大的突破,否则能指望的只是延缓对方的攻击。我们的目标就是把攻击者的攻击速度减缓到足够低,使他感到攻击你的软件十分痛苦或要付出过高的代价,从而放弃攻击。也可能攻击者很有耐心地花了很长时间攻破了你的防御,但这时你已经从这个软件中赚够了钱,或者已经用上了更新版本的代码(这时他得到的东西也就一钱不值了)。
比方说,你是一个付费频道的运营商,用户通过机顶盒来观看你提供的电视节目。每个机顶盒都是带有标签的——在代码的某个位置上存放了分配给每个用户的唯一标识(ID),这样你就可以根据用户的缴费情况决定是允许还是拒绝某个特定用户观看频道里的节目。可是现在有一个黑客团伙找到并且反汇编了这段代码,发现了计算用户ID的算法,并且在网上以低廉的价格把修改用户ID的方法卖给了网民。这时你该怎么办呢?你也许想到了使用防篡改的智能卡,不过这玩意儿并不像看上去那么难破解,这将在第11章中讲解。或者你可能想到要混淆代码,使之更难以被分析。或者你也可以使用防篡改技术使程序一被修改就自动停止运行。更有可能,你会混合使用上述各种技巧来保护代码。但是尽管使用了所有技术,你还必须要知道并且必须接受,你的代码仍然可能被破解,秘密仍会泄露(在这个案例里就是机顶盒里的用户ID仍然会被篡改)这一事实。怎么会这样呢?这只是因为“不公开,既安全”这个想法在根本上就存在漏洞。不过既然本书中介绍的所有技术都不能给你一个“完美并且长期的安全保证”,那么为什么还要使用这些技术,为什么还要买这样一本书呢?答案很简单,代码能顶住黑客攻击的时间越长,订阅频道的客户就越多,同时升级机顶盒的周期也就越长,这样你赚到的钱和省下的钱也就越多。
就这么简单。
谁使用隐蔽软件
很多知名的公司都对隐蔽软件有浓厚的兴趣。事实上很难真正掌握有关技术在实践中具体被使用的程度(因为大多数公司在如何保护自己的代码一事上绝对是守口如瓶的),但是我们还是可以根据他们专利的申请和拥有情况把他们对隐蔽软件的感兴趣程度猜个八九不离十。微软公司拥有多个关于软件水印[104,354]、代码混淆[62,62,69,69,70,70,180,378]和软件“胎记”[364]技术的专利。Intertrust公司拥有大量与数字版权管理技术相关的组合式专利,包括代码混淆和代码防篡改专利。2004年,在微软与Intertrust之间的马拉松式官司落下了帷幕之后,微软向Intertrust支付了高达4.4亿美元的专利使用费,才获得了后者所有的专利使用许可。同年,微软也开始与PreEmptive Solution公司开展商业合作[250],从而把PreEmptive Solution开发的identifier obfuscator(PreEmptive solution公司在该工具中拥有专利[351])加到了Visual Studio的工具集里。而普渡大学科研成果的副产品Arxan,因其独创的防篡改算法专利[24,305]而成功地开办了一家公司。苹果公司拥有一个代码混淆方面的专利,估计是用于保护其iTune软件的。Convera,一家从英特尔公司独立出来的企业,则着力研究应用于数字版权管理的代码防篡改技术[27,268-270]。从加拿大北方电信公司中分离出来的Cloakware公司也是这个领域里最成功的企业之一。该公司拥有他们称为“白盒加密”的专利[67,68,182],即把加密算法和密钥藏到程序代码中。2007年12月,Cloakware公司被一家主营付费电视业务的荷兰公司Irdeto以7250万美元的价格收购。即使是相对的后来者Sun Microsystem也已经提交了一些代码混淆领域的专利申请。
Skype的VoIP客户端也使用了类似Arxan[24]、英特尔[27]及本书中将要提到的[89]代码混淆和防篡改技术进行了防逆向工程加固。对于Skype公司来说,保护其客户端的完整性无疑是极其重要的,因为一旦有人成功逆向分析了其客户端软件,解析出Skype所使用的网络协议,黑客们就能写出廉价的能与Skype软件进行正常通信的程序(这样的话,人们就没有必要一定用Skype)。所以保持网络协议不公开则有助于Skype拥有一个庞大的用户群,这大概也是2005年易贝公司以26亿美元收购Skype的原因吧。实际上,使用隐蔽软件技术还使Skype公司赢得了足够多的时间,进而成为了VoIP技术的领军企业。即使这时Skype的协议被分析出来了(这一点黑客们确实也做到了,详见7.2.4节),黑客们也拿不出一个能够撼动Skype市场地位的类似软件了。
学术研究者从多种角度对隐蔽软件技术进行了研究。一些拥有编译器和程序语言研究背景的研究者,比如我们,会很自然地加入这一领域的研究,因为涉及代码转换的绝大多数算法都会涉及静态分析的问题,而这一问题则是编译优化技术的研究者再熟悉不过的了。尽管以前,密码学研究者大多不屑于研究“不公开,即安全”的问题,但最近一些密码学研究人员已经开始把密码学的相关技术应用于软件水印以及发现代码混淆技术的局限性上了。来自多媒体水印、计算机安全和软件工程方面的研究人员也已经发表了很多关于隐蔽软件的文章。遗憾的是,由于没有专门的刊物、学术会议(供研究人员相互之间进行交流),这一领域的研究进展被大大延缓了。事实上,为了使这些研究成果能被传统的学术会议和期刊接受,研究人员在不停地努力着,现在仍在努力。目前已经发表过隐蔽软件研究成果的学术会议有POPL(Principles of Programming Languages,程序设计原理)上的ACM专题研讨会、信息隐藏研讨会、IEEE的软件工程研讨会、高级密码学会议(CRYPTO)、ISC(Information Security Conference,信息安全大会)以及其他一些关于数字版权管理的学术会议。随着隐蔽软件这一领域的研究越来越成为学术研究的主流,我们有望拥有专门针对于隐蔽软件的期刊、专题讨论会甚至是研讨会,只是可惜目前为止这一切都还没有实现。
军方也在隐蔽软件上花了很多精力(和纳税人的钱)。比如,Cousot公司拥有的软件水印算法[95]专利就归属于世界上第九大国防工程承包商法国Thales集团。下面是一段引自最新的(2006)美军招标文件[303]中有关AT(anti-tamper)技术 研究的文字。
现在,所有的美军项目执行部门(PEO)和项目管理方(PM)在设计和实现有关系统时,必须在系统中使用军队和国防部制定的AT策略。嵌入式软件现代武器系统的核心,是被保护的最重要技术之一。AT技术能够有效地保证这些技术不被他国(人)逆向工程分析利用。仅仅由标准编译器编译生成而不加AT技术防护的代码是很容易被逆向分析的。在分析软件时,逆向工程分析人员会综合使用诸如调试器、反编译器、反汇编器等很多工具,也会使用各种静态和动态分析技巧。而使用AT技术的目的就是使逆向工程变得更为困难,进而防止美国在技术领域的优势被他国窃取。今后还有必要向部队的PEO和PM提供更有用、更有效并且多样化的AT工具集……研发AT技术的目的在于提供一个能够抗逆向工程分析的高强度壳 ,从而最大限度地迟滞敌方对被保护软件的攻击。这样美国就有机会维持其在高科技领域的优势或者减缓其武器技术泄密的速度。最终,美军就能继续保持其技术优势,进而保证其军备的绝对优势。
这份招标文件来自于美军导弹和空间程序(设计部门),专注于实时嵌入式系统的保护。我们有理由相信产生这份招标文件的原因是,美军担心射向敌方的导弹由于种种原因落地后未能爆炸,使敌方有机会接触到嵌入在导弹中负责引导导弹飞临目标上空的控制软件。
下面是另一段引自美国国防部[115]的文字。
进行主动式软件保护 (SPI)是国防部的职责之一,它必须开发和部署相关的保护技术,以保证含有国防武器系统关键信息的计算机程序的安全。SPI提供的是一种全新的安全防护方法,它并不(像传统的安全技术那样)保护计算机或者网络的安全,而只是加强计算机程序自身的安全。这种新方法能显着提升国防部的信息安全情况。SPI的适用范围很广,从台式机到超级计算机上面所有的程序都能使用SPI技术予以保护。它是(软件保护技术中)完整的一层,是“纵深防御”的一个范例。SPI技术是对网络防火墙、物理安全等传统安全技术的一个补充,但是其实现并不依赖于这些传统的安全设备。现在SPI技术被部署在选定的HPC中心和150多家国防部机关以及其他由商业公司参与建设和维护的军事基地。广泛地部署SPI技术将会有效地增强美国和美国国防部对关键应用技术的保护。
.上面这段话说明了什么?它说明美国国防部不仅关心导弹会不会掉到敌方领土上去,还关心在自己的安全系数和性能都很高的计算机中心运行的软件的安全。事实上,窃密和反窃密是防间谍机关和情报部门之间永恒的主题。比方说,一架战斗机上的某个程序需要更新一下,这时我们很可能就是用一台笔记本电脑连接到这架战斗机上进行更新操作。但是万一这台笔记本电脑不慎遗失了,或者干脆就被其他国家政府使用某种方法控制了,就像电影里常演的那样,这时会有什么情况发生呢?对方会马上把相关的代码拿去做逆向工程分析,并把分析的结果用于改进其战斗机中所使用的软件。更有甚者,对方会悄悄地在你的软件中加上一个特洛伊木马,并让飞机在特定的时间里从天上掉下来。如果我们不能绝对保证上述这一幕100%不可能发生的话,隐蔽软件至少可以作为安全防御的最后一道防线(至少还能做到事后的责任追究)。例如,飞机中的软件可以用有权访问相关软件的人的ID做一个指纹签名。要是哪天,在其他国家的战斗机上发现了这些代码,就可以立即对这些代码进行逆向分析,并进一步推算出谁是泄密事件的元兇。
什么?我听见你说,为什么我要对政府之间和商业巨头之间如何保护它们各自的秘密感兴趣呢?如果黑客破解了这些软件,他们也不过是通过自己的劳动换取一些微薄的利益而已啊。话虽如此,但是这些保护技术给你 带来的好处最终还是大于它给商业巨头带来的好处。理由是,对你来说,法律形式的保护措施(如专利、商标和版权)只有当你拥有足够的财力,能在法庭上把对方告倒的时候才会管用。换而言之,即使你认为某家大公司通过破解你的代码,剽窃了一个极有“钱途”的主意,你也无力通过那种马拉松式的官司在法庭上告倒微软,除非你有足够的经济实力能在这种财力的比拼中熬出头 。而在本书中讨论的保护技术(比如代码混淆和防篡改技术)则既廉价又好用,中小型企业和商业巨头均可使用。而且如果这时你去告这家大公司的话,也可以用水印或者软件“胎记”等技术,在法庭上当场拿出代码被剽窃的真凭实据来。
最后不得不简单地提一下另一类极其擅长使用隐蔽软件的人——坏蛋们。病毒的作者已经能非常成功地利用代码混淆的技术伪装病毒的代码,使之逃避杀毒软件的检测了。值得一提的是,人们使用这些技术(如保护DVD、游戏和有线电视)时经常被黑客破解,而黑客使用这些技术(如构建恶意软件)时,人们却很难抗击。
本书内容
隐蔽软件研究的目的是发明能够尽可能迟滞对手(逆向工程分析)进度,同时又尽可能地减少因为使用该技术,而在程序执行时增加的计算开销的算法。同时也需要发明一种评估技术,使我们可以说“在程序中使用了算法A之后,相对于原先的程序,黑客攻破新程序需要多花T个单位的时间,而新程序增加的性能开销是0”,或者最低限度我们也应该可以说“相对于算法B,使用算法A保护的代码更难被攻破”。特别要强调一下,隐蔽软件研究尚处于婴儿期,虽然我们在书中会把相关的保护算法和评估算法全都介绍给大家,但是这门艺术的现状却还并不理想(到时候你可不能太失望啊)。
在本书中,我们试图把当前所有有关隐蔽软件的研究成果组织起来系统化地介绍给读者。我们力争每章内容涵盖一种技术,并描述这一技术的应用领域以及目前可用的算法。第1章将给出隐蔽软件这个领域的一些基本概念;第2章用对抗性演示的模式介绍黑客逆向分析软件时常用的工具和技巧,然后针对这些工具和技巧介绍如何防范黑客的攻击;第3章详细讲述黑客和软件保护方用于分析计算机程序的技术;第4章、第5章和第6章分别介绍与代码混淆有关的算法;第7章介绍与防篡改技术相关的算法;第8章和第9章分别介绍与水印相关的算法;第10章介绍与软件“胎记”相关的算法;第11章讲述基于硬件设备的软件保护技术。
如果你是位企业管理人员,只是对隐蔽软件的研究现状和这些技术怎么应用到你的项目中感兴趣,那么只要阅读第1章和第2章就够了。如果你是位拥有编译器设计背景的研究人员,那么建议直接跳到第3章开始阅读。但是之后的章节还是最好顺序阅读。这是因为……呃,还是举个例子吧,介绍水印技术的章节中会用到在代码混淆章节中介绍的知识。当然在本书撰写过程中,我们还是尽量使各章内容都能独立成章的,所以(如果你拥有一些背景知识)偶尔跳过那么一两章也未尝不可。如果你是一位工程师,想要使用有关技术加固你的软件,那么强烈建议你仔仔细细地阅读第3章的所有内容,如果有条件的话,还应该再搞几本编译原理方面的教材恶补一下“程序静态分析”的知识。然后你就可以随意跳到感兴趣的章节去阅读了。如果你是名大学生,把本书作为一门课程的教材来阅读,那么就应该一页一页地完整阅读本书,期末别忘了做好复习。
希望本书能够做到两件事情。首先,希望能向你,亲爱的读者,证明代码混淆、软件水印、软件“胎记”和防篡改等技术里有大量妙不可言的想法,值得你花点时间去学习,而且这些技术也可以用来保护软件。其次,希望本书能把本领域内当前所有有用的信息汇集在一起,从而为隐蔽软件的深入研究提供一个良好的起点。
Christian Collberg和Jasvir Nagra
2009年2月2日(土拨鼠日)
P.S.实际上写作这本书还有第三个目的。要是在阅读本书时,你突然灵光闪现,冒出一个绝妙的主意,进而激发了你投身于隐蔽软件研究的雄心壮志,那么,亲爱的读者,我这第三个目的就算是达到了。请把你的新算法告诉我们,我们将把它加到本书的下一版里!