人口基础信息服务支撑系统的安全性研究
摘要:没有对具体业务的安全特点和安全环境的正确分析和认识,任何安全技术、产品都解决不了真正的安全问题。本章就针对人口基础信息服务支撑系统的安全性进行研究,提出了就利用身份验证、SQL本身以及数据库备份与还原的系统安全策略。
关键词:人口 信息 系统 研究
0 引言
随着金融信息化、电子政务、电子商务等信息化建设的快速发展,政治、经济、文化等重要领域的信息系统都面临着日益严重的信息安全问题。然而,安全专家研究却发现,首先,安全设备有其技术定位和安全局限性。一般地,安全技术都是针对安全的某一个环节或方面开发的,而对于网络这个多样化的复杂系统,仅用某项或几个安全技术是无法满足所有业务的所有安全需求。其次,安全技术的简单堆砌无法提高系统的安全度。没有对具体业务的安全特点和安全环境的正确分析和认识,任何安全技术、产品都解决不了真正的安全问题。本章就针对人口基础信息服务支撑系统的安全性进行研究,提出了就利用身份验证、SQL本身以及数据库备份与还原的系统安全策略。
1 实施安全策略的必要性
信息之所以要保密,是因为它具有机密性或敏感性。在信息时代,随着各种信息的剧增、社会通信的发展和计算机能力的进步,信息在产生、存储、处理、传递和利用的各个环节中都有被窃取、被篡改或被利用的危险。因此,数据安全是进行系统设计时必须考虑的问题之一。对于人口基础信息服务支撑系统来说,数据库中存放大量人口数据和档案信息,需要进行严密的保护,一旦数据被损坏,就会导致非常严重的后果。
2 利用身份验证进行数据保护
人口基础信息服务支撑系统是一个Web管理系统,研究它的安全性,首先要解决一个问题:谁有权力进入系统通常的做法就是系统维护一张允许进入的用户名单。当用户要求进入的时候,系统判断是否为合法用户。于是问题就转化为如何有效地判别一个用户是否是系统的有效用户,称之为“身份验证(Authentication)”过程。接受用户凭证,并根据指定的颁发机构来验证的过程称为身份验证。用户(或者潜在的应用程序或计算机的)标识被称为安全当事者。客户端必须提供凭据,以便服务器验证当事者的标识。确认标识后,应用程序就能授权当事者访问系统资源。
ASP.NET和IIS(International Information Service)一起为用户提供验证服务。ASP.NET有3种用户验证方式,即Windows验证、窗体Forms验证和Passport验证。
2.1 Windows身份验证 这种身份验证提供程序依靠IIS来执行所需要的客户端身份验证。在IIS验证客户端身份后,它将安全标记传递给ASP.NET。ASP.NET基于从IIS获得的安全标记构造一个WindowsPrincipal类的对象,并将其附加到应用程序的上下文中。Windows身份验证方案的优点是:身份验证使用Windows账户,所以不需要编写任何自定义的身份验证代码。确定是可能要求使用和管理单个Windows账户。因此Windows验证只适用于放在受控环境里的网站,也就是说,使用Windows登录适合于企业内网。在Internet上,网站无法控制用来访问网站的浏览器或者客户端的机器。
2.2 Forms身份验证 Forms身份验证提供程序是一个身份验证方案,它使用应用程序可使用HTML窗体直接从客户端收集凭据。客户端直接向应用程序代码提交凭据以进行身份验证。如果应用程序验证该客户端的身份,则它向该客户端发出一个Cookie。该客户端在后面的请求中提交该Cookie。如果对于受保护资源的请求不包含该Cookie,则应用程序将该客户重定向到登录页。当验证凭据时,应用程序可以多种方法存储凭据,如配置文件或SQL Server数据库。Forms身份验证方案的优点包括:允许使用任意条件自定义身份验证方案;可用于身份验证或身份确认;不需要相应的Windows帐户。确定是受制于Cookie生存期的重放攻击。因此Forms身份验证特别适合布置于互联网的应用。
2.3 Passport身份验证 Passport身份验证提供程序是一个由Microsoft提供的集中式身份验证服务,它为成员站点提供一次登录和核心配置文件的服务。当成员站点注册到Passport时,Passport服务就授予一个站点特定的密钥。Passport登录服务器使用该密钥加密和解密在成员站点和Passport登录服务器之间传递的查询字符串。Passport验证方式适合于跨站之间的应用。
人口基础信息服务支撑系统涉及的用户包括系统管理员与系统普通用户,因此客户端不容易进行控制,所以不能采用Windows身份验证,而采用Forms身份验证。这种身份验证过程允许应用程序直接从客户端请求方收集凭据(例如用户名和密码),并自己确定这些凭据的真实性。由于在进行ASP.NET验证以前首先进行IIS验证,为了保证客户端请求能够达到ASP.NET应用程序,在实现自定义身份验证方案时需要启用IIS“匿名访问”的设置。
3 利用SQL本身进行安全保护
SQL Server本身具有的安全机制主要有:
3.1 登录验证机制,也就是Windows认证模式、SQL Server 身份验证模式或者混合模式。
3.2 角色机制,利用角色,系统管理员只需对权限的种类进行划分,然后将不同的权限授予不同的角色,而不必关心有哪些具体的用户,从而简化了权限的管理,减少了权限的授予工作。
3.3 许可机制,许可,也称为特权、权限。合法用户进入服务器和数据库后,对数据对象进行的操作还要通过访问许可机制来控制。系统把所有的操作根据用户操作的性质创建成不同角色,利用角色来进行用户访问许可。如果某个用户被赋予n个角色,就拥有这n个角色所拥有操作权限的并集。SQL Server 中,可以通过SQL 命令Grant 和Revoke 来授予和取消许可。具体实例不再详细地描述。
3.4 视图机制,进行权限控制,不仅可以通过角色和许可来实现,还可以通过定义外模式来提供一定的安全保护。
3.5 存储过程机制,进行权限控制,不仅可以通过角色和许可来实现,还可以通过定义外模式来提供一定的安全保护。
3.6 加密机制,对于高度敏感性数据,例如,财务数据、军事数据、国家机密,除以上安全性措施外,还可以采用一定的加密算法,将明文转换为密文,再实现数据的存储或传输。
3.7 审计机制,审计是监视和记录用户对数据库施加的各种操作的机制,主要包括用户、操作对象、操作时间、操作类型等。审计的结果存储在数据库的审计表中。审计本身并不能直接加强系统的安全性,但是通过审计我们可以了解到有关数据库操作的详细信息,并发现安全隐患,在损失之前就采取措施。
3.8 修改sa密码,因为SQL Server 既不能修改sa账户的名称,也不能删除它,并且该账号的密码在默认情况下为空,所以我们必须对这个账号的密码进行修改,并且要求长度超过8 位,还应该是数字和字母组成的高度复杂的密码。
3.9 数据库的备份与恢复,备份和恢复是指为保护一个数据库免于数据损失或者在发生数据损失后进行数据重新创建的各种策略、步骤和方法。在人口基础信息服务支撑系统中,进行的主要是3.5存储过程机制和3.9数据库备份与恢复。对于数据库的备份和恢复,已经将系统的数据库设定在每天凌晨零点进行数据的自动备份。由于系统不需要具备很强的机密性,所以没有选择过多的SQL本身的数据保护机制。
关键词:人口 信息 系统 研究
0 引言
随着金融信息化、电子政务、电子商务等信息化建设的快速发展,政治、经济、文化等重要领域的信息系统都面临着日益严重的信息安全问题。然而,安全专家研究却发现,首先,安全设备有其技术定位和安全局限性。一般地,安全技术都是针对安全的某一个环节或方面开发的,而对于网络这个多样化的复杂系统,仅用某项或几个安全技术是无法满足所有业务的所有安全需求。其次,安全技术的简单堆砌无法提高系统的安全度。没有对具体业务的安全特点和安全环境的正确分析和认识,任何安全技术、产品都解决不了真正的安全问题。本章就针对人口基础信息服务支撑系统的安全性进行研究,提出了就利用身份验证、SQL本身以及数据库备份与还原的系统安全策略。
1 实施安全策略的必要性
信息之所以要保密,是因为它具有机密性或敏感性。在信息时代,随着各种信息的剧增、社会通信的发展和计算机能力的进步,信息在产生、存储、处理、传递和利用的各个环节中都有被窃取、被篡改或被利用的危险。因此,数据安全是进行系统设计时必须考虑的问题之一。对于人口基础信息服务支撑系统来说,数据库中存放大量人口数据和档案信息,需要进行严密的保护,一旦数据被损坏,就会导致非常严重的后果。
2 利用身份验证进行数据保护
人口基础信息服务支撑系统是一个Web管理系统,研究它的安全性,首先要解决一个问题:谁有权力进入系统通常的做法就是系统维护一张允许进入的用户名单。当用户要求进入的时候,系统判断是否为合法用户。于是问题就转化为如何有效地判别一个用户是否是系统的有效用户,称之为“身份验证(Authentication)”过程。接受用户凭证,并根据指定的颁发机构来验证的过程称为身份验证。用户(或者潜在的应用程序或计算机的)标识被称为安全当事者。客户端必须提供凭据,以便服务器验证当事者的标识。确认标识后,应用程序就能授权当事者访问系统资源。
ASP.NET和IIS(International Information Service)一起为用户提供验证服务。ASP.NET有3种用户验证方式,即Windows验证、窗体Forms验证和Passport验证。
2.1 Windows身份验证 这种身份验证提供程序依靠IIS来执行所需要的客户端身份验证。在IIS验证客户端身份后,它将安全标记传递给ASP.NET。ASP.NET基于从IIS获得的安全标记构造一个WindowsPrincipal类的对象,并将其附加到应用程序的上下文中。Windows身份验证方案的优点是:身份验证使用Windows账户,所以不需要编写任何自定义的身份验证代码。确定是可能要求使用和管理单个Windows账户。因此Windows验证只适用于放在受控环境里的网站,也就是说,使用Windows登录适合于企业内网。在Internet上,网站无法控制用来访问网站的浏览器或者客户端的机器。
2.2 Forms身份验证 Forms身份验证提供程序是一个身份验证方案,它使用应用程序可使用HTML窗体直接从客户端收集凭据。客户端直接向应用程序代码提交凭据以进行身份验证。如果应用程序验证该客户端的身份,则它向该客户端发出一个Cookie。该客户端在后面的请求中提交该Cookie。如果对于受保护资源的请求不包含该Cookie,则应用程序将该客户重定向到登录页。当验证凭据时,应用程序可以多种方法存储凭据,如配置文件或SQL Server数据库。Forms身份验证方案的优点包括:允许使用任意条件自定义身份验证方案;可用于身份验证或身份确认;不需要相应的Windows帐户。确定是受制于Cookie生存期的重放攻击。因此Forms身份验证特别适合布置于互联网的应用。
2.3 Passport身份验证 Passport身份验证提供程序是一个由Microsoft提供的集中式身份验证服务,它为成员站点提供一次登录和核心配置文件的服务。当成员站点注册到Passport时,Passport服务就授予一个站点特定的密钥。Passport登录服务器使用该密钥加密和解密在成员站点和Passport登录服务器之间传递的查询字符串。Passport验证方式适合于跨站之间的应用。
人口基础信息服务支撑系统涉及的用户包括系统管理员与系统普通用户,因此客户端不容易进行控制,所以不能采用Windows身份验证,而采用Forms身份验证。这种身份验证过程允许应用程序直接从客户端请求方收集凭据(例如用户名和密码),并自己确定这些凭据的真实性。由于在进行ASP.NET验证以前首先进行IIS验证,为了保证客户端请求能够达到ASP.NET应用程序,在实现自定义身份验证方案时需要启用IIS“匿名访问”的设置。
3 利用SQL本身进行安全保护
SQL Server本身具有的安全机制主要有:
3.1 登录验证机制,也就是Windows认证模式、SQL Server 身份验证模式或者混合模式。
3.2 角色机制,利用角色,系统管理员只需对权限的种类进行划分,然后将不同的权限授予不同的角色,而不必关心有哪些具体的用户,从而简化了权限的管理,减少了权限的授予工作。
3.3 许可机制,许可,也称为特权、权限。合法用户进入服务器和数据库后,对数据对象进行的操作还要通过访问许可机制来控制。系统把所有的操作根据用户操作的性质创建成不同角色,利用角色来进行用户访问许可。如果某个用户被赋予n个角色,就拥有这n个角色所拥有操作权限的并集。SQL Server 中,可以通过SQL 命令Grant 和Revoke 来授予和取消许可。具体实例不再详细地描述。
3.4 视图机制,进行权限控制,不仅可以通过角色和许可来实现,还可以通过定义外模式来提供一定的安全保护。
3.5 存储过程机制,进行权限控制,不仅可以通过角色和许可来实现,还可以通过定义外模式来提供一定的安全保护。
3.6 加密机制,对于高度敏感性数据,例如,财务数据、军事数据、国家机密,除以上安全性措施外,还可以采用一定的加密算法,将明文转换为密文,再实现数据的存储或传输。
3.7 审计机制,审计是监视和记录用户对数据库施加的各种操作的机制,主要包括用户、操作对象、操作时间、操作类型等。审计的结果存储在数据库的审计表中。审计本身并不能直接加强系统的安全性,但是通过审计我们可以了解到有关数据库操作的详细信息,并发现安全隐患,在损失之前就采取措施。
3.8 修改sa密码,因为SQL Server 既不能修改sa账户的名称,也不能删除它,并且该账号的密码在默认情况下为空,所以我们必须对这个账号的密码进行修改,并且要求长度超过8 位,还应该是数字和字母组成的高度复杂的密码。
3.9 数据库的备份与恢复,备份和恢复是指为保护一个数据库免于数据损失或者在发生数据损失后进行数据重新创建的各种策略、步骤和方法。在人口基础信息服务支撑系统中,进行的主要是3.5存储过程机制和3.9数据库备份与恢复。对于数据库的备份和恢复,已经将系统的数据库设定在每天凌晨零点进行数据的自动备份。由于系统不需要具备很强的机密性,所以没有选择过多的SQL本身的数据保护机制。