欢迎来到天天文库
浏览记录
ID:37057168
大小:152.50 KB
页数:41页
时间:2019-05-15
《SSH协议体系结构解读》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、SSH协议体系结构解读1、概念SSH的英文全称为SecureShell,是IETF(InternetEngineeringTaskForce)的NetworkWorkingGroup所制定的一族协议,其目的是要在非安全网络上提供安全的远程登录和其他安全网络服务。如需要SSH的详细信息请参考www.ssh.com(SSHCommunicationsSecurityCorporation的网站)和www.openssh.org(开放源码的OpenSSH组织的网站)。2、基本框架SSH协议框架中最主要的部分是三个协议:传输层协议、用户认证协议和连接协议。同时SSH协议框架
2、中还为许多高层的网络安全应用协议提供扩展的支持。它们之间的层次关系可以用如下图1来表示: 图1SSH协议的层次结构示意图在SSH的协议框架中,传输层协议(TheTransportLayerProtocol)提供服务器认证,数据机密性,信息完整性等的支持;用户认证协议(TheUserAuthenticationProtocol)则为服务器提供客户端的身份鉴别;连接协议(TheConnectionProtocol)将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用;各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SS
3、H的安全机制。3、主机密钥机制对于SSH这样以提供安全通讯为目标的协议,其中必不可少的就是一套完备的密钥机制。由于SSH协议是面向互联网网络中主机之间的互访与信息交换,所以主机密钥成为基本的密钥机制。也就是说,SSH协议要求每一个使用本协议的主机都必须至少有一个自己的主机密钥对,服务方通过对客户方主机密钥的认证之后,才能允许其连接请求。一个主机可以使用多个密钥,针对不同的密钥算法而拥有不同的密钥,但是至少有一种是必备的,即通过DSS算法产生的密钥。关于DSS算法,请参考[FIPS-186]。SSH协议关于主机密钥认证的管理方案有两种,如下图2所示: 图2SSH主机密
4、钥管理认证方案示意图每一个主机都必须有自己的主机密钥,密钥可以有多对,每一对主机密钥对包括公开密钥和私有密钥。在实际应用过程中怎样使用这些密钥,并依赖它们来实现安全特性呢?如上图所示,SSH协议框架中提出了两种方案。在第一种方案中,主机将自己的公用密钥分发给相关的客户机,客户机在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据,从而实现主机密钥认证,确定客户机的可靠身份。在图2(a)中可以看到,用户从主机A上发起操作,去访问,主机B和主机C,此时,A成为客户机,它必须事先配置主机B和主机C的公开密钥,在访问的时候根据主机名来查找相应的公
5、开密钥。对于被访问主机(也就是服务器端)来说则只要保证安全地存储自己的私有密钥就可以了。在第二种方案中,存在一个密钥认证中心,所有系统中提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户机的主机则只要保存一份认证中心的公开密钥就可以了。在这种模式下,客户机在访问服务器主机之前,还必须向密钥认证中心请求认证,认证之后才能够正确地连接到目的主机上。很显然,第一种方式比较容易实现,但是客户机关于密钥的维护却是个麻烦事,因为每次变更都必须在客户机上有所体现;第二种方式比较完美地解决管理维护问题,然而这样的模式对认证中心的要求很高,在互联网络上要实现这样的集中认证
6、,单单是权威机构的确定就是个大麻烦,有谁能够什么都能说了算呢?但是从长远的发展来看,在企业应用和商业应用领域,采用中心认证的方案是必要的。另外,SSH协议框架中还允许对主机密钥的一个折中处理,那就是首次访问免认证。首次访问免认证是指,在某客户机第一次访问主机时,主机不检查主机密钥,而向该客户都发放一个公开密钥的拷贝,这样在以后的访问中则必须使用该密钥,否则会被认为非法而拒绝其访问。4、字符集和数据类型SSH协议为了很好地支持全世界范围的扩展应用,在字符集和信息本地化方面作了灵活的处理。首先,SSH协议规定,其内部算法标识、协议名字等必须采用US-ASCII字符集,因
7、为这些信息将被协议本身直接处理,而且不会用来作为用户的显示信息。其次,SSH协议指定了通常情况下的统一字符集为ISO10646标准下的UTF-8格式,详细请参考RFC-2279。另外,对于信息本地化的应用,协议规定了必须使用一个专门的域来记录语言标记(LanguageTag)。对于大多数用来显示给用户的信息,使用什么样的字符集主要取决于用户的终端系统,也就是终端程序及其操作系统环境,因而对此SSH协议框架中没有作硬性规定,而由具体实现协议的程序来自由掌握。除了在字符、编码方面的灵活操作外,SSH协议框架中还对数据类型作了规定,提供了七种方便实用的种类,包括字节类
此文档下载收益归作者所有