哈工大信息安全概论复习笔记(2)
文章目录
考点八 RSA公钥算法
RSA算法的数学基础是初等数论中的欧拉定理以及大整数因子分解问题。
RSA密码体制是一种分组密码,明文和密文均是0到n之间的整数,n的大小通常为1024位二进制数或309位十进制数,因此,明文空间P=密文空间C=
{
x
∈
Z
∣
0
<
x
<
n
,
Z
为
整
数
集
合
}
\{x\in Z|0<x<n,Z为整数集合\}
{x∈Z∣0<x<n,Z为整数集合}。
RSA密码的密钥生成具体步骤如下。
1.选择两个互异的素数p和q,计算
n
=
p
q
n=pq
n=pq,
ϕ
(
n
)
=
(
p
−
1
)
(
q
−
1
)
\phi(n)=(p-1)(q-1)
ϕ(n)=(p−1)(q−1)。
2.选择整数e,使
g
c
d
(
ϕ
(
n
)
,
e
)
=
1
gcd(\phi (n),e)=1
gcd(ϕ(n),e)=1,且
1
<
e
<
ϕ
(
n
)
1<e<\phi(n)
1<e<ϕ(n)。
3.计算d,使
d
≡
e
−
1
m
o
d
ϕ
(
n
)
d \equiv e^{-1}~mod~\phi(n)
d≡e−1 mod ϕ(n),即d为模
ϕ
(
n
)
\phi(n)
ϕ(n)下e的乘法逆元
则公开密钥 P k = { e , n } P_k=\{e,n\} Pk={e,n},私用密钥 S k = { d , n , p , q } S_k=\{d,n,p,q\} Sk={d,n,p,q}。当明文为m,密文为c,加密时使用公开密钥 P k P_k Pk,加密算法 c = m e m o d n c=m^e~mod~n c=me mod n;解密时使用私用密钥 S k , m = c d m o d n S_k,m=c^d~mod~n Sk,m=cd mod n。故e也被称为加密指数,d被称为解密指数。
考点九 散列函数的特点和作用
散列函数的目的:将任意长的消息映射成一个固定长度的散列值(Hash值),也称为消息摘要。消息摘要可以作为认证符,完成消息认证。
健壮性:
1.弱无碰撞性:指在消息特定的明文空间X中,给定消息
x
∈
X
x \in X
x∈X,在计算机上几乎找不到不同于x的
x
′
,
x
′
∈
X
,
使
得
h
(
x
)
=
h
(
x
′
)
x^{'},x^{'}\in X ,使得h(x)=h(x^{'})
x′,x′∈X,使得h(x)=h(x′)。
2.强无碰撞性:指在计算机上几乎找不到不同于x的
x
′
,
使
得
h
(
x
)
=
h
(
x
′
)
,
x
′
可
以
不
属
于
X
x^{'},使得h(x)=h(x^{'}),x^{'}可以不属于X
x′,使得h(x)=h(x′),x′可以不属于X。
注:强无碰撞自然包含弱无碰撞
3.单向性:指通过h的逆函数
h
−
1
h^{-1}
h−1来求得散列值h(x)的消息原文x在计算上不可行。
考点十 EMI、EMC、防电磁泄漏主要方法
电磁干扰(EMI):指一切与有用信号无关的、不希望有的或对电器及电子设备产生不良影响的电磁发射。
防止EMI要从两方面考虑,一方面要减少电子设备的电磁发射,另一方面要提高电子设备的电磁兼容性(EMC)。
电磁兼容性(EMC):指电子设备在自己正常工作时产生的电磁环境,与其他电子设备之间相互不影响的电磁特性。
防电磁信息泄漏的基本思想主要包括三个层面:
1.抑制电磁发射 2.屏蔽隔离 3.相关干扰
常用的防电磁泄漏的方法有三种:
1.屏蔽法 - 主要用来屏蔽辐射及干扰信号
2.频域法 - 主要解决正常的电磁发射受干扰问题
3.时域法 - 与频域法相似,时域法也是用来回避干扰信号
考点十一 容错与容灾的概念及主要技术方法
容错基本思想:即使出现了错误,系统也可以执行一组规定的程序;或者说,程序不会因为系统中的故障而中断或被修改,并且故障也不会引起运行结果的差错。简单地说,容错就是让系统具有抵抗错误带来的能力。
容错系统可分为五种类型:
1.高可用度系统 2.长寿命系统 3.延迟维修系统 4.高性能系统 5.关键任务系统
常用数据容错技术主要有以下四种:
1.空闲设备 - 当正常运行的部件出现故障时,原来空闲的一台立即替补
2.镜像 - 把一份工作交给两个相同的部件同时进行
3.复现 - 也称延迟镜像,原系统故障时,辅助系统只能在接近故障点的地方开始工作。同一时间只需要管理一套设备
4.负载均衡 - 将一个任务分解成多个子任务,分配给不同的服务器执行。
容灾含义:对偶然事故的预防和恢复
解决方案:一是对服务的维护和恢复,二是保护或恢复丢失的、被破坏的或被删除的信息。只有两者结合起来才能提供完整的灾难恢复方案。
常用恢复策略:
1.做最坏的打算
2.充分利用现有资源
3.既重视灾后恢复也重视灾前措施
考点十二 windows的网络认证
用户登入时的身份认证过程也是采用对称密钥加密来完成的
用户与主域控制器共享口令,在域控制器的安全用户管理(SAM)数据库中保存注册用户的用户名、口令的散列以及其他信息。
用户登录具体过程:
1.用户先激活winlogon窗口,并输入用户名和口令,然后向域控制器发送登录请求,同时计算出口令的散列,口令及其散列不包含在登录请求信息中。
2.域控制器收到登录请求后产生一个8字节的质询(挑战)并发送给客户端,同时取出给用户的口令散列,用此口令散列对质询进行散列计算(也称加密),得到质询散列。
3.客户端收到8字节的质询后,首先使用前边计算得到的口令散列对质询进行散列计算,得到质询散列,随后将计算出的质询散列作为应答发送给域控制器。
4.域控制器比对其算出的质询散列和用户应答回送的质询散列,如果相同则登录认证通过,否则登录认证失败,同时向用户发送登录认证结果。
考点十三 利用公开密钥和对称密钥设计认证协议获得会话密钥
描述符号:
A
→
B
A \rightarrow B
A→B表示A向B发送信息
E
k
(
x
)
E_k(x)
Ek(x)表示使用共享密钥k对信息进行加密
x
∣
∣
y
x||y
x∣∣y表示信息串x和y相连接
1 基于对称密钥的认证协议
只有少量用户的封闭网络系统,使用挑战-应答方式认证
对于规模较大的网络系统,依靠可靠的第三方完成认证
基于挑战应答方式的认证协议:
1.
A
→
B
:
I
D
a
∣
∣
I
D
b
A \rightarrow B:ID_a||ID_b
A→B:IDa∣∣IDb
2.
B
→
A
:
N
b
B \rightarrow A:Nb
B→A:Nb
3.
A
→
B
:
E
k
(
N
b
)
A \rightarrow B:E_k(Nb)
A→B:Ek(Nb)
2 基于公开密钥的认证协议
A要认证B,有以下两种方式:
(1)
1.A向B发送明文挑战(挑战因子/随机数)
2.B用私钥加密(签名),返回给A
3.A用B的公钥解密,比对,完成认证
(2)
1.A用B的公钥加密挑战因子(或随机数)发送给B
2.B用私钥解密,返回明文给A
3.A比对,完成认证
考点十四 Kerberos工作原理
Kerberos协议的认证过程分为三个阶段,六个步骤
第一阶段 身份验证服务交换:完成身份认证,获得访问TGS的票据
(1)
C
→
A
S
:
I
D
C
∣
∣
I
D
t
g
s
∣
∣
T
S
1
C \rightarrow AS:ID_C||ID_{tgs}||TS_1
C→AS:IDC∣∣IDtgs∣∣TS1
(2)
A
S
→
C
:
E
K
C
[
K
C
,
t
g
s
∣
∣
I
D
t
g
s
∣
∣
T
S
2
∣
∣
L
i
f
e
t
i
m
e
2
∣
∣
T
i
c
k
e
t
t
g
s
]
AS\rightarrow C:E_{KC}[K_{C,tgs}||ID_{tgs}||TS_2||Lifetime_2||Ticket_{tgs}]
AS→C:EKC[KC,tgs∣∣IDtgs∣∣TS2∣∣Lifetime2∣∣Tickettgs]
注:步骤(1)为请求TGS票据
I
D
C
:
ID_C:
IDC:Client C的用户标识
I
D
t
g
s
:
ID_{tgs}:
IDtgs:用请求访问的TGS的标识
T
S
1
:
TS_1:
TS1:让AS验证Client C的时钟是与AS的时钟是否同步的
步骤(2)为返回TGS票据
E
K
C
:
E_{KC}:
EKC:基于用户口令的加密,使得AS和Client C可以验证口令,并保护消息
K
C
,
t
g
s
:
K_{C,tgs}:
KC,tgs:由AS产生,用于在TGS和Client C之间信息的安全交接
I
D
t
g
s
:
ID_{tgs}:
IDtgs:确认这个ticket是为特定TGS制作的
T
S
2
:
TS_2:
TS2:告诉用户该ticket签发的时间
L
i
f
e
t
i
m
e
2
:
Lifetime_2:
Lifetime2:告诉用户该ticket的有效期
T
i
c
k
e
t
t
g
s
:
Ticket_{tgs}:
Tickettgs:用户用来访问TGS的ticket,可重用,避免多次认证输入口令,其中,
T
i
c
k
e
t
t
g
s
=
E
K
t
g
s
[
K
C
,
t
g
s
∣
∣
I
D
c
∣
∣
A
D
C
∣
∣
I
D
t
g
s
∣
∣
T
S
2
∣
∣
L
i
f
e
t
i
m
e
2
]
Ticket_{tgs} = E_{Ktgs}[K_{C,tgs}||ID_c||AD_C||ID_{tgs}||TS_2||Lifetime_2]
Tickettgs=EKtgs[KC,tgs∣∣IDc∣∣ADC∣∣IDtgs∣∣TS2∣∣Lifetime2]
第二阶段 票据授予服务交换:获得访问应用服务器的票据。
(3)
C
→
T
G
S
:
I
D
V
∣
∣
T
i
c
k
e
t
t
g
s
∣
∣
A
u
t
h
e
n
t
i
c
a
t
o
r
C
C \rightarrow TGS:ID_V||Ticket_{tgs}||Authenticator_C
C→TGS:IDV∣∣Tickettgs∣∣AuthenticatorC
(4)
T
G
S
→
C
:
E
K
C
,
t
g
s
[
K
C
,
V
∣
∣
I
D
V
∣
∣
T
S
4
∣
∣
T
i
c
k
e
t
V
]
TGS \rightarrow C:E_{K_{C,tgs}}[K_{C,V}||ID_V||TS_4||Ticket_V]
TGS→C:EKC,tgs[KC,V∣∣IDV∣∣TS4∣∣TicketV]
注:步骤(3)为请求应用服务器票据
I
D
V
:
ID_V:
IDV:告诉TGS用户要访问应用服务器V
T
i
c
k
e
t
t
g
s
:
Ticket_{tgs}:
Tickettgs:向TGS证实该用户已被AS认证
A
u
t
h
e
n
t
i
c
a
t
o
r
C
:
Authenticator_C:
AuthenticatorC:由用户生成,用于验证时效性
A
u
t
h
e
n
t
i
c
a
t
o
r
C
=
E
K
C
,
t
g
s
[
I
D
C
∣
∣
A
D
C
∣
∣
T
S
3
]
Authenticator_C = E_{K_{C,tgs}}[ID_C||AD_C||TS_3]
AuthenticatorC=EKC,tgs[IDC∣∣ADC∣∣TS3]
步骤(4)为返回应用服务器票据
E
K
C
,
t
g
s
[
]
:
E_{K_{C,tgs}}[]:
EKC,tgs[]:使用Client C和TGS共享的密钥加密,用以保护本消息
K
C
,
V
:
K_{C,V}:
KC,V:由TGS生成,用于Client C和Server V之间信息的安全交换;
I
D
V
:
ID_V:
IDV:确认该ticket是签发给setcer V的
T
S
4
:
TS_4:
TS4:告诉用户该ticket签发的时间
T
i
c
k
e
t
V
:
Ticket_V:
TicketV:用户用以访问应用服务器V的ticket,其中,
T
i
c
k
e
t
V
=
E
K
V
[
K
C
,
V
∣
∣
I
D
C
∣
∣
A
D
C
∣
∣
I
D
V
∣
∣
T
S
4
∣
∣
L
i
f
e
t
i
m
e
4
]
Ticket_V=E_{KV}[K_{C,V}||ID_C||AD_C||ID_V||TS_4||Lifetime_4]
TicketV=EKV[KC,V∣∣IDC∣∣ADC∣∣IDV∣∣TS4∣∣Lifetime4]
E
K
V
[
]
:
E_{K_V}[]:
EKV[]:Ticket用只有TGS和Server V共享的密钥加密,以预防篡改
第三阶段 客户与服务器身份验证交换:获得服务
(5)
C
→
V
:
T
i
c
k
e
t
V
∣
∣
A
u
t
h
e
n
t
i
c
a
t
o
r
C \rightarrow V:Ticket_V||Authenticator
C→V:TicketV∣∣Authenticator
(6)
V
→
C
:
E
K
C
,
V
[
T
S
5
+
1
]
(
f
o
r
m
u
t
u
a
l
a
u
t
h
e
n
t
i
c
a
t
i
o
n
)
V \rightarrow C:E_{K_{C,V}}[TS_5+1](for~mutual~authentication)
V→C:EKC,V[TS5+1](for mutual authentication)
注:步骤(5)为向应用服务器发起服务请求。
T
i
c
k
e
t
V
:
Ticket_V:
TicketV:向服务器证实该用户已被AS认证
A
u
t
h
e
n
t
i
c
a
t
o
r
C
:
Authenticator_C:
AuthenticatorC:由Client C生成用于验证时效性
A
u
t
h
e
n
t
i
c
a
t
o
r
C
=
E
K
C
,
V
[
I
D
C
∣
∣
A
D
C
∣
∣
T
S
5
]
Authenticator_C=E_{K_{C,V}}[ID_C||AD_C||TS_5]
AuthenticatorC=EKC,V[IDC∣∣ADC∣∣TS5]
E
K
C
,
V
[
]
:
E_{K_{C,V}}[]:
EKC,V[]:使用Clinet C和Server V的共享密钥加密,来验证身份并保护本信息
步骤(6)为服务器对客户机可选的身份认证
T
S
5
+
1
:
TS_5+1:
TS5+1:向Client C证明这不是重放攻击的应答