任何系统,尤其是网络,都有两大最重要的安全领域,这就是系统入口和系统信息的完整性。针对第一个领域的最有效办法是访问控制;针对第二个领域的最有效办法是加密。
一、访问控制
访问控制系统把每个用户的个人数据存贮在安全保密的计算机内。当用户访问计算机系统或网络时,必须检索这些个人数据。为了避免同存贮这种数据库的计算机进行额外通信,脱线系统要求用户用磁条卡、数据键或“智能卡”提供这些数据。
访问控制实际上可分成两个主要方面:鉴别与授权,鉴别指向系统验证用户或反之向用户验证系统。一旦用户经验证并允许进入系统,再由授权来处理允许他们做些什么。
1、鉴别
有人把鉴别定义为“以一种可靠的、不能伪造的办法向通信系统的另一个成员验证这一个成员”,一般理解为对用户鉴别之后才允许他们访问系统。凭三类项目可以确定用户的身份;
①个人的有关东西,如指纹、声波纹、手书签名、眼扫瞄、甚至DNA密码等;
②个人所拥有的东西,如身份证(识别卡)、身份键(密钥)或存有个人相关数据的智能卡;
③个人所知道的东西,如通行字或个人专有信息。
当前最通用的鉴别方法是通行字保护。正当用户都给予专用识别码字,码字必须经系统认可之后才允许该用户访问。虽然通行字不失为一种简单、可靠和适用的用户鉴别体制,但能否提供合理水平的安全保密,仍有诸多因素必须加以澄清:
a、用户容易记住他们自己选定的通行字,但往往都是一些比较简单的东西,如朋友或家庭的姓名、生日、电话号码等。这些东西恰恰也很容易被用户的同事、熟人猜度出来;
b、通行字的长度很重要,它必须长到足以使试错法或简单的可能组合试验法不能推导出来。不过话又说回来,通行字太长又难记住。有的用户干脆把它写下来,这样反使问题变得更糟。理想的通行字应当无个人特点,长到足以阻止猜测推导,短到容易记住。有人提出以8~11个字符为宜,可.为一般用户所接受;
c、即使是理想通行字,早晚也难免泄漏。这就是说通行字也必须经常更换;
d、系统本身不会危及通行字的安全,但应注意不得把通行字打印到屏幕上。最重要的一件事是系统的通行字中央清单应当具有阻止非法或非授权访问的保护能力;
e、系统应当具有防止通行字被猜测推导的保护能力。一种比较简单的保护办法是限制用户输入恰当通行字的尝试数量。当然,系统对每次尝试都必须记录在案,以便审计追踪;
f、通行字方案的一个通病是必须通行字才能允许用户进入系统,而用户一旦进入系统,在整个对话过程中便不再要求重传通行字或发出停止对话信号。
显然,通行字算不上最理想的鉴别体制。人们也曾对别的鉴别体制进行过试验,但由于这样或那样的原因没有成功。尝试的物理制度包括指纹、声波纹和编码卡。虽然指纹值得花精力,不过当人们发现用一截磁带,甚至一块橡皮就能改变指纹时,试验不得不暂时告终。声波纹也不太可靠,抽烟、喝酒、过度疲劳,甚至伤风感冒都能引起声波纹变动。编码卡则是把独特的二进制代码编码到卡片上,码子是个人独家所有,只要用户不把卡片弄丢或转借给亲朋好友,则系统保持良好的工作状态。此外,还试验过锁和钥匙等。这些制度都有不尽人意的地方。因此,在更可靠的物理制度设计出来之前,通行字看来是最佳可用制度了。
在保密保安要求十分严格的系统中,使通行字方案更安全更可靠也不是办不到的。如果通行字是随机的和变化的,则它的许多缺陷都可得到克服。这种方案要求每一次访问操作都采用不同的码子组合。每个用户都给予一套码子,每个码子都是一个随机数字序列。用过的码子则删去,另外启用新码子。一次性随机通行字只有在业务数量级较低的场合下使用,其它场合多采用数据或某种别的每天变更的嵌入式码子。这些制度实现起来都比较麻烦,管理也不方便,但对某些系统的安全保密而言,又是值得花这个代价的。
鉴别的定义是对另一个通信成员验证这一个通信成员,虽然通常把它理解为用户验证,但仅此理解是危险的,还必须验证正在使用中的物理器件。
对网络系统,以及与其有关的截收、窃听等的经验,已使比较高级的用户们相信应当迫使终端自己证明其身份,因此,一旦建立起通信线路,访问常只限于能提供出某种码子的终端。换句话说,用户得证明其终端的合法性,只不过证明的方法可以各异罢了。
在不能“见到”希望与之通信的计算机的网络中,有必要在每次对话终结后弄清对方的身份。如果用户不能确定被执行的程序或硬件不妥,则可能传送虚假数据。因此,必须进行相互鉴别。唯一可靠的解决办法就是基于加密的鉴别协议,大体上讲,是使用一种变化速度极快的独特数值,数值经高强度加密算法推导出的预定密钥加密。这种方案酌工作步骤如下:
①用户A(装置)向中央系统发送一个随机的独特数据项,如日时;
②中央系统用它自己的鉴别密钥加密接收到的数据项,并把加密后的数据项返回给终端;
③终端把信息脱密,并与原信息对比。数据是独特的,即使骗子知道信息内容,也无法确定加密的密钥。
显然,在数据传输、数据存贮、通行字存贮、其它有关安全保密的信息及现在的鉴别中,密码已成为最好的凭藉手段。
2、授权
系统的内部安全保密主要是控制对存贮数据的访问。系统消除非法进入要比限制合法用户进入非授权区域容易得多。一旦用户被允许进入系统,它就可以利用先进的程序“浏览’’或查阅被禁止的文件和程序。施加处理限制的硬件和软件技术,即授权系统能够防止这种类型的渗透。
多数源点都按主体所拥有的对各分系统的访问权来规定授权。主体这里指用户、处理、程序等1分系统都是物理性质的,如磁盘、磁带、打印机等,或逻辑性质的,如数据结构等。主体和分系统互相保护,除非已批准授权,否则没有哪一方可接触到另一方。
最普通的访问权是READ、WRITE和EXECUTE,有的系统把APPEND和WRITE分开,不提供这些“权力”的组合。访问权通常是在设立某个分系统时确定的,同时严格限定和控制这种访问的能力。
实现访问权的方式之一是访问控制矩阵,它列出系统中的所有用户和所有文件,并指明每个用户对每份文件的访问权。但在大型设备中,这种矩阵可能太大而不实用。因此,许多设备宁愿用一种分类制度来代替。分类制度把用户划分为等级不同的类别,不同的访问权批准给不同等级不同类别的用户。
这种制度的实现方式多种多样,表格式、文件头、以及基于容量的选址是其中的三种可能选择方式。
授权在所有系统中都是一种保密保安的对策。在分布式系统中,应当把远距离入口设备视为其访问应当受到控制的主体。 IBM公司专门为美国国防部开发的系统使用双重。ID系统来提供这种安全保密。授权TD分配给用户和终端,用户出示ID,系统检查用户和终端的合法性。ID系统有很多优点,高授权限于较好保护的终端,即使对系统的非法访问获自使用高授权用户ID的另外终端,也不能行使较高的权利。系统可把最高授权(即系统管理员地位)只限于控制台。
当然,所有原则中最重要的是最少特权原则,这条原则不仅能防止诸多问题,而且还能限制损害。
尽管有这么多安全措施,也不能说哪一种制度就百分之百的安全。非法访问总是可能发生,授权方案可能被利用或绕过以实现非法文件访问,如果这些文件属于机密或敏感性质的,它们唯一的最终保护办法,同非安全传输、非安全交换、以及通行字这类保密保安信息的编目存贮所提到过的办法相同,即加密处理。
二、加密
密码的核心是保密,即防止第三方从不安全通道的通信中获取信息。密码一度被认为只具有军事和外交意义,随着电子技术的飞速发展,密码对于计算机行业也变得非常重要,已成为计算机信息保密不可缺少的手段。
通过暴露媒体传送和存贮数据的唯一的通用办法是采用某种形式的加密。因此,恰当的加密算法是开发安全网络的前提。
密码是利用数据变换使数据仅对指定用户才是可以理解的。希望通过非安全通道发送信息的地方把明文(未加密的)信息文件传送给密码机,密码机使用某种密钥把明文变换成“密文”,然后再传送。到达收方,密文经脱密机脱密,提供出原始信息拷贝。密码分析则是企图不用密钥使密文脱密的过程。
加密提供一种没有加密用“密钥”便不可能读懂文电形式的数据存贮和传输方法。常规加密可看作是一种加密函数:
C=F(D,K),
式中,D为要加密的数据,K为要使用的密钥,所得文电以D形式存贮。每一种密码函数都必定存在一个唯一的函数F’,于是:
D=F‘(e,K)。
换句话说,如果知道原始密钥,就一定能够恢复出原始数据。只有在无密钥K的情况下由C恢复D行不通时,使用函数F和F才有价值。函数F通常的作用是掩盖原始数据的统计特性,因为正是输入数据的统计特性或结构使密码分析成为可能。
特定加密算法的强度同密钥长度与数据长度之比有关口理想的密码要求密钥同数据一样长,不过这种长度的密钥并不实用,原则上要求密钥必须长到足以使所有可能组合在一定时间范围内不能被试验出来。如果有大量的文电和大量的时间进行分析,密码分析的成功率是比较高的。如果设计成经常变换算法和密钥的系统,就能大大减少可利用的破译时间。当然,有些信息有价值的时间长,在敏感形势下,一次一密可能是唯一的选择。
理想的密码体制,如果误用密钥且又不知道算法,便不能使数据脱密;如果知道算法但不知道密钥,照样不能使数据脱密。加密通道的端点可有多种选择。在分组交换网中,数据可在交换机中加密,这就是所谓“链路加’密”;在高得多的安全级别上,信息可在源点加密,在其目的地脱密,这就是所谓“端一端加密”。加密级别越高,通信越安全,信息越保密。一般是在打算防止的渗透类型确定之后才选定加密技术。若干比较简单的技术可以防止无意的数据“浏览”,绝密数据则需要完全不可破译的密码。
小知识之访问控制
访问控制可分为自主访问控制和强制访问控制两大类。
自主访问控制,是指由用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限
强制访问控制,是指由系统(通过专门设置的系统安全员)对用户所创建的对象进行统一的强制性控制,按照规定的规则决定哪些用户可以对哪些对象进行什么样操作系统类型的访问,即使是创建者用户,在创建一个对象后,也可能无权访问该对象。