Sun Java System Identity Manager 6.0 2005Q4M3 管理指南 |
7
安全
本章介绍有关 Identity Manager 安全功能的信息,并详述为进一步减少安全风险可以采取的步骤。
安全功能Identity Manager 功能通过提供以下内容帮助减少安全风险:
- 即时禁用帐户访问――Identity Manager 允许利用单个操作禁用组织或个人的访问权限。
- 活动风险分析――Identity Manager 经常扫描以查看是否存在安全风险,例如非活动帐户和可疑的密码活动。
- 综合的密码管理――完整灵活的密码管理权能可以确保对访问进行全面控制。
- 对监控访问活动进行审计并报告――可以运行全面报告,以传送关于访问活动的有针对性的信息。(有关报告功能的更多信息,请参见“报告”。)
- 服务器密钥加密――Identity Manager 允许通过 "Tasks" 区域创建并管理服务器加密密钥。
另外,系统体系结构将尽可能寻求减少安全风险的方法。例如,注销后,就不能通过浏览器的“上一步”功能访问先前访问过的页面。
密码管理Identity Manager 在多个级别提供密码管理功能:
传递验证利用传递验证向用户和管理员授予通过一个或多个不同密码进行访问的权限。Identity Manager 通过实现以下方法来管理验证:
关于登录应用程序
登录应用程序定义登录模块组的集合,登录模块组进一步定义用户登录 Identity Manager 时使用的登录模块的集合和顺序。每个登录应用程序都由一个或多个登录模块组构成。
登录时,登录应用程序会检查其登录模块组集。如果只设置了一个登录模块组,则会使用这个组,并按组中登录模块的定义顺序处理包含的登录模块。如果登录应用程序中含有多个定义的登录模块组,则 Identity Manager 将检查应用于每个登录模块组的登录约束规则以确定要处理的组。
登录约束规则
登录约束规则是应用于在登录应用程序中定义的登录模块组的。对于登录应用程序中的每个登录模块组集,如果只有一个组,则不能应用登录约束规则。
Identity Manager 评估第一个登录模块组的约束规则,来确定要处理一个集合中的哪一个登录模块组。如果成功,则会处理该登录模块组。如果失败,则将依次评估每个登录模块组,直到约束规则成功或评估没有约束规则的登录模块组(随即使用该组)。
注 如果登录应用程序包含多个登录模块组,则应将没有登录约束规则的登录模块组放在集合的最后位置。
登录约束规则示例
下例是基于位置的登录约束规则,此规则从标头获取请求者的 IP 地址,然后检查该地址是否位于 192.168 网络。如果 IP 地址中有 192.168.,则此规则将返回值 True 并选择此登录模块组。
<Rule authType='LoginConstraintRule' name='Sample On Local Network'>
<match>
<ref>remoteAddr</ref>
<s>192.168.</s>
</match>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' name='All'/>
</MemberObjectGroups>
</Rule>编辑登录应用程序
在菜单栏中,选择 Configure,然后选择 Login 以访问 "Login" 页。
登录应用程序列表显示:
在 "Login" 页中,您可以:
要编辑登录应用程序,请从列表中选择相应的应用程序。
设置 Identity Manager 会话限制
在 "Modify Login Application" 页中,可以为每个 Identity Manager 登录会话设置超时值(限制)。选择小时数、分钟数和秒数,然后单击保存。您建立的限制将显示在登录应用程序列表中。
禁用对应用程序的访问
在 "Create Login Application" 和 "Modify Login Application" 页中,可以选择 "Disable" 选项来禁用登录应用程序,从而阻止用户登录。如果用户尝试登录已禁用的应用程序,则该界面将重定向到备用页面,指示当前已禁用该应用程序。可以通过编辑自定义目录来编辑显示在此页面上的消息。
只有取消选择该选项才能解除对登录应用程序的禁用。作为安全措施,不能禁用管理员登录。
编辑登录模块组
登录模块组列表显示:
在 "Login Module Groups" 页中可以创建、编辑和删除登录模块组。从此列表中选择任一登录模块组对其进行编辑。
编辑登录模块
针对登录模块的以下各个选项输入详细信息或进行选择。(并非所有选项对每个登录模块均可用。)
- Login success requirement――选择应用于此模块的要求。选项包括:
- Login search attributes――(仅限 LDAP)指定尝试绑定(登录)到关联 LDAP 服务器时要使用的 LDAP 用户属性名称的有序列表。按顺序使用每个指定的 LDAP 用户属性以及用户的指定登录名称,搜索匹配的 LDAP 用户。当配置为传递到 LDAP 时,这将允许用户通过 LDAP cn 或电子邮件地址登录到 Identity Manager。
例如,如果指定:
cn
并且如果用户尝试以 gwilson 身份登录,则 LDAP 资源首先尝试查找 cn=gwilson 的 LDAP 用户。如果成功,则使用该用户指定的密码尝试绑定。如果不成功,则 LDAP 资源将搜索 mail=gwilson 的 LDAP 用户。如果仍失败,则登录失败。
如果不指定值,则默认 LDAP 搜索属性是:
uid
cn- Login correlation rule――选择用于将登录信息映射到 Identity Manager 用户的登录关联规则。所选规则必须具有 LoginCorrelationRule authType。
- New user name rule――作为登录的一部分,选择自动创建新的 Identity Manager 用户时使用的新用户名称规则。
单击 Save 可以保存登录模块。保存后,可将该模块放在登录模块组中所有其他模块所在的位置。
警告
建议在将Identity Manager 登录配置为对多个系统进行验证时,Identity Manager 要验证的所有目标系统的帐户都应使用相同的用户ID 和密码。
如果用户 ID 和密码组合不同,则对于用户 ID 和密码不同于在 Identity Manager 的“用户登录”表单中输入的用户 ID 和密码的系统,将不能成功登录。某些此类系统可能使用锁定策略强制限定锁定帐户前失败登录尝试的次数;对于这些系统,虽然用户可通过 Identity Manager 继续成功登录,但用户帐户最终将被锁定。
配置公共资源的验证如果您有多个物理上或逻辑上相同的资源(例如,两个为同一个物理主机定义的资源,或者几个表示 NT 或 AD 域环境中信任域服务器的资源),那么您可将系统配置对象中的一组资源指定为公共资源。
通过建立公共资源,您可以允许一个用户验证到这些公共资源之一,但通过使用另一个公共资源将用户映射到其相关的 Identity Manager 用户。例如,一个用户可能有一个链接到资源 AD-1 的 Identity Manager 用户的资源帐户。该登录模块组可能定义用户必须验证到资源 AD-2。如果 AD-1 和 AD-2 被定义为公共资源(此种情况下为在同一个信任域中),那么如果该用户成功验证到 AD-2,则 Identity Manager 可通过查找资源 AD-1 中具有相同帐户 Id 的用户来映射到相关 Identity Manager 用户。
指定此系统配置对象属性的格式是:
<Attribute name=’common resources’>
<Attribute name=’Common Resource Group Name’>
<List>
<String>Common Resource Name</String>
<String>Common Resource Name</String>
</List
</Attribute>
</Attribute>
配置 X509 证书验证使用以下信息和过程配置 Identity Manager 的 X509 证书验证。
必备条件
要在 Identity Manager 中支持基于 X509 证书的验证,请确保正确配置双向(客户机和服务器)SSL 验证。从客户角度而言,这表明支持 X509 标准的用户证书应已导入到浏览器(或可通过智能卡读卡机获得),用于签署用户证书的信任证书应已导入到信任证书的 Web 应用服务器密钥库中。
还要为客户机验证选择所用的客户机证书。要进行验证:
在 Identity Manager 中配置 X509 证书验证
要配置 Identity Manager X509 证书验证:
- 以“配置员”(或同等权限)身份登录“管理员界面”。
- 选择 Configure,然后选择 Login,以显示 "Login" 页。
- 单击管理登录模块组,以显示“登录模块组”页面。
- 从列表中选择登录模块组。
- 在“分配登录模块...”列表中,选择“Identity Manager X509 证书登录模块”。Identity Manager 显示“修改登录模块”页。
- 设置成功登录的要求。可接受的值有:
- 选择登录关联规则。这可以是内置规则或自定义的关联规则。(有关创建自定义关联规则的信息,参见下节。)
- 单击保存,返回到“修改登录模块组”页。
- 或者可以重新排列登录模块顺序(如果为登录模块组分配了多个登录模块),然后,单击保存。
- 如果尚未为登录应用程序分配登录模块组,请进行分配。在“登录模块组”页中单击“返回到登录应用程序”,然后选择登录应用程序。为应用程序分配登录模块组后,单击保存。
注 如果 waveset.properties 文件中的 allowLoginWithNoPreexistingUser 选项值设置为 True,则配置 Identity Manager X509 证书登录模块时会提示您选择一个 "New User Name Rule"。在使用相关 "Login Correlation Rule" 未找到用户时,可使用此规则确定如何命名新创建的用户。
"New User Name Rule" 与 "Login Correlation Rule" 的可用输入参数相同。它返回单个字符串,该字符串用于创建新 Identity Manager 用户帐户的用户名。
idm/sample/rules 中包含一个新建用户名称规则示例,名为 NewUserNameRules.xml。
创建和导入登录配置规则
Identity Manager X509 证书登录模块使用 "Login Correlation Rule" 确定如何将证书数据映射到相应的 Identity Manager 用户。Identity Manager 中包含一个内置关联规则,名为 Correlate via X509 Certificate subjectDN。
您也可以添加自己的关联规则。每个关联规则都必须遵循以下准则:
传递到登录配置规则的参数有:
传递给登录关联规则的证书参数的命名约定有:
cert.field name.subfield name
可用于规则的示例参数名包括:
使用传入参数的登录配置规则返回包含一个或多个 AttributeConditions 的列表。Identity Manager X509 证书登录模块使用它们来查找相关的 Identity Manager 用户。
idm/sample/rules 中包含一个名为 LoginCorrelationRules.xml 的登录关联规则范例。
创建自定义关联规则后,必须将其导入 Identity Manager。在 "Administrator Interface" 中选择 Configure,然后选择 Import Exchange File,以使用文件导入工具。
测试 SSL 连接
要测试 SSL 连接,可使用 SSL 转至已配置的应用程序界面的 URL(例如,https//idm007:7002/idm/user/login.jsp)。您会被告知正在进入一个安全站点,然后提示您指定要发送 Web 服务器的个人证书。
诊断问题
通过 X509 证书进行验证的问题应以错误消息形式在登录表单中报告。要获得更全面的诊断,可在 Identity Manager 服务器中启用对以下各个类和级别的跟踪:
如果在 http 请求中客户机证书属性没有命名为 javaxservlet.request.X509Certificate ,则会收到一条消息,说明无法在 http 请求中找到此属性。要更正这一点:
也可能需要在登录应用程序中先删除,然后再重新添加 Identity Manager X509 证书登录模块。
加密的使用和管理加密用于确保内存和系统信息库中的服务器数据、以及在服务器和网关之间传送的所有数据的机密性和完整性。
以下各节提供了有关如何在 Identity Manager 服务器和网关中使用和管理加密的更多信息,并阐述了有关服务器和网关加密密钥的问题。
受加密保护的数据
下表显示了在 Identity Manager 产品中受加密保护的数据类型,包括用于保护每种类型数据的加密法。
数据类型 RSA
MD5NIST
Triple DES
168 位密钥
(DESede/ECB/NoPadding)PKCS#5
基于密码的加密
56 位密钥
(PBEwithMD5andDES)服务器加密密钥
默认值
配置选项1
网关加密密钥
默认值
配置选项1
字典策略词
是
用户密码
是
用户密码历史记录
是
用户答案
是
资源密码
是
资源密码历史记录
是
服务器和网关之间的所有有效负载
是
有关服务器加密密钥的问题及答案
请阅读以下各节,以了解有关服务器加密密钥源、位置、维护和使用的常见问题的
答案。服务器加密密钥来自哪里?
服务器加密密钥是对称的 triple-DES 168 位密钥。服务器支持以下两类密钥:
在哪里维护服务器加密密钥?
在系统信息库中维护服务器加密密钥。在任一给定系统信息库中都会有许多数据加密密钥。
服务器如何知道使用哪个密钥对已加密的数据进行解密和重新加密?
存储于系统信息库中的每一加密数据都以服务器加密密钥(用于加密该数据)的 ID 为前缀。将包含加密数据的对象读入内存后,Identity Manager 使用与加密数据的 ID 前缀相对应的服务器加密密钥进行解密,然后使用相同的密钥重新加密(如果数据已更改)。
如何更新服务器加密密钥?
Identity Manager 提供了名为 Manage Server Encryption 的任务。此任务允许授权的安全管理员执行多项密钥管理任务,包括:
有关如何使用此任务的更多信息,请参见本章中的“管理服务器加密”。
如果更改“当前”服务器密钥,则会对现有加密数据造成什么样的影响?
没有影响。仍将使用现有加密数据 ID 前缀对应的密钥对现有加密数据进行解密或重新加密。如果生成了新的服务器加密密钥并设置为“当前”密钥,则任何要加密的新数据都将使用该新服务器密钥。
注 请勿从系统信息库中删除由某些对象的加密数据引用的任何服务器加密密钥,这一点非常重要;如果删除,服务器将无法解密数据。如果从另一个系统信息库导入包含加密数据的对象,则必须首先导入相关的服务器加密密钥以确保可以成功导入该对象。
为避免出现多密钥问题,以及为了更好地维护数据的完整性,可以使用 "Manage Server Encryption" 任务重新加密所有带有“当前”服务器加密密钥的现有加密数据。
怎样保护服务器密钥?
如果未将服务器配置为使用基于密码的加密 (PBE)-PKCS#5 加密(通过 pbeEncrypt 属性或 "Manage Server Encryption" 任务在 System Configuration 对象中设置),则使用默认密钥对服务器密钥进行加密。对于安装的任何 Identity Manager,设置的默认密钥都是相同的。
如果将服务器配置为使用 PBE 加密,则每次启动服务器时都将生成 PBE 密钥。通过提供一个密码(由特定于服务器的秘密生成)作为 PBEwithMD5andDES 密码来生成 PBE 密钥。PBE 密钥仅在内存中维护并从不具有持久性。另外,PBE 密钥对于共享一个公共系统信息库的所有服务器都是相同的。
要启用服务器密钥的 PBE 加密,密码 PBEwithMD5andDES 必须可用。默认情况下,Identity Manager 不包括此加密法,但此加密法采用 PKCS#5 标准,许多 JCE 提供者实现(例如由 Sun 和 IBM 提供的实现)中都提供了该标准。
我可以导出服务器密钥以安全地存储在外部吗?
可以。如果服务器密钥是 PBE 加密,则在导出之前,将使用默认密钥对这些密钥进行解密和重新加密。这使得它们可以独立于本地服务器 PBE 密钥而稍后被导入同一或其他服务器中。如果使用默认密钥对服务器密钥进行加密,则在导出之前不需要进行任何事先的处理。
将密钥导入服务器后,如果该服务器配置为 PBE 密钥,则将解密这些密钥。然后,如果该服务器配置为 PBE 密钥加密,则使用本地服务器的 PBE 密钥重新加密这些密钥。
将对服务器和网关之间的哪些数据进行加密?
在服务器和网关之间传送的所有数据(有效负载)都由针对每个服务器-网关会话随机生成的对称 168 位密钥进行 triple-DES 加密。
有关网关密钥的问题及答案
请阅读以下各节,以了解有关网关源、存储、分发和保护的常见问题的答案。
加密或解密数据的网关密钥来自哪里?
每次 Identity Manager 服务器连接到网关时,初始握手都将生成一个新的随机 168 位 triple-DES 会话密钥。此密钥将用于加密或解密随后在服务器和网关之间传送的所有数据。对于每个服务器/网关对,生成的会话密钥都是唯一的。
如何将网关密钥分发到网关?
会话密钥由服务器随机生成,然后在服务器和网关之间安全地进行交换,方法是使用作为服务器到网关初始握手的一部分的共享机密主密钥对会话密钥进行加密。
在初始握手期间,服务器会查询网关来确定网关支持的模式。网关可以以两种模式操作:
- 默认模式――服务器到网关的初始协议握手使用编译为服务器代码的默认 168 位 triple-DES 密钥加密。
- 安全模式――生成针对每个共享系统信息库的随机 168 位密钥 triple-DES 网关密钥,并作为初始握手协议的一部分在服务器和网关之间进行通信。此网关密钥与其他加密密钥一样存储于服务器系统信息库中,并存储在网关的本地注册表中。
当服务器在安全模式下联系网关时,服务器将使用网关密钥加密测试数据并将其发送到网关。然后,网关将尝试解密测试数据,并将一些网关特有数据添加到测试数据中,接着重新加密这些数据并将其发送回服务器。如果服务器可以成功解密测试数据和网关特有数据,则服务器将生成服务器-网关会话唯一密钥,并使用网关密钥对其进行加密然后将其发送到网关。收到之后,网关将解密会话密钥并保留该密钥,以供在服务器到网关会话中使用。如果服务器无法成功解密测试数据和网关特有数据,则服务器将使用默认密钥加密网关密钥并将其发送到网关。网关将使用在默认密钥中编译的网关密钥解密网关密钥,并将该网关密钥存储于网关的注册表中。然后,服务器将使用网关密钥对服务器-网关会话唯一密钥进行加密,并将其发送到网关以供在服务器到网关会话中使用。
之后,网关将仅接受已使用网关密钥加密了会话密钥的服务器请求。启动时,网关将检查注册表中的密钥。如果有,则使用。如果没有,则使用默认密钥。一旦网关在注册表中设置了密钥,则网关将不再允许使用默认密钥建立会话。这将阻止某些人设置流氓服务器和建立到网关的连接。
我可以更新网关密钥(用于加密或解密服务器到网关有效负载)吗?
Identity Manager 提供了名为 Manage Server Encryption 的任务,它允许授权的安全管理员执行多项密钥管理任务,包括生成新的“当前”网关密钥并使用该“当前”网关密钥更新所有网关。这是用于加密每个会话密钥(用于保护在服务器和网关之间传送的所有有效负载)的密钥。将使用默认密钥或 PBE 密钥对新生成的网关密钥进行加密,具体取决于 System Configuration 中 pbeEncrypt 属性的值。
在服务器、网关的什么地方存储网关密钥?
在服务器上,网关密钥就像服务器密钥一样存储在系统信息库中。在网关上,网关密钥存储于本地注册表主键中。
怎样保护网关密钥?
保护网关密钥的方式与保护服务器密钥相同。如果将服务器配置为使用 PBE 加密,则网关密钥将使用 PBE 生成的密钥进行加密。如果该选项为 False,则将使用默认密钥加密。有关更多信息,请参见前面标题为“怎样保护服务器密钥?”的一节。
我可以导出网关密钥以安全地存储在外部吗?
可以通过 "Manage Server Encryption" 任务导出网关密钥,就像导出服务器密钥一样。有关更多信息,请参见前面标题为“我可以导出服务器密钥以安全地存储在外部吗?”的一节。
如何销毁服务器和网关密钥?
通过从服务器系统信息库中删除服务器和网关密钥就可以销毁它们。请注意,只要仍在使用该密钥加密服务器数据或仍有网关依赖该密钥,就不应该删除该密钥。通过执行 "Manage Server Encryption" 任务,可以使用当前服务器密钥重新加密所有服务器数据,并将当前网关密钥与所有网关同步以确保在删除任何旧密钥之前不再使用旧密钥。
管理服务器加密Identity Manager 服务器加密功能允许您创建新的 3DES 服务器加密密钥,然后使用 3DES 或 PKCS#5 加密对这些密钥进行加密。只有具备“安全管理员”权能的用户才可以运行“管理服务器加密”任务(该任务可从任务选项卡访问)。
图 1. 管理服务器加密任务
选择 Run Tasks,然后从列表中选择 "Manage Server Encryption",为此任务配置以下信息:
- Update encryption of server encryption keys――选择此选项以指定是使用默认 (3DES) 加密还是使用 PKCS#5 加密来对服务器加密密钥进行加密。选择此选项时,将显示两种加密选择(“默认”和 PKCS#5),请选择其中一个。
- Generate new server encryption key and set as current server encryption key――选择此选项以生成新的服务器加密密钥。选择此选项之后生成的每一份加密数据都是使用此密钥进行加密。生成新的服务器加密密钥不会影响应用于已存在的加密数据的密钥。
- Select object types to re-encrypt with current server encryption key――选择一个或多个要使用当前加密密钥重新加密的 Identity Manager 对象类型(如资源或用户)。
- Manage Gateway Keys――如果选择该选项,则该页将显示以下网关密钥
选项:- Export server encryption keys for backup――选择此选项以将现有服务器加密密钥导出到 XML 格式的文件。选择此选项后,Identity Manager 会显示一个附加的字段,用于指定导出该密钥的路径和文件名。
注 如果您要使用 PKCS#5 加密方法并且选择生成和设置新的服务器加密密钥,则您还应选择此选项。而且,您还应将导出的密钥存储在可移动介质上,并存放在安全的位置(请勿放在网络上)。
- Execution Mode――选择在后台(默认选项)还是在前台运行此任务。如果您选择使用新生成的密钥重新加密一个或多个对象类型,执行此任务会需要一些时间,且最好在后台运行此任务。
安全实践作为 Identity Manager 管理员,可以通过在安装时和安装后遵照以下建议进一步减少受保护帐户和数据的安全风险。
安装时
您应:
- 通过使用 https 的安全 Web 服务器访问 Identity Manager。
- 重设默认 Identity Manager 管理员帐户(管理员和配置器)的密码。要进一步保护这些帐户的安全,可将其重命名。
- 限制对“配置器”帐户的访问。
- 将管理员的权能集限制为仅是他们的工作职责所需的那些操作,并且通过设置组织分层结构限制管理员权能。
- 更改 Identity Manager 索引信息库的默认密码。
- 启用审计功能,以跟踪 Identity Manager 应用程序中的活动。
- 编辑 Identity Manager 目录中的文件的权限。
- 自定义工作流以插入批准或其他检查点。
- 开发恢复过程,以描述如何在出现紧急情况时恢复 Identity Manager 环境。
使用时
您应: