5、Windows端口服务

Windows端口服务

端口

1、”端口“是英文port的意译,可以认为是设备与外界通讯交流的出口。

2、端口可分为虚拟端口和物理端口。

  • 其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。物理端口又称为接口,是可见端口。

3、如果把IP地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个。端口是通过端口号来标记的,端口号只有整数,范围是从0到65535 (2^16-1)。每一个IP地址上都有65536个端口。

端口分类
按端口号可分为3大类

(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

(2)注册端口(动态端口)(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。

(3)动态和/或私有端口(Dynamic and/or Private Ports) (一般不会去关注,上面的端口够用了):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。

按照协议类型分类

端口被分为TCP端口和UDP端口两类,虽然他们都用正整数标识,但这并不会引起歧义,比如TCP的80端口和UDP的80端口,因为数据报在标明端口的同时,还将标明端口的类型。

端口详解

端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。

运输层为相互通信的应用进程提供了逻辑通信。

常见端口服务

TCP80端口-HTTP
HTTP协议简介

HTTP协议的TCP端口默认为80端口

超文本传输协议(英文:Hyper Text Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

HTTP是基于TCP协议之上的。在TCP/IP协议参考模型的各层对应的协议如下文讲解,其中HTTP是应用层的协议。

HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。

TCP/IP协议参考模型/协议
TCP/IP各层对应的协议:
1.FTP (File Transfer Protocol):文件传输协议
2.HTTP Hyper Text Transfer Protocol):超文本传输协议
3.SMTP (Simple Mail Transter Protocol):简单邮件传输协议
4.POP3 (Post Office Ptotocol) :邮局协议
5.DNS (Domain Name System) :域名系统
6.TCP ( Transmission Control Potocol):传输控制协议
7.UDP (User Data Potocol) :用户数据协议
8.IP (Internet Protocol):网络协议络层
9.ARP (Address Resolution Protocol):地址解析协议
10.ICMP ( InternetControl Message Protocol):因特网控制消息协议
11.HDLC (High Data Link Control):高级数据链路控制
12.SLIP(串行线路IP),PPP:点到点协议
13.放大或再生弱的信号,在两个电缆段之间复制每一个比特
1-5为应用层;6-7为传输层;8-11为互联网层;12为数据链路层;13为物理层
TCP/IP协议参考模型:
①TCP/IP 4层模型:
应用层
传输层
互联网层
网络接口层

②TCP/IP 5层模型:
应用层
传输层
互联网层
数据链路层
物理层

③OSI 7层模型
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
URL

URL:HTTP使用统一资源标识符( Uniform Resource Identifier, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息URL,全称是Uniform Resource Locator,中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。

定位:URL-->是特殊类型的URI-->相当于:全球定位系统
记录:URI-->可以认为只是一个数据库的索引
①例子:  https://www.huya.com/
https://----代表:资源使用的协议
www.huya.com/----代表:域名  (其中域名与IP地址一一对应---写IP地址也行)

②例:  http://www.example.org/index.html#date
http://www.example.org/index.html----URL
//www.example.org/index.html----URN
http://www.example.org/index.html#date----URI
HTTP工作原理

不够安全(无法确认对方的身份)--->只能说连接是可靠的,不能说对方是可靠的。

HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程,数据全部明文传输,相当于“裸奔"在互联网上,所以很容易遭到黑客的攻击。

一次HTTP操作称为一个事务,其工作整个过程如下:
1、地址解析
     如用客户端浏览器请求这个页面:http://localhost.com:8080/index.htm
     从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下:
     协议名:http
     主机名:localhost.com
     端口:8080
     对象路径:/index.htm
     在这一步,需要域名系统DNS解析域名localhost.com,得主机的IP地址。
2、封装HTTP请求数据包
     把以上部分结合本机自己的信息,封装成一个HTTP请求数据包。
3、封装成TCP包,建立TCP连接(TCP的三次握手)
     在HTTP工作开始之前,客户机(Web浏览器)首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。这里是8080端口。
4、客户机发送请求命令
     建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URI)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可内容。
5、服务器响应
     服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。实体消息是服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。
6、服务器关闭TCP连接
	 一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码Connection:keep-alive。TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。
TCP443端口-HTTPS
HTTPS协议简介

HTTPS协议(Hyper Text Transfer Protocol over Secure Socket Layer,安全套接字层上的超文本传输协议) :可以理解为HTTP+SSL/TLS,即 HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL,用于安全的HTTP数据传输。

SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。

TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。

HTTP:HTTP ---> TCP ---> IP
HTTPS :SSL or TLS ---> TCP ---> IP
HTTP通信的问题及解决办法

问题:

①通信双方使用明文,内容可能被窃听:由于HTTP本身不具备加密的功能,所以也无法做到对通信整体进行加密。

②不验证通信方的身份,因此有可能遭遇伪装:HTTP协议的实现本身非常简单,不论是谁发送过来的请求都会返回响应,因此不确认通信方,会存在各种隐患。比如目标的Web服务器有可能是已伪装的Web服务器。

③无法证明报文的完整性,所以可能遭篡改。

解决办法:

HTTPS协议保证安全基本依赖于TLS/SSL协议,TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 、对称加密和非对称加密。

流程:其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。

①解决内容可能被窃听的问题——加密

②解决报文可能遭篡改问题——数字签名

③解决通信方身份可能被伪装的问题—数字证书

数字证书和CA
数字证书与CA的关系

数字证书(Digital Certificate)是用来证明公钥(非对称密钥算法中用于加密的密钥)所有者身份的。

1、数字证书是CA对公钥签名:数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机构的公章)后形成的一个数字文件。

2、数字证书公开的:CA完成签发证书后,会将证书发布在CA的证书库(目录服务器)中,任何人都可以查询和下载,因此数字证书和公钥一样是公开的。实际上,数字证书就是经过CA认证过的公钥。

3、如何认证公钥可靠:我们人人都可以自己生成一个公钥,但是这个公钥是否能代表是你的,这个认证的过程需要一个权威机构执行,这个机构就是证书授权中心。证书授权中心(Certificate Authority)负责证书颁发。CA 是行业内信得过的组织机构,它具有权威性,由它颁发的证书大家都相信是可靠的。

一般我们自己也生成HTTPS证书,但是自己生成的HTTPS证书却是不能用的。因为浏览器只会承认受信任CA所签发出来的证书,其他个人自签的HTTPS证书浏览器是不会承认的,一律会显示“此网站不安全”的安全提示。所以不要尝试自己去生成HTTPS证书,需要HTTPS证书我们就去找受信任的CA机构进行申请。

CA认证流程(SSL双向认证步骤)

1、服务端申请证书:HTTPS通信双方的服务器端向CA机构申请证书,CA机构是可信的第三方机构,它可以是一个公认的权威的企业,也可以是企业自身。企业内部系统一般都使用企业自身的认证系统。CA机构下发根证书、服务端证书及私钥给申请者;

2、HTTPS通信双方的客户端向CA机构申请证书,CA机构下发根证书、客户端证书及私钥个申请者;

3、客户端向服务器端发起请求,服务端下发服务端证书给客户端。客户端接收到证书后,通过私钥解密证书,并利用服务器端证书中的公钥认证证书信息比较证书里的消息,例如域名和公钥与服务器刚刚发送的相关消息是否一致,如果一致,则客户端认为这个服务器的合法身份;

4、客户端发送客户端证书给服务器端,服务端接收到证书后,通过私钥解密证书,获得客户端的证书公钥,并用该公钥认证证书信息,确认客户端是否合法;

5、客户端通过随机秘钥加密信息,并发送加密后的信息给服务端。服务器端和客户端协商好加密方案后,客户端会产生一个随机的秘钥,客户端通过协商好的加密方案,加密该随机秘钥,并发送该随机秘钥到服务器端。服务器端接收这个秘钥后,双方通信的所有内容都都通过该随机秘钥加密;

图片解读:(空)

【prepare.1:生成公私钥S.pub,S.pri。S.pri自己保存,S.pub发送给CA】

【prepare.2:CA生成公私钥C.pub.C.pri使用C.pri对服务器发的S.pub签名生成CA证书】

【prepare.3:CA将生成的CA证书交给服务器】

【prepare.4:浏览器(客户端)内置CA根证书CA公钥C.pub】

1.发起链接(TCP三次握手)

2.将CA证书返回给客户端,证书包含S.pub,颁发机构,有效期等(sayHello---helloDone)

3.客户端,通过浏览器内置根证书的C.pub验证CA证书的合法性

4.生成陆机对称密钥

5.将客户端生成的对称密钥,通过S.pub加密发给服务器

6.双方通过客户端生成的随机密钥进行http通信

注:服务器罐并没有验证客户端的合法性。因为不必要只有类似银行U盾之类才有必要验证

加密算法
对称加密

有流式、分组两种,加密和解密都是使用的同一个密钥。例如:DES、AES-GCM、ChaCha20-Poly1305等。

这种方式加密和解密同用一个密钥。加密和解密都会用到密钥。没有密钥就无法对密码解密,反过来说,任何人只要持有密钥就能解密了。以对称加密方式加密时必须将密钥也发给对方。

这种方式的缺点:可究竟怎样才能安全地转交?在互联网上转发密钥时,如果通信被监听那么密钥就可会落人攻击者之手,同时也就失去了加密的意义。另外还得设法安全地保管接收到的密钥。

非对称加密

加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥,公钥的算法都是公开的,私钥是保密的。非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。例如:RSA、DSA、ECDSA、DH、ECDHE。 (公钥加密,私钥解密)(SSH协议采用这个方式)

非对称加密使用一对密钥:一把叫做私钥,另一把叫做公钥。顾名思义,私钥不能让其他任何人知道,而公钥则可以随意发布,任何人都可以获得。使用非对称加密方式,发送密文的一方使用对方的公钥进行加密处理,对方收到被加密的信息后,再使用自己的私钥进行解密。利用这种方式,不需要发送用来解密的私钥,也不必担心密钥被攻击者窃听而盗走。非对称加密的特点是信息传输一对多,服务器只需要维持一个私钥就能够和多个客户端进行加密通信。

这种方式有以下缺点:①公钥是公开的,所以针对私钥加密的信息,黑客截获后可以使用公钥进行解密,获取其中的内容。②公钥并不包含服务器的信息,使用非对称加密算法无法确保服务器身份的合法性,存在中间人攻击的风险,服务器发送给客户端的公钥可能在传送过程中被中间人截获并篡改。③使用非对称加密在数据加密解密过程需要消耗一定时间,降低了数据传输效率。

哈希算法(散列函数)

将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且早期认为算法不可逆。例如:MD5、SHA-1、SHA-2等。Hash算法的碰撞称为撞库。

Hash值又称为指纹或者摘要,具有以下特点:①正向快速:给定明文和Hash算法,在有限时间和有限资源内能计算得到Hash值。②逆向困难:给定Hash值,在有限时间内很难逆推出明文。③输入敏感:原始输入信息发生任何变化,新的Hash值都应该出现很大变化。④冲突避免:很难找到两段内容不同的明文,使得它们的Hash值一致。

对称加密+非对称加密

(HTTPS采用这种方式)

用对称密钥的好处是解密的效率比较快,使用非对称密钥的好处是可以使得传输的内容不能被破解,因为就算你拦截到了数据,但是没有对应的私钥,也是不能破解内容的。就比如说你抢到了一个保险柜,但是没有保险柜的钥匙也不能打开保险柜。那我们就将对称加密与非对称加密结合起来,充分利用两者各自的优势,在交换密钥环节使用非对称加密方式,之后的建立通信交换报文阶段则使用对称加密方式。具体做法是:发送密文的一方使用对方的公钥进行加密处理“对称的密钥”,然后对方用自己的私钥解密拿到“对称的密钥”,这样可以确保交换的密钥是安全的前提下,使用对称加密方式进行通信。所以,HTTPS采用对称加密和非对称加密两者并用的混合加密机制。

HTTPS工作原理

1、客户端发起HTTPS请求

2、服务端配置

3、传送证书

4、客户端解析证书

5、传送加密信息

6、服务端解密信息

7、传输加密后的信息

8、客户端解密信息

HTTPS工作流程(重点)

1、浏览器发起一个HTTPS(例如https://www.baidu.com/)的请求。

2、服务器端把事先配置好的公钥证书返回给客户端。

3、浏览器验证公钥证书:比如是否在有效期内,证书的用途是不是匹配客户端请求的站点,如果验证通过则继续,不通过则显示警告信息。

4、浏览器使用伪随机数生成器生成加密所使用的对称密钥,然后用证书的公钥加密这个对称密钥,发给服务器。

5、服务器使用自己的私钥解密这个消息,得到对称密钥。至此,Client和Server双方都持有了相同的对称密钥。

6、服务器使用对称密钥对浏览器第一次请求URL对应的响应进行加密,发送给浏览器。

7、此后浏览器和服务器都使用这个对称密钥进行通信。

HTTP和HTTPS的区别

连接/端口号:HTTP和HTTPS使用的是完全不停的连接方式,端口也不一样,前者是80,后者是443。

协议:HTTP是超文本传输协议,信息明文传输;HTTPS是具有安全性的SSL/TLS加密传输协议。

HTTPS-CA:HTTPS需要申请CA证书。

安全:HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建,可进行加密传输、身份认证的网络协议,比HTTP协议安全。

https通信的优点

1)客户端产生的密钥只有客户端和服务器端能得到。

2)加密的数据只有客户端和服务器端才能得到明文。

3)客户端到服务端的通信是安全的。

UDP53端口-DNS
简述

DNS简介:DNS叫做域名系统(Domain Name System),这是互联网的一项服务,DNS就是为了方便用户记忆,访问服务器,不用记忆冗余、复杂的IP地址。说白了,访问域名就是访问IP地址。

域名,从右往左数,右边是左边的父域名,越往左的范围越小。

域名等级图略。

顶级域名:.com

DNS有两个检索方式:迭代查询、递归查询。

解析过程

1、客户端在浏览器输入网址后,对于这个域名,首先查看浏览器的缓存,若没有记录,查看本地的hosts文件,去本地DNS服务器;这个过程属于递归查询。本地的hosts文件路径:file:///C:/Windows/System32/drivers/etc/hosts

2、本地DNS服务器拿到这个域名后,先去找13台根服务器,然后就存在两种方式:迭代查询、递归查询。

DNS递归解析流程

1)、客户端向本机配置的本地名称服务器(在此仅以首选DNS服务器为例进行介绍,所配置其它备用DNS服务器的解析流程完全一样)发出DNS域名查询请求。

2)、本地名称服务器收到请求后,先查询本地的缓存,如果有该域名的记录项,则本地名称服务器就直接把查询的结果返回给客户端;如果本地缓存中没有该域名的记录,则本地名称服务器再以DNS客户端的角色发送与前面一样的DNS域名查询请求发给根名称服务器

3)、根名称服务器收到DNS请求后,把所查询得到的所请求的DNS域名中顶级域名所对应的顶级名称服务器地址返回给本地名称服务器。

4)、本地名称服务器根据根名称服务器所返回的顶级名称服务器地址,向对应的顶级名称服务器发送与前面一样的DNS域名查询请求。

5)、对应的顶级名称服务器在收到DNS查询请求后,也是先查询自己的缓存,如果有所请求的DNS域名的记录项,则相接把对应的记录项返回给本地名称服务器,然后再由本地名称服务器返回给DNS客户端,否则向本地名称服务器返回所请求的DNS域名中的二级域名所对应的二级名称服务器地址。然后本地名称服务器继续按照前面介绍的方法一次次地向三级、四级名称服务器查询,直到最终的对应域名所在区域的权威名称服务器返回到最终的记录给本地名称服务器。然后再由本地名称服务器返回给DNS客户,同时本地名称服务器会缓存本次查询得到的记录项。

递归查询和迭代查询的区别

①DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代。

②DNS递归名称解析:在DNS递归名称解析中,当所配置的本地名称服务器解析不了时,后面的查询工作是由本地名称服务器替代DNS客户端进行的(以本地名称服务器为中心),只需要本地名称服务器向DNS客户端返回最终的查询结果即可。

③DNS迭代名称解析:(或者叫迭代查询)的所有查询工作全部是DNS客户端自己进行(以DNS客户端自己为中心)。在条件之一满足时就会采用迭代名称解析方式:

  • 在查询本地名称服务器时,如果客户端的请求报文中没有申请使用递归查询,即在DNS请求报头部的RD字段没有置1。相当于说”你都没有主动要求我为你进行递归查询,我当然不会为你工作了”。
  • 客户端在DNS请求报文中申请使用的是递归查询(也就是RD字段置1了),但在所配置的本地名称服务器上是禁用递归查询(DNS服务器一般默认支持递归查询的),即在应答DNS报文头部的RA字段置0。

递归与迭代图

DNS的两个问题
DNS污染

网域服务器缓存污染(DNS cache pollution)(缓存出错-不是人为),又称域名服务器缓存投毒(DNS cache poisoning),是指一些刻意制造或无意中制造出来的域名服务器数据包,把域名指往不正确的IP地址。一般来说,在互联网上都有可信赖的网域服务器,但为减低网络上的流量压力,一般的域名服务器都会把从上游的域名服务器获得的解析记录暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的局域域名服务器的缓存受到污染,就会把网域内的计算机导引往错误的服务器或服务器的网址。

DNS劫持

域名劫持(DNS劫持)(人为)是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的IP地址从而实现用户无法访问目标网站的目的或者蓄意或恶意要求用户访问指定IP地址(网站)的目的。

UDP67端口,UDP68端口-DHCP

DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得P地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

DHCP用的端号是UDP67和UDP68,这两个端口是正常的DHCP服务端口,可以理解为一个发送,一专个接收。客户端属向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。

DHCP交互过程

1、发现阶段:DHCP客户机寻找DHCP服务器的阶段。

2、提供阶段:DHCP服务器提供IP地址的阶段。

3、请求选择阶段:DHCP客户机广播DHCP请求信息,选择某台DHCP所提供的IP地址。

4、确认阶段:DHCP服务器确认所提供的IP地址的阶段。

5、*重新登陆

6、*更新租约

TCP3389端口-RDP

RDP,Remote Desktop Protocol,远程桌面协议,是一个多通道( mutil-channel)的协议,让用户(客户端或称“本地电脑")连上提供微软终端机服务的电脑(服务器端或称“远程电脑")。大部分的Windows、Linux、FreeBSD、Mac OS X都有相应的客户端。服务端听取送到TCP3389端口的数据。

重点!!远程端口3389----是高危端口

GUI

图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。(桌面)

修改RDP默认端口

方法一:直接开启远程桌面服务(选用默认端口时)

方法二:注册表当中端口号修改+关闭防火墙策略实现远程桌面服务

方法三:注册表当中端口号修改+添加防火墙策略实现远程桌面服务

(详解见:实验部分)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值