OracleDatabase11g:面向管理员的新增功能C-2OracleDatabase11g:面向管理员的新增功能C-3安全口令支持为了遵守各种安全性和隐私规定,您必须使用更安全的口令。如果口令非常短或仅包含有限的字符,则对于强力攻击就很脆弱,而包含较多不同字符的较长口令就很难被猜出或获得。在OracleDatabase11g中,口令的处理方式与早期版本中的处理方式有所不同:•口令区分大小写。口令中使用的大写字符和小写字符现在是不同的字符。•口令可以包含未用引号括起来的多字节字符。如果口令包含除$、_或#外的任何特殊字符,则必须用引号括起来。•口令始终通过散列算法传递,然后作为用户身份证明进行存储。用户提供口令时,系统会对其进行散列运算,然后将其与存储的身份证明进行比较。在OracleDatabase11g中,散列算法是早期版本数据库中使用的公共算法SHA-1。SHA-1是一种使用160位密钥的较强算法。•口令始终使用salt。如果输入内容相同,散列函数将始终生成相同的输出。Salt是添加到输入中的唯一(随机)值,用于确保输出身份证明是唯一的。OracleDatabase11g:面向管理员的新增功能C-4自动安全配置OracleDatabase11g使用由Internet安全中心(CIS)基准推荐的特定安全功能安装和创建数据库。与10gR2的默认安装相比,CIS推荐的配置更安全,而且开放程度足以使大多数应用程序都能成功运行。许多客户已采用了此基准。CIS基准的一些建议可能与一些应用程序不兼容。OracleDatabase11g:面向管理员的新增功能C-5安全默认配置使用DatabaseConfigurationAssistant(DBCA)创建自定义数据库时,可以指定OracleDatabase11g的默认安全配置。默认情况下,如果用户使用不正确的口令多次尝试连接Oracle实例,则在第三次尝试后该实例将延迟每次登录。这种保护措施适用于从不同的IP地址或多个客户机进行的连接尝试。稍后,它将逐渐增加用户可以尝试其它口令的时间间隔,最长时间大约为十秒。创建数据库时,将启用具有如下设置的默认口令概要文件:PASSWORD_LIFE_TIME180PASSWORD_GRACE_TIME7PASSWORD_REUSE_TIMEUNLIMITEDPASSWORD_REUSE_MAXUNLIMITEDFAILED_LOGIN_ATTEMPTS10PASSWORD_LOCK_TIME1PASSWORD_VERIFY_FUNCTIONNULLOracleDatabase10g数据库升级后,只有使用ALTERUSER…命令更改口令后,口令才会区分大小写。创建数据库时,默认情况下口令区分大小写。OracleDatabase11g:面向管理员的新增功能C-6启用内置口令复杂性检查器verify_function_11g是一个PL/SQL功能示例,可以轻松进行修改以在您的站点中强制实行口令复杂性策略。此功能不需要在口令中嵌入特殊字符。verify_function_11g和较早的verify_function都包含在utlpwdmg.sql文件中。要启用口令复杂性检查,请创建一个归SYS所有的验证功能。可使用提供的一个功能或对其中的一个进行修改来满足您的要求。该示例显示了如何使用utlpwdmg.sql脚本。如果概要文件中命名的口令复杂性检查功能中存在错误或此功能不存在,则不能更改口令,也不能创建用户。解决方法是在概要文件中将PASSWORD_VERIFY_FUNCTION设置为NULL,直到问题得到解决。verify_function11g功能将检查口令是否至少包含八个字符、是否至少包含一个数字和一个字母字符,以及是否至少有三个字符与以前口令不同。该函数还确认此口令不是以下项:用户名或附加了1到100之间任何数字的用户名、反向的用户名、服务器名或附加了1到100之间数字的服务器名,或者一组众所周知的常用口令,如“welcome1”、“database1”、“oracle123”或“oracle(附加了1到100之间的数字)”等。OracleDatabase11g:面向管理员的新增功能C-7管理默认审计检查审计日志:默认情况下,在OracleDatabase11g中将为对安全性非常重要的特定权限启用审计。审计线索默认记录在数据库AUD$表中,AUDIT_TRAIL参数设置为DB。对于大多数站点而言,这些审计不会对数据库性能造成太大影响。Oracle建议使用操作系统审计线索文件。归档审计记录:要保留审计记录,请使用Oracle数据泵导出实用程序将其导出,或者使用SELECT语句将一组审计记录捕获到单独的表中。删除归档审计记录:在检查并归档审计记录后,会从SYS.AUD$表中将其删除。审计记录将占用SYSTEM表空间中的空间。如果SYSTEM表空间无法增长,则无法为审计记录提供更多空间,此时会针对每条审计语句生成错误。由于CREATESESSION是已审计的权限之一,所以不能创建新的会话(除非用户以SYSDBA身份连接)。可使用QUERY选项指定带有日期范围或SCN范围的WHERE子句,通过导出实用程序归档审计表。然后,使用相同的WHERE子句从审计表中删除这些记录。当AUDIT_TRAIL=OS时,会在由AUDIT_FILE_DEST指定的目录中为每条审计记录创建单独的文件。可以复制特定时间之前的所有文件,然后删除它们。注:SYSTEM表空间是使用autoextendon选项创建的。因此SYSTEM表空间可以根据需要增长,直到用尽磁盘上的可用空间。OracleDatabase11g:面向管理员的新增功能C-8管理默认审计(续)系统会按照访问针对成功和失败的操作审核所有用户的以下权限:CREATEEXTERNALJOBCREATEANYJOBGRANTANYOBJECTPRIVILEGEEXEMPTACCESSPOLICYCREATEANYLIBRARYGRANTANYPRIVILEGEDROPPROFILEALTERPROFILEDROPANYPROCEDUREALTERANYPROCEDURECREATEANYPROCEDUREALTERDATABASEGRANTANYROLECREATEPUBLICDATABASELINKDROPANYTABLEALTERANYTABLECREATEANYTABLEDROPUSERALTERUSERCREATEUSERCREATESESSIONAUDITSYSTEMALTERSYSTEMOracleDatabase11g:面向管理员的新增功能C-9调整安全性设置使用DBCA工具创建数据库时,可以选择以下安全性设置:•保留11g的默认增强安全设置(建议)。这些设置包括启用审计和新的默认口令概要文件。•还原到11g之前的默认安全设置。要禁用特定类别的增强设置以实现兼容性,请选择以下设置:-将审计设置还原为11g之前的默认设置-将口令概要文件设置还原为11g之前的默认设置也可以使用DBCA在创建数据库后更改这些设置。在11g的默认安全设置下,有些应用程序可能无法正常运行。应始终设置安全的软件权限。它不受用户选择的“SecuritySettings(安全设置)”选项所影响。OracleDatabase11g:面向管理员的新增功能C-10设置安全性参数OracleDatabase11g增加了一组新参数以加强数据库的默认安全性。这些参数是系统范围的静态参数。使用区分大小写的口令以加强安全性新参数SEC_CASE_SENSITIVE_LOGON使您可以设置区分大小写的用户口令。Oracle建议保留默认设置TRUE。将此参数设置为FALSE可指定口令不区分大小写以实现向后兼容。ALTERSYSTEMSETSEC_CASE_SENSITIVE_LOGON=FALSE注:禁用区分大小写会使口令在强力攻击面前变得更脆弱。防止拒绝服务(DoS)攻击本幻灯片中列出的两个参数指定了当数据库从客户机处收到损坏的数据包时要执行的操作。假设损坏的数据包来自可能的恶意客户机。SEC_PROTOCOL_ERROR_FURTHER_ACTION参数指定了要对客户机连接执行的操作:继续、断开连接或延迟接受请求。另一参数SEC_PROTOCOL_ERROR_TRACE_ACTION指定了监视操作:NONE、TRACE、LOG或ALERT。OracleDatabase11g:面向管理员的新增功能C-11设置安全性参数(续)防止强力攻击新的初始化参数SEC_MAX_FAILED_LOGIN_ATTEMPTS的默认设置为10,表示在连接尝试达到指定次数后会自动断开连接。即使未启用口令概要文件,也会强制实施此参数。此参数可以防止程序连接到数据库,然后成百上千次地尝试口令以通过验证。OracleDatabase11g:面向管理员的新增功能C-12设置数据库管理员验证数据库管理员必须经过验证。在OracleDatabase11g中,可以使用新的方法来更安全地执行管理员验证并集中管理这些已授权的用户。此外,区分大小写的口令还应用于已授权用户的远程连接上。可使用下列命令覆盖此默认行为:orapwdfile=orapworclentries=5ignorecase=Y如果担心口令文件易受破坏或难以维护许多口令文件,则可以实施严格验证:•在OracleInternetDirectory(OID)中授予SYSDBA或SYSOPER企业角色。•使用Kerberos票证。•使用SSL证书。要使用严格验证方法,必须将所有LDAP_DIRECTORY_SYSAUTH初始化参数设置为YES。将此参数设置为NO可禁用严格验证方法。通过OID或Kerberos进行的验证还能提供集中管理或单一登录功能。如果配置了口令文件,则可先对其进行检查。用户也可以作为OSDBA或OSOPER组的成员由本地操作系统进行验证。有关详细信息,请参阅《OracleDatabaseAdvancedSecurityAdministrator’sGuide11gRelease1》。OracleDatabase11g:面向管理员的新增功能C-12OracleDatabase11g:面向管理员的新增功能C-13为管理用户设置目录验证要启用OracleInternetDirectory(OID)服务器以授权SYSDBA和SYSOPER连接,请执行以下操作:1.配置管理用户(其过程与配置典型用户相同)。2.在OID中,针对用户要管理的数据库为该用户授予SYSDBA或SYSOPER企业角色。3.将LDAP_DIRECTORY_SYSAUTH初始化参数设置为YES。将LDAP_DIRECTORY_SYSAUTH参数设置为YES后,SYSDBA用户和SYSOPER用户便能通过严格的验证方法对数据库进行验证。4.确保不要将LDAP_DIRECTORY_ACCESS初始化参数设置为NONE。可能的值是PASSWORD或SSL。5.稍后,管理用户可通过在CONNECT语句中包含网络服务名进行登录。例如,如果网络服务名是orcl,则Fred可以通过以下语句以SYSDBA身份登录:CONNECTfred/t%3eEGQ@orclASSYSDBA注:如果将数据库配置为使用口令文件进行远程验证,则会首先检查口令文件。OracleDatabase11g:面向管理员的新增功能C-14为管理用户设置Kerberos验证要启用Kerberos以授权SYSDBA和SYSOPER连接,请执行以下操作:1.配置管理用户(其过程与配置典型用户相同)。有关配置Kerberos验证的详细信息,请参阅《OracleDatabaseAdvancedSecurityAdministrator’sGuide11g》。2.为Kerberos验证配置OID。请参阅《OracleDatabaseEnterpriseUserAdministrator’sGuide