发信人: 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)
页面执行时间:4.090毫秒