Linux认证的概念

Linux认证的概念

Linux认证的概念

文章插图
Linux认证的概念RHCA(Red Hat Certified Architect),是RedHat公司在2004年推出的顶级认证,也是Linux界公认的操作系统最高级认证 。下面是我整理的关于Linux认证的概念,欢迎大家参考!Linux用户认证方法简介当今IT环境中,任何计算机系统都要充分考虑设计、使用和运行过程中的安全性 。
所以在目前主流操作系统的各个环节当中都增加了很多安全方面的功能和特性,而在众多的安全特性和功能中有相当多的技术是确保用户鉴别和身份认证方面的安全性的 。
所谓用户鉴别,就是用户向系统以一种安全的方式提交自己的身份证明,然后由系统确认用户的身份是否属实的过程 。换句话说,用户鉴别是系统的门户,每个用户进入到系统之前都必须经过鉴别这一道关 。而所谓认证安全,简而言之就是计算机系统确认了用户是经过授权的合法用户之后才能允许访问 。安全认证最常用的方式是比对用户输入和预存于数据库中的密码 。
【Linux认证的概念】不过在用户进行身份鉴别和安全认证的过程中,肯定会涉及几个核心问题 。例如:如何真正实现正确鉴别用户的真实身份?在鉴别用户合法身份之后,如何确定用户可以对哪些资源进行访问?如何控制用户以何种方式来访问计算机资源?如何对用户的安全访问随时随地按需调整?上述这些问题都是在设计鉴别和认证程序过程中需要充分考虑和精心设计的 。而在Linux类的操作系统中,这些问题的处理实际上有一套完整的流程和机制 。
在Linux类的操作系统中,最初用户鉴别过程就像各种Unix操作系统一样:系统管理员为用户建立一个帐号并为其指定一个口令,用户用此指定的口令登录之后重新设置自己的口令,这样用户就具有了一个只有它自己知道的口令或者密码 。一般情况下,用户的身份信息在Linux系统中存放在/etc/passwd文件当中,这实际上是一个拥有简单格式的数据库表,通过":"作为分隔符分隔出多个字段,其中包括用户的名称、用户ID、组ID、用户说明、主目录和登录使用的shell等相关信息 。而用户口令经过加密处理后存放于/etc/shadow 文件中 。
也是一个格式类似的数据库表,除了用户名和经过加密之后的密码之外,还包括多个对密码有效期进行定义的字段,包括密码有效时间、密码报警时间等 。用户登录的时候,登录服务程序提示用户输入其用户名和口令,然后将口令加密并与/etc/shadow 文件中对应帐号的加密口令进行比较,如果口令相匹配,说明用户的身份属实并允许此用户访问系统 。这种思想基于只有用户自己知道它的口令,所以输入的口令是正确的话,那么系统就认定它是所声称的那个人 。
在Linux类操作系统中,定义用户信息和密码信息的字段和格式都需要符合标准的Linux Naming Service Switch定义,即NSS定义 。因此用户信息只要保证满足NSS规范,就可以来源于本地passwd和shadow之外的其它信息数据库和认证源 。所以在此基础上还派生出一些其它认证解决方案 。例如NIS、LDAP等,都可作为存放用户信息的数据库,而存放用户口令或者鉴别用户身份的数据库,可以采用专用于网络环境的Kerberos以及智能卡鉴别系统等方式 。
这一整套的鉴别和认证方案貌似无懈可击,但是将这种解决方案真正应用到操作系统中的话就会发现一些问题:第一,在操作系统上所包含的认证不仅仅只涉及到系统登录和访问,在系统外围往往提供了众多的应用程序,相当多的应用程序在访问过程中是有认证需求的 。那么是否需要针对每一个应用程序都得加入认证和鉴别的功能?如果要,那么无论从程序的开发和使用管理角度来讲,工作量都将成倍增加;如果不要,则系统级的用户鉴别和安全认证与应用程序没有任何关系,意味着不管用户是否需要登录系统,但是对应用程序的访问都将缺乏最基本的安全性 。第二,如果针对每一个应用程序都开发用户鉴别和认证的功能,那么一旦发现所用的.算法存在某些缺陷或想采用另一种鉴别和认证方法时,开发者或者用户都将不得不重写(修改或替换)应用程序,然后重新编译原程序 。所以,尤其是当实现鉴别功能的代码以通常方法作为应用程序一部分一起编译的时候,上述问题将十分突出 。
很明显,传统的身份鉴别和用户认证方式一旦整合到实际的操作系统中,在实用当中缺乏灵活性 。鉴于以上原因,Linux操作系统的开发者和设计人员开始寻找一种更佳的替代方案:一方面,将鉴别功能从应用中独立出来,单独进行模块化的设计,实现和维护;另一方面,为这些鉴别模块建立标准的应用程序接口即API,以便众多的应用程序能方便地使用它们提供的各种功能;同时,鉴别机制对上层用户(包括应用程序和最终用户)要求一定要是透明的,这样可以对使用者隐藏其中比较复杂的实现细节 。可插拔认证模块PAM的基本概念事实上直到1995年的时候,SUN的研究人员才提出了一种满足以上需求的方案,这就是可插拔认证模块(Pluggable Authentication Module--PAM)机制,并首次在其操作系统 Solaris 2.3上部分实现 。可插拔认证模块(PAM)机制采用模块化设计和插件功能,使用户可以轻易地在应用程序中插入新的认证模块或替换原先的组件,同时不必对应用程序做任何修改,从而使软件的定制、维持和升级更加轻松 。