所谓协议
,
就是两个或两个以上的参与者采取一系列步骤以完成某项特定的任务。
这个定义包含
3层意思
:
(
1
)
协议至少需要
2
个参与者
。
一个人可以通过执行一系列的步骤来完成一项任务
,
但它不构成
协议
;
(
2
)
在参与者之间呈现为消息处理和消息交换交替进行的一系列步骤
;
(
3
)
通过执行协议必须能够
完成某项任务或达成某种共识
。
密码算法和安全协议处于网络安全体系的不同层次
,
是网络数据安全的两个主要内容
。
具体而言
,
密码算法为网络上传递的消息提供高强度的加解密操作和
其他辅助算法
(
如
Hash
函数
)
,
而安全协议是在这些密码算法的基础上
,为各种网络安全性方面的需求提供实现方案
。
在网络通信中最常用的
、
最基本的安全协议按照其目的可以分成以下
4
类
:
(
1
)
密钥交换协议
。
这类协议用于完成会话密钥的建立
。
一般情况下是在参与协议的
2
个或者多个实体之间建立共享的秘密
,
如用于
1
次通信中的会话密钥
。
协议中的密码算法可采用对称密码体制
,
也
可以采用非对称密码体制
。
(
2
)
认证协议
。
认证协议包括实体认证
(
身份认证
)
协议
、
消息认证协议
、
数据源认证协议和数据目的认证协议等
,
用来防止假冒
、
篡改
、
否认等攻击
。
(
3
)
认证密钥交换协议
。
这类协议将认证协议和密钥交换协议结合在一起
,
先对通信实体的身份进行认证
,
在认证成功的基础上
,
为下一步安全通信分配所使用的会话密钥
,
它是网络通信中应用最普遍的
一种安全协议
。
常见的认证密钥交换协议有互联网密钥交换
IKE
)
协议
、
分布式认证安全服务
(
DASS
)
协议
、
Kerberos
认证协议
、
X
.
509
协议等
。
(
4
)
电子商务协议
。与上述协议最为不同
的是
,
电子商务协议中主体往往代表交易的双方
,
其利益目
标是不一致的
,
或者根本就是矛盾的
。
因此
,
电子商务协议最为关注的就是公平性
,
即协议应保证交易双
方都不能通过损害对方利益而得到它不应得的利益
。
常见的电子商务协议有
SET
协议
,
iKP
协议等
。
攻击者将所有已知的消息放入其知识集合
KS
(
know ledge set
)
中
。
诚实主体之间交换的任何消息都将被加入到攻击者的
KS
中
,
并且
,
攻击者可对
KS
中的消息进行操作
,
所得消息也将加入到其
KS
中
。
攻击者可进行的操作至少包括级联
、
分离
、
加密和解密
。
归纳起来
,
攻击者的行为表现为以下几种形式
:
(
1
)
将消息发送到任意定接收者
;
(
2
)
延迟消息的送达
;
(
3
)
将消息篡改后转发
;
(
4
)
将消息与以前接收的消息合并
;
(
5
)
改变部分或全部消息的目的地址
;
(
6
)
重放消息
。
在认证系统中
,
假设每一个主体与可信服务器之间共享一个秘密密钥
,
密钥是通过离线方式建立的
。当两个主体要进行秘密通信时
,
它们要建立一个仅为其所知的秘密密钥
,
这个秘密密钥的作用相当于一
个秘密通道
,
不知道密钥的攻击者无法干扰通信。
安全协议的形式化分析技术
,
可使协议设计者通过系统分析
,
将注意力集中于接口
、
系统环境的假设
、
系统在不同条件下的状态
、
条件不满足时系统出现的情况
,
以及系统不变的属性
,
并通过系统验证
,
提
供协议必要的安全保证
。
通俗地讲
,
安全协议的形式化分析是采用一种正规的
、
标准的方法对协议进行
分析
,
以检查协议是否满足其安全目标
。
因此
,
安全协议的形式化分析有助于
:
(
1
)
界定安全协议的边界
,
即协议系统与其运行环境的界面
;
(
2
)
更准确地描述安全协议的行为
;
(
3
)
更准确地定义安全协议的特性
;
(
4
)
证明安全协议满足其说明
,
以及证明安全协议在什么条件下不能满足其说明
。
(1
)
对
BAN
逻辑自身进行扩充导致了
BAN
类逻辑的产生
,
如
GNY
逻辑
,
AT
逻辑
,
SOV
逻辑等
;
(
2
)
为具体的协议设计特定的形式化分析工具
,
如分析电子商务协议的
Kailar
逻辑以及分析与时间相关的协议的
CS
逻辑等
;
(
3
)
突破
BAN
及
BAN
类逻辑对协议主体的假设的局限性而提出的
KG
逻辑
,以及突破主体信仰与 知识的单调性而提出的
Nonmonotomic
逻辑
。
BAN
逻辑试图回答以下问题
:
(
1
)
协议要达成什么样的目标
;
(
2
)
协议基于的假设是什么
;
(
3
)
协议是
否存在冗余
;
(
4
)
协议中的加密消息是否可以以明文形式传递而不影响协议的安全性
。
Sy verson
指出
:
语义的重要性在于它提供了一个评估逻辑的方法
。
而评估一个逻辑最为关注的两个问题是
:
(
1
)
完备性
,
是否能够得到所有想得到的
;
(
2
)
合理性
,
是否能够回避所有不想得到的
。
要从理论上证明一个协议的正确性和安全性是十分困难的问题
,
即使对规模有限的协议也难以做到这一点
。
近几年出现的电子商务协议远比认证协议复杂
,
往往要求具有不可否认性和可追究性等安全性服务
,
这类协议的形式化分析具有更高的要求
。
原有的
BAN
及
BAN
类逻辑基本上是一种信念逻辑
,
它的主要目的是证明主体相信某个公式
,
而电子商务协议中的可追究性的目的在于某个主体要向第三方证明另一方对某个公式负有责任
。
所以
BAN
及
BAN
类逻辑不能用于电子商务协议可追究性的分析
。
在这种情况下
,
一种新型的形式化分析工具
———
Kailar
逻辑应运而生
,
它是一种针对电子商务协议的可追究性而开发的形式化分析工具
。
所谓形式化方法是指用数学方法描述和推理基于计算机的系统,
直观的说
,
就是规范语言
+
形式推理
,
在技术上通过精确的数学手段和强大的分析工具得到支持.
其表现形式通常有逻辑、离散数学 、状态机等等
.
规范语言包括语法、语义以及满足关系等几部分
.
规范语言可以分为四类:
抽象模型规范法 、代数规范法 、状态迁移规范法和公理规范法
.
一般说来
,
协议的安全性问题是不可判定的
.
这就意味着
,
没有一个通用的算法
判定所有协议的安全性