Algorithm 版 (精华区)
发信人: zjliu (Robusting), 信区: Algorithm
标 题: DES鉴别系统
发信站: 哈工大紫丁香 (Sun Nov 17 15:44:25 2002) , 转信
SUN OS 安全浅谈
美国SUN MICROSYSTEM公司的SUN OS操作系统是建立在贝尔实验室的UNIX SYSTEM V和加
州大学伯克得分校的UNIX 4.3基础上的UNIX操作系统.SUN OS 4.0 版提供了专门的鉴别
系统,该系统极大地提高了网络环境的安全性.它也可用来 确保其它UNIX系统或非UNIX系
统的安全.它使用DES密码机构和公共关键字密码 机构来鉴别在网络中的用户和机器.DE
S表示数据编码标准,而公共数据编码机构 是包含两种密钥的密码系统:一种是公用的,另
一种是专用的.公用的密钥是公开 的而专用密钥是不公开的.专用(秘密)的密钥用来对数
据进行编码和解码.
SUN OS系统不同于其它公共关键字编码之系统在于:SUN OS的公用和专用密 钥都被用来
生成一个通用密钥,该密钥又用来产生DES密钥.
(1)确保NFS的安全
在网络文件系统NFS上建立安全系统,首先文件系统必须开放并保证装配 的安全.
. 编辑/etc/exports文件,并将-Secure任选项加在要使用DES编码机构的文 件系统上.在
屏幕上显示服务器怎样开放安全的/home目录,如: home -Secure,access=engineering
其中engineering是网络中唯一能存取/home文件系统的用户组.
SUN的远程过程调用(RPC)机制已被证明可以用来建立有效的网络服务,最 有名的服务是
NFS,它实现了不同机器,不同操作系统之间透明的文件共享.但 NFS并非毫无缺陷.通常N
FS鉴别一个写文件的请求时是鉴别发出这个请求的机 器,而不是用户.因而,在基于NFS的
文件系统中,运行su命令而成为某个文件的 拥有者并不是一件困难的事情.同样,rlogin
命令使用的是与NFS同样的鉴别机 制,也存在与NFS一样的在安全性方面的弱点.
对网络安全问题一个通常的办法是针对每一个具体的应用来进行解决.而 更好的办法是
在RPC层设置鉴别机构,使对所有的基于RPC的应用都使用标准的 鉴别机构(比如NFS和Ye
llow pages).于是在SUN OS系统中就可以对用户的机 器都进行鉴别.这样做的优点是使
计算机网络系统更像过去的分时系统.在每 台机器上的用户都可登录到任何一台机器;就
象分时系统中任何一个终端上的 用户都可登录到主机系统一样,用户的登录口令就是网
络的安全保证.用户不 需要有任何有关鉴别系统的基础.SUN系统的目标是让网络系统成
为既安全又 方便的分时系统.
要注意以下几点:
任何人只要他拥有root存取权并具备较好的网络程序设计知识,他就可 以向网络中加入
二进制数据或从网络中获得数据.
在采用以太网结构的局域网的工作中不可能发生信息包被窜改(即被传 送的信息包在到
达目的站之前,被捕获并将其修改后按原路径发出),因 为所有的信息包都将几乎同时到
达目的站之前,被捕获并将其修改后按 原路径发出),但在网关上发生包被窜改则是有可
能的.因而应确保网络 中所有网关都是可靠的.
SUN的远程过程调用(RPC)机制已被证明可以用来建立有效的网络服务,最 有名的服务是
NFS,它实现了不同机器,不同操作系统之间透明的文件共享.但 NFS并非毫无缺陷.通常N
FS鉴别一个写文件的请求时是鉴别发出这个请求的机 器,而不是用户.因而,在基于NFS的
文件系统中,运行su命令而成为某个文件的 拥有者并不是一件困难的事情.同样,rlogin
命令使用的是与NFS同样的鉴别机 制,也存在与NFS一样的在安全性方面的弱点.
对网络安全问题一个通常的办法是针对每一个具体的应用来进行解决.而 更好的办法是
在RPC层设置鉴别机构,使对所有的基于RPC的应用都使用标准的 鉴别机构(比如NFS和Ye
llow pages).于是在SUN OS系统中就可以对用户的机 器都进行鉴别.这样做的优点是使
计算机网络系统更像过去的分时系统.在每 台机器上的用户都可登录到任何一台机器;就
象分时系统中任何一个终端上的 用户都可登录到主机系统一样,用户的登录口令就是网
络的安全保证.用户不 需要有任何有关鉴别系统的基础.SUN系统的目标是让网络系统成
为既安全又 方便的分时系统.
要注意以下几点:
任何人只要他拥有root存取权并具备较好的网络程序设计知识,他就可 以向网络中加入
二进制数据或从网络中获得数据.
在采用以太网结构的局域网的工作中不可能发生信息包被窜改(即被传 送的信息包在到
达目的站之前,被捕获并将其修改后按原路径发出),因 为所有的信息包都将几乎同时到
达目的站之前,被捕获并将其修改后按 原路径发出),但在网关上发生包被窜改则是有可
能的.因而应确保网络 中所有网关都是可靠的.
对网络系统最危险的攻击是同向网络中加入数据有关的事件,例如通过 生成一个合法的
信息包来冒充某个用户;或记录下用户会话的内容,并 在晚一些时候再回答它们.这些都
会严重的影响数据的完整性.
至于偷看信息这类侵袭(仅仅是偷看网络中传送的内容而不冒充任何人) 将可能造成失密
,但并不十分危险,因为数据的完整性没有被破坏,而且 用户可通过对需要保密的数据进
行编码来保护数据的专用.
总之,在任何意义上要完全明白网络传送的各种问题并不是很容易的,需 不断实践分析.
(3)远程过程调用(RPC)鉴别
RPC是网络安全的核心,要明白这一点就必须清楚在RPC中鉴别机制是怎样 工作的.RPC的
鉴别机制是端口开放式的,即各种鉴别系统都可插入其中并与之 共存.当前SUN OS有两个
鉴别系统:UNIX和DES,前者是老的,功能也弱.后者是 在本节要介绍的新系统.对于RPC鉴
别机制有两个词是很重要的:证书和核对器 (credentials和verify).这好比身份证一样
,证书是识别一个人的姓名,地址, 出生日期等;而核对器就是身份证的照片,通过这张照
片就能对持有者进行核 对.在RPC机制中也是这样:客户进程在RPC请求时要发出证书和核
对器信息.而 服务器收到后只返回核对器信息,因为客户是已知道服务的证书的.
(4)UNIX鉴别机制
对网络系统最危险的攻击是同向网络中加入数据有关的事件,例如通过 生成一个合法的
信息包来冒充某个用户;或记录下用户会话的内容,并 在晚一些时候再回答它们.这些都
会严重的影响数据的完整性.
至于偷看信息这类侵袭(仅仅是偷看网络中传送的内容而不冒充任何人) 将可能造成失密
,但并不十分危险,因为数据的完整性没有被破坏,而且 用户可通过对需要保密的数据进
行编码来保护数据的专用.
总之,在任何意义上要完全明白网络传送的各种问题并不是很容易的,需 不断实践分析.
(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系统,但需要在一个网络中所有 的站都使用UN
IX系统是不现实的.因为NFS可运行于MS-DOS和VMS系统的机器上, 但在这些操作系统中U
NIX鉴别系统是不能运行的,例如:MS-DOS系统甚至就没 有用户号的概念.
由此可知,应该有这样的鉴别系统:它具有独立于操作系统证书并使用核 对器.这就如像
DES鉴别系统.
(5)DES鉴别系统
DES鉴别系统的安全性建立在发送者对当前时间的编码能力上,它使接收 者能解码并对照
自己的时钟来进行检验.时钟标记也使用DES编码.这样的机制 要工作有两件事是必须的
:
. 发送者和接收者双方必须对什么是当前时间进行约定.
. 发送者和接收者必须使用同样的编码关键字.
SUN早期的各种网络服务都建立在UNIX鉴别机制之上,证书部分包含站名, 用户号,组号和
同组存取序列,而核对器是空白.这个系统存在两个问题:首先, 最突出的问题是核对器是
空的,这就使得伪造一份证书是非常容易的.如果网 络中所有的系统管理员都是可以信赖
的,那不会有什么问题.但是在许多网络 (特别是在大学)中,这样是不安全的.而NFS对通
过查寻发出mount请求的工作 站的INTERNET地址作为hostname域的核对器来弥补UNIX鉴
别系统的不足,并且 使它只按受来自特权INTERNET口的请求.但这样来确保系统安全仍然
是不够的, 因为NFS仍然无法识别用户号ID.
另一个问题是UNIX鉴别系统只适用于UNIX系统,但需要在一个网络中所有 的站都使用UN
IX系统是不现实的.因为NFS可运行于MS-DOS和VMS系统的机器上, 但在这些操作系统中U
NIX鉴别系统是不能运行的,例如:MS-DOS系统甚至就没 有用户号的概念.
由此可知,应该有这样的鉴别系统:它具有独立于操作系统证书并使用核 对器.这就如像
DES鉴别系统.
(5)DES鉴别系统
DES鉴别系统的安全性建立在发送者对当前时间的编码能力上,它使接收 者能解码并对照
自己的时钟来进行检验.时钟标记也使用DES编码.这样的机制 要工作有两件事是必须的
:
. 发送者和接收者双方必须对什么是当前时间进行约定.
. 发送者和接收者必须使用同样的编码关键字.
行编码;并将解码后的密钥送给确保安全的本地密钥服 务器,以备以后进行RPC处理时使
用.(注意:一般的应用是不需要知道公共关键 字和密钥的).除改变登录口令外,yppassw
d程序还将随机地产生新的公共关键 字和密钥关键字对.
密钥服务器是一个驻留于本机的RPC服务器,它执行以下三种公共关键字 操作:
. setsecreykey(secretkey):告诉密钥服务器将密钥SK存贮起来,以备将来使用(通常是
被login程序采用).
. encrytsessionkey(severname,des_key):使在第一次RPC处理中将会话 关键字传送给
服务器,密钥服务器查找severname中的公共关键字, 并将它和setsecretkey设置的clie
nt的密钥组合,以生成用于 对des_key编码的密钥.
. decrytsessionkey(clientname,des_key):服务器又请求密钥服务器通 过调用本操作
来对会话密钥解码.
注意:隐含在这些调用中的使用者名必须鉴别,密钥服务器中可能使用DES 鉴别系统的(因
为会产生死馈).密钥服务器通过按uid存贮的密钥来解决这个 问题,它只允许对本机的r
oot所属进程的请求.然后client进程又执行setuid 进程,该进程属于root,执行对clien
t的请求,并将真正的client的uid告诉密 钥服务器. 以上三种操作都是系统调用,内核将
与密钥服务器直接通信,而不是通过 执行setuid程序来通信.
(7)网络实体的命名
行编码;并将解码后的密钥送给确保安全的本地密钥服 务器,以备以后进行RPC处理时使
用.(注意:一般的应用是不需要知道公共关键 字和密钥的).除改变登录口令外,yppassw
d程序还将随机地产生新的公共关键 字和密钥关键字对.
密钥服务器是一个驻留于本机的RPC服务器,它执行以下三种公共关键字 操作:
. setsecreykey(secretkey):告诉密钥服务器将密钥SK存贮起来,以备将来使用(通常是
被login程序采用).
. encrytsessionkey(severname,des_key):使在第一次RPC处理中将会话 关键字传送给
服务器,密钥服务器查找severname中的公共关键字, 并将它和setsecretkey设置的clie
nt的密钥组合,以生成用于 对des_key编码的密钥.
. decrytsessionkey(clientname,des_key):服务器又请求密钥服务器通 过调用本操作
来对会话密钥解码.
注意:隐含在这些调用中的使用者名必须鉴别,密钥服务器中可能使用DES 鉴别系统的(因
为会产生死馈).密钥服务器通过按uid存贮的密钥来解决这个 问题,它只允许对本机的r
oot所属进程的请求.然后client进程又执行setuid 进程,该进程属于root,执行对clien
t的请求,并将真正的client的uid告诉密 钥服务器. 以上三种操作都是系统调用,内核将
与密钥服务器直接通信,而不是通过 执行setuid程序来通信.
(7)网络实体的命名
对网络实体的命名原有的UNIX鉴别系统存在一些问题,对UNIX鉴别系统最 基本的网络实
体uid,已经陈述了这个系统的一个问题(太UNIX系统化了),而且 这个系统还有两个问题
:一个是当许多域联系起来时的uid冲突;另一个是超级 用户不是以每个域为基础赋值,而
是以每台机器为基础赋值.在缺省情况下,NFS 以一种严密的方式解决这一问题:它不允许
根通过网络以uid0存取.
DES鉴别系统通过建立在新名字(网络名)基础上的命名机制纠正这些问题. 简单地说,网
络名是一串可打印字符,从根本上说,我们所要鉴别的正是这些网 络名.公共关键字和密
钥按网络名存贮而不是按用户名存贮.yellow page map netid.byname 将网络名映射为
本机器中的用户名uid和同组存取序列,而非 SUN环境会将网络名映射为其它序列.
我们采用全局唯一的网络名来解决网络命名问题,这比选择全局唯一的用 户号要容易的
多.在SUN环境中,对每个YP域,用户名是唯一的.如将操作系统名 在YP域中的用户号和AR
PA域名组合在一起就构成了网络名.在为一个域命名时 将ARPA域名加在本地域名之后是
一个好习惯.
象对用户赋以网络名一样,对机器也赋以网络名,这样就可解决多个超级 用户的问题.机
器的网络名其形式与用户的网络名的形式相似,正确的机器鉴 别系统对网络中的无盘工
作站是非常重要的,它必须保证无盘工作站能通过网 络存取本机的home目录.
非SUN环境中,网络名的产生也许与前述有较大区别,但这并不妨碍它们通 过SUN的网络安
全系统合法地存取信息,为鉴别一个来自另一个域的用户,只需 在两个YP数据库是建立实
体.一个实体是有关密钥和公开密钥的,另一个是有 关uid和同组存取序列的.完成这项工
对网络实体的命名原有的UNIX鉴别系统存在一些问题,对UNIX鉴别系统最 基本的网络实
体uid,已经陈述了这个系统的一个问题(太UNIX系统化了),而且 这个系统还有两个问题
:一个是当许多域联系起来时的uid冲突;另一个是超级 用户不是以每个域为基础赋值,而
是以每台机器为基础赋值.在缺省情况下,NFS 以一种严密的方式解决这一问题:它不允许
根通过网络以uid0存取.
DES鉴别系统通过建立在新名字(网络名)基础上的命名机制纠正这些问题. 简单地说,网
络名是一串可打印字符,从根本上说,我们所要鉴别的正是这些网 络名.公共关键字和密
钥按网络名存贮而不是按用户名存贮.yellow page map netid.byname 将网络名映射为
本机器中的用户名uid和同组存取序列,而非 SUN环境会将网络名映射为其它序列.
我们采用全局唯一的网络名来解决网络命名问题,这比选择全局唯一的用 户号要容易的
多.在SUN环境中,对每个YP域,用户名是唯一的.如将操作系统名 在YP域中的用户号和AR
PA域名组合在一起就构成了网络名.在为一个域命名时 将ARPA域名加在本地域名之后是
一个好习惯.
象对用户赋以网络名一样,对机器也赋以网络名,这样就可解决多个超级 用户的问题.机
器的网络名其形式与用户的网络名的形式相似,正确的机器鉴 别系统对网络中的无盘工
作站是非常重要的,它必须保证无盘工作站能通过网 络存取本机的home目录.
非SUN环境中,网络名的产生也许与前述有较大区别,但这并不妨碍它们通 过SUN的网络安
全系统合法地存取信息,为鉴别一个来自另一个域的用户,只需 在两个YP数据库是建立实
体.一个实体是有关密钥和公开密钥的,另一个是有 关uid和同组存取序列的.完成这项工
作后,在远程域中的用户就可利用本域的 网络服务.
(8)DES鉴别系统的应用
第一个应用是广义的YP更新服务,这个服务允许用户更新YP数据库中的专 用域.
另一个应用也是最重要的应用是:更安全的网络文件系统NFS.使用UNIX鉴 别系统的NFS存
在三个问题:
. 证书的检验仅仅在装配时进行,这时client从服务器获得一条信息,这 条信息是以后请
求的关键:文件handle.如果有人不通过服务器就能通 过猜想或偷听网络传输内容而获得
文件handle,那么他也就能破坏UNIX 鉴别系统.因为在NFS文件装配完毕后,当发生文件请
求时,不再进行证 书的检验.
. 假如一个文件系统已从一个为多个client服务的服务器中装配到一台 client中;当一
个具有超级用户特权的用户使用su命令非法存取别人的 文件时,文件系统不能提供任何
保护.NFS的第三个问题是:由于它不能 鉴别远程client的超级用户,它不得不采用一种严
历的方法:拒绝所有 的超组用户存取.
新的鉴别系统解决了所有这些问题.某人相获得非法存取权,他不得不猜 出正确的被编码
后的时间标记并放在证书中,而这几乎是不可能的,这样他就 不能猜出文件handle.由于
新的系统可鉴别机器,上述第二,三问题也解决了. 但是在这点上,根文件系统不能使用安
作后,在远程域中的用户就可利用本域的 网络服务.
(8)DES鉴别系统的应用
第一个应用是广义的YP更新服务,这个服务允许用户更新YP数据库中的专 用域.
另一个应用也是最重要的应用是:更安全的网络文件系统NFS.使用UNIX鉴 别系统的NFS存
在三个问题:
. 证书的检验仅仅在装配时进行,这时client从服务器获得一条信息,这 条信息是以后请
求的关键:文件handle.如果有人不通过服务器就能通 过猜想或偷听网络传输内容而获得
文件handle,那么他也就能破坏UNIX 鉴别系统.因为在NFS文件装配完毕后,当发生文件请
求时,不再进行证 书的检验.
. 假如一个文件系统已从一个为多个client服务的服务器中装配到一台 client中;当一
个具有超级用户特权的用户使用su命令非法存取别人的 文件时,文件系统不能提供任何
保护.NFS的第三个问题是:由于它不能 鉴别远程client的超级用户,它不得不采用一种严
历的方法:拒绝所有 的超组用户存取.
新的鉴别系统解决了所有这些问题.某人相获得非法存取权,他不得不猜 出正确的被编码
后的时间标记并放在证书中,而这几乎是不可能的,这样他就 不能猜出文件handle.由于
新的系统可鉴别机器,上述第二,三问题也解决了. 但是在这点上,根文件系统不能使用安
却后总是存放在系 统中,因而程序setuid在采用了DES系统之后,仍能象原来那样运行.
(12)总结
SUN的目标是要让网络系统象分时系统一样安全,这个目标已经达到.在分 时系统中,用户
被口令鉴别,有个DES鉴别系统,网络中的用户也由口令鉴别.在分时系统中,用户信任系统
管理员,他的职业道德不允许他改变用户的口令以 冒充该用户.在SUN系统中用户信息网
络管理员,他不会改变用户在公共密钥数 据库中的实体.很,SUN的系统从某种意义上说比
系统更安全,因为在SUN的系统 中旋转"窃听"装置来"窃听"网络中传送的口令和编码用的
密钥是无用的(因为这些口令和密钥都已被编码).而大多数分时系统对来自终端的数据并
不进行 编码,用户必须相信,没有人在终端与主机的传送线上安装"窃听"装置. DES鉴别
系统也许不是最终完善的鉴别系统,在将来,很可能有更好的算法 和硬件来证明DES鉴别
系统无用并放弃它.但至少可以说DES为将来的发展指出了一个方向.从理论上讲,协议从
来规定会话密钥甚至公共密钥的编码要采用 Diff3-Hellman方法.为了使DES鉴别系统更
有力,我们要做的仅仅是使会话密 钥的编码更有力,从理论上说这样会形成另一个协议,
但是RPC的优点在于它可 以采用任何鉴别系统而本身不会受到影响.至少在目前我们可以
说DES鉴别系统满足了我们对网络服务的安全要求, 在一个不友好的网络系统中建立起了
一个足够安全的系统,而所付出的代价也 不高.用户不需使用磁卡或记住上百位的数字,
用户像往常一样使用口令鉴别自己,只是系统的性能略有降低.但是如果用户认为性能降
低不可并且他的网 络系统非常友好的话,他可以不采用DES鉴别系统.
--
※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 202.118.229.86]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:203.932毫秒