《物联网信息安全》复习提纲Word下载.docx
《《物联网信息安全》复习提纲Word下载.docx》由会员分享,可在线阅读,更多相关《《物联网信息安全》复习提纲Word下载.docx(22页珍藏版)》请在冰点文库上搜索。
人为和非人为(大部分来自于人为的安全攻击)
恶意和非恶意
内部攻击和外部攻击
4、什么是安全服务?
-认证、访问控制、数据机密性、数据完整性和非否认(不可抵赖)服务。
答:
安全服务:
指采用一种或多种安全机制以抵御安全攻击。
认证:
有两种类型分别为实体认证(口令认证)和数据源认证(数据签名技术)
访问控制:
保护信息未有被授权就访问。
数据机密性:
服务确保只有经过授权的实体才能理解受保护的信息。
数据完整性:
保护信息免于被恶意篡改、插入,删除和重放。
非否认服务:
收发者不行否认
(二)对称加密与信息机密性。
约15%
1、对称加密的原理。
加密/解密用的是同一把密钥。
消息空间中的消息M(称之为明文)通过由加密密钥K1控制的加密算法加密后得到的密文C。
密文C通过解密密钥K2的解密算法有可恢复原始明文M。
2、熟练掌握古典密码中的替代密码和置换密码,完全理解课本中的举例。
?
什么鬼题,哪里都找不到答案。
替换——明文的每一个元素(比特、字母、、一组比特或字母)都映射到另外一个元素;
排列组合——铭文的元素都被再排列。
最基本的要求是没有信息丢失(即所有的操作都可逆)。
大多数体制包括了多级替换和排列组合.
3、DES算法的特征和步骤。
不用记忆具体的P盒和S盒内容,但要掌握DES的算法流程。
特征:
明文的长度为64位,而密钥的长度为56位;
以64位的数据块的形式处理较长的明文。
DES结构是Feistel网络的一个小型变种。
算法需要执行16次循环。
从最初的56位密钥产生了16个子密钥,每次循环使用其中一个子密钥。
步骤:
4、密码块操作模式(DES工作模式)有哪四种?
(计算公式或者图形)
ECB、CBC、CFB、OFB
5、3DES与DES算法的区别。
3DES使用3个密钥并执行3次DES算法,其加密过程依照加密-解密-加密(EDE)的顺序进行,解密仅仅是使用相反的密钥顺序进行相同的操作:
如果要与DES保持兼容,只可以选择K1=K2或者K2=K3
(三)单向散列函数与消息认证。
1、单向散列函数H需要满足哪些特性?
(1)H可适用于任意长度的数据块
(2)H能生成固定长度的输出
(3)对于任意给定的x,计算H(x)相对容易,并且可以用软/硬件方式实现。
(4)对于任意给定值h,找到满足H(x)=h的x在计算上不可行。
满足这一特性的三列函数称为具有单向性(one-way),或具有抗原像攻击性(preimageresistant)。
(5)对于任意给定的数据块x,找到满足H(x)=H(y)的y≠x在计算上是不可行的。
满足这一特性的散列函数被称为具有抗第二原像攻击性,有时也称为具有抗弱碰撞攻击性。
(6)找到满足H(x)=H(y)的任意一对(x,y)在计算上是不可行的。
满足这一特性的散列函数被称为抗碰撞性,有时也被称为抗强碰撞性。
前三个性质是使用散列函数进行消息认证的实际可行要求。
第四个属性,单向性:
给定消息容易产生它的散列码,但是给定散列码几乎不可能恢复出消息,如果认证技术中使用了秘密值,则单向性很重要。
2、SHA-1算法的步骤和参数。
(MD5与SHA1类似,因此不考察MD5的具体算法)
(PS:
SHA-3算法于2012年得到确认,出现在第五版书中。
SHA-1算法已被抛弃)
SHA-1算法以最大长度小于264位的消息作为输入,产生160bit消息摘要的输出。
以512bit数据块为单位处理输入。
3、请列出实现消息认证的不同方法。
a.使用对称加密;
b.使用非对称加密;
c.使用秘密值而不使用加密。
(请参考讲义)
4、请画出HMAC的算法流程。
H:
嵌入的hash函数(例如SHA-1)
M:
输入HMAC的消息(包括在嵌入的hash函数中指定的填充)
Yi:
M的第i块,0≤i≤(L-1)
L:
M中的块数
b:
块中的位数
n:
嵌入hash函数所产生的hash代码的长度
K:
密钥;
如果密钥的长度大于b,那么把密钥输入到hash函数以产生一个n-位密钥;
推荐的长度要不小于n
K+;
在左边填充了0的K,致使结果的长度为b位
ipad:
重复b/8次的00110110(0x36)
opad:
重复b/8次的01011100(0x5C)
简言之:
1)在K的左端追加0构成b比特的字符串K+(如:
K的长度为160比特,b=512,K将被追加44个0字节0x00)。
2)ipad与K+进行XOR(按比特异或)生成b比特的分组Si。
3)将M追加在Si上。
4)将H应用于步骤3所产生的数据流。
5)opad与K+进行XOR生成b比特的分组So。
6)将步骤4产生的散列结果追加在So上。
7)将H应用于步骤6产生的数据流,输出结果。
注意,与ipad进行异或将导致K一半的比特翻转。
类似地,与opad进行异或也导致K一般的比特翻转,但翻转的比特却不同。
实际上,用散列算法处理Si和So,我们已经从K伪随机地生存了两个密钥。
(四)身份认证及其应用。
1、验证用户身份的方法可分为哪三大类?
请举例。
●基于用户知道什么的身份认证:
用户标识(ID)+口令
●基于用户拥有什么的身份认证:
令牌(磁卡)、智能卡、一次性口令
●基于用户是谁的身份认证:
生理特征:
指纹、视网膜、脸型、掌纹等
行为特征:
声纹、手写签名、击键模式等。
2、Kerberos4消息交换的过程。
(一定要注意每个步骤的顺序和意义,请参考讲义,比课本清楚一些)
(1)CAS:
IDc||IDtgs||TS1
(2)ASC:
E(Kc[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs])
Tickettgs=E(Ktgs[Kc,tgs||IDc||ADc||IDtgs||TS2||Lifetime2])
(3)CTGS:
IDv||Tickettgs||Authenticatorc
Tickettgs=E(Ktgs[Kc,tgs||IDc||ADc||IDtgs||TS2||Lifetime2])
Authenticatorc=E(Kc,tgs[IDc||ADc||TS3])
(4)TGSC:
EKc,tgs[Kc,v||IDv||TS4||Ticketv]
Ticketv=EKv[Kc,v||IDc||ADc||IDv||TS4||Lifetime4]
(5)CV:
Ticketv||Authenticatorc
Authenticatorc=EKc,v[IDc||ADc||TS5]
(6)VC:
E(Kc,v[TS5+1])(用于相互认证)
(1)在客户登录到本地工作站以后,客户向服务器发送一个服务请求,请求获得应用服务器的“凭证”;
(2)认证服务器以凭证作为响应,并用客户的密钥加密凭证;
(3)客户C向TGS服务器发送消息请求获得访问某个特定应用服务器的票据;
(4)TGS服务器返回应用服务器票据以应答客户请求;
(5)客户将该票据传送给应用服务器;
(6)现在用户和应用服务器已经共享会话密钥;
如果需要身份验证;
服务器可以发送消息进行响应以证明自己的身份服务器返回身份验证码中的时间戳值+1,再用会话密钥进行加密C用户可以将消息解密,恢复增加1后的时间戳。
3、设计Kerberos用于解决什么问题?
假定在一个开放的分布式环境中,工作站上的用户希望访问分布在整个网络的服务器上的服务。
希望服务器能够限制访问,确保只有授权用户才能访问服务器,并且能够认证服务请求。
4、请说明为什么要使用公钥证书?
从字面理解,公钥加密的意思就是公钥是公开的。
所以,如果有某种广泛接受的公钥算法,如RSA,任何参与者都可以给其他参与者发送Ta的公钥,或向群体广播自己的公钥。
虽然这种方法非常方便,但是它由个很大的缺点。
任何人都可以伪造公共通告。
即某用户可以伪装成用户A向其他参与者发送公钥或者广播公钥。
直到一段时间后用户A大觉了伪造并且警告其他参与者,伪装者在此之前都可以读到试图发送给A的几米消息,并且使用假的公钥进行认证。
所以使用公钥证书解决上述问题。
简化:
公开密钥密码技术能够让通信双方容易共享密钥的特点,并利用公钥密码系统中的数字签名功能,强化网络上远程认证的能力
5、请说明公钥证书的产生过程,以及使用公钥证书的时候如何验证证书有效。
公钥证书由公钥加上公钥所有者的用户ID以及可信的第三方签名的整个数据块组成。
通常,第三方就是用户团体所信任的认证中心(CA),如政府机构或金融机构。
用户可通过安全渠道把Ta的公钥提交给这个CA,获取证书认证,然后用户就可以发布这个证书。
任何需要该用户公钥的人都可以获取这个证书,并且通过所附的可信签名验证其有效性。
6、X.509数字证书3个版本的格式分别包含哪些部分?
7、什么是证书链?
证书链由两个环节组成—信任锚(CA证书)环节和已签名证书环节。
自我签名的证书仅有一个环节的长度—信任锚环节就是已签名证书本身。
(五)公钥密码系统。
1、RSA算法和Diffie-Hellman算法的过程,要计算,请带科学计算器进入考场(带有mod运算的)。
2、如何使用RSA算法或者Diffie-Hellman算法分配密钥?
RSA的明文和密文是0到n-1之间的某个整数。
对于明文块P和密文块C,加密和解密使用下列的形式:
C=Pemodn
P=Cdmodn=(Pemodn)dmodn=Pedmodn
算法步骤:
1、选择两个素数p、q;
2、计算它们的乘积n=p×
q;
3、计算欧拉函数Ф(n)=(p-1)(q-1);
4、选择与Ф(n)互素,并且小于Ф(n)的整数e;
5、计算d,使得d×
emodФ(n)=1。
结果的密钥分别为{e,n}和{d,n}。
看看一个例子:
(1)选择两个素数p=17和q=11。
(2)计算n=p×
q=17×
11=187。
(3)计算Ф(n)=(p-1)(q-1)=16×
10=160。
(4)选择与Ф(n)=160互素,并且小于Ф(n)的e,我们选择e=7。
(5)确定d满足demodl60=1并且d<
160。
正确的值d=23,因为23×
7=161=1×
160+1。
结果密钥为:
公钥PU={7,187},私钥PR={23,187}。
离散对数:
1、定义素数p的本原根(primitiveroot)为其乘方能够产生从1到p-1的所有整数的数。
也就是说,如果a是素数p的本原根,那么下列数字:
amodp,a2modp,...,ap-1modp
是互不相同的数,而且以某种排列包含了从1到p-1的所有整数。
2、对于任何小于p的整数b和素数p的本原根a来说,能够找到唯一的指数i.满足:
b=aimodp其中0≤i≤(p-1)
称指数i为b对于基数a和运算modp的离散对数。
记为i=inda,p(b)。
1、选择共用的公有元素:
素数p及a<
p,a为p的本原根
2、用户A密钥:
选择私有的XA(XA<
p),计算公有的YA,YA=aXAmodp
3、用户B密钥:
选择私有的XB(XB<
p),计算公有的YB,YB=aXBmodp
4、用户A和B交换公有的YA和YB
5、由用户A产生密钥:
K=(YB)XAmodp
6、由用户B产生密钥:
K=(YA)XBmodp
例子:
1、选择素数p=71和本原根a=7。
2、A和B分别选择私钥XA=5和XB=12。
3、计算公钥:
YA=75mod71=51YB=712mod71=4
4、A和B交换公钥各自的公钥
5、A和B各自计算公用的密钥:
K=(YB)XAmod71=45mod71=30
K=(YA)XBmod71=5112mod71=30
3、如何使用RSA算法实现数字签名?
(1)发方A将原文信息进行哈希运算,得一哈希值即数字摘要MD;
(2)发方A用自己的私钥PVA,采用非对称RSA算法,对数字摘要MD进行加密,即得数字签名DS;
(3)发方A用对称算法DES的对称密钥SK对原文信息、数字签名DS及发方A证书的公钥PBA加密,得加密信息E;
(4)发方A用收方B的公钥PBB,采用RSA算法对对称密钥SK加密,形成数字信封DE,就好像将对称密钥SK装到了一个用收方公钥加密的信封里;
(5)发方A将加密信息E和数字信封DE一起发送给收方B;
(6)收方B接受到数字信封DE后,首先用自己的私钥PVB解密数字信封,取出对称密钥SK;
(7)收方B用对称密钥SK通过DES算法解密加密信息E,还原出原文信息、数字签名SD及发方A证书的公钥PBA;
(8)收方B验证数字签名,先用发方A的公钥解密数字签名得数字摘要MD;
(9)收方B同时将原文信息用同样的哈希运算,求得一个新的数字摘要MD’;
(10)将两个数字摘要MD和MD’进行比较,验证原文是否被修改。
如果二者相等,说明数据没有被篡改,是保密传输的,签名是真实的;
否则拒绝该签名。
这样就做到了敏感信息在数字签名的传输中不被篡改,未经认证和授权的人,看不见原数据,起到了在数字签名传输中对敏感数据的保密作用。
注意:
网上还有些方法介绍发送方A直接把公钥通过邮件等形式传送到接收方B中,也是可以的。
这里一起加密传送了。
(本章考查简单计算,不考查数学证明)
(六)IP安全。
1、常见的VPN应用环境有哪些?
两种说法:
说法一:
IntranetVPN:
适用于企业的总公司及较大的分公司
ExtranetVPN:
适用于诸如汽车业、零件厂商与产业险的整合服务、金融业之间的转账与交易、制造业与供应商的生产流程网络、代工行业(OEM)与客户间的生产与订单网络等
VPDN(VirtualPrivateDialupNetwork):
适用于企业较小的据点及经常出差到各地的业务人员
说法二:
●AccessVPN:
也称为VPDN,主要提供给公司内部在外出差、移动办公和在家中办公的人员与公司建立通信,都需要用到这种VPN连接方式,能够为他们提供安全、快捷的VPN隧道连接。
●IntranetVPN:
主要提供给公司内部各分支办公室与中心办公室之间建立通信。
适用于总部与多家分公司或分支机构之间的连接,就要用到这种VPN连接方式,能够把保证公司总部与分公司或分支机构之间数据传输的安全。
●ExtranetVPN:
主要提供给合作伙伴和重要客户与本公司间建立通讯。
用这种VPN连接方式保证公司与合作伙伴之间数据传输的安全。
2、AH和ESP服务的区别?
ah比esp少了一个整体包的加密功能。
而ESP与AH各自提供的认证其根本区别在于它们的覆盖范围。
ipsecvpn包括三个主要部分:
AH(AuthenticationHeader,认证头)、ESP(EncapsulatingSecurityPayload,封装安全载荷)、IKE(InternetKeyExchange,因特网密钥交换)。
ah关注ip包头的完整性,认证,而没有数据部分的加密。
esp主要是完整性,认证,和数据部分的加密。
但是esp不能针对ip包头。
只针对数据部分。
就像是一个火车。
ah是火车司机长只负责火车头的安全。
esp是列车长,负责除了火车头之外的整个车厢的安全。
所以,是不同的。
(PS:
虽然都是网络层协议,但是协议号也不同,AH协议号为51、ESP协议号为50)
1.AH没有ESP的加密特性
2.AH的认证是对整个数据包做出的,包括IP头部分,因为IP头部分包含很多变量,比如typeofservice(TOS),flags,fragmentoffset,TTL以及headerchecksum.所以这些值进行认证前要全部清零。
否则hash会mismatch导致丢包。
相反,ESP是对部分数据包做认证,不包括IP头部分。
3、传输模式和隧道模式的主要区别是什么?
传输(transport)模式:
只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。
通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。
隧道(tunnel)模式:
用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。
通常,隧道模式应用在两个安全网关之间的通讯。
4、IPSec认证头的格式,以及ESP安全封包的格式。
IPSec认证头:
ESP格式:
安全参数索引(32位):
用于和IP头之前的目的地址以及协议一起标识一个安全关联。
序号(32位):
与AH一样的计数器值,提供了抗重放功能。
有效负载数据(可变):
传输层段(传输模式)或IP报文(隧道模式),通过加密受到保护。
填充(0~255字节):
额外的字节。
填充长度(8位):
表示填充的字节数。
下一头(8位):
通过标识负载中的第一个头(如IPv6中的扩展头,或TCP之类的上层协议头)表明有效负载数据字段中数据的类型。
认证数据(可变):
长度可变的字段(为32位字的整数倍),用于填入ICV。
ICV的计算参量为ESP包中除掉验证数据域的其他部分
5、AH认证的范围在传输模式和隧道模式中的区别。
?
6、ESP加密和认证的范围在传输模式和隧道模式中的区别。
传输模式仅在主机上实现。
提供对上层协议的保护不提供对IP头的保护
隧道模式下整个受保护的IP包都封装在一个ESP头中并且还增加一个新的IP头。
当ESP在安全网关(保护用户传输流量)实现时必须采用隧道模式。
7、安全组合(SA组合)有哪些形式?
(要会看图,课堂ppt例子)
(七)SSL与传输层安全。
1、SSL协议栈对应在TCP/IP协议中的位置。
位于可靠的面向链接网络层协议和应用层协议之间。
2、SSL协议栈包含哪四种协议?
分别的作用是什么?
SSL记录协议:
(我自己)在客户机和服务器之间传输应用数据和SSL/TLS控制数据。
(书上):
SSL记录协议为SSL连接提供如下两种服务。
机密性:
握手协议定义一个可以用于SSL负载的传统加密共享密钥。
消息完整性:
握手协议还定义一个用于产生消息认证码(MAC)的共享密钥。
密码变更规格协议:
(我自己)用于从一种加密算法转变为另外一种加密算法。
(书上):
本协议只包含一条消息,由一个值为1的字节组成。
这条消息的唯一功能是使得延迟状态改变为当前状态,该消息更新了在这一连接上应用的密码机制。
报警协议:
(我自己)用于消息的呀中兴以及告警消息的说明。
用于将于SSL相关的报警传达给对等实体。
与使用SSL的其他应用一样,报警消息也要按照当前状态的规格进行压缩和加密操作。
握手协议:
用于在任何应用数据被传输之前,客户端和服务器相互认证,并协商加密和MAC算法。
以及用于保护SSL记录中所发送数据加密密钥。
3、SSL记录协议的操作过程。
SSL运行的第一步是分段。
把每个上层消息分割为不大于214字节的块;
然后选择压缩或不压缩。
压缩,必须是无损压缩,对内容长度不能产生多于1024字节的增量;
添加MAC,在压缩数据的基础上计算消息认证码;
加密,对压缩后的消息连同MAC使用对称加密算法加密。
加密所增加的长度也不能超多1024字节。
可用流密码或块密码,应用块密码时需要进行填充;
添加SSL记录头,由内容类型(8bits)、主版本(8bits)、副版本(8bits)、压缩后的长度(16bits)组成。
4、SSL握手协议的消息类型,配合一个建立客户和服务器之间逻辑连接的消息交换过程来解释。
(请参考讲义,比课本要更好理解)
讲义:
1.客户发送一个ClientHello报文给服务器
2.服务器以ServerHello报文进行应答
3.在Hello报文之后,服务器将使用Certificate报文把自己的数字证书,甚至证书链发送给客户端,最后返送HelloDone结束信号。
4.在某些情况下,服务器提供的证书不足以让客户来完成次密钥的交换,此时服务器需紧接着发送一个ServerKeyExchange报文给客户。
5.服务器发送ServerHelloDone报文,告诉客户服务器已经完成该阶段的握手。
6.在接收到服务器完成消息后,客户需要验证服务器是否提供合法的数字证书,并检查ServerHello报文的参数是否可以接受。
7.客户发送ChangeCipherSpec报文给服务器。
8.客户发送完成消息Finished报文。
9.服务器发送自己的改变密码规范ChangeCipherSpec报文。
10.服务器发送Finished报文。
PPT:
第一阶段:
客户端发起连接
确定一些想光的参数,包括协议版本、会话ID、加密套件、压缩算法和初始随机数
第二阶段:
服务器认证和密钥交换
服务器端发送证书、交换密钥、证书请求,最后发送hello阶段的结束信号
第三阶段:
客户认证及密钥交换
客户端发送证书(如果服务器端有要求)、密钥交换、证书验证
第四阶段:
结束阶段
改变加密套件,结束握手协议
5、SSL如何计算pre_master_secret和master_secret?
其他密钥参数又是如何计算的?
(仅考查SSL,不考查TLS)
pre_master_secret:
RA:
是随机产生的,48字节。
Diffie-Hellman:
双方协商得到的密钥。
master_secret=
MD5(pre_master_secret||SHA('
A'
||pre_master_secret||ClientHello.random||ServerHello.random))||
BB'
||pre_master_secret||ClientHello