字和密钥关键字对.
密钥服务器是一个驻留于本机的RPC服务器,它执行以下三种公共关键字
操作:
. setsecreykey(secretkey):告诉密钥服务器将密钥SK存贮起来,以备将
来使用(通常是被login程序采用).
. encrytsessionkey(severname,des_key):使在第一次RPC处理中将会话
关键字传送给服务器,密钥服务器查找severname中的公共关键字,
并将它和setsecretkey设置的client的密钥组合,以生成用于
对des_key编码的密钥.
. decrytsessionkey(clientname,des_key):服务器又请求密钥服务器通
过调用本操作来对会话密钥解码.
注意:隐含在这些调用中的使用者名必须鉴别,密钥服务器中可能使用DES
鉴别系统的(因为会产生死馈).密钥服务器通过按uid存贮的密钥来解决这个
问题,它只允许对本机的root所属进程的请求.然后client进程又执行setuid
进程,该进程属于root,执行对client的请求,并将真正的client的uid告诉密
钥服务器.
以上三种操作都是系统调用,内核将与密钥服务器直接通信,而不是通过
执行setuid程序来通信.
(7)网络实体的命名
对网络实体的命名原有的UNIX鉴别系统存在一些问题,对UNIX鉴别系统最
基本的网络实体uid,已经陈述了这个系统的一个问题(太UNIX系统化了),而且
这个系统还有两个问题:一个是当许多域联系起来时的uid冲突;另一个是超级
用户不是以每个域为基础赋值,而是以每台机器为基础赋值.在缺省情况下,NFS
以一种严密的方式解决这一问题:它不允许根通过网络以uid0存取.
DES鉴别系统通过建立在新名字(网络名)基础上的命名机制纠正这些问题.
简单地说,网络名是一串可打印字符,从根本上说,我们所要鉴别的正是这些网
络名.公共关键字和密钥按网络名存贮而不是按用户名存贮.yellow page map
netid.byname 将网络名映射为本机器中的用户名uid和同组存取序列,而非
SUN环境会将网络名映射为其它序列.
我们采用全局唯一的网络名来解决网络命名问题,这比选择全局唯一的用
户号要容易的多.在SUN环境中,对每个YP域,用户名是唯一的.如将操作系统名
在YP域中的用户号和ARPA域名组合在一起就构成了网络名.在为一个域命名时
将ARPA域名加在本地域名之后是一个好习惯.
象对用户赋以网络名一样,对机器也赋以网络名,这样就可解决多个超级
用户的问题.机器的网络名其形式与用户的网络名的形式相似,正确的机器鉴
别系统对网络中的无盘工作站是非常重要的,它必须保证无盘工作站能通过网
络存取本机的home目录.
非SUN环境中,网络名的产生也许与前述有较大区别,但这并不妨碍它们通
过SUN的网络安全系统合法地存取信息,为鉴别一个来自另一个域的用户,只需
在两个YP数据库是建立实体.一个实体是有关密钥和公开密钥的,另一个是有
关uid和同组存取序列的.完成这项工作后,在远程域中的用户就可利用本域的
网络服务.
(8)DES鉴别系统的应用
第一个应用是广义的YP更新服务,这个服务允许用户更新YP数据库中的专
用域.
另一个应用也是最重要的应用是:更安全的网络文件系统NFS.使用UNIX鉴
别系统的NFS存在三个问题:
. 证书的检验仅仅在装配时进行,这时client从服务器获得一条信息,这
条信息是以后请求的关键:文件handle.如果有人不通过服务器就能通
过猜想或偷听网络传输内容而获得文件handle,那么他也就能破坏UNIX
鉴别系统.因为在NFS文件装配完毕后,当发生文件请求时,不再进行证
书的检验.
. 假如一个文件系统已从一个为多个client服务的服务器中装配到一台
client中;当一个具有超级用户特权的用户使用su命令非法存取别人的
文件时,文件系统不能提供任何保护.NFS的第三个问题是:由于它不能
鉴别远程client的超级用户,它不得不采用一种严历的方法:拒绝所有
的超组用户存取.
新的鉴别系统解决了所有这些问题.某人相获得非法存取权,他不得不猜
出正确的被编码后的时间标记并放在证书中,而这几乎是不可能的,这样他就
不能猜出文件handle.由于新的系统可鉴别机器,上述第二,三问题也解决了.
但是在这点上,根文件系统不能使用安全的文件,而非文件系统的根用户由IP
地址识别.
实际上,与每个文件系统相联系的安全级别可由系统管理员改变.文件
/etc/exports包含有文件和可装配它们的机器名,在缺省的情况下文件系统向
UNIX鉴别系统开放.但管理员在任意行后加上一secure就可改变为向DES鉴别
系统开放.与DES鉴别系统相应的是一个参数:服务器能接收的最大窗口的大小.
(9)遗留的安全问题
尽管使用su不能破坏DES鉴别系统,但仍有几种方法可做到这点.为了通过
鉴别,你的密钥必须存放在工作站中,这通常在登录时发生,login程序用你的
口令对你的密钥解码,并存放起来以备使用,由于别人不能对你的密钥解码,因
而任何人用su命令冒充你都不可能.编辑/etc/passwd文件也不可能对他有什
么帮助,因为他必须修改存放在YP中的被编码后的密钥.如果你用你的口令登
录到别人的工作站中,你的密钥就会存放在该工作站中,他们就能用su命令冒
充你,由于你不可能将你的口令泄露给你不信任的机器,因而这是不可能发生
的.但在其它机器上的人可以修改login程序将所有口令存放在他能看到的文
件中.
由于使用su命令不能破坏DES鉴别系统,也许最容易的方式就是猜出口令,
因此选择安全的口令对用户是至关重要的.
另一个最方便的方法就是试图重新执行.因此服务器的放置应在安全的地
方.
还有其他打破DES的方法,但都非常困难,需要花费巨型计算机几个月的时
间来计算.
还存在有另一个DES不曾考虑的安全问题,就是网络偷听,即使有了DES,也
不能阻止任何人偷听网络传输的内容.大多数情况下这不是一个大的问题,因
为网络中传送的大多数内容虽不是不可读的,但要搞清网络中传送的二进制的上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页 |