加密通信的基本概念

1.公钥密码体制:公钥、私钥、加密解密算法。

  • 加密:通过加密算法和公钥对内容进行加密,得到密文。
  • 解密:通过解密算法和私钥对密文进行解密。
    例1:RSA密码体制

2.加密解密算法

  • 1.对称加密算法:加密使用的密钥和解密使用的密钥是相同的,没有公私分明,使用时需要保证密钥的安全性
  • 2.非对称加密算法:加密使用的密钥和解密使用的密钥是相同的

PS:HTTPS采用共享密钥加密和公开密钥加密两者并用的机制。
①使用公开密钥加密方式安全地交换在稍后的共享密钥加密中要使用的密钥
②确保交换的密钥是安全的前提下,使用共享密钥加密方式进行通信(处理速度大大加快)

3.签名:

在信息的后面再加上一段内容,可以证明信息没有被修改过。一是对信息做一个hash计算得到一个hash值,如MD5加密。这是一个不可逆的过程。为了确保hash值不可被他人攻击,通常会对hash值也做一层加密。

4.MD5:

将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。

  • 1.MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。
  • 2.被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字节,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。

5.数字证书

问题:服务器如何想移动端证明自己生成的公钥是正确的?
解答:通过数字证书
主要内容:
1)证书的发布机构
2)证书的有效期
3)公钥
4)证书的所有者
5)签名所使用的算法
6)指纹以及指纹算法

6.token

计算机技术发展这么多年,安全验证的技术也是很多种,大家熟悉有: BaseAuth, Oauth, Oauth2,基于Token的认证等机制。现在比较流行,大家常用的就是token认证的方式。
token的生成一般是采用uuid保证唯一性,当用户登录时为其生成唯一的token,存储一般保存在数据库中。token过期时间采用把token二次保存在cookie或session里面,根据cookie和session的过期时间去维护token的过期时间。至于采用那种存储一般需要根据应用程序部署的环境,如果你的应用部署在多台机器上,使用nginx进行负载均衡,那么需要把token二次保存在cookie中。
怎么保证用户使用状态下token持续时间的一直有效?这需要依赖框架的一种机制,大家应该都挺熟悉的,那就是aop技术(面向切面编程),在Yii2框架里面一般采用behavior来实现,主要内容就是在给用户行为的api controller添加一个before action。在action里面,从cookie中获取token,拿取用户信息,如果用户有操作的权限,就根据当前时间去更新cookie的过期时间,从而维护token的持续时间,使得token在给定时间内不会过期,这样可以使用户的操作体验达到最佳,又能起到保护程序安全的作用。

7.一个完整的加密通信过程

1)客户端向服务端发送请求
2)服务端向客户端发送自己的数字证书,证书包含公钥
3)客户端校验证书是否正确。如果正确(并不代表对方就是服务器),发送一个随机数给服务端用私钥加密,自己用公钥去解密这个字符串,看是否能匹配上。如果匹配上,则说明对方确实是服务器
4)客户端生成一个对称加密算法,之后的内容会用这个对称加密进行加解密。客户端用公钥加密这个对称加密算法和密钥,发送给服务端。之后双方的通信就按这个方式展开了。

8.思考问题

1)HTTP时代,密码怎么传输保证安全
我们可以利用MD5的不可逆加密来传输密码。当然也不可能直接给密码加个MD5,因为那样生产的散列字符串没有时效性,只要密码没修改都有效。
所以,我们可以在这个字符串中加入一些时间元素来使这个这个密码变成一个临时密码,这样的临时密码即使被截获了也会因为时效性原因而无法利用。但是这也有个缺陷,就是客户端时间必须准确,虽然服务器程序上设置允许两分钟的误差,但是如果客户端的时间差太多就无法登录。解决的方法可以使用临时token,就是让客户端不用时间作为凭证,而是登录前去服务器取个凭证然后用这个凭证做临时密码。这个方法虽然可以解决问题,但是需要消耗一次HTTP请求。目前最简单有效的方法就是这个,至于在项目中如何取舍就看开发者自己的意愿了。
2)通信被拦截了怎么办
3)别人抓到MD5之后模拟请求怎么办
4)MD5也有破解方法,怎么办

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容