目录
第1章 信息安全导论
信息安全技术概论
了解信息安全技术架构
信息安全的两个主要视点
国外:面向属性的信息安全框架(CIA)
国内:面向应用的信息安全框架---实体/物理安全,运行安全,数据/信息安全,管理/人员安全
物理安全:对网络与信息系统物理装备的保护。主要涉及网络与信息系统的机密性、可用性、完整性等属性
所涉及的主要技术:
- 加扰处理、电磁屏蔽---防范电磁泄露
- 容错、容灾、冗余备份、生存性技术---防范随机性故障
- 信息验证---防范信号插入
运行安全:对网络与信息系统的运行过程和运行状态的保护。主要涉及网络与信息系统的真实性、可控性、可用性等
主要涉及的技术:
- 风险评估体系、安全测评体系---支持系统评估
- 漏洞扫描、安全协议---支持对安全策略的评估与保障
- 防火墙、物理隔离系统、访问控制技术、防恶意代码技术---支持访问控制
- 入侵检测及预警系统、安全审计技术---支持入侵检测
- 反制系统、容侵技术、审计与追踪技术、取证技术、动态隔离技术---支持应急响应
- 网络攻击技术,Phishing、Botnet、DDoS、木马等技术
数据安全:对信息在数据收集、处理、存储、检索、传输、交换、显示、扩散等过程中的保护,使得在数据处理层面保障信息依据授权使用,不被非法冒充、窃取、篡改、抵赖,主要涉及信息的机密性、真实性、完整性、不可否认性等
主要涉及的技术:
- 对称与非对称密码技术及其硬化技术、VPN等技术---防范信息泄密
- 认证、鉴别、PKI等技术---防范信息伪造
- 完整性验证技术---防范信息篡改
- 数字签名技术---防范信息抵赖
- 密钥共享技术---防范信息破坏
内容安全:对信息在网络内流动中的选择性阻断,以保证信息流动的可控能力。主要涉及信息的机密性、真实性、可控性、可用性等
主要涉及的技术:
- 文本识别、图像识别、流媒体识别、群发邮件识别等---用于对信息的理解与分析
- 面向内容的过滤技术(CVP)、面向URL的过滤技术(UFP)、面向DNS的过滤技术等---用于对信息的过滤
内容安全着眼点是依据内容来对安全问题进行判断,但需要通过技术方式来解决,内容安全技术本质是对数据的攻击技术。国际社会经常将反网络病毒、反垃圾邮件问题列入内容安全的范畴
信息对抗:对信息有效内容真实性的隐藏、保护与分析。主要涉及信息有效内容的机密性、完整性等
所涉及的主要技术:
- 数据挖掘技术---发现信息
- 隐写技术、水印技术---保护信息
- 即时通、MSN等协议的分析技术---对特定协议的理解
- VoIP识别技术---对数字化语音信息的理解
- 音频识别与按内容匹配---锁定音频目标进行
信息隐藏是典型的信息内容对抗,主要目的为信息的隐藏与发现、信息的干绕与提取,利用信息获取、数据挖掘、情报分析发现信息,如果不能掩盖一个信息,那就淹没这个信息
信息安全的层次划分
三级信息安全框架
信息安全的基本要素
信息安全四要素:CACA(机密性 可用性 可控性 真实性)
信息安全的诱因与威胁
网络不安全的根本原因:冯.诺依曼结构---数字计算机的数制采用二进制、计算机应该按照程序顺序执行、软件=数据+程序
网络不安全的直接原因:自身缺陷(如协议本身会泄漏口令、连接可成为被盗用的目标、服务器本身需要读写特权、密码保密措施不强、业务内部可能隐藏着一些错误的信息、有些业务设置复杂很难完善地设立) + 开放性(业务基于公开的协议、远程访问使得各种攻击无需到现场就能得手、连接是基于主机上的社团彼此信任的原则) + 黑客攻击
常见攻击分类:
- 口令破解:攻击者可通过获取口令文件,然后运用口令破解工具获得口令,也可通过猜测或窃听等方式获取口令
- 连接盗用:在合法的通信连接建立后,攻击者可通过阻塞或摧毁通信的一方来接管已经过认证建立起来的连接,从而假冒被接管方与对方通信
- 服务拒绝:攻击者可直接发动攻击,也可通过控制其它主机发起攻击使目标瘫痪,如发送大量的数据洪流阻塞目标
- 网络窃听:网络的开放性使攻击者可通过直接或间接窃听获取所需信息
- 数据篡改:攻击者可通过截获并修改数据或重放数据等方式破坏数据的完整性
- 地址欺骗:攻击者可通过伪装成被信任的IP地址等方式来骗取目标的信任
- 社会工程:攻击者可通过各种社交渠道获得有关目标的结构、 使用情况、安全防范措施等有用信息,从而提高攻击成功率
- 恶意扫描:攻击者可编制或使用现有扫描工具发现目标的漏洞,进而发起攻击
- 基础设施破坏:攻击者可通过破坏DNS或路由信息等基础设施使目标陷于孤立
- 数据驱动攻击:攻击者可通过施放病毒、特洛伊木马、数据炸弹等方式破坏或遥控目标
网络安全的任务:保障各种网络资源稳定、可靠地运行,受控、合法地使用
信息安全的任务:机密性、完整性、抗否认性、可用性
内容安全的任务:依据内容对文化安全问题进行判断,通过技术问题解决文化安全问题
信息对抗的任务:内容隐藏、内容挖掘
第2章 网络信息主动获取与处理
搜索引擎体系结构
- 爬行和抓取:搜索引擎用来爬行和访问页面的程序称为蜘蛛,蜘蛛程序发出页面访问请求后,服务器返回HTML代码,蜘蛛程序把收到的代码存入原始页面数据库。为了提高爬行和抓取速度,搜索引擎会使用多个蜘蛛并发分布爬行。蜘蛛访问任何一个网站时,都会先访问网站根目录下的robots.txt 文件(如果 robots.txt 文件禁止搜索引擎抓取某些文件或目录,蜘蛛将遵守协议,不抓取被禁止的网址)。为了抓取网上尽量多的页面,搜索引擎蜘蛛会跟踪页面上的链接,从一个页面爬到下一个页面。由于网站及页面链接结构异常复杂,蜘蛛需要采取一定的爬行策略(深度优先和广度优先)才能遍历网上所有页面。在实际工作中,蜘蛛的带宽资源、时间都不是无限的,也不可能爬完所有页面。实际上最大的搜索引擎也只是爬行和收录了互联网的一小部分,所以要尽量抓取重要页面。为了避免重复爬行和抓取网址,搜索引擎建立一个地址库(记录已经被发现但还没有抓取的页面,以及已经被抓取的页面),蜘蛛按重要性从待访问地址库中提取URL,访问并抓取页面,然后把这个URL从待访问地址库中删除,放进已访问地址库。蜘蛛抓取的数据存入原始页面数据库,原始页面数据库中的页面数据与用户浏览器得到的HTML是定全一样的,每个URL都有一个独特的文件编号,蜘蛛在爬行和抓取文件时进行一定程度的复制内容检测。
- 预处理:提取文字---提取文字就是从HTML 文件中去除标签、程序,提取出可以用于排名处理的网页页面文字内容(即可见的文字),除了可见文字,搜索引擎也会提取出一些特殊的包含文字信息的代码(如 Meta 标签中的文字、图片的替代文字、Flash 文件的替代文字等);中文分词---搜索引擎存储和处理页面及用户搜索都是以词为基础,搜索引擎首先必须从提取的文字中分辨哪几个字组成一个词,哪些字本身就是一个词。中文分词的方法有两种∶基于词典匹配(将待分析的一段汉字与一个事先造好的词典中的词条进行区配,在待分析汉字中扫描到词典中已有的词条则匹配成功或者说切分出一个单词,按照扫描方向可分为正向匹配和逆向匹配。按匹配长度优先级的不同可分为最大匹配和最小匹配,两者可以混合产生多种匹配方法)和基于统计(分析大量文字样本,计算出字与字相邻出现的统计概率,几个字相邻出现越多,越可能形成一个单词。基于统计的优势是对新出现的词反应更快速,也有利于消除歧义)。此外,还要去停止词(页面内容中都会有一些出现频率高的词,却对内容没有任何影响如助词、感叹词,在处理页面之前搜索引擎会去掉这些停止词,使处理的数据主题更为突出、减少无谓的工作量)和消除噪声(绝大部分页面上有一部分内容对主题也没有什么贡献,比如版权声明文字、广告等,这些都属于噪声。搜素引擎需要识别并消除这些噪声,方法是根据HTML 标签对页面分块,区分出页头、导献、正文、页脚、广告等区域,消噪后剩下的才是页面主体内容);去重---识别和删除重复的内容,基本方法是对页面特征关键词计算指纹(即从页面主体内容中选取最有代表性的一部分关键词然后计算这些关键词的数字指纹)。去重算法不止于页面级别,而是进行到段落级别,混合不同文章、交叉调换段落顺序也不能使转载和抄袭变成原创;正向索引---经过文字提取、分词、消噪、去重后,搜索引擎得到的就是独特的、能反映页面主体内容的、以词为单位的内容。接着搜索引擎室引程序就可以提取关键词,按照词把页面转换为一个关键词组成的集合,同时记录每一个关键词在页面上出现的频率、次数、格式、位置等。搜索引擎把页面及关键词形成词表结构存储进索引库。正向索引是把页面文件分成由多个关键词组成的主体内容并存储进索引数据库中形成对应关系,但是不能直接用于排名,搜索引擎会将正向索引数据库重新构造为倒排索引(即把文件对应到关键词的映射转换为关键词到文件的映射),当用户搜索某个关键词时,排序程序在倒排索引中定位到这个关键词,就可以马上找出所有包含这个关键词的文件
- 排名:搜索词处理---中文分词把搜索词转换为以词为基础的关键词组合去停止词把搜索词中的停止词去掉指令处理在关键词之间使用“与”逻辑拼写错误矫正用户如果输入了明显错误的字或英文单词拼错,提示用户正确的用字或拼法整合搜索触发某些搜索词会触发整合搜索,而这些搜索词也需要在搜索词处理阶段计算;文件匹配---搜索词经过处理后,得到的是以词为基础的关键词集合。文件匹配阶段就是找出含有所有关键词的文件。关键词通过与倒排索引所得的数据中主键进行匹配,就能找出包含这些关键词的所有文件;初始子集的选择---找到包含所有关键词的匹配文件后,还不能进行相关性计算,因为找到的文件经常会有几十万几百万,甚至上千万个搜索引擎也并不需要计算这么多的相关性而只要计算最重要的一部分页面就可以了。要选出用于最后相关性计算的初始页面子集的选择,必须依靠其他特征而不是相关性,其中最主要的就是页面权重。当匹配数目巨大时,搜索引擎不会对这么多页面进行计算而必须选出页面权重较高的一个子集再对子集中的页面进行相关性计算;相关性计算---影响相关性的主要因素有:关键词常用程度,越常用的关键词对搜索词的意义贡献越小,搜索引擎对搜索词串中的关键词根据常用程度进行加权。不常用的词加权系数高,常用词加权系数低词频及密度,搜索词在页面中出现的次数多,密度越高,说明页面与搜索词越相关关键词位置及形式,关键词出现在比较重要的位置说明页面与搜索词越相关关键词距离,切分后的关键词完整匹配地出现,说明与搜索词最相关。如果切分后的关键词没有完整匹配,但这几个关键词出现的距离近一些,也被认为相关性稍微大一些链接分析及页面权重,页面之间的链接和权重关系也影响了关键词与搜索词的相关性,其中最重要的是锚文字;排名过滤及调整---选出匹配文件子集、计算相关性后,大体排名就已经确定了。搜索引擎可能还有一些过滤算法,对排名进行轻微调整,其中最重要的就是施加惩罚;排名显示---所有排名确定后,排名程序调用原始页面的标题标签、说明标签等数据显示在页面上;搜索缓存---用户搜索的关键词有很大一部分是重复的,搜索引擎会把最常见的搜索词存入缓存,用户搜索时直接从缓存中调用,而不必经过文件匹配和相关性计算,提高了排名效率,缩短搜索反应时间;查询及点击日志---搜索用户的IP地址、搜索的关键词、搜索时间,以及点击了哪些结果页面,搜索引擎都记录形成日志
扩展:深度优先---指的是蝴蛛沿着发现的链接一直向前爬行,直到前面再也没有其他链接,然后返回到第一个页面沿着另一个链接再一直往前爬行;广度优先---指蜘蛛在一个页面上发现多个链接时,不是顺着一个链接一直向前而是把页面上所有第一层链接都爬一遍,然后再沿着第二层页面上发现的链接爬向第三层页面。注:深度优先和广度优先通常是混合使用,既可以照顾到尽量多的网站也能照顾到一部分网站的内页。重要页面---1. 网站和页面权重(质量高、资格老的网站被认为权重比较高,则该页面被爬行的深度比较高,所有会有更多内页被收录)2. 页面更新度(如果页面内容经常更新,蜘蛛就会更加频繁地访问这种页面,页面上出现的新链接也自然会被蜘蛛更快地跟踪,抓取新页面)3. 导入链接(无论是外部链接还是同一个网站的内部链接,要被抓取就必须有导入链接进入页面,否则蜘蛛根本没有机会知道页面的存在。高质量的导入链接经常使页面上的导出链接爬行度增加)4.与首页点击距离(离首页点击距离越近,页面权重越重,被蜘蛛爬行的机会越大)。地址库中URL来源---人工录入的种子网站、蜘蛛抓取产生的待访问地址库、搜索引擎网页提交表格提交进来的网址。复制内容检测---蜘蛛遇到权重很低的网站大量转载或抄袭内容时很可能不再爬行。如果在日志文件中发现了蜘蛛但页面从来没有被收录,则这可能就是原因
网络爬虫技术
检查URL是否被访问过
- URL用fingerprint (如MD5)来记录,减少内存开销
- 利用访问的时空局部性--Cache
- 海量数据的高效率查找表:B-tree、Bloom filter
Bloom Filter算法
检测是否重复网页
一致性哈希
一致性哈希算法优势:一致性哈希算法能尽可能减少了服务器数量变化所导致的缓存迁移,能够在一定程度上改善缓存的雪崩问题,它能够在移除/添加一台缓存服务器时,尽可能小地改变已存在的key映射关系,避免大量key的重新映射,解决了普通余数Hash算法伸缩性差的问题,可以保证在上线、下线服务器的情况下尽量有多的请求命中原来路由到的服务器
网页排序---PageRank
核心思想:如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高;如果一个PageRank值很高的网页链接到一个其