libcurl 发送邮件_使用libcurl安全发送邮件

前文提到,使用SMTP协议发送邮件不安全,本文将解释具体原因与应对措施

要解释SMTP协议的不安全问题,得先说说http协议

HTTP协议

具体解释可以参考wiki HTTP协议它是一种用于分布式、协作式和超媒体信息系统的应用层协议

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法

http交互内容是明文传输,例如获取google首页的方式:

GET / HTTP/1.1

Host: www.google.com

服务器返回内容:

HTTP/1.1 200 OK

Content-Length: 3059

Server: GWS/2.0

Date: Sat, 11 Jan 2003 02:44:04 GMT

Content-Type: text/html

Cache-control: private

Set-Cookie: PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy

X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com

Connection: keep-alive

这样有什么安全问题呢?整个交互内容除了Client和Server端,没有第三个人知道。

你可能有这样的疑问,其实不对,我们在网络上发送消息,并不是直接传递到Server端,中间会经过很多节点的转发,这样就存在干坏事的时机。

经常上网的你会碰到,有时候打开网页,莫名其妙的多了广告,而且有些是非常著名的网站,这些网站不会自主添加广告。

那这些广告是哪里来的呢?

其实是网络运营商对服务端返回的数据进行解析与篡改,由于整个交互内容是明文,很容易知道数据格式,就可以在返回数据中添加自己的广告,然后返回给用户。利用这个原理也可以做一些别的事情,例如:针对非法网页的打击。

这就是常说的 中间人劫持。

HTTPS超文本传输安全协议,是一种通过计算机网络进行安全通信的传输协议

HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

与HTTP的差异与HTTP的URL由“http://”起始且默认使用端口80不同,HTTPS的URL由“https://”起始且默认使用端口443

HTTP协议和安全协议同属于应用层(OSI模型的最高层),具体来讲,安全协议工作在HTTP之下,运输层之上:安全协议向运行HTTP的进程提供一个类似于TCP的套接字,供进程向其中注入报文,安全协议将报文加密并注入运输层套接字;或是从运输层获取加密报文,解密后交给对应的进程。

严格地讲,HTTPS并不是一个单独的协议,而是对工作在一加密连接(TLS或SSL)上的常规HTTP协议的称呼。

HTTPS报文中的任何东西都被加密,包括所有报头和荷载。

除了可能的选择密文攻击之外,一个攻击者所能知道的只有在两者之间有一连接这一事实。

由此可见,https能够实现网页信息的安全传输

SMTPS

http协议有对应的安全版本https,其实,smtp协议也有对应的安全版本smtps。

smtps协议的 wiki解释

与https协议类似,smtps协议也是通过 SSL/TLS 在传输层上通过对信息加密来保证安全性

实际例子

libcurl中有一个smtp + ssl的例子:code

我想知道,还有什么功能是libcurl不能实现的。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值