IBM中国移动Domino数据库安全配置手册课案Word格式文档下载.docx
《IBM中国移动Domino数据库安全配置手册课案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《IBM中国移动Domino数据库安全配置手册课案Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
第一章概述1
第二章数据库存取控制2
2.1使用ACL限制访问数据库3
2.1.1ACL中的存取级别3
2.1.2配置数据库ACL6
2.2强制实现ACL的一致性7
2.3加密数据库9
2.4为数据库或模板签名11
第三章Notes/Domino认证12
3.1ID文件14
3.1.1ID文件的类型14
3.1.2NotesID的内容15
3.13验证字16
3.2交叉验证字18
第四章Internet客户认证19
4.1基本的用户名加口令认证21
4.2基于会话的用户名加口令认证21
4.3SSL认证23
4.3.1服务器认证24
4.3.2客户端认证25
第五章安全检查列表25
术语表26
第一章概述
Notes/Domino提供了一个健壮的安全模型,可以通过裁剪来满足您所在组织的需求。
Notes/Domino拥有一个六层的安全系统。
●网络
网络安全性可以防止对服务器端网络XX的访问。
如果在网络层阻塞了访问,XX的用户就不能访问任何Domino服务器。
网络访问典型情况下是使用网络硬件和软件进行控制的,但是可以通过对Domino服务器端口的数据进行加密来提供进一步的安全性。
对网络端口数据加密可以阻止XX用户通过使用网络协议分析器来读取数据。
对网络传输加密,可以使用端口加密或者SSL。
●用户认证
用户认证是一个在客户端试图访问Domino服务器时Notes客户端和Domino服务器用来进行相互确认和鉴定的过程。
Notes和Domino使用存储在NotesID文件中的验证字来进行确认和鉴定。
当使用Internet协议时,可以使用基于X.509的验证字或者用户名加口令来认证。
●服务器
服务器安全性控制对Domino服务器的访问。
在校验服务器安全性之前用户必须要通过认证。
服务器访问通过在Domino目录中的服务器访问列表来进行控制。
●数据库
数据库安全性控制对Domino服务器上数据库的访问。
在校验数据库安全性之前用户必需访问到了服务器并且通过了认证。
数据库访问通过数据库访问控制列表(ACL)进行控制。
本地数据库可以通过加密来确保只有拥有正确口令和ID文件的用户才能进行访问。
●设计元素
设计元素安全性控制对表单、视图和文件夹的访问。
在设计元素安全性发生作用前用户必需要访问到数据库。
使用设计元素安全性,可以允许用户查看数据库中某些类型的文档而阻塞其它类型。
控制表单访问,使用表单访问列表和密钥。
控制视图和文件夹访问,使用视图和文件夹访问列表。
设计元素安全性也可以用来限制运行在Notes工作站上的公式和脚本的行为。
控制工作站的访问,使用执行控制列表。
●文档
文档安全性控制对文档中域、节和段或者整个文档的访问。
这是最细粒度的安全性。
可以使用读者和作者域控制对整个文档的访问。
控制对节和段的访问,使用“当…时候隐藏(hide-when)”公式。
控制对域的访问,使用密钥。
●本地数据库安全
上面的六层安全性应用于存放在Domino服务器上的数据库,并且用户是通过网络来进行访问。
如果某个人XX地访问到了用户的计算机或服务器,他可以绕过安全设置直接读取本地数据库。
为了避免XX的访问,Notes可以加密数据库并且加强本地数据库的ACL。
第二章数据库存取控制
限制对Domino数据库的访问可以防止XX的用户访问信息有以下几种方式。
任务
用途
使用ACL限制访问数据库
控制Notes和Internet/Intranet用户以及Domino服务器对数据库的访问。
强制实现ACL的一致性
通过强制在一个位置进行全部的ACL更改,来保护服务器上的数据库和模板。
加密数据库
防止XX的用户访问服务器或工作站本地的数据库。
对数据库或模板进行签名
识别数据库或模板的创建者。
当用户访问数据库时,系统会检查签名以确定是否允许执行此操作。
例如,在Domino服务器上,代理管理器会检验代理的签名并检查签名者是否有权执行此操作。
在Notes客户机上,对照工作站ECL中对签名者设定的权限来检查签名。
2.1使用ACL限制访问数据库
每个数据库都有一个ACL(存取控制列表)用来指定用户和服务器对该数据库的存取级别。
尽管用户和服务器的存取级别的名称是一样的,但是指定给用户的级别决定用户在数据库中所能执行的任务,而指定给服务器的级别则决定服务器可以复制数据库中的哪些信息。
只有具有“管理者”存取级别的用户才能创建或修改ACL。
要控制Notes用户的访问权限,应为每位用户或群组选择在数据库中的存取级别、用户类型和存取级别权限。
创建数据库时可以设置ACL中的缺省项目。
如果数据库设计者确定需要对数据库细分存取级别,则您还可以指定角色。
将数据库投入使用前,应与设计者以及数据库的用户代表一起规划正确的存取级别。
对于ACL中的每个用户名、服务器名或群组名,可以指定:
●存取级别
●存取级别权限
●用户类型
●角色
2.1.1ACL中的存取级别
在数据库ACL中指定给用户的存取级别能够控制用户在数据库中可以执行哪些任务。
存取级别权限增强或限制了授予ACL.中每个名称的存取级别。
对于ACL中的每个用户、群组或服务器,可以选择基本的存取级别和用户类型。
要进一步细化访问权限,可以选择一系列访问权限。
如果数据库设计者创建了角色,请将其分配给相应的用户、群组或服务器。
在数据库ACL中分配给服务器的存取级别用于控制服务器可以复制数据库中的哪些信息。
要访问特定服务器上的数据库,Notes用户必须既具有相应数据库的访问权限,又具有相应服务器的访问权限(在Domino目录的“服务器”文档中指定)。
要查看数据库的ACL,用户必须至少具有“读者”存取级别。
下表按从高到低的顺序列出了用户存取级别。
存取级别
允许用户进行以下操作
分配给
管理者
修改数据库ACL。
加密数据库。
修改复制设置。
删除数据库。
执行较低存取级别允许的所有任务。
负责数据库的两个人。
这样,如果一个人不在,可以由另一个人管理数据库。
设计者
修改所有的数据库设计元素。
创建全文搜索索引。
数据库设计者和/或负责未来设计更新的人员
“编辑者”存取级别
创建文档。
编辑所有文档(包括其他人创建的文档)
读取所有的文档,除非表单中包含“读者”域。
如果编辑者未在“读者”域中列出,则具有“编辑者”ACL存取级别的用户将无法读取或编辑文档。
允许在数据库中创建和编辑文档的任何用户
作者
创建文档(如果用户或服务器还具有“创建文档”存取级别权限)在为用户或服务器指定“作者”存取级别的同时,还必须指定“创建文档”存取级别权限。
编辑包含“作者”域并且在该“作者”域中指定该用户为作者的文档。
需要向数据库发布文档的用户
读取包含“读者”域并且在该“读者”域中指定该用户为读者的文档。
只需要阅读数据库中的文档,而不需要创建和编辑文档的用户。
存放者
创建文档,并且除“读取公用文档”及“写入公用文档”两项权限以外,不再具有其他任何权限。
这两个权限是设计者可能选择要授予的权限。
只需要发布文档,而不需要阅读或编辑自己或其他用户的文档的用户。
例如,为投票箱数据库使用“存放者”存取级别。
不能存取者
除“读取公用文档”和“写入公用文档”选项以外不具有其他任何权限。
已终止的用户、不需要访问数据库的用户或在特定基础上能访问数据库的用户。
注意Note如果某些用户是某个群组的成员,并且该群组的成员都可以访问数据库,而该用户不应该具有数据库访问权限,则需要专门为这些用户指定“不能存取者”存取级别。
2.1.2配置数据库ACL
在向数据库ACL中添加用户、群组或服务器之前,应先针对应用程序规划数据库访问。
在将名称添加到ACL中后,应为该名称指定存取级别。
尽管指定用户类型是可选的操作,但它可以提供附加的安全性级别。
如果应用程序需要,请添加存取级别权限和角色。
在配置了数据库ACL后,用户可以通过在Notes客户机上单击ACL对话框中的“有效权限”按钮来查看自己对数据库的存取级别。
操作步骤:
1.确保您满足下列条件:
数据库ACL中的“管理者”存取级别
创建了希望在ACL中使用的角色和群组。
2.从DominoAdministrator的“服务器”窗格中,选择存储数据库的服务器。
3.单击“文件”,然后从Domino数据目录中选择一个或多个数据库。
注意可以添加同一个项目到多个数据库中。
还可以在多个数据库中编辑和删除项目。
请参阅本章后面的“编辑多个ACL中的项目”主题。
从“工具”窗格中,选择“数据库”“管理ACL”。
5.为Notes用户、服务器、群组以及经过验证的Internet用户添加项目。
6.为每个项目设置存取级别。
7.(可选)为提高安全性,为每个项目选择一个用户类型。
8.(可选)通过限制或允许附加的存取级别权限来细化项目。
9.(可选)为ACL项目指定角色。
选定的角色将显示复选标记。
10.(可选)在数据库的多个复本之间强制实现ACL的一致性。
11.(可选)指定管理服务器自动更新ACL项目。
12.(可选)为了防止具有“存放者”或“不能存取者”存取级别的用户利用操作系统进行数据库拷贝,可以通过“本地加密”选项使用服务器标识符对数据库进行加密。
这样,即使数据库被拷贝,也可以确保对服务器标识符没有访问权限的任何用户都无法使用该数据库。
13.单击“确定”保存更改。
2.2强制实现ACL的一致性
可以确保服务器上所有数据库复本的ACL完全相同,同时还可以确保用户在工作站或便携式计算机上制作的所有本地复本的ACL完全相同。
要保持数据库在所有服务器上的复本的存取控制列表相同,可以在某个复本(该复本所在的服务器对其他复本拥有“管理者”存取级别)上选择“强制使用一致的存取控制列表”设置。
如果选择的复本所在的服务器对其他复本没有“管理者”存取级别,那么复制将失败,因为该服务器不具有复制ACL所需的足够权限。
如果用户在本地复制数据库,数据库ACL将识别出该用户的存取级别,因为该存取级别对于服务器来说是已知的。
在进行本地复制时,这种情况是自动发生的,而不必考虑是否启用了“强制使用一致的存取控制列表”。
应该注意的是,启用了“强制使用一致的存取控制列表”的本地复本将试图遵从ACL中的信息并相应地确定用户可以执行的操作。
但是,这也存在一些限制。
一个限制是群组信息是在服务器上生成的,而不是在本地复本中生成的。
在本地复制数据库时,执行复制的个人的群组成员信息将存储在数据库中以供ACL检查使用。
如果执行复制的用户之外的个人/标识符访问本地复本,将没有关于该用户的群组成员信息可用,ACL仅能使用该用户标识符而不是群组成员备份进行访问权限的检查。
另外,强制使用一致的存取控制列表并不能为本地复本提供额外的安全性。
要保持本地复本数据的安全性,应对数据库进行加密。
注意当选中了“强制使用一致的存取控制列表”选项时,如果用户更改了本地或远程服务器数据库复本的ACL,数据库将停止复制。
日志文件(LOG.NSF)记录一条消息,说明由于程序无法在复本中维持一致的ACL,因此复制无法进行下去。
a.确保在选定的所有数据库的ACL中都具有“管理者”存取级别。
b从DominoAdministrator的“服务器”窗格中,选择对希望强制使用一致的ACL的数据库有“管理者”存取级别的服务器。
c单击“文件”,然后从Domino数据目录中选择一个或多个数据库。
d单击“工具”“数据库”“管理ACL”。
e单击“高级”。
f选择“修改一致的ACL设置”选项。
要强制使用一致的ACL,请选择“强制此数据库的所有复本使用一致的存取控制列表”。
要禁止使用一致的ACL,请选择“不执行一致的ACL设置”。
g单击“确定”。
2.3加密数据库
h打开本地数据库。
i选择“文件”“数据库”“属性”。
j单击“基本”附签,然后单击“加密设置”按钮。
k选择“此数据库的本地加密方式”,然后选择下列选项之一:
“普通加密对临时窥探提供了有限的保密。
”
“中等加密提供了良好的安全,保证了访问文档的速度。
”对于大多数用户,此级别可能是正确选择。
“当主要考虑文档的保密性时才使用强度加密。
”
l(可选)缺省情况下,仅列出您的用户标识符在数据库加密后只有您的用户标识符可以打开此数据库。
如果希望将访问此数据库的权限授予另一个用户,请单击“持续时间”按钮,然后从“选择名称”对话框中选择一个通讯录和用户。
警告如果选择另一个用户使其具有访问此数据库的权限,您将丧失对此数据库的访问权限。
提示要关闭对此本地数据库的加密,请选择“不在本地对数据库进行加密”。
2.4为数据库或模板签名
可以为模板或数据库签名,以确保其完整性。
例如,您可以通过这种方法为某个代理签名,以便服务器上的代理管理器可以验证签名者是否具备执行代理的权限。
或者,您可以为数据库或模板签名,以便Notes客户机上的ECL评估哪些数据库操作是可以执行的。
如果为模板签名,则由该模板创建的所有数据库都会继承此签名。
注意如果只想为一个特定的设计文档或某个文档中的一个设计元素签名(如特定的代理),则必须首先确定该文档的注释标识符。
要确定文档的注释标识符,请选择该文档,并选择“文件”“文档属性”,然后单击属性框的最后一个附签。
最后一行为注释标识符,例如,NT00000902。
m选择存储要签名的数据库或模板的服务器。
n在“文件”附签上,选择需要签名的数据库或模板。
o选择“工具”“数据库”“签名”。
p请选择其中之一:
选择“当前用户标识符”以使用您的标识符签名。
选择“当前服务器标识符”以使用存储数据库或模板的服务器的标识符签名。
q选择下列选项之一,以指定要签名的元素:
选择“所有设计文档”为每个设计元素签名。
如果为多个数据库或模板签名并选择此选项,则签名过程可能要花费一段时间。
选择“所有数据文档”为数据文档中的所有当前内容(热点)签名。
选择“所有文档类型”为特定的设计元素类型签名。
选择“指定Notes标识符”为特定的设计元素签名。
r选择“仅更新现有的签名(快速)”以便只更新以前签名过的设计元素。
使用此选项将更改以前签名过的设计元素上的签名。
s单击“确定”。
对话框将显示已处理的数据库及所出现错误(如果有)的数目。
有关详细信息,请参阅Notes日志。
第三章Notes/Domino认证
所有Notes/Domino安全性都是基于用户认证的。
认证非常重要,因为它可以将一个用户和其他的区分开来;
没有它就无法识别一个用户是否就是他声称的那个。
因此它是提供对Notes和Domino资源进行访问限制的关键。
Notes认证过程依赖于一个由验证者加到ID文件中的验证字。
每个Notes客户端使用一个ID文件来进行识别。
验证和识别是个复杂地过程。
熟悉下面的术语有助于进一步理解这些过程。
●公钥加密
公钥加密也称非对称加密。
使用公钥加密用户拥有一对密钥—私钥和公钥。
公钥分发给所有和你通信的人。
在Domino中,公钥发布在Domino目录中。
●对称加密
对称加密,通常指的是密钥加密,使用一个通用的密钥和相同的数学运算法则来对信息进行加密和解密。
如果两个人想和对方通信,双方都要在对数据加密和解密的数学运算法则上达成协议,他们还需要一个通用的密钥。
●数字签名
数字签名是一个手写签名的等价物,它是一个附加在一条信息上可以校验身份的唯一文字块。
它可以确认发送者的身份和信息的完整性。
这个文字块使用公钥和私钥进行加密和解密。
●公钥验证字
验证字是一个存储在Notes或DominoID文件中使用公钥和一个名字关联的唯一电子印记。
验证字允许用户和服务器访问特定的Domino服务器。
一个ID文件可以有多个验证字。
SSL验证字使服务器用Domino验证字应用程序创建的验证字可以让Domino和其它应用程序更容易地交换验证字。
SSL验证字包含一个公钥、一个名字、一个过期日期和一个数字签名并且存储在一个叫做钥匙圈的文件中。
钥匙圈文件是被口令保护的,并且存储了一个或多个验证字,位于客户端或服务器的硬盘上。
公钥和私钥是一对用来初始化SSL加密事务的有数学运算关系的唯一密钥。
●层次命名
层次命名一个和NotesID相关的命名系统,用来表现一个组织中验证者名称间的关系。
层次命名的格式是:
通用名称/组织单元/组织/国家代码
例如,OA邮件管理员/湖北省公司/中国移动/CN
所有的层次命名必需包含通用名称和组织部分。
组织单元(最多可以四层)和国家代码是可选部分。
层次命名有助于区分具有相同通用名称的用户从而提供额外的安全性并且允许验证字的分散管理。
3.1ID文件
当注册一个用户时,管理员输入用户名、口令、过期日期和其他默认选项。
注册进程创建一个ID,放在Domino目录中或者(并且)放在文件中,这个ID文件需要放到用户的Notes工作站中。
3.1.1ID文件的类型
NotesID本质上是存储验证字和密钥的。
有三种不同类型的NotesID:
用户、服务器和验证者。
用户ID是供Notes客户端使用的,服务器ID是供Domino服务器使用的。
验证者ID用法则不同,它仅用于验证其它NotesID并不能用来运行客户端或者服务器。
然而,验证者ID对于一个组织却更重要,因为很多的Notes安全性是基于签名和认证的并且两者都使用验证字。
验证者ID因该存放在另外的安全位置,而不是放在XX用户可能访问到的服务器硬盘上。
任何不能信赖的人员获得对验证者ID的访问都可以轻而易举访问信任这验证者的系统。
3.1.2NotesID的内容
当管理员试图注册一个新的用户或服务器时,Domino管理端为这个条目产生两个RSA密钥对。
一个512位长度的密钥用于美国和加拿大之外国家的数据加密。
另一个630-bit长度的密钥
用于美国和加拿大的数据加密,并且用来作为世界范围的签名和认证。
Domino管理端然后建立一个验证字并用验证者的私钥签署这个验证字。
这个签署过的验证字接下来被放进NotesID文件。
注册过程后,ID文件包含:
●用户名和Notess授权号
●两个公钥和私钥对
●两个用户验证字
●一个祖先验证者的验证字
●(可选的)ID文件的恢复信息
公钥和私钥有数学运算关系并且唯一识别一个用户。
信息使用公钥加密后只能使用同一密钥对中的私钥解密。
使用公钥加密最大的好处是不用担心谁来访问公钥,因为没有私钥它没有什么用处。
因此可以使公钥对所有人可用,而不会危害到安全。
Notes可以存储恢复信息到NotesID文件中。
使用恢复信息,如果如果用户忘记了口令,管理员可以恢复ID文件,或者如果IDfile被损坏,可以从一个加密的备份中恢复ID文件。
注册后,应用开发者分发的密钥可能已经加到了ID文件中来允许加密和解密文档中的域。
私钥和ID文件中的其它密钥用用户口令计算出的密钥进行了加密,所以只有所有者才能使用这个ID文件。
象用户名和公钥这些公用信息是没有加密过的。
下图显示了用户Bob和服务器ServerA的ID文件内容
3.13验证字
一个验证字包含:
●验证字所有者名称
●验证字所有者公钥
●验证者名称
●验证者公钥
●验证字过期日期
●一个使用验证者私钥生成的数字签名。
这给签名提供验证字的真实性
验证字存储在NotesID文件和Domino目录中。
当所有属于这个Domino域的用户和服务器试图加密和签署消息或文档数据时,他们都可以查阅注册到Domino目录的验证字。
注意,验证字本身并不包含任何秘密信息;
因此它可以公开并且分发到任何地方。
下图显示验证字怎样放置在ID文件和Domino目录中。
3.2交叉验证字
交叉验证字用来在不同验证层次的组织中建立信任关系。
典型地,用户建立信任取决于他们是否有共同的祖先。
在不同验证层次的组织中,用户是没有共同祖先的;
因此用户需要交叉验证字来建立信任关系。
交叉验证字存储在用户个人通讯录和服务器Domino目录的文档中。
交叉验证字拥有“发布者”和“发布给”域。
“发布者”指示谁信任这个验证字。
如果验证字是由BobSmith/East/Acme发布的,只有使用这个NotesID名字的用户会信任这个验证字。
“发布给”指示这个验证字应该信任那个Notes。
一个发布给/Acme的验证字信任所有包含/Acmes层次结构的用户和服务器—例如,/East/Acme和/West/Acme。
一个发布给/East/Acme的验证字则信任较少范围的用户和服务器—例如,/East/Acme和/Sales/East/Acme,而不是/West/Acme。
例如,用户BobSmith/East/Acme想访问ServerA/Central/Widgets。
/East/Acme和/Central/Widgets不在同一个层次,因此不能被信任。
ServerA通过获得对/Acme的交叉验证字建立信任,并且Bob通过获得对/Widgets的交叉验证字建立信任。
ServerA也可以通过获得对/East/Acme的交叉验证字建立信任,并且Bob可以通过获得对/Central/Widgets的交叉验证字建立信任;
然而,这样做会限制可以信任的其它服务器和用户的范围。
交叉验证字也被用于建立对数字签名的信任和加密通过Internet发送的S/MIME消息。
这种情况下的数字签名,只有使用数字签名的文档容器需要对这个签名者的交叉验证字。
这种情况下的Internet消息加密,发送消息的用户需要交叉验证字来加密消息。
第四章Internet客户认证
对Internet客户端有两种认证方法:
用户名加口令和SSL。
t用户名加口令认证
用户名加口令认证有两种类型:
●基本的用户名加口令认证
●基于会话的用户名加口令认证
用户名加口令认证,也称作基本口令认证,它使用一个基本的质询/响应协议。
只要用户试图访问受限制的信息,他们就会被提示输入用户名和口令。
然而在TCP/IP端口上用户名加口令认证并不十分安全。
在客