1. ssl/tls中间人攻击漏洞怎么修复
解析最厉害的中间人攻击方式之SSL欺骗导言在本文中,我们将研究SSL欺骗,这也是最厉害的中间人攻击方式,因为SSL欺骗可以通过利用人们信赖的服务来发动攻击。首先我们先讨论SSL连接的理论及其安全性问题,然后看看SSL连接如何被利用来发动攻击,最后与大家分享关于SSL欺骗的检测以及防御技巧。SSL和HTTPS安全套接字层(SSL)或者传输层安全(TLS)旨在通过加密方式为网络通信提供安全保障,这种协议通常与其他协议结合使用以确保协议提供服务的安全部署,例如包括SMTPS、IMAPS和最常见的HTTPS,最终目的在于在不安全网络创建安全通道。在本文中,我们将重点探讨通过HTTP(即HTTPS)对SSL的攻击,因为这是SSL最常用的形式。可能你还没有意识到,你每天都在使用HTTPS。大多数主流电子邮件服务和网上银行程序都是依靠HTTPS来确保用户浏览器和服务器之间的安全通信。如果没有HTTPS技术,任何人使用数据包嗅探器都能窃取用户网络中的用户名、密码和其他隐藏信息。使用HTTPS技术是为了确保服务器、客户和可信任第三方之间数据通信的安全。例如,假设一个用户试图连接到Gmail电子邮箱账户,这就涉及到几个不同的步骤,如图1所示。图1:HTTPS通信过程图1显示的过程并不是特别详细,只是描述了下列几个基本过程:1.客户端浏览器使用HTTP连接到端口80的4.服务器向客户端提供包含其电子签名的证书,该证书用于验证网址5.客户端获取该证书,并根据信任证书颁发机构列表来验证该证书6.加密通信建立如果证书验证过程失败的话,则意味着无法验证网址的真实度。这样的话,用户将会看到页面显示证书验证错误,或者他们也可以选择冒着危险继续访问网站,因为他们访问的网站可能是欺诈网站。HTTPS被攻破这个过程一直被认为是非常安全的,直到几年前,某攻击者成功对这种通信过程进行劫持,这个过程并不涉及攻击SSL本身,而是对非加密通信和加密通信间的“网桥”的攻击。知名安全研究人员MoxieMarlinspike推测,在大多数情况下,SSL从未直接遭遇威胁问题。SSL连接通常是通过HTTPS发起的,因为用户通过HTTP302响应代码被定位到HTTPS或者他们点击连接将其定位到一个HTTPS站点,例如登录按钮。这就是说,如果攻击者攻击从非安全连接到安全连接的通信,即从HTTP到HTTPS,则实际上攻击的是这个“网桥”,SSL连接还未发生时的中间人攻击。为了有效说明这个概念,Moxie开发了SSLstrip工具,也就是我们下面将要使用的工具。这个过程非常简单,与我们前面文章所提到的攻击有所类似,如图2所示。图2:劫持HTTPS通信图2中描述的过程如下:1.客户端与web服务器间的流量被拦截2.当遇到HTTPSURS时,sslstrip使用HTTP链接替换它,并保存了这种变化的映射3.攻击机模拟客户端向服务器提供证书4.从安全网站收到流量提供给客户端这个过程进展很顺利,服务器认为其仍然在接收SSL流量,服务器无法辨别任何改变。用户可以感觉到唯一不同的是,浏览器中不会标记HTTPS,所以某些用户还是能够看出不对劲。使用SSLStrip实现这个过程是使用SSLstrip工具。这个工具只能在Linux运行,大家也可以下载运行Backtrack4。安装好SSLstrip后,有几个必须做的事情。首先,你使用的Linux系统必须被配置为IP转发,实现这个配置,需要输入命令echo"1">/proc/sys/net/ipv4/ip_forward,如下图所示。图3:启用IP转发完成上述操作后,我们必须强制将所有被拦截的HTTP流量路由到SSLstrip将会监听的端口,这通过修改iptables防火墙配置来实现,使用命令iptables-tnat-APREROUTING-ptcp--destination-port80-jREDIRECT--to-port如下图所示。图4:配置IPTables来正确路由HTTP流量当然,你需要使用你选择的随机端口来替换,当完成这些配置后,我们就可以运行sslstrip,并将其配置为监听由命令sslstrip-l指定的端口了。图5:使用sslstrip这个过程的最后步骤就是配置ARP欺骗来拦截目标主机的流量,在前面的文章中我们使用的是windows中的Cain和Abel来实现,但是在这篇文章中,我们将使用arpspoof工具,该工具是内置在Backtrack4,使用命令arpspoof-i-t。图6:配置ARP欺骗使用这个命令会将为目标客户端的IP地址执行这些行动的网络接口替换为,而将目标使用的网关路由器的IP地址替换为完成上述操作后,你就可以主动劫持任何建立的SSL连接。你可以使用数据包器从流量来收集密码、个人身份信息、信用卡号码等。如何抵御SSL劫持攻击如上所述,这种方式的SSL劫持根本无法从服务器端检测出来,因为在服务器开来,这只是与客户端的正常通信,它无法辨识是从代理来与客户端通信。不过我们还是可以从客户端的角度来检测和抵御这种类型的攻击。使用HTTPS确保安全连接-当你执行上诉描述的攻击时,攻击破坏了连接的安全性,这种安全性在浏览器中有所反映。这意味着如果你登录网上银行时,发现只是标准的HTTP连接,那么很有可能正受到攻击。不管你使用何种浏览器,你都要确保你知道如何识别安全连接与不安全连接。将网上银行保存为主页-攻击者拦截家庭网络比拦截工作网络的可能性更低,这并不是因为家庭电脑更加安全(实际上,家庭电脑更加不安全),而是因为家庭网络中往往只有一两台电脑,除非家庭成员发动内部攻击。在公司网络中,你无法知晓网络情况或者分公司网络情况,所以潜在攻击源。会话劫持最大的目标之一就是网上银行,但是其他任何个人信息都有可能被劫持。确保内部机器的安全-这种类型的攻击大多数都是从网络内部发动攻击的,如果你的网络设备很安全,那么那些被感染主机被利用发动会话劫持攻击的可能性就很小。总结这种类型的中间人攻击形式是最致命的攻击形式,因为这种攻击将我们认为安全的连接变成完全不安全的连接。我们每天访问的网站都不一定安全,如果这些网络连接是不安全的,将会使重要个人信息落入他人之手。因此,我们必须具备识别安全连接和不安全连接的能力。
2. <首先请解雇失败了。下面的连接已经关闭:无法建立信任关系SSL / TLS的安全通道>是什么 意思
SSL 的英文全称是 “Secure Sockets Layer” ,中文名为 “ 安全套接层协议层 ” ,它是网景( Netscape )公司提出的基于 WEB 应用的安全协议。 SSL 协议指定了一种在应用程序协议(如 HTTP 、 Telenet 、 NMTP 和 FTP 等)和 TCP/IP 协议之间提供数据安全性分层的机制,它为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。
TLS:安全传输层协议
(TLS:Transport Layer Security Protocol)
安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。
全为网络搜索。
3. 传输层有哪些协议
你好,简述: 传输层安全协议详解 传输层安全协议的目的是为了保护传输层的安全,并在传输层上提供实现保密、认证和完整性的方法。
1.SSL(安全套接字层协议) SSL(Secure Socket Layer)是由Netscape设计的一种开放协议;它指定了一种在应用程序协议(例如http、telnet、NNTP、FTP)和TCP/IP之间 提供数据安全性分层的机制。它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。 SSL的主要目的是在两个通信应用程序之间提供私密信和可靠性。这个过程通过3个元素来完成:
l 握手协议。这个协议负责协商被用于客户机和服务器之间会话的加密参数。当一个SSL客户机和服务器第一次开始通信时,它们在一个协议版本上达成一致,选择加密算法,选择相互认证,并使用公钥技术来生成共享密钥。
l 记录协议。这个协议用于交换应用层数据。应用程序消息被分割成可管理的数据块,还可以压缩,并应用一个MAC(消息认证代码);然后结果被加密并传输。接受方接受数据并对它解密,校验MAC,解压缩并重新组合它,并把结果提交给应用程序协议。
l 警告协议。这个协议用于指示在什么时候发生了错误或两个主机之间的会话在什么时候终止。
下面我们来看一个使用WEB客户机和服务器的范例。WEB客户机通过连接到一个支持SSL的服务器,启动一次SSL会话。支持SSL的典型 WEB服务器在一个与标准HTTP请求(默认为端口80)不同的端口(默认为443)上接受SSL连接请求。当客户机连接到这个端口上时,它将启动一次建 立SSL会话的握手。当握手完成之后,通信内容被加密,并且执行消息完整性检查,知道SSL会话过期。SSL创建一个会话,在此期间,握手必须只发生过一 次。
SSL握手过程步骤:
步骤1:SSL客户机连接到SSL服务器,并要求服务器验证它自身的身份。
步骤2:服务器通过发送它的数字证书证明其身份。这个交换还可以包括整个证书链,直到某个根证书权威机构(CA)。通过检查有效日期并确认证书包含有可信任CA的数字签名,来验证证书。
步骤3:然后,服务器发出一个请求,对客户端的证书进行验证。但是,因为缺乏公钥体系结构,当今的大多数服务器不进行客户端认证。
步骤4:协商用于加密的消息加密算法和用于完整性检查的哈希函数。通常由客户机提供它支持的所有算法列表,然后由服务器选择最强健的加密算法。
步骤5:客户机和服务器通过下列步骤生成会话密钥: a. 客户机生成一个随机数,并使用服务器的公钥(从服务器的证书中获得)对它加密,发送到服务器上。 b. 服务器用更加随机的数据(从客户机的密钥可用时则使用客户机密钥;否则以明文方式发送数据)响应。 c. 使用哈希函数,从随机数据生成密钥。
SSL协议的优点是它提供了连接安全,具有3个基本属性: l 连接是私有的。在初始握手定义了一个密钥之后,将使用加密算法。对于数据加密使用了对称加密(例如DES和RC4)。 l 可以使用非对称加密或公钥加密(例如RSA和DSS)来验证对等实体的身份。 l 连接时可靠的。消息传输使用一个密钥的MAC,包括了消息完整性检查。其中使用了安全哈希函数(例如SHA和MD5)来进行MAC计算。
对于SSL的接受程度仅仅限于HTTP内。它在其他协议中已被表明可以使用,但还没有被广泛应用。
注意: IETF正在定义一种新的协议,叫做“传输层安全”(Transport Layer Security,TLS)。它建立在Netscape所提出的SSL3.0协议规范基础上;对于用于传输层安全性的标准协议,整个行业好像都正在朝着 TLS的方向发展。但是,在TLS和SSL3.0之间存在着显着的差别(主要是它们所支持的加密算法不同),这样,TLS1.0和SSL3.0不能互操 作。
2.SSH(安全外壳协议) SSH是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。它提供了对安全远程登录、安全文件传输 和安全TCP/IP和X-Window系统通信量进行转发的支持。它可以自动加密、认证并压缩所传输的数据。正在进行的定义SSH协议的工作确保SSH协 议可以提供强健的安全性,防止密码分析和协议攻击,可以在没有全球密钥管理或证书基础设施的情况下工作的非常好,并且在可用时可以使用自己已有的证书基础 设施(例如DNSSEC和X.509)。
SSH协议由3个主要组件组成: l 传输层协议,它提供服务器认证、保密性和完整性,并具有完美的转发保密性。有时,它还可能提供压缩功能。 l 用户认证协议,它负责从服务器对客户机的身份认证。 l 连接协议,它把加密通道多路复用组成几个逻辑通道。
SSH传输层是一种安全的低层传输协议。它提供了强健的加密、加密主机认证和完整性保护。SSH中的认证是基于主机的;这种协议不执行用户认证。可以在SSH的上层为用户认证设计一种高级协议。
这种协议被设计成相当简单而灵活,以允许参数协商并最小化来回传输的次数。密钥交互方法、公钥算法、对称加密算法、消息认证算法以及哈希算法等都需要协商。
数据完整性是通过在每个包中包括一个消息认证代码(MAC)来保护的,这个MAC是根据一个共享密钥、包序列号和包的内容计算得到的。
在UNIX、Windows和Macintosh系统上都可以找到SSH实现。它是一种广为接受的协议,使用众所周知的建立良好的加密、完整性和公钥算法。
3.SOCKS协议
“套接字安全性”(socket security,SOCKS)是一种基于传输层的网络代理协议。它设计用于在TCP和UDP领域为客户机/服务器应用程序提供一个框架,以方便而安全的使用网络防火墙的服务。
SOCKS最初是由David和Michelle Koblas开发的;其代码在Internet上可以免费得到。自那之后经历了几次主要的修改,但该软件仍然可以免费得到。SOCKS版本4为基于TCP 的客户机/服务器应用程序(包括telnet、FTP,以及流行的信息发现协议如http、Wais和Gopher)提供了不安全的防火墙传输。 SOCKS版本5在RFC1928中定义,它扩展了SOCKS版本
4,包括了UDP;扩展了其框架,包括了对通用健壮的认证方案的提供;并扩展了寻址方案,包括了域名和IPV6地址。
当前存在一种提议,就是创建一种机制,通过防火墙来管理IP多点传送的入口和出口。这是通过对已有的SOCKS版本5协议定义扩展来完成的,它提供 单点传送TCP和UDP流量的用户级认证防火墙传输提供了一个框架。但是,因为SOCKS版本5中当前的UDP支持存在着可升级性问题以及其他缺陷(必须 解决之后才能实现多点传送),这些扩展分两部分定义。 l 基本级别UDP扩展。 l 多点传送UDP扩展。
SOCKS是通过在应用程序中用特殊版本替代标准网络系统调用来工作的(这是为什么SOCKS有时候也叫做应用程序级代理的原因)。这些新的系 统调用在已知端口上(通常为1080/TCP)打开到一个SOCKS代理服务器(由用户在应用程序中配置,或在系统配置文件中指定)的连接。如果连接请求 成功,则客户机进入一个使用认证方法的协商,用选定的方法认证,然后发送一个中继请求。SOCKS服务器评价该请求,并建立适当的连接或拒绝它。当建立了 与SOCKS服务器的连接之后,客户机应用程序把用户想要连接的机器名和端口号发送给服务器。由SOCKS服务器实际连接远程主机,然后透明地在客户机和 远程主机之间来回移动数据。用户甚至都不知道SOCKS服务器位于该循环中。
使用SOCKS的困难在于,人们必须用SOCKS版本替代网络系统调用(这个过程通常称为对应用程序SOCKS化---SOCKS- ification或SOCKS-ifying)。幸运的是,大多数常用的网络应用程序(例如telnet、FTP、finger和whois)都已经被 SOCKS化,并且许多厂商现把SOCKS支持包括在商业应用程序中。
4. 四川省计算机三级真题答案
下面是2008年4月计算机等级考试三级网络技术的试题答案详细的解析。此稿由金版电子出版社、新思路教育科技研究中心提供,转载请注明来源!
一、选择题
1.解析:2008年北京奥运会全球合作伙伴有:可口可乐、源讯、通用电气、柯达、联想、宏利、麦当劳、欧米茄、松下、三星、威士,其中联想、三星、松下是IT企业,微软不是2008年北京奥运会赞助商。答案选A。
2.解析:1的ASCII码为00110001,2的ASCII码为00110010,所以0的ASCII为00110000,8的ASCII码为00111000,2008的ASCII值为:00110010 00110000 00110000 00111000。答案选D。
3. 解析:主板的分类方法很多,下面是常用的分类方法,如表1所示。
表1 主板分类
分类项
分类内容
CPU芯片
486主板、奔腾主板、AMD主板等
CPU插座
Socket7主板、Slot1主板等
主板规格
AT主板、Baby—AT主板、ATX主板等
存储容量
16M主板、32M主板、64M主板等
芯片集
TX主板、LX主板、BX主板等
即插即用
PnP主板、非PnP主板等
系统总线的宽度
66MHz主板、100MHz主板等
数据端口
SCSI主板、EDO主板、AGP主板等
扩展槽
EISA主板、PCI主板、USB主板等
生产厂家
联想主板、华硕主板、海洋主板等
由表可知选项A是正确的。选项B中SCSI主板、EDO主板是按照数据端口来划分的,C选项中AT主板、ATX主板是按照主板规格来分的,D选项中Slot主板、Socket主板是按CPU插座来分的。答案选A。
4.解析:本题考察奔腾芯片的技术特点,奔腾芯片的特点有:(1)超标量技术,内置多条流水线能同时执行多个处理,实质是以空间换取时间,奔腾由两条整数指令流水线和一条浮点指令流水线组成;(2)超流水线技术,细化了流水并提高主频,实质是以时间换取空间;(3)双Cache的哈佛结构,指令与数据分开存储的结构称为哈佛结构,对于保持流水线的持续流动有重要意义;(4)分支预测,为了保持流水线的较高吞吐率,奔腾芯片内置了分支目标缓存器。目前处理器芯片已经由单核发展到多核,处理性能更加优越。答案选B。
5. 解析:由于声音和图像等信息,其数字化后的数据量十分庞大,必须对数据进行压缩才能满足使用的要求;JPEG标准定义了连续色调、多级灰度、彩色或单色静止图像等国际标准;MPEG标准包括视频、音频和系统3部分,它要考虑到音频和视频的同步,联合压缩后产生一个电视质量的视频和音频压缩形式的位速率为1.5Mbps的单一流。答案选A。
6. 解析:文档是软件开发、使用维护中必备的资料。它能提高软件开发的效率、保证软件的质量,而且在软件的使用过程中有指导、帮助、解惑的作用,尤其在维护工作中,文档是不可或缺的资料。软件的生命周期包括计划、开发和运行三个阶段,在开发初期分为需求分析、总体设计和详细设计三个子阶段,在开发后期分为编码和测试两个子阶段。A、B、C选项说法都正确,答案选D。
7. 解析:路由器在因特网中起到重要的作用,它连接两个或者多个物理网络,负责将重一个网络接收来的IP数据报,经过路由选择,转发到一个合适的网络中。答案选C。
8. 解析:数据传输速率在数值上等于每秒钟传输构成数据代码的二进制比特数,单位比特/秒,记做b/s或bps。对于二进制数据,数据传输速率为S=1/T,T为传送每一比特所需要的时间。传送10bit数据时,所用的时间为: ,答案选B。
9.解析:一个网络协议由语法、语义和时序三个要素组成,语法 用户数据与控制信息的结构和格式;语义是指需要发出何种控制信息以及完成的动作与作出的响应;时序即对事件实现顺序的详细说明。答案选A。
10.解析:OSI参考模型的分层原则是:(1)网中各结点都有相同的层次;(2)不同结点的同等层具有相同的功能;(3)每一层内相邻层之间通过接口通信;(4)不同结点的同等层按照协议实现对等层之间的通信。由(4)可知D选项说法错误,答案选D。
11.解析:OSI参考模型和TCP/IP参考模型共同之处都采用了层次结构的概念,在传输层中两者定义了相似的功能,但两者在层次划分、使用的协议上有很大的区别,如表2所示。
表2 OSI参考模型与TCP/IP参考模型的比较
OSI参考模型
TCP/IP参考模型
应用层
应用层
表示层
会话层
传输层
传输层
网络层
互连层
数据链路层
主机-网络层
由表可知,TCP/IP参考模型的主机-网络层对应OSI参考模型的是数据链路层和物理层,答案选D。
12.解析:传输层的主要功能是负责应用进程之间的端—端通信,TCP/IP参考模型中设计传输层的主要目的是在互联网中源主机与目的主机的对等实体之间建立用于会话的端—端连接,从这一点看TCP/IP参考模型和OSI参考模型的传输层中是相似的,答案选B。
13.解析:主机名到IP地址的映射是借助于一组即独立又协作的域名服务器完成的,因特网中域名结构由TCP/IP协议集的域名系统(DNS,Domain Name System)进行定义。答案选B。
14.解析:分辨率为640×480的真彩色图像(像素分辨率为24b),其数据量为7.37Mb(640×480×24),一秒25帧的速率的话占用的带宽为:640×480×24×25 = 184320000bps = 184.32Mbps,答案选C。
15.解析:ISO将整个通信功能划分为七个层次,各层的功能如表3所示。
表3 OSI参考模型结构
名称
功能作用
物理层
OSI的最底层,利用物理传输介质为数据链路层提供物理连接,以便透明地传输比特流
数据链路层
在通信实体之间建立数据链路连接,传送以帧为单位的数据,采用差错控制、流量控制方法,使有差错的物理线路变成无差错的数据链路
网络层
通过路由算法,为分组通过通信子网选择最适当的路径
传输层
向用户提供可靠的端到端服务,透明地传送报文。向高层屏蔽了下层数据通信的细节,是计算机通信体系结构中最为关键的一层
会话层
组织两个会话进程之间的通信,并管理数据的交换
表示层
处理两个通信系统中交换信息的表示方式
应用层
OSI参考模型的最高层。确立进程之间的通信的性质,以满足用户的需要
由表中可知,答案选C。
16.解析:资源预留协议(RSVP)支持多媒体QoS,其根据应用的需求在各个交换结点预留资源,从而保证沿着这条通路传输的数据流能够满足QoS的要求;区分服务(DiffServ)是根据每一类服务进行控制,利用IP分组头对数据的服务级别进行标识;多协议标识交换(MPLS)技术的提出主要是为了更好地将IP协议与ATM高速交换技术结合起来,其核心是标记交换,MPLS标记是一个用于数据分组交换的、短的、固定长度的转发标识符。所以A、B、C选项说法都正确,D选项中CDMA(码分多址)是一种移动通信技术,故D选项不正确,答案选D。
17.解析:10Gbps Ethernet的数据速率高达10Gbps,因此10Gbps Ethernet的传输介质不再使用铜线和双绞线,而只使用光纤。它使用长距离的光收发器和单模光纤接口,以便能在广域网和城域网的范围内工作。答案选B。
18.解析:局域网参考模型只对应OSI参考模型的数据链路层和物理层,它将数据链路层划分为逻辑链路控制LLC(Logical Link Control)子层和介质访问控制MAC(Mediea Access Control)子层。答案选A。
19.解析:典型的Ethernet物理地址长度为48位(6个字节),允许分配的Ethernet物理地址应该有247个,这个物理地址数量可以保证全球所有可能的Ethernet物理地址的需求。答案选C。
20.解析:100Base-T标准采用了介质独立接口MII(Media Indepandent Interface),将MAC子层与物理层分隔开,使得物理层在实现100Mbps速率时所使用的传输介质和信号编码的变化不会影响到MAC子层。答案选A。
21.解析:10Gbps Ethernet只工作在全双工方式,因此不存在争用的问题,10Gbps Ethernet的传输距离不受冲突检测的限制。答案选C。
22.解析:局域网交换机利用“端口/MAC地址映射表”进行数据交换,改表的建立和维护十分重要,交换机利用“地址学习”方法来动态建立和维护端口/MAC地址映射表。答案选A。
23.解析:网卡也称为网络适配器或者网络接口卡(NIC,Network Interface Card),它是构成网络的基本部件之一,一方面连接局域网计算机,另一方面连接局域网的传输介质。网卡的分类方法有:(1)按照网卡支持的计算机种类主要分为:标准以太网与PCMCIA网卡;(2)按照网卡支持的传输速率分为:普通10Mbps网卡、高速100Mbps网卡、10/100Mbps自适应网卡、1000Mbps网卡;(3)按照网卡支持的传输介质类型分为:双绞线网卡、粗缆网卡、细缆网卡、光纤网卡。网卡没有按帧长度分类的方法,答案选D。
24.解析:交换机端口有半双工和全双工之分,对于1000Mbps的端口,半双工端口带宽为1000Mbps,全双工端口为2000Mbps,因此48个10/100Mbps的全双工端口和2个1000Mbps的全双工端口总带宽为:48×100Mbps×2 + 2×1000Mbps×2 = 13600Mbps = 13.6Gbps。答案选C。
25.解析:在建筑物综合布线系统中,主要采用高性能的非屏蔽双绞线与光纤,能够支持高达100Mbps的传输速率,甚至更高。答案选B。
26.解析:Windows和OS/2是多任务操作系统,它们允许多个程序同时运行;Windows和OS/2的内核含有分时器,它在激活的应用程序中分配处理器时间;Windows支持多种文件系统,包括FAT、FAT32和NTFS;因此A、B、C选项都正确,D选项中,Windows不需要采用扩展内存技术错误,Windows和OS/2的内存管理复杂,采用了扩展内存技术,如果系统不能提供足够的实内存来满足一个应用程序的需要,虚拟内存管理程序就会介入来弥补不足。答案选D。
27.解析:网络操作系统经历了从对等结构向非对等结构演变的过程;在对等结构网络操作系统中,所有的联网结点地位平等,任意两个节点之间可以直接实现通信;安装在每个网络节点的操作系统软件相同每台联网的计算机都可以分为前台方式和后台方式,前台为本地用户提供服务,后台为其他结点的网络用户提供服务,前台服务和后台服务的软件不可互换。答案选B。
28.解析:活动目录是Window 2000 Server最重要的新功能之一,它存储有关网络对象的信息,例如用户、组、计算机、共享资源、打印服务等,并使管理员和用户可以方便地查找和使用这些网络信息;通过Window 2000 Server的活动目录,用户可以对用户与计算机、域、信任关系,及站点与服务进行管理,活动目录有可扩展性和可调整性;活动目录把域详细划分为组织单元,组织单元是一个逻辑单位,它是域中一些用户和组、文件与打印服务等资源对象的集合;组织单元又可再划分为下级组织单元,下级组织单元能够继承父单元的访问许可权。答案选C。
29.解析:NetWare网络操作系统由Novell公司开发研发的网络操作系统,NetWare的网络安全机制主要解决以下几个问题:限制非授权用户注册网络并访问网络文件;防止用户查看他不应该查看的网络文件;保护应用程序不被复制、删除、修改或被窃取;防止用户因为误操作而删除或修改不应该修改的重要文件。因此B、C、D选项均正确,NetWare的系统容错技术主要有:三级容错机制、事物跟踪系统和UPS监控,因此A选项错误,答案选A。
30.解析:Linux操作系统是一个免费的软件包,可将普通的PC变成装有Unix 系统的工作站;Linux虽然和Unix操作系统类似,但并不是Unix 的变种,是完全重新编码的操作系统,Linux从开发初期,内核代码就是仿Unix的,几乎所有Unix的工具与外壳都可以运行在Linux上;Red Hat Linux支持Intel、Alpha和Sparc平台和大多数应用软件,支持C++编程语言。答案选B。
31.解析:1969年贝尔实验室的人员编写了Unix的第一个版本V1,1981年AT&T发表了Unix的System3,同年加州伯克利分校在VXA及其上推出了Unix的伯克利版本,即常说的Unix BSD版。目前各大公司的主要版本有:IBM公司的AIX系统、Sun公司的Solaris系统及HP公司的HP-UX系统。答案选A。
32.解析:IP提供尽力而为的服务,IP并不随意丢弃数据报,只有当系统资源用尽、接收数据错误或网络出现故障等状态下,才不得不丢弃报文;传输控制协议(TCP)和用户数据报协议(UDP)运行于传输层,TCP提供可靠的、面向连接的、全双工的数据流传输服务,而UDP则提供不可靠的无连接的传输服务。TCP/IP是一个协议集,可用于多种操作系统。答案选C。
33.解析:路由器在因特网中起到重要的作用,它连接两个或者多个物理网络,负责将重一个网络接收来的IP数据报,经过路由选择,转发到一个合适的网络中。答案选B。
34.解析:在实际应用中,需要对IP地址中的主机号部分进行再次划分,将其划分成子网号和主机号两部分。再次划分后的IP的网络号部分和主机号部分用子网屏蔽码(也称子网掩码)来区分,对于IP地址中的网络号部分在子网屏蔽码中用“1”表示,对于IP地址中主机号部分在子网屏蔽码中用“0”表示。在求网络地址时,先计算出IP地址和子网屏蔽码对应的二进制数值,然后两者进行“与”运算即得到网络地址。在本题中,255.255.192.0的二进制为:11111111. 11111111. 11000000. 00000000,主机的IP地址202.130.82.97对应的二进制为:11001010.10000010.01010010.01100001,两二进制数相“与”得11001010.10000010. 01000000. 00000000,即为主机所属网络的网络号,即202.103.64.0。答案选C。
35.解析:由于利用IP进行互联的各个物理网络所能处理的最大报文长度有可能不同,所以IP报文在传输和投递的过程中有可能被分片,从而保证数据不会超过物理网络能传输的最大报文长度。答案选D。
36.解析:一个路由表通常包含许多(N,R)对序偶,其中N 指目的网络的IP地址,R是网络N路径上的“下一个”路由器的IP地址。答案选A。
37.解析:因特网中域名结构由TCP/IP协议集的域名系统(DNS,Domain Name System)进行定义。DNS把因特网划分成多个顶级域,并规定了国际通用域名,常见的顶级域如表4所示。
表4 常见的顶级域名
顶级域名
分配对象
顶级域名
分配对象
com
商业组织
net
主要网络支持机构
e
教育机构
org
上述以外组织
gov
政府部门
int
国际组织
mil
军事部门
国家代码,如cn、us等
各个国家
答案选B。
38.解析:请求域名解析的软件至少知道如何访问一个域名服务器,而每个域名服务器至少知道根服务器地址及其父节点服务器,这样可以一直查找下去直到查到对应主机名的IP地址。在本题中,用户级计算机首先需要知道第一个域名服务器地址,即第一个域名服务器的IP地址,而选项当中只有D选项是正确的域名服务器IP地址,因此答案选D。
39.解析:电子邮件应用程序在向电子邮件服务器发送邮件的时候使用简单邮件传输协议(SMTP,Simple Mail Tansfer Protocol),在读取邮件时使用POP3(Post Office Protocol)协议或者IMAP(Interactive Mail Access Protocol)协议。答案选C。
40.解析:Telnet是TCP/IP协议中重要的协议,它为引入网络虚拟终端(NVT)提供了一种标准的键盘定义,用于屏蔽不同计算机系统对键盘输入的差异性,解决了不同计算机系统之间互操作问题。答案选A。
41.解析:因特网中每台主机至少有一个IP地址,而且这个IP地址必须是全网唯一的。在因特网允许一台主机有两个或多个IP地址,如果一台主机有两个或多个IP地址,则该主机可能会属于两个或多个逻辑网络;在因特网中允许同一主机有多个名字,同时允许多个主机对应一个IP地址。答案选B。
42.解析:在使用因特网进行电子商务活动中,通常可使用安全用安全通道访问Web站点,以避免第三方偷看或篡改,安全通道使用SSL(安全套接层)技术。答案选C。
43.解析:配置管理的内容分为对设备的管理和对设备的连接关系的管理两部分,对设备的管理包括:识别网络中的各种设备,确定设备的地理位置、名称和有关细节,记录并维护社别参数表;用适当的软件设置参数值和配置设备功能;初始化、起动和关闭网络或网络设备;配置管理能够利用统一的界面对设备进行配置,生成并维护网络设备清单,网络设备清单应该被保密,如果被有恶意的人得到可能会在许多方面对网络造成危害。答案选C。
44.解析:SNMP位于ISO/OSI模型的应用层,遵循ISO的管理 - 代理者的网络管理模型。答案选D。
45.解析:C2级称为受控的访问控制,包括所有的C1级特征,C2级具有限制用户执行某些命令或访问某些文件的权限,还加入了身份认证级别。能够达到C2级的操作系统有Unix、XENIX、NetWare 3.x或更高版本以及Windows NT等。答案选C。
46.解析:置换密码中,每个或每组字母由另一个或另一组伪装字母所替换,最古老的置换密码是凯撒密码,它的密钥空间只有26个字母,最多尝试25次即可知道密钥。答案选C。
47.解析:RC5是常规加密算法,常用的对称加密算法特点及安全性如表5所示。
表5 常用的对称加密算法
算法
特点
安全性
DES
最常用的对称加密算法,几乎是事实上的国际标准
DES本身不再安全,但其改进算法的安全性相当强
TDEA
三重DEA,密钥长度168比特
缺点是软件实现相对缓慢
RC5
分组长度和密钥长度都是可变的
可以在速度和安全性间进行折中
IDEA
以64位的明文块进行分组,密钥长度为128位,采用异或、模加、模乘三种运算
容易用软硬件实现,被认为是当今公开算法的最好的对称分组密码算法
由表可知答案选D。
48.解析:在数字签名认证过程中,数字签名使用的是公钥密码体制中的认证模型,发送者使用自己的私钥加密信息,接收者使用发送者的公钥解密信息。答案选B。
49.解析:公钥体制的安全基础主要是数学中的难题问题,流行的有两大类的:一类基于大整数因子分解问题,如RSA体制;另一类基于离散对数问题,如Elgamal体制、椭圆曲线密码体制等。答案选D。
50.解析:数字签名可以利用公钥密码体制、对称密码体制和公证系统实现。最常见的实现方法是建立在公钥密码体制和单向安全散列算法的组合基础之上;常用的公钥数字签名算法有RSA算法和数字签名标准算法(DSS);数字签名可以进行验证,但数字签名没有提供消息内容的机密性,答案选C。
51.解析:特洛伊木马是攻击者在正常的软件中隐藏一段用于其他目的的程序,这段隐藏的程序段通常以安全攻击作为其最终目标。在本题中,特洛伊病毒被植入到Word中,用户编辑Word时,病毒就会把文档传送到另一台FTP服务器,植入特洛伊木马的黑客就可以看到该用户的文档,因此Word被植入了特洛伊木马。陷门是某个子系统或某个文件系统中设置特定的“机关”,使得在提供特定的输入数据时,允许违反安全策略。答案选B。
52.解析:两网对接时,可利用硬件防火墙作为设备实现地址转换(NAT)、地址映射(MAP)、网络隔离(DMZ)及存取安全控制,消除传统软件防火墙的瓶颈问题;防火墙的优点:保护脆弱的服务、控制对系统的访问、集中的安全管理、增强的保密性、记录和统计网络利用数据以及非法使用数据、策略执行。答案选C。
53.解析:电子数据处理EDP是实现EDI的基础和必要条件;EDI又称为“无纸贸易”;EDI数据自动地投递和传输处理而不需要人工介入,应用程序对它自动响应。答案选B。
54.解析:证书是由CA安全认证中心发放的,具有权威机构的签名,所以它可以用来向系统中的其他实体证明自己的身份;每份证书都携带着证书持有者的公开密钥,所以可以向接收者证实某个实体对公开密钥的拥有,同时起着分发公开密钥的作用;证书的有效性可以通过相关的信任签名来验证,证书包括版本、序号、签名算法、颁发者、有效期、主体、主体公钥信息等字段,不携带持有者的基本信息。答案选C。
55.解析:电子现金也称数字现金,具有用途广泛、使用灵活、匿名型、快捷简单、无须直接与银行连接便可使用等特点,既可以存储在智能IC卡上,也可以以数字形式存储在现金文件中。答案选C。
56.解析:电子政务的发展大致经历面向数据处理、面向信息处理和面向知识处理三个阶段,面向数据处理的电子政务主要集中在1995年以前,以政府办公网的办公自动化和管理系统的建设为主要特征。答案选A。
57.解析:信息安全基础设施子层以公钥基础设施(PKI)、授权管理基础设施(PMI)、可信时间戳服务系统和安全保密是管理系统等为重点。答案选B。
58.解析:ATM是以信元为基础的一组分组和复用技术,是一种为了多种业务涉及的通用的面向连接的传输模式。在ATM的传输模式中,信息被组织成“信元”,来自某用户信息的各个信元不需要周期性地出现。而实际上,信元中每个位常常是同步定时发送的,即通常所说的“同步串行通信”。答案选B。
59.解析:xDSL技术安上行和下行的速率是否相同可分为对称型和非对称型两种,对称型的有:HDSL、SDSL、IDSL,非对称型的有ADSL、VDSL、RADSL。答案选C。
60.解析:EDGE(数据速率增强型GSM)接入技术是一种提高GPRS信道编码效率的高速移动数据标准,数据传输速率最高达384 kbps。答案选C。
二、填空题:
1.解析:计算机辅助工程包括计算机辅助设计CAD,计算机辅助制造CAM,计算机辅助工程CAE,计算机辅助教学CAI,计算机辅助测试CAT等。答案为:CAE
2.解析:MPEG是ISO/IEC委员会的第11172号标准草案,包括MPEG视频、MPEG音频和MPEG系统三部分。答案:视频
3.解析:目前城域网的建设方案具有几个共同点:传输介质采用光纤,交换结点采用基于IP的高速路由交换机ATM交换机,在体系结构上采用核心层、业务汇集层与接入层的三层模式,以适应各种业务需求、不同协议与不同类型用户的接入需要。答案:接入层
4.解析:计算机网络拓扑是通过网中结点与通信线路之间的几何关系表示网络结构,反映出网络各实体间的结构关系。答案:几何关系
5.解析:在层次结构的网络中,各层之间相互独立,高层并不需要知道低层是如何实现的,仅需知道该层通过层间的接口所提供的服务,上层通过接口使用低层提供的服务。答案:接口
6.解析:IEEE 802.1标准包括局域网体系结构、网络互连、以及网络管理与性能测试。答案:互连
7.解析:在Ethernet中,发送结点以“广播”方式把数据通过作为公用传输介质的总线发送出去,总线上所有的结点都能“收听”到发送结点发送的数据,为了避免冲突,CSMA/CD的发送流程可以概括为:先听后发,边听边发,冲突停止,随机延迟后重发。答案:随机
8.解析:无线局域网采用的扩频方法主要有调频扩频和直接序列扩频。答案:直接序列
9.解析:域模式的最大好处是单一网络登录能力,用户只需要在域中拥有一个账户,就可以在整个网络中漫游。答案:网络登录
10.解析:1969年AT&T公司贝尔实验室的人员编写了Unix的第一个版本V1。答案:贝尔
11.解析:一个路由表通常包含许多(N,R)对序偶,其中N 指目的网络的IP地址,R是网络N路径上的“下一个”路由器的IP地址。本题中,目的IP地址为20.0.0.1,属于A类网络地址,其网络地址为20.0.0.0,因此路由器收到该IP数据包按照路由表的第一个(N,R)对序偶下一路由选择为“直接投递”,即直接投递给接收主机,因此投递的IP地址为:20.0.0.1。答案:20.0.0.1
12.解析:WWW服务也称Web服务,WWW服务采用客户机/服务器模式,它以超文本标记语言HTML和超文本传输协议HTTP为基础,为用户提供界面一致的信息浏览系统。答案:WWW或Web
13.解析:当用户访问提供匿名服务的FTP服务器时,通常用“anonymous”作为账号,用“gust”作为口令。答案:anonymous
14.解析:故障管理的步骤包括:发现故障、判断故障症状、隔离故障、修复故障、记录故障的检修过程及其结果。答案:修复
15.解析:网络安全的基本要素是实现信息的机密性、完整性、可用性和合法性。答案:合法性
16.解析:CMIS/CMIP是ISO定义的网络管理协议,它的制定受到了政府和业界的支持。ISO首先在1989年颁布了ISO DIS 7498 – 4(X.400)文件,定义了网络管理的基本概念和总体框架。答案:ISO
17.解析:从网络高层协议的角度划分,攻击方法可以概括地分为两大类:服务攻击和非服务攻击。答案:非服务
18.解析:电子商务应用系统由CA安全认证系统、支付网关系统、业务应用系统、用户及终端系统组成。答案:用户及终端系统
19.解析:电子政务的网络基础设施包括因特网、公众服务业务网、非涉密办公网和涉密办公网几大部分。其中公众服务业务网、非涉密政府办公网和涉密政府办公网又称为政务内网。所有的网络系统以统一的安全电子政务平台为核心,共同组成一个有机的整体。答案 :政务内网
20.解析:HFC在传输方式上可分为对称型和非对称型,对称型上下可能采用不同的调制方式,传输速率相同;非对称性上行信道一般采用QPSK调制方式,下行一般采用QPSK或QAM调制方式。答案:QPSK或QAM
5. Java类中在通过MQ发送消息时报“远程通道的类型对于请求的操作不合适”的异常,请问该怎么解决
你用代码操作的话需要在队列管理器上建立一个服务器连接通道,而不是你用的接收通道,代码是通过服务器连接通道来获取队列管理器连接的,你可以将这些概念性的东西再好好的看看会对你有所帮助。
6. java.nio.channels的文件通道
描述
FileChannel 读取、写入、映射和操作文件
FileLock 对文件(文件区域)的锁定
MappedByteBuffer 映射到文件区域的直接字节缓冲区
FileChannel 类支持从连接到文件的通道读取字节或向其写入字节,以及查询和修改当前的文件位置和将文件截取为指定大小等常见操作。它定义了在整个文件或具体文件区域上获取锁定的方法;这些方法返回 FileLock 类的实例。最后,它定义了对要写入到存储设备的文件进行强行更新的方法、在文件和其他通道之间高效传输字节的方法,以及将文件区域直接映射到内存中的方法。最后一个操作创建 MappedByteBuffer 类的实例,该实例扩展了 ByteBuffer 类,具有多种文件相关的操作。
已经向 java io 包的每个 FileInputStream、FileOutputStream 和 RandomAccessFile 类添加了 getChannel 方法。在这些类的某个类的实例上调用此方法将返回一个连接到基础文件的文件通道。
7. ssh是啥东东
SSH:安全外壳协议
一、SSH介绍
什么是SSH?
传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据, 别有用心的人非常容易就可以截 获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻 击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。 服务器和你之间的数 据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
SSH的英文全称是Secure Shell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了, 而且也能够防止DNS和IP欺骗。还有一个 额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。 SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提 供一个安全的“通道”。
最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。 OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越 来越多的人使用它而不是SSH。
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。
SSH的安全验证是如何工作的
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密, 但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器, 也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。 如果你要连接到SSH服务器 上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后, 先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发 送过来的公用密匙进行比较。如果两个密匙一致, 服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。 客户端软件收到“质 询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。 但是整个登录的过程可能需要10秒。
二、SSL介绍(Secure socket Layer & Security Socket Layer)
一个应用程序的安全需求在很大程度上依赖于将如何使用该应用程序和该应用程序将要保护什么。不过,用现有技术实现强大的、 一般用途的安全通常是可能的。认证就是一个很好的示例。
当顾客想从 Web 站点购买某个产品时,顾客和 Web 站点都要进行认证。顾客通常是以提供名字和密码的方式来认证他自己。 另一方面,Web 站 点通过交换一块签名数据和一个有效的 X.509 证书(作为 SSL 握手的一部分)来认证它自己。 顾客的浏览器验证该证书并用所附的公用密钥验证签 名数据。一旦双方都认证了,则交易就可以开始了。
SSL 能用相同的机制处理服务器认证(就如在上面的示例中)和客户机认证。 Web 站点典型地对客户机认证不依赖 SSL — 要求用户提供密码是较容易的。而 SSL 客户机和服务器认证对于透明认证是完美的, 对等机 — 如 p2p 应用程序中的对等机之间一定会发生透明认证。
安全套接字层(Secure Sockets Layer (SSL)) ,SSL 是一种安全协议,它为网络(例如因特网)的通信提供私密性。SSL 使应用程序在通信时不用担心被窃听和篡改。 SSL 实际上 是共同工作的两个协议:“SSL 记录协议”(SSL Record Protocol)和“SSL 握手协议” (SSL Handshake Protocol)。“SSL 记录协议”是两个协议中较低级别的协议,它为较高级别的协议, 例如 SSL 握手协议对 数据的变长的记录进行加密和解密。SSL 握手协议处理应用程序凭证的交换和验证。
当一个应用程序(客户机)想和另一个应用程 序(服务器)通信时,客户机打开一个与服务器相连接的套接字连接。然后, 客户机和服务器对安全连接进行协商。作为协商的一部分,服务器向客户机作自我认 证。客户机可以选择向服务器作或不作自我认证。 一旦完成了认证并且建立了安全连接,则两个应用程序就可以安全地进行通信。按照惯例,我将把发起该通信的 对等机看作客户机, 另一个对等机则看作服务器,不管连接之后它们充当什么角色。
名为 A 和 B 的两台对等机想安全地进行通 信。在我们简单的 p2p 应用程序的环境中,对等机 A 想查询对等机 B 上的一个资源。 每个对等机都有包含其专用密钥的一个数据库(名为 keystore)和包含其公用密钥的证书。密码保护数据库的内容。 该数据库还包含一个或多个来自被信任的对等机的自签名证书。 对等机 A 发起这 项事务,每台对等机相互认证,两台对等机协商采用的密码及其长度并建立一个安全通道。完成这些操作之后, 每个对等机都知道它正在跟谁交谈并且知道通道是 安全的。 SSL (Secure socket Layer)安全套接层协议主要是使用公开密钥体制和X.509数字证书技术保护信息传输的机密性和完 整性, 它不能保证信息的不可抵赖性,主要适用于点对点之间的信息传输,常用Web Server方式。
安全套接层协议(SSL,Security Socket Layer)是网景(Netscape)公司提出的基于WEB应用的安全协议,它包括:服务器认证、 客户认证(可选)、SSL链路上的数据
完整性和SSL链路上的数据保密性。对于电子商务应用来说,使用SSL可保证信息的真实性、 完整性和保密性。但由于SSL不对应用层的消息进行数字签 名,因此不能提供交易的不可否认性,这是SSL在电子商务中使用的最大不足。 有鉴于此,网景公司在从Communicator 4.04版开始的所有浏 览器中引入了一种被称作“表单签名(Form Signing)”的功能, 在电子商务中,可利用这一功能来对包含购买者的订购信息和付款指令的表单进行 数字签名,从而保证交易信息的不可否认性。综上所述, 在电子商务中采用单一的SSL协议来保证交易的安全是不够的,但采用"SSL+表单签名"模式能够 为电子商务提供较好的安全性保证。
------------------------------------------------------------------------------------------------
(SSH: Secure Shell Protocol)
安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。Secure Shell,又可记为S S H,最初是U N I X系统上的一个程序,后来又迅速扩展到其他操作平台。S S H是一个好的应用程序,在正确使用时,它可以弥补网络中的漏洞。除此以外, S S H之所以酷,还有以下原因:S S H客户端适用于多种平台。几乎所有的U N I X平台—包括H P - U X、L i n u x、A I X、S o l a r i s、Digital UNIX、I r i x、S C O,以及其他平台—都可以运行S S H。而且,已经有一些客户端(其中有些为测试版)可以运行于U N I X操作平台以外,包括O S / 2、V M S、B e O S、J a v a、Wi n d o w s 9 5 / 9 8和Windows NT。这样,你就可以在几乎所有的平台上运行S S H客户端程序了。对非商业用途它是免费的。许多S S H版本可以获得源代码,并且只要不用于商业目的,都可以免费得到。而且,U N I X版本也提供了源代码,这就意味着任何人都可以对它进行修改。但是,如果你选择它用于商业目的,那么无论使用何种版本的S S H,你都得确认已经注册并获得了相应权限。绝大多数S S H的客户端和守护进程都有一些注册限制。惟一的S S H通用公共注册(General Public License,G P L )版本是l s h,它目前还是测试版。通过I n t e r n e t传送密码安全可靠。这是S S H被认可的优点之一。如果你考察一下接入ISP(Internet Service Provider,I n t e r n e t服务供应商)或大学的方法,一般都是采用Te l n e t或P O P邮件客户进程。因此,每当要进入自己的账号时,你输入的密码将会以明码方式发送(即没有保护,直接可读),这就给攻击者一个盗用你账号的机会—最终你将为他的行为负责。对应用的支持。由于S S H的源代码是公开的,所以在U N I X世界里它获得了广泛的认可。L i n u x,其源代码也是公开的,大众可以免费获得,并同时获得了类似的认可。这就使得所有开发者(或任何人)都可以通过补丁程序或b u g修补来提高其性能,甚至还可以增加功能。这也第一部分获得并安装S S H意味着其性能可以不断得到提高而无须得到来自原始创作者的直接技术支持。S S H替代了不安全的远程应用程序。S S H是设计用来替代伯克利版本的r命令集的;它同时继承了类似的语法。其结果是,使用者注意不到使用S S H和r命令集的区别。利用它,你还可以干一些很酷的事。通过使用S S H,你在不安全的网络中发送信息时不必担心会被监听。你也可以使用P O P通道和Te l n e t方式,通过S S H可以利用P P P通道创建一个虚拟个人网络( Virtual Private Network, V P N )。S S H也支持一些其他的身份认证方法,如K e r b e r o s和安全I D卡等。
但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。 OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越 来越多的人使用它而不是SSH。
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。
SSH 主要有三部分组成:
传输层协议 [SSH-TRANS] 提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在 TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。
用户认证协议 [SSH-USERAUTH] 用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当 SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希 H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。
连接协议 [SSH-CONNECT] 将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。
一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有 TCP/IP 端口和 X11 连接。
通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。
SSH分为两部分:客户端部分和服务端部分。
服务端是一个守护进程(demon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。刚才所讲的只是SSH连接的大致过程,SSH 1.x和SSH 2.x在连接协议上还有着一些差异。
SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。
SSH:新的MVC软件开发模式, SSH(Struts,Spring,Hibernate) Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装,这种新的开发模式让我们的开发更加方便、快捷、思路清晰!
8. java 连接数据库问题: 我现在想连接一个数据库,但是数据库必须要使用http通道才可以连接.
添加一个Mysql驱动,采用JDBC,上CSDN去找下例子,很多。
关键字.jdbc连mysql
9. 什么是SSL如何使用
SSL证书,也称为服务器SSL证书,是遵守SSL协议的一种数字证书,由全球信任的证书颁发机构(CA)验证服务器身份后颁发。将SSL证书安装在网站服务器上,可实现网站身份验证和数据加密传输双重功能。
如何使用SSL:
SSL证书需要到CA机构申请,然后部署到网站的服务器端,网站就可以实现ssl加密访问了。
10. Java NIO怎么理解通道和非阻塞
nio引入了buffer、channel、selector等概念。
通道相当于之前的I/O流。
“通道”太抽象了。java解释不清的东西只能看它底层是怎么解释的——操作系统的I/O控制,通道控制方式?
I/O设备:CPU——通道——设备控制器——I/O设备
(通道和设备控制器的关系是多对多,设备控制器和I/O设备的关系也是多对多。)
I/O过程,参考http://www.nbrkb.net/lwt/jsjsj/asm/INTR&DMA.htm:
1.CPU在执行用户程序时遇到I/O请求,根据用户的I/O请求生成通道程序(也可以是事先编好的)。放到内存中,并把该通道程序首地址放入CAW中。
2.CPU执行“启动I/O”指令,启动通道工作。
3.通道接收“启动I/O”指令信号,从CAW(记录下一条通道指令存放的地址)中取出通道程序首地址,并根据此地址取出通道程序的第一条指令,放入CCW(记录正在执行的通道指令)中;同时向CPU发回答信号,通知“启动I/O”指令完成完毕,CPU可继续执行。
4.与此同时,通道开始执行通道程序,进行物理I/O操作。当执行完一条指令后,如果还有下一条指令则继续执行;否则表示传输完成,同时自行停止,通知CPU转去处理通道结束事件,并从CCW中得到有关通道状态。
如此一来,主处理器只要发出一个I/O操作命令,剩下的工作完全由通道负责。I/O操作结束后,I/O通道会发出一个中断请求,表示相应操作已完成。
通道控制方式是对数据块进行处理的,并非字节。
通道控制方式就是异步I/O,参考http://blog.csdn.net/historyasamirror/article/details/5778378:
I/O分两段:1.数据从I/O设备到内核缓冲区。2.数据从内核缓冲区到应用缓冲区
I/O类型:
1.异步I/O不会产生阻塞,程序不会等待I/O完成,继续执行代码,等I/O完成了再执行一个什么回调函数,代码执行效率高。很容易联想到ajax。这个一般用于I/O操作不影响之后的代码执行。
2.阻塞I/O,程序发起I/O操作后,进程阻塞,CPU转而执行其他进程,I/O的两个步骤完成后,向CPU发送中断信号,进程就绪,等待执行。
3.非阻塞I/O并非都不阻塞,其实是第一步不阻塞,第二部阻塞。程序发起I/O操作后,进程一直检查第一步是否完成,CPU一直在循环询问,完成后,进程阻塞直到完成第二步。明白了!这个是“站着茅坑不拉屎”,CPU利用率最低的。逻辑和操作系统的程序直接控制方式一样。
阻塞不阻塞描述的是发生I/O时当前线程的状态。
以上是操作系统的I/O,那么java的nio又是怎样的呢?
个人觉得是模仿了通道控制方式。
先看看nio的示例代码:
服务端TestReadServer.java
import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import java.util.Iterator; import java.util.Set; public class TestReadServer { /*标识数字*/ private int flag = 0; /*缓冲区大小*/ private int BLOCK = 1024*1024*10; /*接受数据缓冲区*/ private ByteBuffer sendbuffer = ByteBuffer.allocate(BLOCK); /*发送数据缓冲区*/ private ByteBuffer receivebuffer = ByteBuffer.allocate(BLOCK); private Selector selector; public TestReadServer(int port) throws IOException { // 打开服务器套接字通道 ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); // 服务器配置为非阻塞 serverSocketChannel.configureBlocking(false); // 检索与此通道关联的服务器套接字 ServerSocket serverSocket = serverSocketChannel.socket(); // 进行服务的绑定 serverSocket.bind(new InetSocketAddress(port)); // 通过open()方法找到Selector selector = Selector.open(); // 注册到selector,等待连接 serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT); System.out.println("Server Start----"+port+":"); } // 监听 private void listen() throws IOException { while (true) { // 选择一组键,并且相应的通道已经打开 selector.select(); // 返回此选择器的已选择键集。 Set<SelectionKey> selectionKeys = selector.selectedKeys(); Iterator<SelectionKey> iterator = selectionKeys.iterator(); while (iterator.hasNext()) { SelectionKey selectionKey = iterator.next(); iterator.remove(); handleKey(selectionKey); } } } // 处理请求 private void handleKey(SelectionKey selectionKey) throws IOException { // 接受请求 ServerSocketChannel server = null; SocketChannel client = null; String receiveText; String sendText; int count=0; // 测试此键的通道是否已准备好接受新的套接字连接。 if (selectionKey.isAcceptable()) { // 返回为之创建此键的通道。 server = (ServerSocketChannel) selectionKey.channel(); // 接受到此通道套接字的连接。 // 此方法返回的套接字通道(如果有)将处于阻塞模式。 client = server.accept(); // 配置为非阻塞 client.configureBlocking(false); // 注册到selector,等待连接 client.register(selector, SelectionKey.OP_READ); } else if (selectionKey.isReadable()) { // 返回为之创建此键的通道。 client = (SocketChannel) selectionKey.channel(); //将缓冲区清空以备下次读取 receivebuffer.clear(); //读取服务器发送来的数据到缓冲区中 System.out.println(System.currentTimeMillis()); count = client.read(receivebuffer); System.out.println(System.currentTimeMillis() + "~"+count); } } /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub int port = 1234; TestReadServer server = new TestReadServer(port); server.listen(); } }客户端TestReadClient.javaimport java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.SocketChannel; import java.util.Iterator; import java.util.Set; public class TestReadClient { /*标识数字*/ private static int flag = 0; /*缓冲区大小*/ private static int BLOCK = 1024*1024*10; /*接受数据缓冲区*/ private static ByteBuffer sendbuffer = ByteBuffer.allocate(BLOCK); /*发送数据缓冲区*/ private static ByteBuffer receivebuffer = ByteBuffer.allocate(BLOCK); /*服务器端地址*/ private final static InetSocketAddress SERVER_ADDRESS = new InetSocketAddress( "localhost", 1234); public static void main(String[] args) throws IOException { // TODO Auto-generated method stub // 打开socket通道 SocketChannel socketChannel = SocketChannel.open(); // 设置为非阻塞方式 socketChannel.configureBlocking(false); // 打开选择器 Selector selector = Selector.open(); // 注册连接服务端socket动作 socketChannel.register(selector, SelectionKey.OP_CONNECT); // 连接 socketChannel.connect(SERVER_ADDRESS); // 分配缓冲区大小内存 Set<SelectionKey> selectionKeys; Iterator<SelectionKey> iterator; SelectionKey selectionKey; SocketChannel client; String receiveText; String sendText; int count=0; while (true) { //选择一组键,其相应的通道已为 I/O 操作准备就绪。 //此方法执行处于阻塞模式的选择操作。 selector.select(); //返回此选择器的已选择键集。 selectionKeys = selector.selectedKeys(); //System.out.println(selectionKeys.size()); iterator = selectionKeys.iterator(); while (iterator.hasNext()) { selectionKey = iterator.next(); if (selectionKey.isConnectable()) { System.out.println("client connect"); client = (SocketChannel) selectionKey.channel(); // 判断此通道上是否正在进行连接操作。 // 完成套接字通道的连接过程。 if (client.isConnectionPending()) { client.finishConnect(); System.out.println("完成连接!"); sendbuffer.clear(); BufferedInputStream br = new BufferedInputStream(new FileInputStream(new File("D:\BigData.zip"))); byte[] b = new byte[BLOCK]; br.read(b); sendbuffer.put(b); sendbuffer.flip(); System.out.println(System.currentTimeMillis()); client.write(sendbuffer); System.out.println(System.currentTimeMillis()); } client.register(selector, SelectionKey.OP_READ); } else if (selectionKey.isReadable()) { client = (SocketChannel) selectionKey.channel(); //将缓冲区清空以备下次读取 receivebuffer.clear(); //读取服务器发送来的数据到缓冲区中 count=client.read(receivebuffer); if(count>0){ receiveText = new String( receivebuffer.array(),0,count); System.out.println("客户端接受服务器端数据--:"+receiveText); client.register(selector, SelectionKey.OP_WRITE); } } } selectionKeys.clear(); } } }例子是TestReadClient向TestReadServer发送一个本地文件。TestReadServer收到后每次打印读取到的字节数。
如何体现异步I/O?
看看TestReadClient中的:
if (selectionKey.isConnectable()) { System.out.println("client connect"); client = (SocketChannel) selectionKey.channel(); // 判断此通道上是否正在进行连接操作。 // 完成套接字通道的连接过程。 if (client.isConnectionPending()) { client.finishConnect();如果没有client.finishConnect();这句等待完成socket连接,可能会报异常:java.nio.channels.NotYetConnectedException
异步的才不会管你有没有连接成功,都会执行下面的代码。这里需要人为的干预。
如果要证明是java的nio单独使用非阻塞I/O,真没办法!!!阻塞非阻塞要查看进程。。。
不过还有种说法,叫异步非阻塞。上面那段,是用异步方式创建连接,进程当然没有被阻塞。使用了finishConnect()这是人为将程序中止,等待连接创建完成(是模仿阻塞将当前进程阻塞掉,还是模仿非阻塞不断轮询访问,不重要了反正是程序卡住没往下执行)。
所以,创建连接的过程用异步非阻塞I/O可以解释的通。那read/write的过程呢?
根据上面例子的打印结果,可以知道这个过程是同步的,没执行完是不会执行下面的代码的。至于底下是使用阻塞I/O还是非阻塞I/O,对于应用级程序来说不重要了。
阻塞还是非阻塞,对于正常的开发(创立连接,从连接中读写数据)并没有多少的提升,操作过程都类似。
那NIO凭什么成为高性能架构的基础,比起IO,性能优越在哪里,接着猜。。。
java nio有意模仿操作系统的通道控制方式,那他的底层是不是就是直接使用操作系统的通道?
通道中的数据是以块为单位的,之前的流是以字节为单位的,同样的数据流操作外设的次数较多。代码中channel都是针对ByteBuffer对象进行read/write的,而ByteBuffer又是ByteBuffer.allocate(BLOCK);这样创建的,是一个连续的块空间。
那ByteBuffer是不是也是模拟操作系统的缓存?
缓存在io也有,如BufferedInputStream。CPU和外设的速度差很多,缓存为了提高CPU使用率,等外设将数据读入缓存后,CPU再统一操作,不用外设读一次,CPU操作一次,CPU的效率会被拉下来。。。