Oracle高级安全性(二)

日期: 2008-06-15 来源:TechTarget中国

  在客户端和服务器端的初始连接阶段,客户端将把所支持的计算方法的清单传递给服务器端,并通过交流决定将采用的计算方法。在初始配置系统时预先选定的计算方法将取代该处理。然后发生交流,以保证客户端和服务器端安装有相同的计算方法。系统对安装的计算方法和在客户端与服务器端的配置文件中SQLNET.ORA系统管理员所配置的顺序进行交涉。Oracle建议的配置是(i) 首先是用户选择的计算方法,(ii) 第二是由高到低钥匙键的顺序。Oracle高级安全性提供了下列的加密计算方法:
   RC4 256
   RC4 128
   RC4 56
   RC4 40
   3DES 168
   3DES 112
   DES 56
   DES 40
  例如,考虑一个客户端/服务器连接,其中没有任何一方指定了必须使用的计算方法。假如客户端具有RC4 256,RC4 128和RC4 56,而服务器端只有RC4 56和DES,交流将缺省使用对两个处理所共同拥有的计算方法和钥匙键的长度。在本例中,它们将使用RC4 56。这种方法可以使具有不同计算方法集的各方,只要他们能共享一个公用的计算方法就能实现连接。


  一旦计算方法被商定,Oracle高级安全性将产生秘密钥匙键以便对数据进行加密和解密。在生成足够的密码的过程中,钥匙键的产生过程是极为重要的。钥匙键越安全,破解密码的难度就越大。钥匙键强度的一个因素是用于生成钥匙键的随机数。
  
  随机数的产生


  Oracle高级安全性使用Diffie-Hellman的交换方法产生话路钥匙键。该处理由客户端和服务器端双方生成随机数开始。根据重复的序列,随机性可有助于免遭攻击。用户定义的SQLNET.ORA配置文件参数“sqlnet.crypto_seed=n8xi6svxlsu3bc”就是生成随机数的种子之一。其他的种子包括系统时间和一个基于操作系统(OSD)的变量。 


生成随机数的种子


  图2:生成随机数的种子


  OSD的值可能基于操作系统中有效的硬件生成器。一旦这些种子有效,随机数生成器将产生一个最终的随机数。由于硬件随机数生成器缺乏统一的标准,包括在内的ORACLE许多加密系统都依赖于PRNG生成加密钥匙键。该过程在相互连接的双方产生,从而使客户端和服务器端都可以生成它们自己独特的随机数。


  生成Diffie-话路钥匙键Hellman
  一旦随机数被生成,Diffie-Hellman计算方法将产生话路钥匙键。该钥匙键将在客户端和服务器端同时产生,无需通过网络传递。话路钥匙键可利用方程式gc mod p, gs mod p and gsc mod 来p产生,其中


  c 客户端生成的随机数=
  s = 服务器端生成的随机数
  g = 已经在服务器端表示的数量级在300-512 位的一个基数
  p = 已经在服务器端表示的数量级在300-512 位的一个模数


  值s 和c 是通过三个种子,在客户端和服务器端分别产生的随机数。值g 和p是已在服务器端存在的值,但可以通过命令naegen进行选择。


    Diffie-Hellman公共钥匙键交换


  图3:Diffie-Hellman公共钥匙键交换


   钥匙键生成的传输顺序通过图3所示客户端/服务器端方框中的小数字来确定,如下所示:


  1. 客户端根据所支持的计算方法的清单传输一个连接请求。
  2. 服务器端根据第一符合的计算方法和客户端的钥匙键大小决定将采用的计算方法。
  3. 服务器利用服务器端的随机数s计算值gs 。mod p
  4. 服务器向客户端传输值g,p,gs mod p,即将采用的计算方法,以及初始向量IV。
  5. 客户端利用随机数c 计算gc ,mod p 该值将被传递到服务器。
  6. 现在双方都已经获得了值g,p,gs mod p,和gc ,mod p因此可以计算mod p。
  7. 客户端和服务器端都对gcs mod p应用一个函数以生成话路钥匙键。该函数根据所选择的计算方法的不同而不同。选择Triple DES与选择RC4将导致不同的计算方法。
  8. 话路钥匙键在客户端和服务器端被建立起来。


  钥匙键交换的最终结果是主话路钥匙键。主话路钥匙键可被用于加密所有的网络通信。但是,该钥匙键容易受到网络中人的攻击,从而威胁到系统的安全性。
 
  网络中人的攻击


  如果有人正在监听网络通讯,他/她不可能捕获话路钥匙键,因为它不会通过导线来传送。
  
  但是,在钥匙键交换设计中存在一个缺陷,即易受到“网络中人”的攻击的薄弱环节。在网络中的人唯一可以得到的信息是交换的元素:g,p,gs mod p,和gc mod p。如果拥有Diffie-Hellman计算方法,他/她就能利用这些值去生成两个钥匙键,一个用于客户端另一个用于服务器端。尽管这两个钥匙键可能不同,但第三方仍然可以伪装成好似客户端之于服务器端或服务器端之于客户端。第三方可以侵入通讯中,并愚弄客户端和服务器端以获得需要继续交流的信息。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐