⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 209006.htm

📁 探索Windows 2000发展策略以及中介层技术设计的基本概念
💻 HTM
字号:
<html><body><span  id=Layer1><a name=209006><font color=#3e70d7 face=arial size=5><b>MSMQ安全性服务</span><span  id=Layer2></b></font><p><font size=2 color=#3c3c3c face=arial>就像所有的分散式应用程式一样,藉由讯息伫列通讯的应用程式也有遭受网路骇客攻击的潜在危险性。为了防范骇客的攻击,MSMQ提供了各种的安全性服务。大多数情况下,MSMQ独力提供安全性服务-应用程式不必做任何事,只是要求就行了。要加入安全通讯,MSMQ机器必须不是属於一个或多个Windows 2000网域就是组织为工作群组 (後者缺乏Active Directory会使得某些服务不能用)。</span><span  id=Layer3></font></p><p><font size=2 color=#3c3c3c face=arial>MSMQ提供内建的安全性服务</span><span  id=Layer4></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ提供内建的安全性服务</span><span  id=Layer5></font></p><hr><font color=#3e72d7 face=arial size=4><b>验证与资料私密性</span><span  id=Layer6></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ允许使用数位签章来验证讯息的传送者。回想第四章,数位签章也提供资料私密性,就是保证接收者可以查出讯息在传输过程是否遭到修改。验证是选择性的,可以依每个讯息做选择。就如所有的安全性服务,选择使用验证会降低MSMQ的效率。为达成验证,MSMQ插入X.509凭证当作讯息的属性,凭证中包含有送出讯息的使用者之公开金钥 (public key) 以及使用私密金钥 (private key) 所制作的数位签章。MSMQ使用CryptoAPI以及适当的密码编译服务提供者来制作数位签章。注意,是否使用验证完全由传送者决定-讯息绝对无法要求使用验证 (当然,除了丢弃任何未验证讯息或设定伫列只接收已验证讯息之外)。</span><span  id=Layer7></font></p><p><font size=2 color=#3c3c3c face=arial>MSMQ利用数位签章提供验证以及资料私密性</span><span  id=Layer8></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ利用数位签章提供验证以及资料私密性</span><span  id=Layer9></font></p><hr><p><font size=2 color=#3c3c3c face=arial>预设情况下,MSMQ使用MD5当作数位签章的杂凑演算法。需要的话,讯息传送者可以利用讯息的杂凑演算法来指定不同的演算法。然而,要想成功的话,传送以及接收系统都必须安装提供有新演算法的CSP。</span><span  id=Layer10></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b> 附注</b></font><p><font size=2 color=#3c3c3c face=arial>预设情况下,MSMQ使用MD5当作数位签章的杂凑演算法。需要的话,讯息传送者可以利用讯息的杂凑演算法来指定不同的演算法。然而,要想成功的话,传送以及接收系统都必须安装提供有新演算法的CSP。</span><span  id=Layer11></font></p><hr><p><font size=2 color=#3c3c3c face=arial>MSMQ允许使用内部 (internal) 凭证和外部 (external) 凭证。内部凭证与相关联的私密金钥由MSMQ自行产生与管理,而以Windows 2000 SID验明对象。这并不需要使用Microsoft Certificate Services产品建立凭证授权单位 (certification authority,CA)。相比之下,外部凭证由外界的CA产生,而以X.509命名验明对象。如果使用MSMQ的应用程式执行在一个或多个网域内,那麽内部凭证大概就足够了。当新使用者要求内部凭证时,MSMQ自动产生一个,大部份的组织也信任MSMQ内建的简单CA。然而,如果应用程式必须传送讯息到Windows 2000以外的世界,例如经由gateway到其他的作业系统或其它的讯息伫列产品,或者你想完全依赖MSMQ之外的CA,那麽可以使用外部凭证。无论你选择那一个,凭证在使用之前都必须先注册到Active Directory内,这可以撰写程式或使用管理工具完成。</span><span  id=Layer12></font></p><p><font size=2 color=#3c3c3c face=arial>MSMQ允许使用内部凭证与外部凭证</span><span  id=Layer13></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ允许使用内部凭证与外部凭证</span><span  id=Layer14></font></p><hr><p><font size=2 color=#3c3c3c face=arial>无论凭证的来源为何,收到包含数位签章的讯息时,由MSMQ伫列管理员负责确认(如何确认数位签章已经在</span><span  id=Layer15>&nbsp;<a target='_new' href=204.htm#>第四章</span><span  id=Layer16></a>&nbsp;说明)。就像建立签章时一样,确认签章依靠的是CryptoAPI以及它所使用的、安装好的CSP。如果签章有效的话,伫列管理员会到Active Directory找出凭证并且取得注册凭证之使用者的SID。如果讯息的传送者识别码属性包含有SID的话,伫列管理员会比较两者。符合的话,验证成功。否则,讯息会被丢弃,如果需要的话,送出拒绝认可讯息 (negative acknowledgment)。如果讯息不含SID的话,这最後的检查动作就不做了-如果数位签章确认无误,就当作讯息验证成功。</span><span  id=Layer17></font></p><p><font size=2 color=#3c3c3c face=arial>凭证必须注册到Active Directory</span><span  id=Layer18></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>凭证必须注册到Active Directory</span><span  id=Layer19></font></p><hr><p><font size=2 color=#3c3c3c face=arial>确认使用外部凭证的签章时,MSMQ不会依靠</span><span  id=Layer20>&nbsp;<a target='_new' href=204.htm#>第四章</span><span  id=Layer21></a>&nbsp;所提标准的Windows 2000凭证储存体。代替的是,外部凭证必须注册到Microsoft Internet Explorer所提供之私人的凭证储存体。应用程式要决定那些CA是它所信任的。</span><span  id=Layer22></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b> 附注</b></font><p><font size=2 color=#3c3c3c face=arial>确认使用外部凭证的签章时,MSMQ不会依靠</span><span  id=Layer23>&nbsp;<a target='_new' href=204.htm#>第四章</span><span  id=Layer24></a>&nbsp;所提标准的Windows 2000凭证储存体。代替的是,外部凭证必须注册到Microsoft Internet Explorer所提供之私人的凭证储存体。应用程式要决定那些CA是它所信任的。</span><span  id=Layer25></font></p><hr><p><font size=2 color=#3c3c3c face=arial>如果只有一些讯息需要验证的话,应用程式可以为每个讯息分别传送凭证。必须传送很多需验证讯息的应用程式也可以建立一个security context。如此,MSMQ会自动取出需要的资讯来为每个讯息附上凭证。一旦验证了讯息传送者,接收者也可以建立security context,然後利用那些资讯来模拟传送者的身分。模拟 (Impersonation) 可能相当有用,例如,接收者必须做授权决定或者必须用原始传送者的身分送出讯息时。</span><span  id=Layer26></font></p><p><font size=2 color=#3c3c3c face=arial>送出很多需验证讯息的应用程式可以建立security context</span><span  id=Layer27></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>送出很多需验证讯息的应用程式可以建立security context</span><span  id=Layer28></font></p><hr><font color=#3e72d7 face=arial size=4><b>资料私密性</span><span  id=Layer29></b></font><p><font size=2 color=#3c3c3c face=arial>提供资料私密性意味着将讯息内容加密,而MSMQ提供两种方式。最简单的一种是向MSMQ要求这项服务,但这只有应用程式执行在Windows 2000网域内的时候才可以。要这麽做的话,传送者设定讯息的私密性等级属性。就好像验证一样,MSMQ伫列管理员独力提供这项服务。</span><span  id=Layer30></font></p><p><font size=2 color=#3c3c3c face=arial>如果被要求的话,MSMQ在送出讯息前会先将其加密</span><span  id=Layer31></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>如果被要求的话,MSMQ在送出讯息前会先将其加密</span><span  id=Layer32></font></p><hr><p><font size=2 color=#3c3c3c face=arial>讯息接收者不需要特别做任何事就可以读取加密过的讯息。反倒是在接收者看到讯息时,MSMQ伫列管理员早已将讯息转回原来的形式了。预设情况下,MSMQ使用RC2进行资料加密。但是应用程式可以藉由设定加密演算法属性来要求使用RC4作为替代。可用的金钥长度和加密的安全程度,完全要看有那些CSP可以使用。传送者以及接收者 (但并不包括过程中间的系统) 都必须先安装好支援所选演算法的CSP。注意,在依存客户端以及MSMQ伺服器之间传送的讯息都是未加密的,因为在依存客户端上并没有伫列管理员-只有MSMQ API程式库。</span><span  id=Layer33></font></p><p><font size=2 color=#3c3c3c face=arial>使用秘密金钥演算法对讯息加密</span><span  id=Layer34></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>使用秘密金钥演算法对讯息加密</span><span  id=Layer35></font></p><hr><p><font size=2 color=#3c3c3c face=arial>在讯息伫列环境中提供资料私密性会引发一些有趣的问题。其中最重要的是:因为传送者可以送出加密讯息给未知的接收者,所以传送者与接收者之间要如何就使用什麽加密金钥取得一致的意见?因为利用公开金钥加密讯息通常太慢了,可考虑的方式是RC2和RC4,两者都是秘密金钥演算法。但是传送端的伫列管理员如何才能安全地将金钥转送到目的地伫列管理员呢?</span><span  id=Layer36></font></p><p><font size=2 color=#3c3c3c face=arial>要解决这个问题,每个伫列管理员都要有一对公开/私密金钥 (key pair)。需要传送加密讯息时,传送端的伫列管理员任意产生一个RC2或是RC4秘密金钥。使用这个秘密金钥加密讯息,然後使用目的地伫列管理员的公开金钥加密这个秘密金钥。收到讯息时,目的地伫列管理员使用它的私密金钥来为秘密金钥解密,然後利用这个秘密金钥来为讯息内容解密。</span><span  id=Layer37></font></p><p><font size=2 color=#3c3c3c face=arial>MSMQ传送利用目的地伫列管理员的公开金钥加密过的秘密金钥</span><span  id=Layer38></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ传送利用目的地伫列管理员的公开金钥加密过的秘密金钥</span><span  id=Layer39></font></p><hr><p><font size=2 color=#3c3c3c face=arial>MSMQ应用程式也能自行使用Windows 2000内建的资料私密性服务来为讯息内容进行加密。要这麽做,应用程式基本上要执行刚刚描述的步骤:产生一个秘密金钥并使用它加密讯息本文,然後使用接收端伫列管理员的公开金钥加密这个秘密金钥。所有的资讯会包含在传送的讯息内,接收端伫列管理员可以用前面描述过的步骤进行解密动作。虽然这会花比较多的功夫但却是有用的,尤其是当传送端与接收端不在同一个网域内,因而不能利用Active Directory找到接收端伫列管理员的公开金钥时。</span><span  id=Layer40></font></p><font color=#3e72d7 face=arial size=4><b>稽核</span><span  id=Layer41></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ应用程式或管理员可以要求为一个或更多的伫列保留不同事件的记录。稽核功能让管理员可以监视谁在MSMQ环境中做些什麽。例如记录每个开启伫列动作、每个修改伫列权限动作、以及更多。即使会因此导致大量的事件记录,稽核对一个安全的环境仍然是非常有用的工具。</span><span  id=Layer42></font></p><p><font size=2 color=#3c3c3c face=arial>MSMQ可以稽核各式各样的事件</span><span  id=Layer43></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ可以稽核各式各样的事件</span>
	</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -