




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目一 网络安全与接入控制配置习题及解答任务一 网络安全概念及演示1)、Vmware WorkStation的网络设置方式Bridged、Nat、Host Only有何区别?解答:Vmware WorkStation在物理主机上创建虚拟机,物理主机称为宿主机,虚拟机称为客户机,宿主机与客户机之间网络设置有三种方式:Bridged、Host Only、Nat,分别对应宿主机上三个虚拟网卡:VMnet0、VMnet1、VMnet8。Bridged为桥接方式,通过VMnet0虚拟交换机桥接客户机与宿主机,相当于两者共同使用物理网卡,可分别对网卡设置IP地址信息,能与外界网络建立通信; Host-On
2、ly模式下,虚拟网络是一个全封闭的网络,宿主机与客户机之间通过VMnet1虚拟网卡进行通信,客户机唯一能够访问的就是宿主机,不能与外界网络建立通信,在该模式下客户机不能连接到Internet;Nat模式下,宿主机提供地址转换服务,宿主机与客户机之间通过VMnet8虚拟网卡进行通信,客户机可以通过宿主机提供的NAT服务连接到Internet。分析:在IPV4抓包任务中,虚拟机可统一设置为Bridged或Host Only模式。2)、Sniffer捕获到Telnet交互数据用户名部分为何每个字母都被捕获到两次?解答:Telnet服务中默认开启了信息回显功能,所以在Telnet会话过程中能捕获到两次
3、数据。分析:通过wireShark抓包时也可看到捕获了两次。3)、Telnet交互中如果在客户端录入中文用户名和密码,Sniffer可以正常捕获到Telnet交互数据吗,数据是什么形式?解答:Sniffer可以捕获到乱码字符,这是因为在Telnet客户端输入中文后,系统会采用默认编码对其进行编码转换为字节流,Sniffer捕获到传输过程中的字节流后,采用Sniffer默认的字符编码对字节流进行解码,因两边默认的字符编码不一致导致Sniffer不能正常的识别中文字符。分析:Windows 7中文操作系统默认采用GBK编码,而Sniffer默认识别ASCII,两者间编码不一致。任务二 交换机端口接
4、入安全配置1)、为什么在配置端口安全时建议关闭端口,结合实例进行说明?解答:思科交换机端口安全默认关闭,端口安全启用后违规处理方式默认为关闭端口,所以在端口安全应用中建议先关闭端口,之后启用端口安全,端口安全设置完毕后再开启端口,免得触发违规后端口自动关闭,产生网络故障。在本节任务中,如果不先关闭端口,启动C1的端口安全并设置最大MAC数为3后,C1 F0/3端口会自动关闭从而影响任务配置。分析:启动C1的端口安全并设置最大MAC数为3后,C1 F0/3端口能学习的MAC地址包括PC0 、PC1 、VLAN1下的S1 FA0/3、VLAN2下的S1 FA0/3 四个MAC,会触发违规,自动关闭
5、端口,所以在使用中建议先关闭端口,之后根据需要更改违规处理行为。2)、任务中为何C1 Fa0/1接口最大安全MAC地址数设为3,而Fa0/2接口为6?解答:任务要求只允许PC1 SSH C1, C1上启用端口安全实现这个要求只能在FA0/1采用如下组合:最大MAC数为3 + 静态MAC为PC1 MAC;这样可保证C1首先能学到PC1的MAC,其次可学习到S1 下VLAN1、2 FA0/3端口的MAC地址;Fa0/2端口下可学习的MAC包括:S2 下VLAN1、2 FA0/3端口的MAC地址、S2 VLAN1 、PC3的MAC共4个,设置6可满足要求。分析:从上述设置可看到利用端口安全来实现对接
6、入设备的访问控制不是很合理,一旦要求有所有变化,就得更改端口安全的设置策略。3)、图1- 24中C1Fa0/2接口下对应4个MAC,为何进行PC2、PC3互Ping后,Fa0/2接口下会出现6个MAC地址?解答:Fa0/2端口下可学习的MAC包括:S2 下VLAN1、2 FA0/3端口的MAC地址、S2 VLAN1 、PC3 VLAN1的MAC共4个,当PC2 PING PC3后,C1通过Fa0/2会学到PC2的MAC和PC3 VLAN2的MAC。分析:交换机学习MAC时,每个端口起始都处于VLAN1下,交换机启动后若有通信,交换机都能学到VLAN1下各PC的MAC,划分VLAN后交换机也会学
7、习到VLAN下对应的MAC,所有可以看到C1可以学习到PC3 VLAN1和VLAN2下的MAC地址信息。任务三 PPPOE接入配置1)、AC设备上的IP地址池是否需与其fa0/0接口IP地址处于同一个子网,若不必在同一子网如何对任务的配置进行更改?解答:AC设备的地址池是通过拨号接口和物理接口分配给PPPOE接入用户的,PPPOE配置时可使得拨号接口(绑定于Virtual-Template接口)与物理接口(任务中为fa0/0)、地址池处于同一网段,也可不属于同一网段,看具体需求;任务中配置时处于同一网段,目的是方便理解;若要设置为不同网段,须为AC的拨号接口设置与fa0/0不同网段的IP地址,
8、地址池与拨号接口地址处于同一网段。分析:PPPOE用户通过拨号接口接入并建立通道,拨号接口是AC设备上实现PPPOE接入的关键接口。2)、AC设备上配置默认路由时为何须采用下一跳IP地址形式?解答:任务中AC设备通过交换机与其它网络设备连接,是一个广播式网络(非点对点),如果使用出口形式制定路由,路由器无法准确的把数据送给下一个路由器,要准确指定数据包送出的下一个设备只能使用下一跳IP地址形式。分析:在思科路由器配置中,当使用出口配置静态路由时,系统都会提示该配置方式不适用于非点对点网络。3)、Virtual-Access虚拟接口在PPPoE 实现中取得什么作用?解答:Virtual-Acce
9、ss接口分为两类:一类是母接口,一类是子接口,母接口是配置VPDN时生成,子接口是AC设备在PPPoE用户成功接入后动态产生的虚拟接口,无IP地址,每个PPPoE接入用户对应一个唯一编号的Virtual-Access子接口,PPPoE使用该接口来管理PPPOE会话。分析:Virtual-Access虚拟子接口是Virtual-Access母接口派生出的PPPOE会话接口,用于标识一个唯一的PPPOE用户。项目二 网络安全防护技术习题及解答任务一 访问控制列表(ACL)1)思考如何禁止PC0 访问服务器Server0的FTP、TELNET和SSH服务,并在2.1.4任务完成的基础上实现该需求。解
10、答:在R0上建立ACL NO_ACCESS,该ACL内容如下ip access-list extended NO_ACCESSdeny tcp any 55 eq ftpdeny tcp any 55 eq telnetdeny tcp any 55 eq 22permit ip any any实现时,在interface Serial0/3/0下应用即可,interface Serial0/3/0ip access-group NO_ACCESS out2)思考在2.1.4任务实施结束后,PC2能访问服务器的WEB服务吗?如果不能,思考故障原因,并修改配置使PC2能够访问服务器的WEB服务。
11、解答:不能。原因是原acl中的deny tcp any 55 eq www命令没有针对PC0做限制,而是对任意地址做了限制。讲该命令修改为deny tcp host 55 eq www即可。3)思考如何仅在R1上设置ACL实现此任务的两个需求,请写出相应的ACL并上机测试。如果你对R0和R1这两台路由器都能进行控制,请思考并重新设置ACL的放置位置。解答:针对需求1,参考ACL为:R1(config)#access-list 2 deny host R1(config)#access-list 2 permit any 根据前面所述的ACL放置原则,标准 ACL 不指定目的地址,所以其位置应该
12、尽可能靠近目的地,所以选择接口int f0/0。由于要检查的数据流是从接口f0/0流出的,所以检查方向为out。配置命令如下:R1(config)#interface f0/0R1(config-if)#ip access-group 2 out针对需求2,参考ACL为:R1(config)#ip access-list extended NO_ACCESS_WWWR1(config-ext-nacl)#deny tcp any 55 eq www根据前面所述的ACL放置原则,扩展 ACL 放置在尽可能靠近需要过滤的流量源的位置上,所以选择接口s0/3/0。由于要检查的数据流是从接口s0/3/
13、0流入的,所以检查方向为in。配置命令如下:R1(config)#int s0/3/0R1(config-if)#ip access-group NO_ACCESS_WWW in如果对R0和R1这两台路由器都能进行控制,请思考并重新设置ACL的放置位置。根据ACL放置原则,针对需求一,标准 ACL 不指定目的地址,所以其位置应该尽可能靠近目的地,所以选择路由器R1的接口int f0/0,方向是out。针对需求二, 扩展ACL应 放置在尽可能靠近需要过滤的流量源的位置上,所以选择路由器R0的接口f0/0,方向为in。4)假设你实现了一个访问列表可以阻止外部发起的TCP会话进入到你的网络中,但是你
14、又想让内部发起的TCP会话的响应通过,那应该怎么办?思考并在2.1.4任务的网络拓扑结构上进行验证。解答:在需要这样控制的访问控制列表规则后加上established关键字即可。结合2.1.4任务,可在R0上设置access-list 101 permit tcp any 55 establishedint s0/3/0ip access-group 101 in 该配置可以实现:外网只能回应内网的TCP连接,而不能发起对内网的TCP连接。加上established选项后,ACL会对外网访问内网的TCP段中的ACK或RST位进行检查,如果ACK或RST位被设置(使用)了, 则表示数据包是正在进
15、行的会话的一部分,那么这个数据包会被permit。也就是说,在外网向内网发起TCP连接的时候,由于ACK或RST位未设置,这时请求是不会被permit的。任务二 NAT1)在NAT配置与应用的第5)步PAT配置完成后,使用PC0 PING 能通吗,思考原因并查看NAT映射关系。仿照R0的配置,设置内网2的路由器R1的NAT功能,配置完成后,PC0 PING PC5能通吗,为什么?PC5 PING PC0能通吗,思考原因并查看NAT映射关系。解答:不能通。原因是模拟ISP的路由器设置了access-list 1access-list 1 deny 55access-list 1 deny 55a
16、ccess-list 1 deny 55access-list 1 permit anyPC0 PING ,经过ISP路由器的echo包源地址是(NAT映射过)有影响,但返回的时候echo reply包源地址是(无NAT),符合access-list 1的拦截条件deny 55,被拦截。设置内网2的路由器R1的NAT功能,配置完成后,PC0 PING PC5也不能通。因为echo reply目标地址是,到达路由器R0后,由于NAT屏蔽了内网细节,所以被丢弃。PC5 PING PC0也不能通,原因同上。2)通过2.2.3任务实施,思考NAT是如何实现内网保护的。在本任务完成的基础上,思考如何实现
17、内网1和内网2的互通。解答:在本任务实施完成后,内网1和内网2的PC不能互通,原因是NAT屏蔽了内网细节,通过NAT转换后的公有地址无法达到对应的私有地址。在本任务基础上,如果要实现内网1和内网2的互通,可以通过配置GRE VPN或者IPSec VPN来实现。3) 在NAT配置与应用的第3)步中,最初使用了R0(config)#ip nat inside source static 进行静态NAT映射,此处直接使用接口地址作为PC0映射的公网地址会不会出现问题?如果多台主机都静态映射到可以吗?请完成测试,并思考原因。如果接口地址是动态分配的,需求又要求使用接口地址作为NAT公网地址,请思考能否
18、实现。解答:使用静态NAT映射,不会出现问题。多台主机也可以,测试中可以发现多台主机经过NAT进行了端口映射。如果接口地址是动态分配的,需求又要求使用接口地址作为NAT公网地址,也可以实现,只要采用基于接口的PAT方式即可,参考命令如下:ip nat inside source list 1 interface Serial0/3/0 overload4)在任务实施的测试中使用show ip nat statistics查看nat统计信息,并思考显示信息的各项含义。解答:以基于IP的PAT为例,配置完成用PC0 ping PC3,在本任务的路由器R0上使用该命令查看到的信息有:(/后面为注释)
19、R0#show ip nat statistics Total translations: 4 (0 static, 4 dynamic, 4 extended)/处于活动转换的条目公有4条,0条静态,4条动态,4条扩展Outside Interfaces: Serial0/3/0/nat 外部接口Inside Interfaces: FastEthernet0/0/nat 内部接口Hits: 0 Misses: 7/共计转换0个数据包,其中7个失败Expired translations: 0/nat 超时的转换条目为0Dynamic mappings:/动态映射情况- Inside Sou
20、rce/Inside Source转换access-list 1 pool wxitpool refCount 4 /超时的转换条目是4条pool wxitpool: netmask 52/地址池名字和掩码start end /起始地址和终止地址type generic, total addresses 1 , allocated 1 (100%), misses 0/地址池的使用情况,总计1个地址可以完成转换,已经使用1个地址进行转换,转换率100%,没有失败转换5)NAPT不仅转换IP包中的IP地址,还对IP包中TCP和UDP的Port进行转换。这使得多台私网主机可用1个公共IP就可以同时
21、和公共网进行通信。在任务测试中,多次使用了ping命令,但其基于的ICMP协议并没有Port,NAPT又是如何进行处理的?解答:ICMP会使用SEQ NUMBER来代替Port进行映射,下图右下角处就是SEQ NUMBER字段,当前取值为5。下面是当前echo包经nat转换后的映射信息:R0#sh ip nat translations Pro Inside global Inside local Outside local Outside globalicmp :5 :5 :5 :5可见IP地址后跟的就是SEQ NUMBER。任务三 服务质量(QoS)1)在 REF _Ref43370802
22、9 h * MERGEFORMAT 例2-22创建策略这一步骤中,修改R1(config-pmap-c)#set precedence 3,分别使用set ip dscp af31和set ip dscp cs3代替set precedence 3,在新的策略基础上再重新进行任务实施,观察实验结果并说明原因。解答:set ip dscp af31后TOS 字段8位内容为01101000。使用permit ip any any precedence 3检测,因为precedence 3对应的TOS字段取值为01100000,不能匹配,数据无法通过。使用permit ip any any dscp
23、 af31检测,因为dscp af31对应的TOS字段取值为01101000,能匹配,数据通过。使用permit ip any any dscp cs3检测,因为dscp cs3对应的TOS字段取值为01100000,不能匹配,数据无法通过。set ip dscp cs3后TOS 字段8位内容为01100000。使用permit ip any any precedence 3检测,因为precedence 3对应的TOS字段取值为01100000,能匹配,数据通过。使用permit ip any any dscp af31检测,因为dscp af31对应的TOS字段取值为01101000,不能
24、匹配,数据无法通过。使用permit ip any any dscp cs3检测,因为dscp cs3对应的TOS字段取值为01100000,能匹配,数据通过。2)将本任务实施中对QoS标记数据的放行(permit)改成拒绝(deny)通过,思考如何使用三种不同的方式使路由器R2对其流经的数据进行QoS标签匹配。解答:根据任务,依旧对set precedence 3进行测试对方式一中的主要命令修改如下:R2(config)#ip access-list extended acl-dscp #创建基于名称的扩展ACLR2(config-ext-nacl)#deny ip any any prec
25、edence 3R2(config-ext-nacl)#permit ospf any anyR2 (config)#interface Serial0/3/1 #进入接口,应用ACLR2(config-if)#ip access-group acl-dscp in数据将被拦截。对方式二中的主要命令修改如下:R2(config)#ip access-list extended acl-dscp #创建基于名称的扩展ACLR2(config-ext-nacl)#deny ip any any dscp af31R2(config-ext-nacl)#permit ospf any anyR2 (
26、config)#interface Serial0/3/1 #进入接口,应用ACLR2(config-if)#ip access-group acl-dscp in数据将被放行。对方式三中的主要命令修改如下:R2(config)#ip access-list extended acl-dscp #创建基于名称的扩展ACLR2(config-ext-nacl)#deny ip any any dscp cs3R2(config-ext-nacl)#permit ospf any anyR2 (config)#interface Serial0/3/1 #进入接口,应用ACLR2(config-i
27、f)#ip access-group acl-dscp in数据将被拦截。任务四 GRE VPN1)GRE VPN 配置时需要对数据进行分流吗?思考在上例中对哪些数据进行了GRE VPN的封装,具体又是如何实现的?解答:需要进行数据分流。上例中内网1去往内网2的数据流和内网1的数据流进行了区分。实现的方法是通过两条静态路由。一条是默认路由,另一条是去往对端内网的静态路由,其下一条地址为对端tunnel口地址。R0(config)#ip route Serial0/3/0 R0(config)#ip route 2)GRE VPN可以跨设备形成ospf邻居吗?为什么?请查阅相关资料,说明原因。解
28、答:GRE VPN可以跨设备形成ospf邻居。因为tunnel口有独立的网段可以发布ospf路由。以本章任务为例,只需要在R0上配置:router ospf 1log-adjacency-changesnetwork 55 area 0network area 0在R1上配置:router ospf 1log-adjacency-changesnetwork 55 area 0network area 0任务五 Site to Site IPSec VPN配置思考在上述任务中IPSec VPN与NAT业务并存后数据是如何封装及传输的。解答:上述任务对IPSec VPN与NAT业务并存后的数据进
29、行了分流。分流的方法是通过下面的ACL:access-list 110 permit ip 55 55access-list 100 deny ip 55 55access-list 100 permit ip 55 anyaccess-list 110分出的是走IPSec VPN的数据,这些数据会进行IPSec封装,走IPSec隧道传输。access-list 100分出的是不走IPSec VPN的数据,这些数据会进行NAT转换,走S0/3/0对应物理链路传输。2)使用show crypto isakmp policy,show crypto ipsec transform-set,show
30、 crypto isakmp sa查看VPN建立情况,思考显示信息的含义。解答:以上述任务配置完成后的R0为例,含义用注释说明。R0#show crypto isakmp policy Global IKE policy/通用IKE策略Protection suite of priority 100 /保护套件优先级为100encryption algorithm: DES - Data Encryption Standard (56 bit keys). /DES加密hash algorithm: Message Digest 5/hash算法为MD5authentication metho
31、d: Pre-Shared Key/预共享秘钥验证Diffie-Hellman group: #1 (768 bit) /DH组长度768位lifetime: 86400 seconds, no volume limit/有效期86400,无卷限制Default protection suite/默认保护套件encryption algorithm: DES - Data Encryption Standard (56 bit keys). / DES加密hash algorithm: Secure Hash Standard/ hash算法为SHAauthentication method:
32、 Rivest-Shamir-Adleman Signature/RSA验证Diffie-Hellman group: #1 (768 bit) / DH组长度768位lifetime: 86400 seconds, no volume limit/有效期86400,无卷限制R0#show crypto ipsec transform-set Transform set wxitvpn: esp-des esp-sha-hmac /交换集名称wxitvpn, 封装和加密方式为esp-des,封装和验证方式为esp-sha-hmacwill negotiate = Tunnel, ,/工作模式为
33、隧道模式R0#show crypto isakmp saIPv4 Crypto ISAKMP SA /IPv4 秘密ISAKMP SAdst src state conn-id slot status QM_IDLE 1038 0 ACTIVE/目标地址,源地址,状态QM_IDLE,conn-id为1038,slot为0,status为status。IPv6 Crypto ISAKMP SA/IPv6 秘密ISAKMP SA,当前不存在3)对于静态NAT,数据包就不是通过ACL来匹配,而是通过NAT里面的配置的地址来匹配,此时该如何解决IPSec与NAT的冲突问题?解答:对于静态NAT,数据包
34、就不是通过ACL来匹配,而是通过NAT里面的配置的地址来匹配,所以就需要通过其它模块来避免NAT处理。NAT要生效,除了数据要匹配外,还需在在接口上定义输入输出接口,两个条件只要有一个不符合,那么NAT就不会处理。解决办法可以用策略路由把数据送到路由器环回口来避免地址转换。 配置举例: interface loopback0/创建一个环回口 ip address exitip access-list extended 1001 permit ip 55 55 /匹配IPSEC的数据流exitroute-map dial permit 10/配置策略路由,使IPSEC数据流从环回口发出 matc
35、h ip address 1001 set interface loopback 0 exit任务六 Remote Access IPSec VPN配置1)在上述任务实施中观察反向路由,并与开始时的情况进行对比,找出不同,并思考原因。解答:PC1与PC3成功连通后在VPN Server上查看路由表,通过VPN拨号前后的路由表比较可以发现VPN拨号成功后产生的反向路由。如下图所示,VPN拨号成功后多了一条反向路由(S 1/0 via ),该路由以静态路由的形式注入到了路由表中。(a)VPN拨号成功前的路由表(b)VPN拨号成功后的路由表2)上述任务配置成功后,PC1 tracert PC3有几跳
36、,原因是什么?解答:如下图所示:只有两跳。原因是PC1发出的数据包直接通过建立的IPSec隧道达到路由器R2,不在经过R1跳转到R2了。3)观察PC1在开始VPN拨号直到拨号成功后这段时间内的所有数据包格式,思考isakmp是如何进行工作的。解答:通过仿真功能单步抓包即可观察所有数据包的格式。在Remote Access IPSec VPN工作时,isakmp一共要经历三个阶段,分别是IKE第1阶段,IKE第1.5阶段和KE第2阶段。任务七 GRE Over IPSec VPN配置在上面的任务实施中对从内网-内网的VPN数据和从内网-外网的NAT数据是如何进行区分的?还有没有其它分流的方法?
37、解答:在上面的任务实施中对从内网-内网的VPN数据和从内网-外网的NAT数据的区分是通过配置静态路由进行的。需要走GRE Over IPSec VPN的数据通过静态路由指定下一条是对端gre tunnel口地址。例如:上个任务中设置了静态路由:R0(config)#ip route 其他非VPN数据走默认路由。例如上个任务中设置了R0(config)#ip route Serial0/3/0有,还可以通过PBR(基于策略的路由)实现分流。思考access-list 110 permit gre 的作用。解答:access-list 110 permit gre 的作用是设置感兴趣流。命令中的g
38、re代表感兴趣流控制的是gre流,感兴趣流对应的网段是从 到 。在ipsec配置中该ACL被应用,例如R0(config-crypto-map)#match address 110,凡是匹配该ACL的gre数据流将会被ipsec加密。在网络结构拓扑不变的条件下,思科如何使用GRE Over IPSec实现内网-内网的加密通信。解答:首先在R0、R1上配置GRE VPN:建立tunnel口,配置tunnel口地址,为tunnel指定源、目的IP地址。接着在R0、R1上分别配置IPSec VPN:建立IKE策略,建立交换集,设置感兴趣流为GRE流,建立crypto map,应用crypto map
39、。最后配置静态路由区分VPN数据。项目三 TCP通信及安全编程习题及解答任务一 TCP网络通信界面构建1)、为什么获得的主机名、IP地址信息都是集合?解答:网络设备一般主机名只有一个,但是可以有多个接口、多个IP地址信息,或者一个接口配置多个IP地址信息,所以在System.Net空间中Dns类获取IP地址信息的方法返回都是集合类型。分析:Dns类下获取主机的方法有两: Dns.GetHostName()、Dns.GetHostEntry(string hostname),获取IP地址集合的方法是Dns. GetHostAddresses (string hostname)。2)、Dns类的G
40、etHostAddresses( )和GetHostEntry( )方法有何区别?解答:GetHostAddresses( )参数为string hostname,返回类型为IPAddress;GetHostEntry( )参数为string hostname,返回类型为IPHostEntry,也可从IPHostEntry类中通过属性AddressList获取主机IP地址信息集合,现已不建议使用IPHostEntry类及相关方法、属性。分析:在.NetFrameWork4.0中微软官方已建议不适用IPHostEntry类及相关方法,建议使用Dns. GetHostAddresses (stri
41、ng hostname)来获取IP地址信息集合。3)、集合需要什么数据结构来存储?解答:集合是基本数据类型的聚类,存储时常用的数据结构有数组、列表、字典等类型,C#中分别对应、List、Dictionary,其中T为泛型表示基本数据类型或自定义数据类型,Dictionary可用于存储键值对。分析:C#中数组和List类似,用于存储某种单一数据类型的集合,数组操作没有List操作简单,但是查找速度数组要快一些;Dictionary可用于存储较复杂的键值对数据。4)、获取主机IPV4地址信息的功能有几种方案实现,采用一个单独的类来实现该功能好不好?解答:获取主机IPV4地址可在需要处编码实现,也可
42、编写一个单独的类、方法实现,在需求的地方调用即可,把常用的功能单独写成类、方法可以提高代码的复用度。分析:C#是一门面向对象的语言,代码的高复用是重要特征之一,所以在编码编写过程建议预先规范,把常用的功能封装成类。任务二 TCP网络通信服务器端实现1)、TCP服务器端是如何接收和收发数据的?解答:TCP通信即套接字通信,通信双方通过套接字通道(IP:端口号)进行数据传输,TCP服务器端通过监听套接字有无连接请求,若有连接请求建立套接字通道,之后通过套接字通道发送数据并监听套接字通道有无数据,若有数据读取并处理。分析:C#实现时涉及TcpListener、TcpClient、NetworkStr
43、eam类,TcpListener用于实现对指定套接字的监听,发现连接请求并建立套接字通道,TcpClient用于描述套接字通道; NetworkStream用于获取套接字通道;数据流,进行数据收发。2)、TCP会话阶段传输的数据最终形态是二进制还是字符串,若应用中须传输字符串,对字符编码有何要求?解答:计算机通信阶段统一传输二进制形式,若需传输字符串,需要在发送端对其进行字符编码转换为二进制形态,之后在接收端采用相应的字符编码对其进行解码,要求收发两段编码保持一致。分析:任务中收发两端统一采用UTF-8编码。3)、TCP服务器端返回给客户端的“Welcome!”信息,其UTF-8编码的十六进制
44、值是什么?解答:对应的十六进制是:77 65 6C 63 6F 6D 65 21,每个字符对应一个十六进制,采用的是ASCII编码。分析:UTF-8编码兼容ASCII编码,字符、数字、标点符号在UTF-8中都采用ASCII编码。4)、Invoke()方法的调用者是哪个类,可以使用this.Invoke()替代ui_text_msg.Invoke()吗?请说明原因。解答:可以,调用者都是组件对象,在任务中this表示的当前窗体类Form,Form也属于组件类,所以可以调用invoke方法。分析:This.invoke和ui_text_msg.invoke都可调用委托。任务三 TCP网络通信客户端
45、实现简述TCP客户端的通信流程,如何在客户端发起半连接操作?解答:TCP客户端的通信流程:发起对服务器端的连接,收到服务器端响应后建立连接;建立好连接后使用该TCP通道进行数据的收发,发送时服务器端也将进行响应;半连接可利用请求-响应模式,当接收到服务器端数据时不对其进行响应使得服务器端消耗资源等待,从而使得服务器端处于挂起状态。分析:。为何说基于IPV4的TCP通信不安全,请举例说明?解答:IPV4通信采用明文传输,数据在传输过程一旦被截获容易造成信息泄露,有潜在的信息安全危害,telnet、http、ftp都基于IPV4,都存在信息安全问题。分析:加密技术可以IPV4的信息安全问题,IPV
46、6是较好的替代方案。若把服务器端的响应信息“welcome!”更改为“你好”,Sniffer软件捕获的是什么数据,是显示出“你好”这两个汉字信息码,如果不能,为什么?解答:Sniffer能捕获到数据:0 xe4 0 xbd 0 xa0 0 xe5 0 xa5 0 xbd,共6个字节,但是在sniffer中显示“你好”字符,因为sniffer默认字符编码为ASCII码。分析:Sniffer可识别ASCII码,无法识别UTF-8编码。任务四 TCP网络通信数据加密与解密1)、为什么需要在TCP通信中采用Base64字符?解答:TCP通信基于计算机网络,而计算机网络由很多网络设备和服务器主机构成,考
47、虑到部分主机性能低下,只能支持ASCII码,所以为了兼容这些低性能的主机,在传输过程统一采用base64对信息进行编码保证每个字节的高位都为0,从而兼容ASCII码,确保信息不丢失。分析:Base64是一种编码规范,是网络传输中一种基本编码,C#自带有相应的转换方法。2)、服务器端响应的“welcome!”信息为何在telnet软件显示为“/3Xu+LbD9DYJQufF0OQxXw=”,为什么字符会以两个“=”结尾?解答: “welcome!”进行128bits的Rijndael加密,输出为长度16的字节数组;之后进行Base64 字符转换,转换的方法是对16个字节按每3个字节作为一个划分,
48、余下用符号“=”不足三个字节,总共有6个划分,第6等分不足三位用两个=符号补齐,之后再把每3个字节4等分,高两位用0补齐,转换为4个字节,总共为24(6X4)个输出字符。分析:Base64是一种编码规范,是网络传输中一种基本编码,C#自带有相应的转换方法,Convert类下FromBase64String、ToBase64String可实现字符串与字节数组间的相互转换。3)、对TCP通信数据采用Rijndael加密后,就能确保TCP通信安全了吗?解答: 不能,TCP通信分为三个阶段:建立、会话、终止,TCP通信数据加密只能保证会话阶段的数据被破解、破译的成本、难度增加并不代表100%安全,且在
49、任务没有实现对客户端的接入认证,服务器端不能有效的对接入用户进行身份识别。分析:SSL、数字证书是一种TCP通信安全的完整方案。任务五 基于SSL/TLS的异步TCP通信安全实现1)、.NetFrameWork 4.0中的SslStream默认情况下采用的加密算法、验证算法、密钥交换算法分别是什么?解答: 加密算法是AES256、验证算法sha1、密钥交换算法是DH(44550)。分析:可在开发设置SSLStream的相关属性从而更改相应算法。2)、结合任务简述对“SSL建立在TCP基础之上”这句话的理解?解答: 任务开发完毕后,当客户端连接服务器端先显示TCP连接建立,之后数字证书验证通过才
50、能建立SSL通道,所以先建立TCP再建立SSL通道;在开发中,基本业务也是先建立TCP通道,之后在此基础之上进行SSL通道建立。分析:数字证书的传输、验证必须依托基础网络,所以TCP是基础。3)、X.509证书的存储位置、区域分别有哪些,请使用makecert工具创建一个测试证书,该证书存储位置是本地计算机,区域是My,自签署证书,私钥可导出,证书主题为MyServer?解答:存储区域有:个人(My)、中间证书颁发机构(CertificateAuthority)、第三方证书颁发机构(AuthRoot)、受信任的根证书颁发机构(Root)、企业信任(My)、企业信任(TrustedPublish
51、er)等,默认是个人(My)区域。创建证书的命令:makecert -r -pe -n cn=MyServer -ss My sky exchange分析:任务使用的是由vs2012颁发的自签署测试用数字证书,证书只能在颁发主机上使用,所以任务中服务器端、客户端都运行在同一个主机上。项目二 Web站点安全监测与防范习题及解答任务一 Sql注入检测与防范1)、在WEB交互过程中,用户通过浏览器输入的数据是如何提交给服务器端的?解答:WEB交互中,用户通过http协议可以以下3种形式提交数据:一是web表单形式;二是通过GET方式附加在请求的URL后面;三是通过POST方式,把数据存储在一个指定区域进行提交。分析:GET方式附加在请求的URL后面提交数据,数据暴露给用户,不安全。2)、哪些系统中有可能存在SQL注入威胁,请举例说明?解答:涉及数据存储并使用数据库软件作为后台数据存储、管理的系统、平台都可能存在SQL注入威胁,如各类信息管理系统:教务管理系统、学生成绩查询系统、图书馆管理系统等。分析:是否存在SQL注入威胁可通过构建注入语句对各系统、平台进行测试。3)、简述SQL注入产生的原因?解答:产生SQL注入的根本原因是数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第15课《我们不乱扔》教学设计-2024-2025学年一年级道德与法治上册统编版
- 展览馆装修合同
- 2025年度建筑企业农民工劳动合同创新模式试点方案
- 2025年度五星级酒店与VIP客人个性化服务协议
- 2025年度房产赠与与可持续发展合同
- 2025年度冷链物流货运损坏赔偿协议书
- 二零二五年度人工智能教育平台合作协议中的支付及费用分摊细则
- 2025年度带宠物友好房屋出租协议电子版
- 2025年度广告代理合同解除通知期限与费用结算规范
- 2025年度报废车买卖及报废车辆拆解与环保设施投资合同
- 公司安全生产监督管理办法
- 钢筋工工艺与实习(第二版)课件汇总全书电子教案完整版课件最全幻灯片(最新)课件电子教案幻灯片
- 煤矿从业人员考试题库全答案(word版)
- 洞顶回填技术交底
- 最简易的帕累托图制作方法简介PPT通用课件
- 城市轨道交通应急处理课程标准
- 初二下分式混合计算练习1(附答案)
- (完整版)振幅调制与解调习题及其解答
- 抗震支架施工安装合同
- JJG 657-2019 呼出气体酒精含量检测仪 检定规程(高清版)
- 政法书记在全县公安工作会议上的讲话
评论
0/150
提交评论