. 至于偷看信息这类侵袭(仅仅是偷看网络中传送的内容而不冒充任何人)
将可能造成失密,但并不十分危险,因为数据的完整性没有被破坏,而且
用户可通过对需要保密的数据进行编码来保护数据的专用.
总之,在任何意义上要完全明白网络传送的各种问题并不是很容易的,需
不断实践分析.
(3)远程过程调用(RPC)鉴别
RPC是网络安全的核心,要明白这一点就必须清楚在RPC中鉴别机制是怎样
工作的.RPC的鉴别机制是端口开放式的,即各种鉴别系统都可插入其中并与之
共存.当前SUN OS有两个鉴别系统:UNIX和DES,前者是老的,功能也弱.后者是
在本节要介绍的新系统.对于RPC鉴别机制有两个词是很重要的:证书和核对器
(credentials和verify).这好比身份证一样,证书是识别一个人的姓名,地址,
出生日期等;而核对器就是身份证的照片,通过这张照片就能对持有者进行核
对.在RPC机制中也是这样:客户进程在RPC请求时要发出证书和核对器信息.而
服务器收到后只返回核对器信息,因为客户是已知道服务的证书的.
(4)UNIX鉴别机制
SUN早期的各种网络服务都建立在UNIX鉴别机制之上,证书部分包含站名,
用户号,组号和同组存取序列,而核对器是空白.这个系统存在两个问题:首先,
最突出的问题是核对器是空的,这就使得伪造一份证书是非常容易的.如果网
络中所有的系统管理员都是可以信赖的,那不会有什么问题.但是在许多网络
(特别是在大学)中,这样是不安全的.而NFS对通过查寻发出mount请求的工作
站的INTERNET地址作为hostname域的核对器来弥补UNIX鉴别系统的不足,并且
使它只按受来自特权INTERNET口的请求.但这样来确保系统安全仍然是不够的,
因为NFS仍然无法识别用户号ID.
另一个问题是UNIX鉴别系统只适用于UNIX系统,但需要在一个网络中所有
的站都使用UNIX系统是不现实的.因为NFS可运行于MS-DOS和VMS系统的机器上,
但在这些操作系统中UNIX鉴别系统是不能运行的,例如:MS-DOS系统甚至就没
有用户号的概念.
由此可知,应该有这样的鉴别系统:它具有独立于操作系统证书并使用核
对器.这就如像DES鉴别系统.
(5)DES鉴别系统
DES鉴别系统的安全性建立在发送者对当前时间的编码能力上,它使接收
者能解码并对照自己的时钟来进行检验.时钟标记也使用DES编码.这样的机制
要工作有两件事是必须的:
. 发送者和接收者双方必须对什么是当前时间进行约定.
. 发送者和接收者必须使用同样的编码关键字.
如果网络有时间同步机制,那么客户机服务器之间的时间同步将自己执行.
如果没有这样的机制,时间标记将按服务器的时间来计算.为计算时间,客户机
在开始RPC调用之前必须向服务器询问时间,然后计算自己和服务器之间的时
间差,当计算时间标记时,这个差值将校正客户方面的时钟.一旦客户机和服务
器时钟不同步,服务器就开始拒绝客户机的请求,并且DES鉴别系统将使它们的
时间同步.
客户和服务器是怎样来获得相同的编码关键字的呢?当客户希望与服务器
交谈时,它生成一个随机关键字来对时间标记进行编码;这个关键字称为会话
关键字CK,客户对CK按公用关键字模式进行编码,并在第一次会话时发送给服
务器.这个CK是唯一使用公用关键字编码的关键字.这时只有这一客户与服务
器两者才知道它们的DES关键字,这个关键字称为共有关键字.
第一次请求时,客户的证书包括三项:名字,用共有关键字编码的会话关键
字和用会话关键字编码的时窗,时窗告诉服务器:以后即将给你发送许多证书;
也许会有人用伪造的时间标记冒充新的会话向你发送证书.当你收到时间标志
时,请查看你的当前时间是否在时间标记和时间标记加时窗之间,如果不对请
拒绝.
为创建安全的NFS文件,时窗缺省值为30分钟.在发出首次请求时,客户的
核对器中包含被编码的时间标记和特定时窗(WIN+1)的编码核对器.这样做的
原因是:如果某人想写一个程序并且在证书和核对器的编码域中填充一些任意
的二进制值,服务器将CK解码成DES关键字,并且用它来对时窗和时间标记解码,
最后产生随机值.在经过上千次的努力后,这些随机的时窗/时间标记对才有可
能通过鉴别系统,因此时窗核对器将使要猜测出正确的证书变得更困难,以提
高安全性.
在对客户进行鉴别后,服务器将在证书表中存放四项值:客户名A,会话关
键字CK,时窗,时间标记.在服务器中保留前三项的目的是以备将来使用.保留
时间标记的目的是为防止再次执行,服务器只接收比以前的时间标记晚的时间
标记.服务器将向客户返回的核对器包括一个序号ID和负的时间标记(该标记
是被CK编码后的).客户机知道,只有服务器能返送回这样的核对器,因为只有
服务器知道时间标记.
第一次会话过程是很复杂的,以后就容易多了,客户每次向服务器发送它
的ID和编码后的时间标记,而服务器则返送回编码后的时间标记.
(6)公共关键字的编码
SUN OS使用Diffie-Hellman法进行公共关键字的编码,该算法随机产生一
个秘密关键字(SK),简称密钥.可用一个公式来计算出公共关键字(PK),公共关
键字存放在公共目录中,而密钥存放在专用的目录中.由PK和SK生成普通关键
字K,由于计算K必须知道两个密钥中的一个,所以除了服务器和客户外没有任
何人能计算K.计算将与另一个已知常数M求模.尽管某人的密钥可能会被人采
用对公共关键字求对数的方法来得到,但是由于M的值很大,要计算出M来几乎
是不可能的.为了确保安全,K必须有较多位的二进制数来作DES密钥,最多可从
K中取56位来形成DES密钥.
PK和SK都是以在文件publickey,byname中的网络名的顺序存放,SK用登录
号时的口令编码后存放.当你登录到一个站时,Login程序先取你的编码关键字
后再用你的口令对其进行编码;并将解码后的密钥送给确保安全的本地密钥服
务器,以备以后进行RPC处理时使用.(注意:一般的应用是不需要知道公共关键
字和密钥的).除改变登录口令外,yppasswd程序还将随机地产生新的公共关键上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页 |