计网--电子邮件
4.1 使用邮件代理收发邮件
4.1.1 登录网页版QQ邮箱,在设置点击账户,并打开POP3/IMAP/SMTP服务,需要用手机发送短信获取授权码来开启
4.1.2 登录outlook客户端,连接QQ邮箱
4.1.3选择IMAP
4.1.4 在4.1.1设置中点击生成授权码(已打码处理)
4.1.5 输入授权码
4.1.6 等待同步后即成功
4.1.7 给自己邮箱发一件邮件
4.1.8 接受的邮件
4.2 本地收发邮件
4.2.1 QQ邮箱是网址是基于HTTPS协议的
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)能够加密信息,由HTTP+TLS/SSL组成,在原本的HTTP协议上增加了一层加密信息模块,服务端和客户端的信息传输都要经过TLS进行加密,所以传输的数据都是加密后的数据。
4.2.2 对wireshark抓包结果用tls筛选
4.2.3 分析tls协议过程
1.Client Hello
TLS握手过程的第一步就是客户端发起请求,主要包括了客户端生成的随机字符串(session key),还包含了客户端所支持所支持的加密套件列表、随机数等信息。
2.Server Hello
服务器收到客户端的Client Hello数据包之后,根据客户端发来的加密套件列表,选择一个加密套件,也生成一个随机字符串返回给客户端。密钥交换算法选择的是使用ECDHE_RSA,对称加密算法使用AES_128_GCM_SHA256:
3.Certificate
返回服务器证书,该证书中含有一个公钥,用于身份验证和密钥协商
4. Server Key Exchange,Server Hello Done
服务器返回Server Key Exchange数据包,用于和客户端交换用于数据加密的密钥,Server Hello Done用于通知客户端已经发送用于密钥交换的数据等待客户端响应。
5.Client Key Change,Change Cipher Spec,Encrypted HandShake Message
Client Key Exchange:证书验证通过后,客户端会生成整个握手过程中的第三个随机数,并且从证书中取出公钥,利用公钥以及双方实现商定的加密算法进行加密,生成Pre-master key,然后发送给服务器。服务器收到 Pre-master key后,利用私钥解密出第三个随机数,此时,客户端和服务端同时拥有了三个随机数:Random_C, Random_S,Pre-master key,两端同时利用这三个随机数以及事先商定好的加密算法进行对称加密,生成最终的“会话密钥”,后续的通信都用该密钥进行加密。这一个过程中,由于第三个随机数是通过非对称加密进行加密的,因此不容易泄漏,也就“会话密钥”是安全的,后续的通信也就是安全的。
Change Cipher Spec:客户端通知服务端,随后的信息都是用商定好的加密算法和“会话密钥”加密发送。
Encrypted Handshake Message:客户端握手结束通知,这一项同时也是前面发送的所有内容的hash值,用来供服务器校验。
6.Change Cipher Spec,Encrypted Handshake Message
Change Cipher Spec:服务端通知客户端,随后的信息都是用商定好的加密算法和“会话密钥”加密发送。
Encrypted Handshake Message:服务器握手结束通知,这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。
7.New Session Ticket,Change Cipher Spec,Encrypted HandShake Message
每隔一段时间就要更新一次会话密钥
4.3 web邮件
4.3.1 用网页版QQ邮箱给自己发送一封邮件
4.3.2 对wireshark抓包结果用tls筛选
4.3.3 过程和4.2相同
4.4 telnet收发邮件
4.4.1 开启telnet客户端
1.打开控制面板–>程序–> 程序和功能 –> 打开或关闭Windows功能
2.找到Telnet Client–>点击勾选–>确定
4.4.2 在cmd中输入Ctelnet smtp.qq.com 587 ,连接邮件服务器(对于 QQ 邮箱,只有 587 端口可以用)
4.4.3 输入详细命令,在这一步输入命令回车后提示错误,需要重新输入这一步的命令
1.输入 helo qq.com,向服务器表明身份
2.输入 auth login
4、输入邮箱的 base64 编码(xxxxxxxxxx@qq.com的base64编码)
5、输入开启 IMAP/SMPT 时授权码的 base64 编码(授权码无空格)
base64编码网址: http://tool.chinaz.com/Tools/Base64.aspx
注意:复制邮箱和授权码时注意删除空格和回车键
6、输入发送人邮箱 mail from:xxxxxxxxxx@qq.com
7、输入收信人邮箱 rcpt to:xxxxxxxxxx@qq.com
8、输入 data 回车,成功后就可以进行邮件正文编辑
9、邮件输入:
10.退出
4.4.4 对wireshark抓包结果用tls筛选
4.4.5 过程和4.2相同
4.5 总结
HTTPS 之 SSL/TLS 握手协议(Handshake Protocol)过程
握手过程:
1.初始化阶段。客户端创建随机数,发送ClientHello 将随机数连同自己支持的协议版本、加密算法发送给服务器。服务器回复ServerHello将自己生成的随机数连同选择的协议版本、加密算法给客户端。
2.认证阶段。服务器发送ServerHello的同时可能将包含自己公钥的证书发送给客户端(Certificate),并请求客户端的证书(Certificate Request)。
3.密钥协商阶段。客户端验证证书,如果收到Certificate Request则发送包含自己公钥的证书,同时对此前所有握手消息进行散列运算,并使用加密算法进行加密发送给服务器。同时,创建随机数pre-master-secret并使用服务器公钥进行加密发送。服务器收到这个ClientKeyExchange之后解密得到pre-master-secret。服务器和客户端利用第一阶段的随机数,能够计算得出master-secret。
4.握手终止。服务器和客户端分别通过ChangeCipherSpec消息使用master-secret对连接进行加密和解密,以及向对方发送终止消息(Finished)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律