精华内容
下载资源
问答
  • 网络安全基本概念

    千次阅读 2016-02-27 21:12:59
    网络安全涉及到的概念比较多,在此总结归纳一下。1.对称加密(Symmetric Cryptography)加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种加密的方式是对称加密。对称加密是最快速、最简单...

    网络安全涉及到的概念比较多,在此总结归纳一下。

    1.对称加密(Symmetric Cryptography)

    加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种加密的方式是对称加密。对称加密是最快速、最简单的一种加密方式,对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。

    对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。


    2.非对称加密

    非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

    甲乙之间使用非对称加密的方式完成了重要信息的安全传输。

    1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。
    2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。
    3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。
    在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。


    3.公钥加密,私钥解密

    上述非对称加密章节中的情形就是公钥加密,私钥解密的情形。下面的图更加直观.


    4.私钥签名

    私钥签名其实就是用私钥对数据进行加密,私钥加密的数据是独一无二,无法被篡改的,因为私钥是唯一的,而公钥是公布出来的。所以,私钥签名就相当于自己的数字签名,数字签名主要作用是:

    (1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
    (2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。

    通俗来说就是:

    每个用户都有一对私钥和公钥。
    私钥用来进行解密和签名,是给自己用的。
    公钥由本人公开,用于加密和验证签名,是给别人用的。
    当该用户发送文件时,用私钥签名,别人用他给的公钥解密,可以保证该信息是由他发送的。即数字签名。
    当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他接收到。可以避免被其他人看到。

    5.数字证书

    数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。


    展开全文
  • 为了更好地了解并实现Web容器的安全管理,笔者以两篇博客的篇幅来介绍,即:《Web容器安全管理(上)——Java EE的安全概念》 和 《Web容器安全管理(下)——容器基本身份验证》。上篇博客已经介绍了Java EE安全的...

      为了更好地了解并实现Web容器的安全管理,笔者以两篇博客的篇幅来介绍,即:《Web容器安全管理(上)——Java EE的安全概念》《Web容器安全管理(下)——容器基本身份验证》。上篇博客已经介绍了Java EE安全的基本概念,打下了基础。在本文,我们详述Web容器提供的基本身份验证方式。

    1、容器声明式基本身份验证

      假设你已经开发好了应用程序,现在想针对几个页面进行保护,只有通过身份验证且具备足够权限的用户,才可以浏览这些页面。这个需求有几个部分必须实现:
      (1)身份验证的方式
      (2)授予访问页面的权限
      (3)定义用户

      这里采用Web容器提供的最简单的基本(Basic)验证,在访问藉此受保护的资源时,浏览器会弹出对话框要求输入用户名和密码。如下图所示,是chrome弹出的身份验证对话框。

    SouthEast

      使用Web容器提供的基本身份验证功能,需要在应用程序的web.xml中定义:

    <login-config>
        <auth-method>BASIC</auth-method>
    </login-config>

      接着要授予指定角色访问页面的权限,所以要先定义角色,在授权之前,必须在应用程序中,定义角色名称。可以在web.xml中如下定义:

    <security-role>
        <role-name>admin</role-name>
    </security-role>
    
    <security-role>
        <role-name>manager</role-name>
    </security-role>

      在这里定义了admin与manager两个角色名称。接着定义哪些URL可以被哪些角色以哪种HTTP方法访问。例如设置/admin下所有页面,无论使用哪个HTTP方法,都只能被admin角色访问:

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Admin</web-resource-name>
            <url-pattern>/admin/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>
        </auth-constraint>
    </security-constraint>

      如果有多个角色可以访问某些页面,则<auth-constraint>标签可以设置多个<role-name>标签。在这里看不到任何HTTP方法规范的定义,默认就是所有HTTP方法都受到限制。再来看另一个例子:

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Manager</web-resource-name>
            <url-pattern>/manager/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>
            <role-name>manager</role-name>
        </auth-constraint>
    </security-constraint>

      在这个设置中,对于/manager下的所有页面,根据&http-method>的设置,只有admin或manager才可以使用GET与POST方法进行访问。请留意这个语义“只有admin或manager才可以使用GET与POST方法进行访问”,这表示,其他HTTP方法,如PUT、TRACE、DELETE、HEAD和OPTIONS等,无论是否具备admin或manager角色,都可以访问!

      若没有设置<http-method>,则所有HTTP方法都受到限制。设置了<http-method>,则只有被设置HTTP受到限制,其他方法不受限制。如果没有设置<auth-constraint>标签,或<auth-constraint>标签中设置了<role-name>*</role-name>,表示任何角色都可以访问。如果直接编写了<auth-constraint/>,那就没有任何角色可以访问了

      下面是一个完整的设置范例:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
      <display-name>SecurityBasicDemo</display-name>
    
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    
      <session-config>
      <!-- 在工程的web.xml文件中设置session失效时间,时间单位为分钟   -->
      <!-- Tomcat默认session超时时间为30分钟,可以根据需要修改,负数或0为不限制session失效时间。-->
        <session-timeout>30</session-timeout>
        <!--代码中设置 session.setMaxInactiveInterval(30*60); 以秒为单位-->
      </session-config>
    
      <security-constraint>
        <web-resource-collection>
            <web-resource-name>Admin</web-resource-name>
            <url-pattern>/admin/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>
        </auth-constraint>
      </security-constraint>
    
      <security-constraint>
        <web-resource-collection>
            <web-resource-name>Manager</web-resource-name>
            <url-pattern>/manager/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>
            <role-name>manager</role-name>
        </auth-constraint>
      </security-constraint>
    
      <login-config>
        <auth-method>BASIC</auth-method>
      </login-config>
    
      <security-role>
        <role-name>admin</role-name>
      </security-role>
    
      <security-role>
        <role-name>manager</role-name>
      </security-role>
    
    </web-app>

      就Web应用程序的设置部分,工作已经结束!但在将应用程序部署至服务器时,在服务器上设置角色与用户或组的对应,设置的方式并非Java EE的标准,而是各服务器都有所不同。例如在Tomcat中,可以在/conf/tomcat-users.xml中定义:

    <tomcat-users version="1.0" xmlns="http://tomcat.apache.org/xml"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd">
      <role rolename="manager"/>
      <role rolename="admin"/>
      <user username="caterpillar" password="123456" roles="admin,manger"/>
      <user username="momor" password="654321" roles="manager"/>
    </tomcat-users>

      要启用Tomcat的安全管理功能,还必须在Server Options中选取Enable security,才会读取tomcat-users.xml中的设置信息。

    SouthEast

      在这个设置中caterpillar同时具备admin与manager角色,而momor则具备manager角色。在启动应用程序之后,如果访问/admin或/manager,就会出现对话框要求输入名称、密码。如果输入错误,就会被一起要求输入直到正确为止。

    SouthEast

      如果访问/admin下的页面,只有输入了caterpillar名称及正确的密码,才可以正确浏览到页面。如果输入了momor名称及正确的密码,会提示权限不足,拒绝访问。

    SouthEast

      上面虽然输入了momor名称及正确的密码,通过了浏览器的身份验证,但授权失败,弹出403画面。

    SouthEast

      tomcat-user.xml是Tomcat预设的Realm(不知道什么是Realm,请参看上一篇博文),角色、用户名称、密码都存储在这个xml文件中。你也可以改用数据库表格,这需要额外配置。

    2、容器声明式基本身份验证的原理

      在初次请求某个受保护的URL时,容器会检查请求中是否包括Authorization标头,如果没有的话,则容器会响应401 Unauthorized的状态码与信息,以及WWW-Authenticate标头给浏览器,浏览器收到WWW-Authenticate标头之后,就会出现对话框要求用户输入名称及密码,原理如下图所示:

    SouthEast

      如果用户在对话框中输入名称、密码后按下确定键,则浏览器会将名称密码以BASE64方式编码,然后放在Authorization标头中送出。容器会检查请求中是否包括Authorization标头,并验证名称、密码是否正确,如果正确,就将资源传送给浏览器。如下图所示:

    SouthEast

      BASE64是将二进制的字节编码为ASCII序列的编码方式,在HTTP中可用来传送内容较长的数据。编码并非加密,只要译码方式正确,就可以取得原本的信息

      接下来在关闭浏览器之前,只要是对服务器资源的请求,每次都包括Authorization标头,而服务器每次也都会检查是否有Authorization标头,所以登录期间会一起持续到关闭浏览器为止。如下图所示,为基本身份验证的流程图。

    SouthEast

      由于使用的是浏览器提供的对话框输入名称、密码,所以基本身份验证时无法自定义登录画面。由于传送名称、密码时使用的是Authenticate标头,无法设计注销机制,关闭浏览器是结束会话的唯一方式。

    3、容器声明式窗体身份验证

      如果需要自定义登录页面,以及登录错误的页面,则可以改用容器所提供的窗体(Form)验证。要将之前的基本身份验证改为窗体验证的话,可以在web.xml中修改<login-config>的设置:

    //略...
    <login-config>
        <auth-method>FORM</auth-method>
        <form-login-config>
            <form-login-page>/login.html</form-login-page>
            <form-error-page>/error.html</form-error-page>
        </form-login-config>
    </login-config>
    //略...

      在<auth-method>的设置从BASIC改为FORM。由于使用了窗体网页进行登录,所以必须告诉容器,登录页面是哪个,登录失败页面是哪个。这是由<form-login-config>标签对来设置,设置时必须以斜杠开始,也就是从应用程序根目录开始的URL路径。

      接下来就可设置自己的窗体登录页面,但必须注意!窗体发送的URL必须是j_security_check,发送名称的请求参数必须是j_username,发送密码的请求参数必须是j_password。以下是login.html的简单示例:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>登录页面</title>
    </head>
    <body>
        <form action="j_security_check" method="post">
            名称:<input type="text" name="j_username"><br>
            密码:<input type="password" name="j_password"><br>
            <input type="submit" value="送出"/>
        </form>
    </body>
    </html>

      error.html的简单示例:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>登录失败网页</title>
    </head>
    <body>
        <h1>用户名或者密码错误,登录失败</h1>
        <a href='login.html'>返回登录页面</a>
    </body>
    </html>

      登录时的页面如图所示:

    SouthEast

      登录失败时的页面如图所示:

    SouthEast

    4、容器窗体身份验证的原理

      来了解一下容器利用窗体进行验证的原理。当使用窗体身份验证时,如果要访问受保护的资源,容器会检查用户有无登录,方式是查看HttpSession中有无”javax.security.auth.subject“属性,若没有这个属性,则表示没有经过容器的验证流程,则转发至登录页面,用户输入名称、密码并发送后,若验证成功,则容器会在HttpSession中设置属性名称”javax.security.auth.subject“的对应值javax.security.auth.subject实例。具体的流程如下图所示:

    SouthEast

      用户是否登录是通过HttpSession的”javax.security.auth.subject“属性来判断,所以要让此次登录失败,可以调用HttpSession的invalidate()方法,因此窗体验证时可以设计注销机制。

      除了基本身份验证与窗体验证之外,在<auth-method>中还可以设置DIGEST或CLIENT-CERT。

      DIGEST即所谓”摘要验证“,浏览器也会出现对话框输入名称、密码,而后通过Authorization标头传送,只不过并非使用BASE64来编码名称、密码。浏览器会直接传送名称,但对密码则先进行(MD5)摘要演算(非加密),得到理论上唯一且不可逆的字符串再传送,服务器根据名称从后端取得密码,以同样的方式作摘要演算,再比对浏览器送来的摘要字符串是否符合,如果符合就验证成功。由于网络上传送的并不是真正的密码,而不是不可逆的摘要,密码不会被得知,理论上比较安全。不过Java EE规范中并无要求一定得支持DIGEST的验证方式(看厂商的需要,Tomcat是支持的)。

      CLIENT-CERT也是用对话框的方式来输入名称与密码,因为使用PKC(Public Key Certificate)作加密,可保证数据传送时的机密性及完整性,但客户端需要安装证书(Certificate),在一般用户及应用程序之间并不常采用。

    5、编程式安全管理

      Web容器的声明式安全管理,仅能针对URL来设置哪些资源必须受到保护,如果打算依据不同的角色在同一个页面中设置可访问的资源,例如只有站长或版面管理员可以看到删除整个讨论组的功能,普通用户不行,那么显然无法单纯使用声明式安全管理来实现。

      在Servlet3.0中,HttpServletRequest新增了三个与安全有关的方法:authenticate()、login()、logout()。

      首先来看authenticate()方法,搭配先前的声明式身份验证的web.xml的设置,你可以决定程序中哪一段逻辑,只有通过了容器身份验证的用户才可以看到。

    package cc.openhome;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.security.AccessControlException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @WebServlet(
            name="SecurityServlet",
            urlPatterns = { "/security" }
            )
    public class SecurityServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public SecurityServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            out.println("任意其他用户就可以看到的数据一<br>");
            try {
                request.authenticate(response);
                out.println("<h1>必须由容器验证通过的用户才可以看到的数据</h1><br>");
            } catch (AccessControlException  e) {
                e.printStackTrace();
            }
            out.println("任意其他用户就可以看到的数据二<br>");
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }

      authenticate()方法会检查用户是否已经通过了容器验证,否则根据web.xml中的设置,要求进行身份验证,若通过验证,则可显示接下来的内容。

    SouthEast

      login()在调用时则可以提供用户名称、密码,利用容器设置的身份验证信息来进行验证。例如,以下Servlet只有在提供的username、password请求参数正确时,才可以看到相应的数据。

    package cc.openhome;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.security.AccessControlException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @WebServlet(name = "SecuityLoginServlet", urlPatterns = { "/securityLogin" })
    public class SecuityLoginServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public SecuityLoginServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            out.println("任意其他用户就可以看到的数据一<br>");
            try {
                String user = request.getParameter("user");
                String passwd = request.getParameter("passwd");
                request.login(user, passwd);
                out.println("<h1>必须由容器验证通过的用户才可以看到的数据</h1><br>");
            } catch (AccessControlException  e) {
                e.printStackTrace();
            } finally {
                request.logout();
            }
            out.println("任意其他用户就可以看到的数据二<br>");
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    }

      在浏览器的URL地址栏需要输入user与passwd参数,若参数通过验证,则可显示接下来的内容。

    SouthEast

      

    展开全文
  • 网络管理技术的基本概念

    千次阅读 2014-09-14 10:47:05
    网络管理基本概念什么是网络管理? 网络管理是指规划

    网络管理的基本概念:什么是网络管理?

    网络管理是指规划、监督、设计、控制网络资源和网络的各种活动,使网络的性能达到最优。

    网络管理的层次划分?

    网元管理层、网络管理层、服务管理层、事务管理层。

    网元管理层:各种网络设备(路由器、交换机)。网络管理层:网络拓扑、设备之间的关系,网络的整体性能。服务管理层:用户的带宽、时延、费率、利用率。事务管理层:运行质量分析报告、运营成本与决算、运行预测与未来升级要求等。

    网络管理的结构模式?

    集中式网络管理、层次化网络管理、分布式网络管理。

    网络管理的功能有哪些?

    故障管理、配置管理、性能管理、计费管理、安全管理。(FCPAS)

    网络管理的协议和技术?

    SNMP、CMIP、RMON技术、基于web的网络管理技术、网络管理软件PS:SNMP和CMIP协议的区别?1,、cmip变量不仅用于转发信息还可以完成各种作业,SNMP不具备这样的功能。2、cmip更加安全,它内置了安全机制。3、cmip功能强大,在单个请求下可以实现多种功能。4、cmip在异常网络条件下有更好的报告功能。但是由于SNMP是Internet组织用来管理tcp/ip互联网和以太网的协议,实现、理解和排错很简单,因此目前计算机网络中广泛使用SNMP协议,cmip协议主要用于电信网的管理和研究之中。

    网络管理中的故障与排除?

    物理故障、逻辑故障、主机故障。PS:端口指示灯:绿色代表正常,绿色闪烁代表收发数据,橙色代表不可用,红色代表故障。

    常用的诊断方法:结构化方法:自顶向下、自底向上、中间分割;非结构化方法:尝试法、替换法、隔离法。



    展开全文
  • 安全基本概念

    千次阅读 2007-04-28 18:48:00
    计算机安全性所谓计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、...计算机安全技术、安全管理、安全评价、安全产品以及计算机犯罪与侦察、计算机安全法律、安全监察等

    计算机安全性

    所谓计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。计算机安全不仅涉及到计算机系统本身的技术问题、管理问题,还涉及法学、犯罪学、心理学的问题。其内容包括了计算机安全理论与策略;计算机安全技术、安全管理、安全评价、安全产品以及计算机犯罪与侦察、计算机安全法律、安全监察等等。概括起来,计算机系统的安全性问题可分为三大类,即:技术安全类、管理安全类和政策法律类
     
    1.技术安全 是指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。

    2.管理安全 技术安全之外的,诸如软硬件意外故障、场地的意外事故、管理不善导致的计算机设备和数据介质的物理破坏、丢失等安全问题,视为管理安全
     
    3.政策法律类  则指政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令,本书只讨论技术安全类。

    -------------------------------------------------------------------------------------------------------------------------------------------------------

     

    为降低进而消除对系统的安全攻击,尤其是弥补原有系统在安全保护方面的缺陷,在计算机安全技术方面逐步建立了一套可信标准。在目前各国所引用或制定的一系列安全标准中,最重要的当推1985年美国国防部(DoD)正式颁布的 《DoD可信计算机系统评估标准》(Trusted Computer System Evaluation Criteria,简记为TCSEC)[1]或DoD85)。

    制定这个标准的目的主要有:
    1. 提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度做出评 估。
    2. 给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好的满足敏感应用 的安全需求。

    TCSEC又称桔皮书,1991年4月美国NCSC(国家计算机安全中心)颁布了《可信计算机系统评估标准关于可信数据库系统的解释》( Trusted Database Interpretation 简记为TDI,即紫皮书)。将TCSEC扩展到数据库管理系统。TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。 以下我们着重介绍 TDI/TCSEC 标准的基本内容。

    R1 安全策略(Security Policy)
    R1.1 自主存取控制(Discretionary Access Control,简记为DAC)
    R1.2 客体重用(Object Reuse)
    R1.3 标记(Labels)
     R1.3.1 标记完整性(Label Integrity)
     R1.3.2 标记信息的扩散(Labeled Information Exploration)
     R1.3.3 主体敏感度标记(Subject Sensitivity Labels)
     R1.3.4 设备标记(Device Labels)
    R1.4 强制存取控制(Mandatory Access Control,简记为MAC)

    R2 责任(Accountability)
    R2.1 标识与鉴别(Identification & Authentication)
     R2.1.1 可信路径(Trusted Path)
    R2.2 审计(Audit)

    R3 保证(Assurance)
    R3.1 操作保证(Operational Assurance)
     R3.1.1 系统体系结构(System Architecture)
     R3.1.2 系统完整性(System Integrity)
     R3.1.3 隐蔽信道分析(Covert Channel Analysis)
     R3.1.4 可信设施管理(Trusted Facility Management)
     R3.1.5 可信恢复(Trusted Recovery)
    R3.2 生命周期保证(Life Cycle Assurance)
     R3.2.1 安全测试(Security Testing)  
     R3.2.2 设计规范和验证(Design Specification & Verification)
     R3.2.3 配置管理(Configuration Management)
     R3.2.4 可信分配(Trusted Distribution)

    R4 文档(Documentation)
     R4.1 安全特性用户指南(Security Features User’s Guide)
     R4.2 可信设施手册(Trusted Facility Manual)
     R4.3 测试文档(Test Documentation)
     R4.4 设计文档(Design Documentation)
     
    根据计算机系统对上述各项指标的支持情况,TCSEC(TDI)将系统划分为四组(division)七个等级,依次是D;C(C1,C2);B(B1,B2,B3);A(A1),按系统可靠或可信程度逐渐增高。
    TCSEC/TDI安全级别划分
    安全级别/定 义
    A1/验证设计(Verified Design)
    B3/安全域(Security Domains)
    B2/结构化保护(Structural Protection)
    B1/标记安全保护(Labeled Security Protection)
    C2/受控的存取保护(Controlled Access Protection)
    C1/自主安全保护(Discretionary Security Protection) 
    D /最小保护(Minimal Protection)
     
    在TCSEC中建立的安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。
    D级 D级是最低级别。保留D级的目的是为了将一切不符合更高标准的系统,统统归于D组。如DOS就是操作系统中安全标准为D的典型例子。它具有操作系统的基本功能,如文件系统,进程调度等等,但在安全性方面几乎没有什么专门的机制来保障。

    C1级 只提供了非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。现有的商业系统往往稍作改进即可满足要求。

    C2级 实际是安全产品的最低档次,提供受控的存取保护,即将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。很多商业产品已得到该级别的认证。达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色,如操作系统中Microsoft的Windows NT 3.5,数字设备公司的Open VMS VAX 6.0和6.1。数据库产品有Oracle公司的Oracle 7, Sybase公司的 SQL Server 11.0.6 等。
     
    B1级  标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制。B1级能够较好地满足大型企业或一般政府部门对于数据的安全需求,这一级别的产品才认为是真正意义上的安全产品。满足此级别的产品前一般多冠以“安全”(Security)或“可信的”(Trusted)字样,作为区别于普通产品的安全产品出售。例如,操作系统方面,典型的有数字设备公司的SEVMS VAX Version 6.0,惠普公司的HP-UX BLS release 9.0.9+ 。数据库方面则有Oracle公司的Trusted Oracle 7, Sybase公司的Secure SQL Server version 11.0.6,Informix公司的Incorporated INFORMIX-OnLine / Secure 5.0等。

    B2级  结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC。 从互连网上的最新资料[2]看,经过认证的、B2级以上的安全系统非常稀少。例如,符合B2标准的操作系统只有Trusted Information Systems公司的Trusted XENIX一种产品,符合B2标准的网络产品只有Cryptek Secure Communications公司的LLC VSLAN一种产品,而数据库方面则没有符合B2标准的产品。

    B3级  安全域。该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。

    A1级  验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。

    B2以上的系统标准更多地还处于理论研究阶段,产品化以至商品化的程度都不高,其应用也多限于一些特殊的部门如军队等。但美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别或更高安全级别下放到商业应用中来,并逐步成为新的商业标准。

    可以看出,支持自主存取控制的DBMS大致属于C级,而支持强制存取控制的DBMS则可以达到B1级。当然,存取控制仅是安全性标准的一个重要方面(即安全策略方面)不是全部。为了使DBMS达到一定的安全级别,还需要在其它三个方面提供相应的支持。例如审计功能就是DBMS达到C2以上安全级别必不可少的一项指标。

    -------------------------------------------------------------------------------------------------------------------------------------------------------

    数据库的安全性

    用户标识和鉴别是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。例如,使用用户名和口令。

    数据库安全性所关心的主要是DBMS的存取控制机制。数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现。 存取控制机制主要包括两部分: (1)定义用户权限,并将用户权限登记到数据字典中。 (2)合法权限检查,每当用户发出存取数据库的操作请求后(请求一般应包括操作类型、操作对象和操作用户等信息),DBMS查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。

    当前大型的DBMS一般都支持C2级中的 自主存取控制 (DAC)有些DBMS同时还支持B1级中的 强制存取控制(MAC)。在自主存取控制中,用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。因此自主存取控制非常灵活。在强制存取控制中,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。强制存取控制因此相对比较严格。

    自主存取控制(DAC)

    大型数据库管理系统几乎都支持自主存取控制,目前的SQL标准也对自主存取控制提供支持,这主要通过SQL 的GRANT语句和REVOKE语句来实现。 用户权限是由两个要素组成的:数据对象和操作类型。定义一个用户的存取权限就是要定义这个用户可以在哪些数据对象上进行哪些类型的操作。在数据库系统中,定义存取权限称为授权(Authorization)。 用户权限定义中数据对象范围越小授权子系统就越灵活。例如上面的授权定义可精细到字段级,而有的系统只能对关系授权。授权粒度越细,授权子系统就越灵活,但系统定义与检查权限的开销也会相应地增大。 衡量授权子系统精巧程度的另一个尺度是能否提供与数据值有关的授权。上面的授权定义是独立于数据值的,即用户能否对某类数据对象执行的操作与数据值无关,完全由数据名决定。反之,若授权依赖于数据对象的内容,则称为是与数据值有关的授权。 有的系统还允许存取谓词中引用系统变量,如一天中的某个时刻,某台终端设备号。这样用户只能在某台终端、某段时间内存取有关数据,这就是与时间和地点有关的存取权限。另外,我们还可以在存取谓词中引用系统变量。如终端设备号,系统时钟等,这就是与时间地点有关的存取权限,这样用户只能在某段时间内,某台终端上存取有关数据。 自主存取控制能够通过授权机制有效地控制其他用户对敏感数据的存取。但是由于用户对数据的存取权限是“自主”的,用户可以自由地决定将数据的存取权限授予何人、决定是否也将“授权”的权限授予别人。在这种授权机制下,仍可能存在数据的“无意泄露”。


    强制存取控制(MAC)

    所谓MAC是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。它不是用户能直接感知或进行控制的。MAC适用于那些对数据有严格而固定密级分类的部门,例如军事部门或政府部门。 在MAC中,DBMS所管理的全部实体被分为主体和客体两大类。 主体是系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程。客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等等。对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)。 敏感度标记被分成若干级别,例如绝密(Top Secret)、机密(Secret)、可信(Confidential)、公开(Public)等。主体的敏感度标记称为许可证级别(Clearance Level),客体的敏感度标记称为密级(Classification Level)。MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。

    当某一用户(或一主体)以标记label注册入系统时,系统要求他对任何客体的存取必须遵循如下规则:
    (1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;
    (2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。 在某些系统中,第(2)条规则与这里的规则有些差别。这些系统规定:仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体,即用户可以为写入的数据对象赋予高于自己的许可证级别的密级。这样一旦数据被写入,该用户自己也不能再读该数据对象了。这两种规则的共同点在于它们均禁止了拥有高许可证级别的主体更新低密级的数据对象,从而防止了敏感数据的泄漏。

    强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。 前面已经提到,较高安全性级别提供的安全保护要包含较低级别的所有保护,因此在实现MAC时要首先实现DAC,即DAC与MAC共同构成DBMS的安全机制。系统首先进行DAC检查, 对通过DAC检查的允许存取的数据对象再由系统自动进行MAC检查,只有通过MAC检查的数据对象方可存取。 
     
    视图机制

    进行存取权限控制时我们可以为不同的用户定义不同的视图,把数据对象限制在一定的范围内,也就是说,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 视图机制间接地实现了支持存取谓词的用户权限定义。在不直接支持存取谓词的系统中,我们可以先建立视图,然后在视图上进一步定义存取权限。

    审计

    为了使DBMS达到一定的安全级别,还需要在其它方面提供相应的支持。例如按照TDI/TCSEC标准中安全策略的要求,“审计”功能就是DBMS达到C2以上安全级别必不可少的一项指标。 因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃、破坏数据的人总是想方设法打破控制。审计功能把用户对数据库的所有操作自动记录下来放入审计日志(Audit Log)中。DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 审计通常是很费时间和空间的,所以DBMS往往都将其作为可选特征,允许DBA根据应用对安全性的要求,灵活地打开或关闭审计功能。审计功能一般主要用于安全性要求较高的部门。

    数据加密

    对于高度敏感性数据,例如财务数据、军事数据、国家机密,除以上安全性措施外,还可以采用数据加密技术。 数据加密是防止数据库中数据在存储和传输中失密的有效手段。加密的基本思想是根据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术语为密文,Cipher text),从而使得不知道解密算法的人无法获知数据的内容。

    加密方法主要有两种,一种是替换方法,该方法使用密钥(Encryption Key)将明文中的每一个字符转换为密文中的一个字符。另一种是置换方法,该方法仅将明文的字符按不同的顺序重新排列。单独使用这两种方法的任意一种都是不够安全的。但是将这两种方法结合起来就能提供相当高的安全程度。采用这种结合算法的例子是美国1977年制定的官方加密标准,数据加密标准(Data Encryption Standard,简称DES)。


    统计数据库的安全性
    一般地,统计数据库允许用户查询聚集类型的信息(例如合计、平均值等),但是不允许查询单个记录信息。例如,查询“程序员的平均工资是多少?”是合法的,但是查询“程序员张勇的

    工资是多少?”就不允许。 在统计数据库中存在着特殊的安全性问题,即可能存在着隐蔽的信息通道,使得可以从合法的查询中推导出不合法的信息。例如下面两个查询都是合法的:
    本公司共有多少女高级程序员?
    本公司女高级程序员的工资总额是多少?
    如果第一个查询的结果是“1”,那么第二个查询的结果显然就是这个程序员的工资数。这样统计数据库的安全性机制就失效了。为了解决这个问题,我们可以规定任何查询至少要涉及N(N足够大)个以上的记录。但是即使这样,还是存在另外的泄密途径,看下面的例子:
    某个用户A想知道另一用户B的工资数额,他可以通过下列两个合法查询获取:
    用户A和其他N个程序员的工资总额是多少?
    用户B和其他N个程序员的工资总额是多少?
    假设第一个查询的结果是X,第二个查询的结果是Y,由于用户A知道自己的工资是Z,那么他可以计算出用户B的工资=Y-(X-Z)。


    无论采用什么安全性机制,都仍然会存在绕过这些机制的途径。好的安全性措施应该使得那些试图破坏安全的人所花费的代价远远超过他们所得到的利益,这也是整个数据库安全机制设计的目标。

    -------------------------------------------------------------------------------------------------------------------------------------------------------

    小结
     随着计算机特别是计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要。DBMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。 《可信计算机系统评测标准》TCSEC/TDI是目前各国所引用或制定的一系列安全标准中最重要的一个。 TCSEC/TDI从安全策略、责任、保证和文档四个方面描述了安全性级别的指标。按照这些指标,目前许多大型DBMS 达到了C2级,其安全版本达到了B1。 实现数据库系统安全性的技术和方法有多种,最重要的是存取控制技术和审计技术。C2级的DBMS必须具有自主存取控制功能和初步的审计功能,B1的DBMS必须具有强制存取控制和增强的审计功能。自主存取控制功能一般是通过SQL 的GRANT语句和REVOKE语句来实现的。 

    展开全文
  •  到目前为止,Web容器已经实现了许多功能,而在安全这方面,容器也提供了机制来满足安全的基本需求,当没办法做得更好时,适当地使用容器进行安全管理不仅方便,而且有一定的防护效果。  为了更好地了解并实现Web
  • 三个基本概念 计算机安全 计算机安全处理的是计算机系统用户对未经授权的行为的预防和检测。 授权是定义的核心。 其有3个核心目标,如下: 保密性(Confidentiality) 对信息的访问和公开进行授权限制,...
  • 系统安全基本概念和权限控制系统的类型
  • 数据库管理系统的定义 数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供了访问数据的方法,包括数据库的建立,对数据的操纵,检索和数据控制! 数据库管理系统的作用: ...
  • 测评项目 测评标准 测评结果 符合情况 8.1.6 安全管理制度 8.1.6.1 安全策略 ... a) 应对安全管理活动中的各类管理内容建立安全管理制度;     b) 应对管理人员或操作人员执行的日常...
  • 用户账号管理基本概念

    千次阅读 2008-03-21 13:58:00
    什么是用户账号管理 用户账号一般包括普通用户账号、管理账号和系统账号。为了鉴别用户身份以及加强系统安全,系统为每个使用它的人分配了一个账号,这就是普通用户账号。每个人拥有一个独立的普通用户账号,每个...
  • Spring事务管理回顾——基本概念

    千次阅读 2016-05-26 17:07:29
    一,事务的基本概念 什么是事务? 逻辑上的一组操作,这组操作要么全都成功,要么全都失败。例如,我购买完一个课程,要进行支付,需要首先去我的账户表中减去需要支付的金额,然后更新订单状态,支付才算是成功,...
  • 运维安全管理

    千次阅读 2019-05-17 14:23:58
    安全管理是顺应信息安全的需要而产生的。其主要目标是确保信息的安全性。安全性似乎只不易遭到已知风险的侵袭,并且尽可能的规避未知风险。 1.1、目标 安全管理的目标是要保护信息的价值,取决于机密性、完整性和...
  • 二、管理要求 标记说明:保护数据在存储、传输、处理过程中不被泄漏、破坏和免受未授权的修改的信息安全类要求(简记为S);保护系统连续正常的运行,免受对系统的未授权修改、破坏而导致系统...安全管理制度 管
  • 文章目录1 实体的概念与数据库1.1 数据库的特点1.2 实体存储的的基本单元2 数据库管理系统2.1 DBMS的概念2.2 DBMS的功能2.3 应用程序与DBMS3 SQL与T-SQL3.1 SQL与SQL3.2 T-SQL的组成 1 实体的概念与数据库 1.1 ...
  • IMS基本概念安全服务和安全机制

    千次阅读 2009-12-17 22:13:00
    3.6 IMS中的安全服务本节打算解释IMS网络怎么实现安全。...有其它的更好的书专门会介绍这些方面。取而代之的是,本节会从较高的角度来展示安全...在读完本节后,读者应该熟悉IMS安全体系结构的主要概念,并且理解下面的模
  • 大家都知道,HTTP 本身是明文传输的,没有经过任何安全处理,...关于HTTPS的那些基本概念 需求推进技术革命,互联网是如此诞生,HTTPS也是这样。人们有在互联网上分享和浏览信息的需求,所以信息的传输技术由此诞
  • 操作系统的安全管理

    千次阅读 2017-06-03 15:15:35
    OS的安全管理
  • SSM框架的基本概念什么是ssm框架?)

    万次阅读 多人点赞 2018-05-14 10:50:15
    也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。在OOP设计中,它导致了大量代码的重复,...
  • 十八、信息安全管理制度 (一)定义 指医疗机构按照信息安全管理相关法律法规和技术标准要求,对医疗机构患者诊疗信息的收集、存储、使用、传输、处理、发布等进行全流程系统性保障的制度。 (二)基本要求 1....
  • NFV基本概念

    万次阅读 多人点赞 2019-07-29 11:26:27
    1.NFV相关基本概念 NFV(网络功能虚拟化) SDN(软件定义网络) 一个NFV的标准架构包括NFV infrastructure(NFVI),MANO(Management and Orchestration)和VNFs,三者是标准架构中顶级的概念实体。 NFVI(NFV ...
  • 数据库安全管理

    千次阅读 2018-09-01 10:35:09
    安全性是评估一个数据库的重要指标,Oracle数据库从3个层次上采取安全控制策略: 系统安全性。在系统级别上控制数据库的存取和使用机制,包括有效的用户名与口令、是否可以连接数据库、用户可以进行哪些系统操...
  • ORACLE安全管理

    千次阅读 2017-04-24 21:53:30
    实验目的:1、理解用户与模式的概念,掌握oracle中用户管理基本方法2、理解系统权限、对象权限的概念,掌握分配权限的方法3、理解角色的概念,掌握角色的应用方法 实验内容:一、用户管理与应用1、查看用户与模式 ...
  • 计算机网络安全基本概述

    万次阅读 多人点赞 2019-09-16 16:10:25
    网络安全 概述
  • Shiro 学习笔记 本文基于B站UP主【编程不良人】视频教程【2020最新版...目录标题Shiro 学习笔记一、权限的管理1.1 什么是权限管理1.2 什么是身份认证1.3 什么是授权二、什么是shiro三、shiro的核心架构3.1 Subject3.2
  • 关于ISO26262功能安全管理的理解

    千次阅读 2019-12-04 10:41:26
    和广大劳苦大众一样,我也是一名技术小兵出身,提到管理,似乎和我们很远,但是工作几年之后,慢慢的基本都会走上管理岗位(至少有那么一部分),回想起来,其实管理和我们每个人都息息相关,相信在我们的职业生涯中...
  • 4A 统一安全管理平台解决方案。

    千次阅读 2016-03-22 17:23:16
    1995年,国际网安界最早提出4A(认证Authentication、账号Account、授权Authorization、审计Audit)统一安全管理平台解决方案概念,正式将身份认证作为整个网络安全的基础及不可或缺的组成部分,即将身份认证、授权、...
  • 3大数据安全分析技术的安全管理平台具有以下显著特征是什么? 4.安全数据的大数据化的主要表现【内容摘要】首先通过介绍大数据的起因,给出了大数据的定义和特征描述,并简要说明了当前大数据的研究概况。接下来,...
  • 1.数据(Data)是数据库中存储的基本对象 2.数据的定义 描述事物的符号记录 3.数据的种类 文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等 4.数据的特点 数据与其语义是不可分的 数据库 1.数据库的...
  • 信令的基本概念

    万次阅读 2016-10-27 19:27:35
    前言 ISDN中常用的信令有七...1、什么是信令 1.1 信令的基本概念 信令(Signaling)是指通信系统中的控制指令。  严格地讲,信令是这样一个系统,它允许网络中的“智能”节点交换下列有关信息:呼叫的建立、监控

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 501,378
精华内容 200,551
关键字:

安全管理的基本概念是什么