删去。。。。
根据上图,我们可以推出下面的表
再筛选掉特殊的地址,就有如下的范围
P地址根据网络号和主机号来分,分为A、B、C三类及特殊地址D、E。 全0和全1的都保留不用。
A类:(1.0.0.0-126.255.255.255)(默认子网掩码:255.0.0.0或 0xFF000000)第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。
B类:(128.0.0.0-191.255.255.255)(默认子网掩码:255.255.0.0或0xFFFF0000)前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。一般用于中等规模网络。
C类:(192.0.0.0-223.255.255.255)(子网掩码:255.255.255.0或 0xFFFFFF00)前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。一般用于小型网络。
D类:是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户[1] 。
E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。
按照文中说的,A类地址范围应该是[0.0.0.0 - 127.255.255.255]
,但有两个特殊地址段,0.0.0.0/8
和127.0.0.0/8
(也就是[0.0.0.0 - 0.255.255.255]
和[127.0.0.0 - 127.255.255.255]
),分别代表主机网络地址和环回地址。所以最后只剩下[1.0.0.0 - 126.255.255.255]
,在这个段里面还有两段特殊地址,其中一段是10.0.0.0/8
(也就是[10.0.0.0 - 10.255.255.255]
),就是作为私网地址段使用的。去掉这些保留地址,其他的地址就是可以正常提供互联网服务的公网IP地址了。
端口扫描技术的原理: 攻击者通过系统调用connect(),向目标机器的各个端口发送连接的请求,根据返回的响应信息,判断端口开放情况
黑客攻击的5个步骤:
IDS的系统组成:
IETF将一个入侵检测系统分为四个组件:
事件产生器(Event generators),它的目的是从整个计算环境中获得事件,并向系统的其他部分提供此事件。
事件分析器(Event analyzers),它经过分析得到数据,并产生分析结果。
响应单元(Response units ),它是对分析结果作出反应的功能单元,它可以作出切断连接、改变文件属性等强烈反应,也可以只是简单的报警。
事件数据库(Event databases )事件数据库是存放各种中间和最终数据的地方的统称,它可以是复杂的数据库,也可以是简单的文本文件。
计算机病毒的特点:病毒自我执行,自我复制,具有很强的感染性,一般会通过攻击者的共享文件,邮件等载体发起攻击,所以只要我们不去触碰,就不会形成影响。
公开信息挖掘是指对目标组织和个人的大量公开或意外泄漏的Web信息进行挖掘
PDRR:保护,检测,恢复,响应
网络安全发展的3个阶段:
查看目标主机的服务或应用程序是否存在安全方面的脆弱点
利用漏洞扫描探测程序对目标存在的系统漏洞或应用程序漏洞进行扫描探测,从而得到目标安全脆弱点的详细列表
为进行合适的授权许可而提供的用户身份验证的过程。
系统口令的静态破解就要通过获取并分析SAM(安全账户管理,它通过系统唯一的安全标志SID标识用户)数据库文件来进行。
口令攻击的原理在于通过字典破解,暴力攻击,字典混合破解等手段分析系统的SAM数据库文件(Linux是/etc/passwd)从而完成用户的身份验证,拿到合适的系统授权许可。
栈溢出(向栈中的某个局部变量存放数据时,数据的大小超出了该变量预设的空间大小,导致该变量之后的数据被覆盖破坏)
整型溢出
UAF类型缓冲区溢出(程序逻辑错误,将已释放的内存当作未释放的内存使用而导致的问题)
现象:
后果:
恶意代码是指经过存储介质和网络进行传播,从一台计算机系统到另外一台计算机系统,且未经授权认证,破坏计算机系统完整性的程序和代码
计算机病毒,木马,蠕虫,后门,恶意脚本(注入式脚本)
恶意代码分析
中间人攻击:一种间接的入侵攻击,这种攻击模式是将一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。大多数发生在局域网。
DNSSEC防范DNS欺骗
防火墙和杀毒软件抵御ARP欺骗
使用HTTPS抵御HTTP中间人攻击
1月7号:19:00-20:45,闭卷考试
5个题型,每个20分
雅可比符号
(图片来源于上个学期密码学优秀作业,侵删)
针对口令认证的攻击,在文件中存储可能存在的用户名和密码进行不断的尝试
显著的攻击:“彩虹表攻击”
在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”
实际项目中,Salt 不一定要加在最前面或最后面,也可以插在中间嘛,也可以分开插入,也可以倒序,程序设计时可以灵活调整,都可以使破解的难度指数级增长
MD5('123' + '1ck12b13k1jmjxrg1h0129h2lj') = '6c22ef52be70e11b6f3bcf0f672c96ce'
MD5('456' + '1h029kh2lj11jmjxrg13k1c12b') = '7128f587d88d6686974d6ef57c193628'
S / KEY是Bellcore开发的软件包。它是一次性密码系统。系统中使用的每个密码仅可用于一种身份验证。密码无法重复使用,因此,截获的密码没有任何用处。而且,对用户的S / KEY密码序列中已使用的密码的了解不会提供有关将来密码的信息。因此,即使一个人的所有S / KEY密码经过不安全的网络时也被“嗅探到”,它们也不会使拦截器受益。
Merkle’s Puzzles能够做到**“拿到所有通信内容也找不出双方交换的密钥”**
作者:Gh0u1L5
链接:https://www.zhihu.com/question/312961692/answer/604126828
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Alice生成 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q43V3k7O-1612510515126)(https://www.zhihu.com/equation?tex=N)] 个可用的会话密钥, [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KCldRdmN-1612510515128)(https://www.zhihu.com/equation?tex=%7Bsk%7D_1%2C+%7Bsk%7D_2%2C+%5Ccdots%2C+%7Bsk%7D_N)] ,以及 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jMdICGEL-1612510515130)(https://www.zhihu.com/equation?tex=N)] 个随机生成的序列号 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rxAIBWaa-1612510515133)(https://www.zhihu.com/equation?tex=n_1%2C+n_2%2C+…%2C+n_N)],每个序列号与会话密钥一一对应。
Alice将每对会话密钥和序列号打包成 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KhctIDqN-1612510515137)(https://www.zhihu.com/equation?tex=N)] 个谜题(puzzle),令每个谜题 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zjZHgfeQ-1612510515139)(https://www.zhihu.com/equation?tex=P_i)] 具有如下特征:
Alice将这些谜题发送给Bob,Bob随机选择一个谜题 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KbNEo7ed-1612510515155)(https://www.zhihu.com/equation?tex=P_s)] 加以解决,并发回相应的序列号 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l1y5MHx1-1612510515160)(https://www.zhihu.com/equation?tex=n_s)]
Alice根据Bob传回的序列号,确定通信双方接下来将要使用的会话密钥 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W7yG7gVx-1612510515162)(https://www.zhihu.com/equation?tex=%7Bsk%7D_s)]
Ralph Merkle没有限定过协议中的谜题到底应该以何种方式生成,一个比较简单的方法是利用对称式加密算法。假定这个算法有64位的加密强度,我们可以用一枚随机生成的密钥将 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5IXx3k0Y-1612510515164)(https://www.zhihu.com/equation?tex=sk_i)] 与 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JRqNGCRL-1612510515166)(https://www.zhihu.com/equation?tex=n_i)] 加密,然后当场销毁这枚随机密钥。这样一来,想要解密这道谜题,就需要进行 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cmHXCfxE-1612510515169)(https://www.zhihu.com/equation?tex=2%5E%7B64%7D)] 次计算,满足了Merkle’s Puzzles所需的条件。
在这个交换过程中,Bob只需要解决一个谜题,Alice只需要进行一次查表,两名合法用户可以非常高效的完成密钥交换。而攻击者Eve,虽然成功窃听到所有的谜题,以及Bob传回的序列号 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5oILUqNk-1612510515171)(https://www.zhihu.com/equation?tex=n_s)] , 然而为了从谜题的汪洋大海当中找到对应的会话密钥 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ljOboWQ3-1612510515174)(https://www.zhihu.com/equation?tex=sk_s)],Eve仍然需要解决平均 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E48zPxei-1612510515176)(https://www.zhihu.com/equation?tex=%5Csum_%7Bi%3D1%7D%5EN+%5Cfrac%7Bi%7D%7BN%7D+%3D+%5Cfrac%7BN%2B1%7D%7B2%7D)] 个谜题。
Diffle-Hellman协议(DH算法无法避免中间人攻击)
协商生成公钥S(由计算得到),私钥A,B(由Ali,Bob自己生成)
绑定性,隐藏性
若抛币方拥有无穷计算能力,那么安全协议满足无条件绑定性
有限,有条件绑定性
一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)
茫然传输(oblivious transfer)是一个密码学协议,在这个协议中,消息发送者从一些待发送的消息中发送一条给接收者,但事后对发送了哪一条消息仍然oblivious(不知道),这个协议也叫茫然传输协议
(判断题有考到过,需注意)
1981由Michael O.Rabin提出第一种形式的茫然传输
“二择一”茫然传输协议(1 out 2 oblivious transfer)由 Shimon Even, Oded Goldreich, 和Abraham Lempel 在1985年提出
发送者Alice生成两对rsa公私钥,并将两个公钥puk0、puk1发送给接受者Bob。
Bob生成一个随机数,并用收到的两个公钥之一加密随机数(用哪个秘钥取决于想获取哪条数据,例如如果想要得到消息M0 就用puk0加密随机数,如果想要得到M1就用puk1加密随机数),并将密文结果发送给Alice。
Alice用自己的两个私钥分别解密收到随机数密文,并得到两个解密结果k0,k1,并将两个结果分别与要发送的两条信息进行异或(k0异或M0,k1异或M1),并将两个结果e0,e1发给Bob。
Bob用自己的真实随机数与收到的e0、e1分别做异或操作,得到的两个结果中只有一条为真实数据,另外一条为随机数。
什么是不经意传输?
填空题(10)
判断并改错(10)
单选题(10)
简答题(30)
论述题(40)
物联网从架构上面可以分为感知层、网络层和应用层
各个层次所用的公共技术包括对象名字服务技术,网络管理技术,服务质量保证技术,信息安全技术。
从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式计算架构。它的特色在于对海量数据的挖掘,但它必须依托云计算的分布式处理、分布式数据库、云存储和虚拟化技术。
人工智能是程序算法和大数据结合的产物。而云计算是程序的算法部分,物联网是收集大数据的根系的一部分。可以简单的认为:人工智能=云计算+大数据(一部分来自物联网)。随着物联网在生活中的铺开,它将成为大数据最大,最精准的来源。
与以前的众多数据分析技术相比,人工智能技术立足于神经网络,同时发展出多层神经网络,从而可以进行深度机器学习。与以外传统的算法相比,这一算法并无多余的假设前提(比如线性建模需要假设数据之间的线性关系),而是完全利用输入的数据自行模拟和构建相应的模型结构。这一算法特点决定了它是更为灵活的、且可以根据不同的训练数据而拥有自优化的能力。
云计算是基础,没有云计算,无法实现大数据存储与计算;大数据是应用,没有大数据,云计算就缺少了目标与价值
两者都需要人工智能的参与,人工智能是互联网信息系统有序化后的一种商业应用。这才是:云计算与大数据真正的出口!
而商业智能中的智能从何而来? 方法之一就是通过大数据这个工具来对大量数据进行处理,从而得出一些关联性的结论,从这些关联性中来获得答案,因此,大数据是商业智能的一种工具。 而大数据要分析大量的数据,这对于系统的计算能力和处理能力要求是非常高的,传统的方式是需要一个超级计算机来进行处理,但这样就导致了计算能力空的时候闲着、忙的时候又不够的问题, 而云计算的弹性扩展和水平扩展的模式很适合计算能力按需调用,因此,云计算为大数据提供了计算能力和资源等物质基础。
大数据:基于客户行为分析的产品推荐,基于客户评价的产品设计(客户的评价既有对产品满意度、物流效率、客户服务质量等方面的建设性改进意见,也有客户对产品的外观、功能、性能等方面的体验和期望,有效采集和分析客户评价数据,将有助于企业改进产品、运营和服务,有助于企业建立以客户为中心的产品创新。),基于数据分析的广告投放
人工智能:语音识别,人脸识别,决策管理(智能机器能够向AI系统引入规则及逻辑,因此你可以利用它们进行初始化设置/训练,以及持续的维护和优化。决策管理在多类企业应用中得以实现,它能协助或者进行自动决策,实现企业收益最大化。)
云计算:在线办公,个人网盘(与我们日常已经在使用的网盘不同,直接在云计算服务商处购买的个人网盘服务,具有极强的私密性和安全性。目前我们在使用的网盘就像商场的存包处,不仅你可以用密码纸打开,商场也有要是或者其他技术打开来看看你放了什么东西在里面。个人网盘就像是买一个远程的保险箱,只有你自己能打开他,云服务商连钥匙带箱子一起给你,他也没有打开保险箱的权限。这对那些需要存储高机密数据的用户来说是十分重要的。)
软件危机定义:
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题
软件危机典型表现:
产生软件危机的原因:
消除软件危机的途径:
本质特征:
基本原理:
三要素:
方法,工具,过程
软件生命周期:
软件过程:
软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤
瀑布模型的特点:
瀑布模型的优点:
瀑布模型的缺点:
瀑布模型是由文档驱动的
快速原型模型:
定义:
快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集
特点:
本质是“快速”,开发人员应该尽可能快的建造出原型系统。
原型的用途是获知用户的真正需求。
迅速构建原型然后根据用户意见迅速修改原型
优点:
软件产品的开发基本是线性顺序进行的
增量模型:
定义:使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计,编码,集成和测试。第一个增量构件往往实现软件的基本需求,提供最核心的功能。
优点:
缺点:
可行性研究的目的:
用最小的代价在尽可能短的时间内确定问题是否能够解决
可行性的类型:
技术,经济,操作,法律,社会效益
步骤:
数据字典的元素:
数据流,数据流分量,数据存储,处理
数据字典的方法:
顺序,选择,重复,可选
P54第5题
需求分析定义:
需求分析是软件定义时期的最后一个阶段,它的基本认识是准确回答系统必须做什么这个问题
需求分析的意义
需求分析的任务:
功能需求,性能需求,可靠性和可用性需求,出错处理需求,接口需求,约束,逆向需求,将来可能提出的要求
与用户沟通获取需求的方法:
访谈,面向数据流自顶向下求精,简易的应用规格说明技术,快速建立软件原型
数据模型(实体-联系图),功能模型(数据流图),行为模型(状态转换图)
状态的定义:
状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式
状态类型:
初始(1),终态(0~多个),中间状态
层次方框图:
用树形结构的一系列多层次的矩形框描绘数据的层次结构,树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不可再分割的元素)
验证软件需求&方法:
基本目标:
通过这个阶段的工作将划分出组成系统的物理元素——程序,文件,数据库,人工过程和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计;设计软件结构,也就是要确定系统的每个程序是由哪些模块组成的,以及这些模块相互间的关系。
两个主要阶段:
设计过程:
设想供选择的方案,选取合理的方案,推荐最佳方案,功能分解,设计软件结构,设计数据库,制定测试计划,书写文档,审查和复审
设选供,分软数,测文审
模块及模块化概念:
抽象:
抽出事物的本质特性而暂时不考虑它们的细节
逐步求精:
为了能集中解决主要问题而尽量推迟对问题细节的考虑
信息隐藏和局部化:
隐藏模块的实现细节——细节隐藏
模块独立:
启发规则:
面向数据流的设计方法:
变换流,事务流(P105)
根本目的:
详细设计阶段的根本目的是确定应该怎样具体的实现所要求的系统。
设计人机界面的问题:
系统响应时间,用户帮助设施,出错信息处理,命令交互
人机设计界面指南:
一般交互指南,信息显示交互指南,数据输入指南
P122~P124
判定表,判定树:
P142练一下题目
McCabe方法:
程序流程图转流图
环形复杂度计算
流图中线性无关的区域数等于环形复杂度
流图G的环形复杂度V(G)= E - N + 2 E是流图中边数,N是点数
流图G的环形复杂度V(G)= P + 1 P是流图中判定结点的数目
Max Min流图 应用题
P142-例题-7
定义:
编码和测试统称为实现
所谓编码就是把软件设计结果翻译成用某种程序语言书写的程序。作为软件工程的一个阶段,编码是对设计的进一步具体化,因此程序的质量主要取决于软件设计的质量。
测试的定义时为了发现程序中的错误而执行程序的过程。
编码风格的规则:
(未完成部分)
测试阶段的目的:
发现程序中的错误而执行程序的过程
最好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
成功的测试是发现了至今为止尚未发现的错误的测试
测试的目标:暴露程序的错误。
测试目标:
测试步骤:
单元测试重点:
代码审查
(未完成部分)
驱动程序:
通常是主程序,它接收测试数据,把这些数据传送给被测试的模块,并且印出有关的结果
存根程序:
代替被测试的模块所调用的模块
自顶向下集成:
是一个日益为人们广泛采用的测试和组装软件的途径。从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。在把附属于(及最终附属于)主控制模块组装到程序结构中去时,或者使用深度优先策略,或者使用宽度有限策略。
把模块结合进软件结构的具体过程:
对主控制模块进行测试,测试时使用存根程序代替所有直接附属于主控制模块的模块
根据选定的结合策略(深度优先或者宽度优先),每次用一个实际模块代换一个存根程序(新结合进来的程序往往又需要新的存根程序)。
在结合进一个新的模块时进行同时测试
为了保证新加入的模块没有引进新的错误,可能需要进行回归测试(及全部或者部分地重复以前的操作)
自底向上集成:
自底向上测试从“原子”模块(即在软件结构最底层的模块)开始组装测试。因为是从底部向上结合的模块,总能得到所需要的下层模块处理功能,所以不需要存根程序。
用下述步骤可以实现自底向上的结合策略
把底层模块组合成实现某个特定的软件子功能族
写一个驱动程序(用于测试的程序),协调测试数据的输入输出
对于模块组成的子功能族进行测试
去掉驱动程序,沿软件架构自下向上移动,把子功能结合起来形成更大的子功能
2-4循环
回归测试:
是指重新执行已经做过的测试的某个子集,以保证新结合进来的模块变化没有带来非预期的副作用。
黑盒测试:
黑盒测试法把程序看做一个黑盒子,完全不考虑程序内部的结构和处理过程。也就是说,黑盒测试是在程序接口进行测试,他只检查功能是否按照规格说明书的规定正常使用,程序是否能适当的接受输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息(例如数据库或文件)的完整性。黑盒测试又称为功能测试。
白盒测试:
与黑盒测试相反,他的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路能否都按预定要求正常工作。白盒测试又称为结构测试。
软件维护的4类活动: