根据RFC2828(Internet Security Glossary,May2000),验证是“校验被或向某系统实体声明的身份的过程”。此处的关键字是校验,而正确的术语是“验证系统校验身份”。
验证可以提供保证,确保用户(或系统)是他们所说的身份。应用程序获取用户的凭据(各种形式的标识,如用户名和密码)并通过某些授权机构验证那些凭据。如果这些凭据有效,则提交这些凭据的实体被视为经过身份验证的标识。授权指用户访问网络资源的能力,通过对已验证身份授予或拒绝特定权限来限制访问权限。
验证可以直接在用户试图访问的计算机上执行,但在分布式环境中,用户帐户和安全信息通常由特殊的安全服务器存储和管理。当用户登录时,用户名和密码靠安全服务器进行校验。如果校验正确,密码将不会再通过电缆发送。用户密码保持秘密并从不通过网络是至关重要的,尤其是当密码为可读文本时,窃听者可以轻易捕获这些信息并使用它假装成该用户访问安全系统。相反,独特的握手式方案如此处所述以安全方式验证用户身份。
尽管单独的安全服务器提供许多好处(集中的安全和安全管理),但在分布式环境中对用户进行身份验证呈现出许多有趣的挑战。
例如,假设某用户希望访问称为DOCS的安全服务器,当该用户登录时,其登录信息直接或间接地用于验证其身份。现在该用户试图访问DOCS服务器,假设DOCS“信任”该安全服务器,并假设它可正确地验证该用户。安全服务器已经验证了该用户的身份,因此DOCS也尝试验证该用户的身份就没有意。所需要的是“一次注册”验证方案,该方案可在无需进一步的登录请求的情况下使该用户访问信托网络环境中的任何系统,假设该用户具有整个网络的一个用户帐户。这可以按如下所示完成。
该用户的登录信息可以被缓存。当该用户访问另一台服务器时,该服务器获取登录信息,并用安全服务器校验登录信息。
当该用户第一次登录时,安全服务器可以发出登录凭证。该用户在登录会话的期间访问其他系统时将使用这些凭证。根据RFC l704 (On Internet Authentication, October 1994)释义,一个安全验证方案必须提供如下所示的“强相互验证”:
相互验证 交换中的双方使用可靠的方法了解对方身份的真实性。
强验证 双方都不获取可用于在另一会话中假冒对方的信息。
密码可用于相互验证,但不用于强验证。如果一方将其密码直接交给另一方,则会将有关自身的某些内容暴露出来,而其他系统可以使用这些信息冒充它。本质上,第一个“说话者”放弃了密码,并且变得易受攻击。窃听者也可以捕获密码并在以后使用(除非密码为一次性密码)。
强验证方案允许双方显示它们知道秘密而不展现实际秘密。再看前面的示例,假设某用户具有一个机密密码,他必须向安全服务器证明他知道密码,但不将密码通过网络传输。下面的四路握手方案是一个示例:
1、当该用户登录时,他的计算机生成随机数,并使用密钥对其加密。请注意,此密钥是从密码中导出的,或者是从本地加密文件获取的,而该加密文件只有在输入了正确的密码后才可访问。
2、结果发送到安全服务器,后者使用共享的密钥进行解密。
3、现在安全服务器具有该用户的服务器生成的随机数。它将该数字加1,然后生成自己的随机数,并用共享密钥为两者分别加密。
4、该用户的计算机接收该消息并解密。消息的第一部分应该是此计算机原来发送到安全服务器并加1的随机数,它证明此计算机与知道共享密钥的系统有联系。
5、下一步,该用户的计算机将从安全服务器接收的随机数加1,进行加密,然后将它返回到服务器。
6、当服务器接收此消息时,其随机数已经加1,服务器知道客户端一定是可信的。
经过验证后,客户端和服务器建立新密钥,在会话的剩余时间内该新密钥用于加密。这使登录密钥的使用变得最小。当然,共享的秘密必须保持秘密。如果有人获得它,这个人即可伪装成客户端或服务器。
经过这么多年,已经开发了许多验证协议和技术。CHAP(挑战握手验证协议)是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令,其中包括会话ID和一个任意生成的挑战字串。远程客户必须使用MD5单向哈希算法(one-way hashing algorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。
另一个协议是EAP(可扩展验证协议)。EAP是一种框架,支持可选择的多重PPP验证机制,包括纯文本密码,挑战-响应和任意对话顺序。
下面概述其他几种更先进的方案:
双因子验证 在此方法中,使用令牌设备(如智能卡)生成一个附加登录代码。此登录代码与服务器知道的代码在时间上同步。用户在登录时输入此代码、用户名及密码。因而需要两项才能登录:用户知道的某些内容(用户密码)以及用户具有的某些内容(令牌)。此方案要求所有用户都要有智能卡,并且此方案通常是为远程用户实现的。
Kerberos Kerberos是一个根据票证执行验证的制定得很好的协议。其命名是根据希腊神话中守卫冥王大门的长有三头的看门狗做的。定名是贴切的,因为Kerberos是一个三路处理方法,根据称为密匙分配中心(KDC)的第三方服务来验证计算机相互的身份,并建立密匙以保证计算机间安全连接。
票证是由称为KDC(密钥分发中心)的专用安全服务器发放的加密数据分组。KDC通常在企业网的内部进行维护,而企业网是KDC的授权区或管辖区。当用户登录时,由KDC处理验证。如果用户验证正确,则KDC向该用户颁发票证(称为“票证授权票”或TGT)。当此用户希望访问某个网络服务器时,KDC检查自己先前提供给用户的TGT(以校验票证依然可信),然后向用户颁发服务票证,以允许用户访问目标服务器。目标服务器具有自己的校验票证以确认用户可信的方法,并根据预定义的访问控制授予用户访问权限。
Kerberos协议基本上是可行的,因为每台计算机分享KDC一个秘密,KDC有两个部件:一个Kerberos认证服务器和一个授票服务器。如果KDC不知请求的目标服务器,则求助于另一个KDC完成认证交易。Kerberos是一种网络认证协议,允许一台计算机通过交换加密消息在整个非安全网络上与另一台计算机互相证明身份。一旦身份得到验证,Kerberos协议给这两台计算机提供密匙,以进行安全通讯对话。Kerberos协议认证试图等录上网用户的身份,并通过使用密匙密码为用户间的通信加密。
证书、公钥和PKI(公共密钥基础结构) 如果要求安全登录到因特网服务器或其他公共服务器,则证书方案是适当的。证书基本上是数字ID,它受众所周知的证书颁发机构(如VeriSign)保护。它可以证明在连接另一端的人是其所说的身份。此方案使用公钥加密,并为用户提供一种方法,以向您提供其用于身份验证的公钥,以及在客户端和服务器之间加密会话。此方案与Kerberos的区别是Kerberos要求联机安全服务器对用户进行验证。证书是自包含的数据分组,其中包括对用户进行验证所需的所有内容。但是,它要求某实体颁发证书。这可以通过公共服务(如VeriSign)完成,可通过内部证书服务器完成(当公司希望颁发自己的证书给雇员时)。
圣杯一次注册
SSO(一次注册)的概念很简单。用户只需要一次键入其用户名和密码(第一次登录时),以访问任何网络资源。在某些情况下,SSO甚至无需用户进一步提供证书即允许访问外部网络系统和因特网Web服务器。
Windows 2000网络通过使用Kerberos和Secure Sockets Layer (安全套接字层)协议可提高一次注册功能。这两种协议的优点是它们在混合网络环境中允许一次注册,而混合环境中的一些服务器可能是UNIX、Linux或也支持这两种协议的NetWare服务器。Microsoft SNA Server将SSO功能扩展到大型机环境。Microsoft声称Windows 2000是在异类网络中用作SSO集线器的最佳选择,原因是Windows 2000的SSO可以与其他供应商如此多的 *** 作系统具有互 *** 作性。在Windows 2000中,每个域控制器都是一个Kerberos密钥分发中心,该中心具有对应于该域的辖区。
SSL是由Netscape设计的一种开放协议;它指定了一种在应用程序协议(例如>所谓协议,就是两个或者两个以上的参与者为完成某项特定的任务而采取的一系列步骤。协议具有以下特点:协议自始至终是有序的过程,每一个步骤必须执行,在前一步没有执行完之前,后面的步骤不可能执行;协议至少需要两个参与者;通过协议必须能够完成某项任务。协议的参与者可能是完全信任的人,也可能是攻击者和完全不信任的人。
密码学的用途是解决种种难题。当我们考虑现实世界中的应用时,常常遇到以下安全需求:机密性、完整性、认证性、匿名性、公平性等,密码学解决的各种难题围绕这些安全需求。密码协议(cryptographic protocol)是使用密码学完成某项特定的任务并满足安全需求的的协议,又称安全协议(security protocol)。如以后将介绍的消息认证协议、数字签名协议。常用的密码协议还包括:
(1)密钥建立协议
通常的密码技术是使用对称密码算法用单独的密钥对每一次单独的会话加密,这个密钥称为会话密钥。密钥建立协议的目的是在两个或者多个实体之间建立会话密钥。协议可以采用对称密码体制,也可以采用非对称密码体制。有时通过一个可信的服务器为用户分发密钥,这样的密钥建立协议称为密钥分发协议;也可以通过两个用户协商,共同建立会话密钥,这样的密钥建立协议称为密钥协商协议。
(2)认证协议
当某用户登录进入计算机时,计算机怎么知道他是谁呢?计算机怎么知道不是其他人伪造的身份呢?认证协议主要防止假冒攻击。将认证和密钥建立协议结合在一起,是网络通信中最普遍应用的安全协议。
随着计算机网络应用的不断深入,还出现了保密选举协议、数字现金协议、多方计算协议等许多深奥的安全协议。
在密码协议中,经常使用对称密码、公开密钥密码、单向函数、伪随机数生成器等。
对密码协议的攻击包括直接攻击协议中所用的密码算法、用来实现该算法和协议的密码技术、或者攻击协议本身。我们假设密码算法和密码技术是安全的,只关注对协议本身的攻击。
与协议无关的人偷听协议的一部分或全部,这叫做被动攻击。也可能假装是其它一些人,在协议中引入新的信息,删掉原有的信息,用另外的信息代替原来的信息,重放旧的信息,破坏通信信道,或者改变存贮在计算机中的信息等,这种改变协议以便对自己有利的攻击叫做主动攻击。其中最常用的攻击是重放与代替攻击。
攻击者也可能是与协议有关的各方中的一方。他可能在协议执行期间撒谎,或者不遵守协议,这类攻击者叫做骗子。被动骗子遵守协议,但试图获取协议外的其他信息。主动骗子在协议的执行中试图通过欺骗来破坏协议。
如果与协议有关的各方中的大多数是主动骗子,就很难保持协议的安全性。但合法用户发觉是否有主动欺骗却是可能的。当然,协议对被动欺骗来说应该是安全的。
密码协议的安全性是一个很难解决的问题,许多广泛应用的密码协议后来都被发现存在安全缺陷。
可以上传私钥进行云保护或采取本地自行保存。
解释原因:
SSL证书智能系统里面都会保存给个证书的公共证书。私钥通常用户为确保安全,自行保存到本地计算机。
如果怕SSL证书私钥丢失,可以将私钥上传到系统管理。
解决办法:根据自身情况选择保存私钥。
管理服务SSH基础服务,SSH是远程连接Linux,管理Linux的服务。
Secure Shell Protocol简写SSH 安全的shell协议
使用的默认的端口为22(一台机器的不同功能就用端口区分)
ssh参数:
-p 指定端口
格式:命令 -p 端口 用户@IP相当于ssh IP
scp命令参数:
-P端口
-r递归
-p保持属性
-l 限制速度
推:
scp -P 22 -rp /data root@1721617:/tmp
scp -P -rp /data 1721617:/tmp
拉
scp -P 22 -rp root@1721617:/data /tmp
scp -P -rp 1721617:/data /tmp
对比下scp和rsync
scp每一次都是全量考本,加密拷贝。
rsync第一次全量拷贝,远程shell也是加密拷贝
sftp命令:加密的ftp服务,默认缺点不能锁定家目录。
ftp:vsftp。
sftp服务也支持windows ftp客户端:
winscp,flashftp,xshell也支持
常规和服务器交互数据文件:
rz/sz 属于lrzsz
ssh服务配置:
s
使用用户名密码登录
不需要密码登录,使用密钥文件就可以连接服务器。
实践密钥认证:
项目实践:批量管理、批量分发内容项目
1、基于root用户做Linux之间的秘钥认证。
2、生成密钥对(去超市买把锁),不需要指定服务器。
3、在61上生成密钥对(方便)。
4、把锁放到7/8上
C6:
5、ssh-copy-id:原理
6、测试远程执行命令:
7、写个脚本
8、开发脚本实现批量管理服务器:
9、批量发文件:
复杂分发文件脚本:
SSH批量管理如何一键完成:
一键创建及分发秘钥:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)