本文共 4112 字,大约阅读时间需要 13 分钟。
19年6月份从网易云音乐离开,放弃了留学机会,开始了人生的第一次创业,前后尝试了两个项目,因为个人能力与时机因素都失败了,虽然没能享受到创业所能够带来高杠杆物质上的回报,但是对个人软技能和自我边界认知上都有了很大的提升,对于这段经历有以下四点想送给准备创业和走在创业路上的朋友们。
经过这一次创业和之前的工作经历,对于下一份的工作在选择上所以也有了更多的想法,对于工作的成长性和平台背景是当下比较看重的,当然钱也是考核的一个重要指标(一切以成长和主人翁精神来鼓励加班不给钱的公司都是PUA)。结合自身的职业发展诉求,快手和字节跳动是本次找工作的目标公司。这两家公司的offer也是首先拿到的,因为offer的流程有些时间,因此也面试了一些其它的公司,感受到了各家公司的工作流程,面试过程中面试官也给予了很多技术成长上的建议,对于一些技术和设计问题也展开了一些探讨。一些面试官分享了他们在做的业务,商业模式等,总之在职业素养,技术视野,商业模式上都在潜移默化中得到一些提升。
我们知道,http 通信存在以下问题:
使用 https 可以解决数据安全问题,但是你真的理解 https 吗?
当面试官连续对你发出灵魂追问的时候,你能对答如流吗
如果你能对答自如,恭喜你,https 你已经掌握得差不多了,足够应付面试了。
简单来说, https 是 http + ssl,对 http 通信内容进行加密,是HTTP的安全版,是使用TLS/SSL加密的HTTP协议
Https的作用:
SSL 由 Netscape 公司于1994年创建,它旨在通过Web创建安全的Internet通信。它是一种标准协议,用于加密浏览器和服务器之间的通信。它允许通过Internet安全轻松地传输账号密码、银行卡、手机号等私密信息。
SSL证书就是遵守SSL协议,由受信任的CA机构颁发的数字证书。
SSL/TLS的工作原理:
需要理解SSL/TLS的工作原理,我们需要掌握加密算法。加密算法有两种:对称加密和非对称加密:
对称加密:通信双方使用相同的密钥进行加密。特点是加密速度快,但是缺点是需要保护好密钥,如果密钥泄露的话,那么加密就会被别人pojie。常见的对称加密有AES,DES算法。
非对称加密:它需要生成两个密钥:公钥(Public Key)和私钥(Private Key)。
公钥顾名思义是公开的,任何人都可以获得,而私钥是私人保管的。相信大多程序员已经对这种算法很熟悉了:我们提交代码到github的时候,就可以使用SSH key:在本地生成私钥和公钥,私钥放在本地.ssh目录中,公钥放在github网站上,这样每次提交代码,不用麻烦的输入用户名和密码了,github会根据网站上存储的公钥来识别我们的身份。
公钥负责加密,私钥负责解密;或者,私钥负责加密,公钥负责解密。这种加密算法安全性更高,但是计算量相比对称加密大很多,加密和解密都很慢。常见的非对称算法有RSA。
https 的连接过程大概分为两个阶段,证书验证阶段和数据传输阶段
大概分为三个步骤
证书验证合法之后
之后双方通信就使用第一步生成的随机数进行加密通信。
从上面我们可以知道,https 加密是采用对称加密和非对称机密一起结合的。
在证书验证阶段,使用非对称加密。 在数据传输阶段,使用对称机密。
这样设计有一个好处,能最大程度得兼顾安全效率。
在证书验证阶段,使用非对称加密,需要公钥和私钥,假如浏览器的公钥泄漏了,我们还是能够确保随机数的安全,因为加密的数据只有用私钥才能解密。这样能最大程度确保随机数的安全。
在内容传输阶段,使用对称机密,可以大大提高加解密的效率。
不是绝对安全的,可以通过中间人攻击。
中间人攻击是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
HTTPS 使用了 SSL 加密协议,是一种非常安全的机制,目前并没有方法直接对这个协议进行攻击,一般都是在建立 SSL 连接时,拦截客户端的请求,利用中间人获取到 CA证书、非对称加密的公钥、对称加密的密钥;有了这些条件,就可以对请求和响应进行拦截和篡改。
过程原理:
由于缺少对证书的验证,所以客户端虽然发起的是 HTTPS 请求,但客户端完全不知道自己的网络已被拦截,传输内容被中间人全部窃取。
在https中需要证书,证书的作用是为了防止"中间人攻击"的。 如果有个中间人M拦截客户端请求,然后M向客户端提供自己的公钥,M再向服务端请求公钥,作为"中介者" 这样客户端和服务端都不知道,信息已经被拦截获取了。这时候就需要证明服务端的公钥是正确的.
怎么证明呢?
就需要权威第三方机构来公正了.这个第三方机构就是CA. 也就是说CA是专门对公钥进行认证,进行担保的,也就是专门给公钥做担保的担保公司。 全球知名的CA也就100多个,这些CA都是全球都认可的,比如VeriSign、GlobalSign等,国内知名的CA有WoSign。
一、证书包含什么信息?
颁发机构信息、公钥、公司信息、域名、有效期、指纹…
二、证书的合法性依据是什么?
首先,权威机构是要有认证的,不是随便一个机构都有资格颁发证书,不然也不叫做权威机构。另外,证书的可信性基于信任制,权威机构需要对其颁发的证书进行信用背书,只要是权威机构生成的证书,我们就认为是合法的。所以权威机构会对申请者的信息进行审核,不同等级的权威机构对审核的要求也不一样,于是证书也分为免费的、便宜的和贵的。
三、浏览器如何验证证书的合法性?
浏览器发起HTTPS请求时,服务器会返回网站的SSL证书,浏览器需要对证书做以下验证:
以上任意一步都满足的情况下浏览器才认为证书是合法的。
e Revocation List 证书注销列表)和 OCSP(Online Certificate Status Protocol 在线证书状态协议)实现,其中 OCSP 可用于第3步中以减少与CA服务器的交互,提高验证效率。
以上任意一步都满足的情况下浏览器才认为证书是合法的。
想要了解更多关于大厂面试的同学可以**免费获取《面试文档》**除此之外,我也分享一些免费的优质资源,包括:Android学习PDF+架构视频+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。分享给大家,非常适合近期有面试和想在技术道路上继续精进的朋友。快来获取学习资料吧~
转载地址:http://pkqlf.baihongyu.com/