发信人: netman.bbs@cs3.xmu.edu.cn (邂逅), 信区: cnhacker
标 题: 网络安全(17)
发信站: cs3 BBS (Mon Jun 16 13:50:58 1997)
转信站: Lilac!ustcnews!ustcnews!sjtunews!cs3
出 处: cs3.xmu.edu.cn
(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程序还将随机地产生新的公共关键
字和密钥关键字对.
密钥服务器是一个驻留于本机的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程序来通信.
--
※ 来源:·古庙钟声 cs3.xmu.edu.cn·[FROM: freedom@cs3.xmu.edu.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.126毫秒