©2010常熟理工计算机科学与工程学院10/11网络安全设计第4讲网络安全通信原理及应用设计乐德广计算机科学与工程学院常熟理工学院ledeguang@gmail.comPAGE210/11网络安全©2010常熟理工计算机科学与工程学院基于密码技术的网络安全设计网络安全中信息加密设计基于口令的信息加密设计基于口令和SALT的信息加密设计基于会话密钥的信息加密设计网络安全中密码分析原理、技术与设计基于GPU的MD5密码破解(暴力破解原理、GPU并行运算技术)网络安全中身份认证设计网络安全通信原理、技术与应用基于SSH的网络安全通信基于PGP的网络安全通信PAGE310/11网络安全©2010常熟理工计算机科学与工程学院基于密码技术的网络安全设计网络安全中信息加密设计基于口令的信息加密设计基于口令和SALT的信息加密设计基于会话密钥的信息加密设计网络安全中密码分析原理、技术与设计基于GPU的MD5密码破解(暴力破解原理、GPU并行运算技术)网络安全中身份认证设计网络安全通信原理、技术与应用基于SSH的网络安全通信基于PGP的网络安全通信PAGE410/11网络安全©2010常熟理工计算机科学与工程学院安全模式网络安全模式的四个层次:信息通道层次模式系统门卫层次模式系统内部层次模式CPU及操作系统层次模式PAGE510/11网络安全©2010常熟理工计算机科学与工程学院安全模式网络安全模式的四个层次:信息通道层次模式系统门卫层次模式系统内部层次模式CPU及操作系统层次模式PAGE610/11网络安全©2010常熟理工计算机科学与工程学院网络安全通信原理SSH安全通信协议原理(应用层)PGP安全通信协议原理(应用层)SSL安全通信协议(传输层)IPSec安全通信协议(网络层)WEP安全通信协议(链路层)PAGE710/11网络安全©2010常熟理工计算机科学与工程学院TCP/IPTCP/IP各层主要功能、协议应用层TelnetFTPHTTPSMTPDNS传输层TCPUDP网络层IPARPRARPICMPIGMP网络接口层逻辑链路子层介质访问子层SONET/SDH/PDHTCP/IP协议栈PAGE810/11网络安全©2010常熟理工计算机科学与工程学院网络通信安全性途径链路层——WEP,WPA,WPA2网络层——IPSec传输层——SSL/TLSWTLS应用层——S/MIME,PGP,SET,Kerberos,SHTTP,SSHPAGE910/11网络安全©2010常熟理工计算机科学与工程学院网络层安全PAGE1010/11网络安全©2010常熟理工计算机科学与工程学院传输层安全PAGE1110/11网络安全©2010常熟理工计算机科学与工程学院应用层安全PAGE1210/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信什么是SSH?SecureShellProtocol的缩写。SSH为建立在应用层和传输层基础上的安全协议。SSH最初由芬兰赫尔辛基大学的TatuYlonen开发的,它提供一条安全的远程登录通道,可以代替telnet,rlogin等。目前,由IETF的网络工作小组(NetworkWorkingGroup)所制定;SSH协议有版本1(SSHv1)和版本2(SSHv2),这两版本互不兼容,由于受版权和加密算法的限制,很多人都使用它的免费替代产品OpenSSH。端口号:22PAGE1310/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信为什么需要SSH?传统的网络服务程序,如FTP和Telnet其本质上都是不安全的。FTP和Telnet在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,或者冒充用户把数据传给真正的服务器。安全SSH通道ssh客户机端口2200客户机服务器sshd端口22PAGE1410/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信SSH功能(安全服务)提供加密的TCP/IP通道,用于保证通信的保密性和完整性。提供基于公钥算法的强用户身份鉴别机制。SSH优点其传输的数据是经过压缩的,所以可以加快传输的速度。防止DNS和IP欺骗。SSH应用安全远程登陆。安全远程命令执行。安全远程文件拷贝和文件传输。TCP/IP端口和X11数据转发。PAGE1510/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信存在安全漏洞在目前全球密钥管理基础设施不到位的情况下,第一次和服务器建立连接时,可以不对服务器主机进行认证。SSH用户认证协议假定和依赖其底层提供加密和完整性保护,其本层的用户名和口令依然采用的是明文。PAGE1610/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信SSH协议标准RFC4250-TheSecureShell(SSH)ProtocolAssignedNumbersRFC4251-TheSecureShell(SSH)ProtocolArchitectureRFC4252-TheSecureShell(SSH)AuthenticationProtocolRFC4253-TheSecureShell(SSH)TransportLayerProtocolRFC4254-TheSecureShell(SSH)ConnectionProtocolRFC4255-UsingDNStoSecurelyPublishSecureShell(SSH)KeyFingerprintsRFC4256-GenericMessageExchangeAuthenticationfortheSecureShellProtocol(SSH)PAGE1710/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信SSH基本架构传输层协议(TransportLayerProtocol):提供服务器认证,数据机密性,信息完整性等的支持。用户认证协议(UserAuthenticationProtocol):为服务器提供客户端的身份鉴别。连接协议(ConnectionProtocol):将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用。SSH连接协议SSH用户认证协议SSH传输层协议可靠连接TCPPAGE1810/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信SupportedauthenticationmethodsPasswordsPublickeys(RSA,DSA)X509CertificatesSupportedencryptionalgorithms3DESBlowfishArcfourCastSupportedhashalgorithmsSHA1MD5PAGE1910/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信SSH协议的可扩展能力协议允许个人、组织对协议进行扩展。SSH协议框架中设计了大量可扩展的冗余能力,比如用户自定义算法、客户自定义密钥规则、高层扩展功能性应用协议。这些扩展大多遵循IANA的有关规定,特别是在重要的部分,像命名规则和消息编码方面。同时还有为许多高层的网络安全应用协议提供扩展的支持。各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制。PAGE2010/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信SSH协议工作过程建立连接协议版本协商密钥交换服务请求用户认证连接服务PAGE2110/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信基于SSH的安全通信(应用)的设计原理:本地主机发送一个连接请求到远程主机。远程主机检查申请的信息包和IP地址再发送密钥给本地主机。本地主机再将密钥发回给远程主机,自此连接建立。PAGE2210/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信基于SSH的安全通信应用的设计原理:客户端连接到服务器端口发送服务器密钥发送客户会话密钥请求用户名和密码发送用户名和密码接收或拒绝连接审查数据包/IP地址生成服务器密钥建立安全通道生成会话密钥解密口令/验证用户客服机服务器PAGE2310/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信基于SSH的安全通信应用设计架构:C/S服务端是一个守护进程(demon),它在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其它的应用程序。SSH服务端设计方法利用超级服务器(inetd),可以通过inetd上的tcpd来运行SSH进程。设计成独立的服务器:启动SSH服务器后,SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。—SSHD运行起来并在默认的22端口进行监听#ps-waux|grepsshd来查看sshd是否已经被正确的运行PAGE2410/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信SSH用户认证设计方法口令认证密钥认证主机认证PAGE2510/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信SSH用户认证设计方法口令认证—在SSH协议中,口令是明文的,但整个数据包可以在SSH传输层中是被加密的。—为了安全,服务器和客户端都要检查自己的下一层(SSL传输层)是否提供机密性保护,如果不提供,则不能使用口令认证。公钥认证—客户端将使用自己私钥签名的信息发送给服务器,服务器要检查用户是否有效的用户,并同时检查客户端签名信息的有效性,如果两个检查都通过,则这个认证成功。不过,服务器可以继续要求进行附加认证。基于主机的认证—客户端发送使用客户端主机私钥签名的数据进行认证,一旦客户端主机身份被证实,服务器根据客户端的用户名(服务器上也要有此用户)和主机名完成认证。—这种方法方便用户在很多环境中使用,但其安全性不高,不适合于对安全级别要求高的情况下使用。PAGE2610/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信SSH服务端OpenSSHforLinuxWinSSHD—提供图形配置、支持公共密匙鉴定和Windows域账户—使用SFTP和SCP的安全文件传输—使用远程、桌面或者WinVNC的安全图形存储以及vt100,xterm或者bvterm访问通道VShell—SecureShell用于加密的命令行访问WindowsNT—PortforwardingtunnelsTCP/IPdata—使用公共键(publickey-only)或密码进行用户识别—使用NT访问控制列表—指定交替命令shell的选项F-SecureSSHServerCopsshPAGE2710/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信WindowsSSH客户端PuTTYSecureCRTSSHSecureShellClientWinSCPF-SecureSSHClientPAGE2810/11网络安全©2010常熟理工计算机科学与工程学院基于SSH的网络安全通信基于SSH的网络安全通信应用实例用OpenSSH安全管理Linux服务器PAGE291