操作系统--------安全系统的相关知识

一. 密码学原理

   1.加密的简单概念:将明文,即原始信息或文件,通过某种手段转化为密文,以达到信息安全的目的,这个手段就是加密。

              上述过程用公式可以总结如下:

                                                                                     Q=E(P,K)

              其中P为明文,Q为密文,K为加密参数(密钥),E为加密算法。

              在现代加密技术中,机密算法本身是公开的,加密的安全性,完全由密钥来决定,这也叫Kerckhoffs准则。

   2.加密算法的大致分类:

         私钥加密技术:通信双方根据自己所持的私钥对信息进行加密解密。比如单字母替换就是一种私钥加密技术。单字母替换指26个字母间存在的一种替换规则,如A->E,B->K等。这个替换规则即是密钥。需要注意的是,这类私钥加密技术通过加密密钥可以容易的推出解密密钥,因此应用不甚广泛。

         公钥加密技术:即公开加密密钥,用于解密的密钥被私密保存。这个体系之所以能被广泛采用,基于加密算法简单,而解密算法繁琐这一特点。比如经典的RSA加密算法,由加密密钥推出解密密钥是极其困难的。它基于这么一个数学知识:获取两个大质数的乘积很简单,但从乘积获取这两个大质数却十分困难。公钥加密技术的问题在于其运算速度较慢。

       单向函数机制:基于如此事实:对于y=f(x),由x,f 获得y十分简单,而由y,f 获得x往往十分困难。

  3.数字签名:

      数字签名本质上用于信息发送者告知对方当前信息由其本人发送。

      数字签名的基本原理:1)发送者将信息(或文档)通过单向散列运算(如MD5)压缩为一个16字节(或32,64)的值。

                                          2)发送者将散列值与其私钥加密,得到的签名块附加到文档最后发送。

                                          3)接受方收到信息,用同样的散列运算(事先约定好)计算文档的散列值p。

                                          4)接收方用发送方的公钥对签名块进行解密,得到散列值q。

                                          5)比较p和q,若相等,则证明信息未被篡改,且发送者无误。

       为了防止公钥被篡改,发送者往往在文档后附加数字证书,其包括了公钥,发送者姓名,可信第三方的数字签名。而后通过上述过程进行识别。

   4.可信平台模块:

       对于加密算法来说,密钥的安全保存至关重要。为了在不安全的系统中保存密钥,设计了一种称为可信平台模块(TPM)的芯片。该芯片是一种加密处理器,使用内部的非易失性存储介质来保存密钥。所有的加密解密操作都在其上进行。由于其是硬件,因此即使软件系统不安全,也能保证密钥安全存放。

二. 操作系统中的保护机制

   1.保护域:域是(对象,权限)的集合,它规定了一个对象可以进行操作的集合。权限即使某种操作的执行许可。保护欲的作用即是禁止某些进程(或用户)对未授权对象进行访问。

   2.最低权限原则:为了使系统安全性越高越好,域的设定十分关键,保证域中每个对象的权限最小且对象数量尽可能小的原则,即使最低权限原则。

   3.为了便于进程跟踪域及域中对象,构造了一个矩阵模型。该模型如下:

                                                           file1                            file2                                  file3

READ READ/WRITE  
  EXEC WRITE
WRITE    
    READ/EXEC/WRITE

     每行表示域1,域2,域3,域4,每列表示对象,方块给出了权限集合。比如域1表示其中的进程可以对文件1读,对文件读/写

   4.从上述矩阵模型可以看出,其中存在大量空隙,如果存储将十分浪费空间,为此提出了两种优化策略:

        1) 访问控制列表:按列存放矩阵。对于上述矩阵,按列存放结果如下:

                    file1--------->[ A:R; C:W ]

                    file2--------->[ A:RW; B:E ]

                    file3--------->[ B:W; D:RWE ]

          其中域1,2,3,4被简单视为用户A,B,C,D。上述表即被称为访问控制列表,其给出了所有可访问对象以及域如何访问它们。

       2)权能字列表:按行存储矩阵。对于上述矩阵,按列存放结果如下:

                    A------>[ file1: R; file2: RW ]

                   B------->[ file2: E; file3: W ]

                   C------->[file1: W ]

                   D------->[ file3: RWE ]

          每一行称为一个权能字,其给出了域中进程(用户)对特定对象的权限。

   5.多级安全:

      可自由支配的访问控制和强制性的访问控制:前者允许用户来决定谁可以读取他们的文件;后者由机构定义谁可以看到什么文件,不能被其他人更改。

     常见的多级安全模型:

          1)Bell-La Padula模型:(以军队为例)

                 遵循的规定: 简易安全规则:在密级k上的进程只能读同一密级或更低级的对象。如将军可以读中尉的文档,反过来不行。

                                       *规则:在密级k上运行的进程仅能写同一密级或更高密级的对象。如中文只能在将军的信箱添加自己已知的信息,反过来不行。

                 通俗的讲------------------->该模型可高读低写,但不能颠倒。

           2)Biba模型:(公司为例)

                 Bell模型可以保守机密,但不能保证数据完整性(因为低级别用户可以写高级别用户文档),为此提出了Biba模型,该模型遵循两个基本原则:

                   简单完整性原则:在密级k上的进程只能写同一级别或更低级别的对象。(总裁的文档不能被员工篡改)

                   完整性*原则:在密级k上的进程只能读同一级别或更高级别的对象。(经理不能读下发给员工的任务)

猜你喜欢

转载自blog.csdn.net/qq_26678809/article/details/87861444