浅谈密码学---MD5

1.起源
军事领域 运用最广
对数据加密进行保护
凯瑟大帝 --凯瑟密码本
一直持续用到上世纪70年代 二战
美日对战 美军几乎截获所有日军电报
AF 中途岛 歼灭日军所有海军力量
明文--密文
A--a
B--b

类似
base64

image.png
image.png

RSA 的出现结束了密码本的时代
RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年7月首次在美国公布,当时他们三人都在麻省理工学院工作实习。RSA就是他们三人姓氏开头字母拼在一起组成的。

RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。

破解方法:因式分解

哈希(散列)函数 取摘要

  • MD5
  • SHA1/256/512 强度
  • HMAC(很多大企业在用!!) 非常安全

对称加密

  • DES(数据加密标准,目前用的少)
  • 3DES()
  • AES(高级密码标准,美国国家安全局使用) 苹果的钥匙串访问就是用的AES

散列函数特点

  • 算法公开的
  • 对相同的数据加密,得到的结果是一样的,算法一样
  • 对不同的数据加密,得到的结果是定长的(MD5加密得到32个字符)
  • 不能反算(不可逆)
  • 信息摘要,信息“指纹” 备案
image.png
  • 散列碰撞 -- 王小云

数据完全的原则

用户的习惯 密码一样的 QQ 微信 ……

1.在网络上不允许“明文”传递用户隐私信息
2.在本地上不允许“明文”保存用户隐私信息

实际开发时,哈希,对称,非对称 是结合使用的

用途

  • 密码

导入一个纯swift写的MD5加密文件

为了保持客户端与服务器一致,现在有两个做法1.服务器和客户端一样的加密 2.更加暴力的直接是32位的哈希值


服务器做法1
服务器做法2

在真实的开发中,服务器保存的是哈希值,因为服务器也不能保存用户的明文信息的规定
以前账号有找回密码,而现在只有重置密码,这是因为服务器也不知道密码是什么,因为哈希是不可逆的
注册的时候保存的密码哈希值

这样的加密方式你认为安全了吗,1.不能反算 2.服务器都不知道密码。
现在隆重的介绍一个CMD5
123456:e10adc3949ba59abbe56e057f20f883e
456789:e35cf7b66449df565f93c607d5a81d09
……
这个网站比较2的把一些可能出现的词保存起来,类似密码本。

CMD5

所以现在看来 直接MD5加密是不行的,不安全的。直接用sha1,sha256,sha512都是不行的

  • 1.直接MD5 ---不够安全, 可以查询
  • 2.加盐 -- (密码 + 盐).md5 早起的方案
    //盐 要足够长
    let salt = "aodfaod({sdf$%U@})fuadjfoefkjwefiy937ru4i12uh4r98y4rn#$dkfsf"
    let str = password.appending(salt).md5String
    很多人这么干
    这样我们感觉已经很安全了

我们的盐是死的,一旦泄露就完蛋了 程序里面的代码你最清楚。
不涨工资就可以拍桌子了

比方说100万推广引进20万用户,一旦盐泄露,用户的信息就不安全,这时就要强制升级。用户就会损失,100万打水漂了
  • 3.HMAC -- 最近几年,国内开始慢慢增多
    HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。

HMAC 的用途

HMAC 算法主要应用于身份验证,用法如下:

随机数在注册时只保存一次

  • 1.客户端发出登录请求
  • 2.服务器返回一个随机值,在会话记录中保存这个随机值,这时客户端将永久保存这个随机数
  • 3.客户端将该随机值作为密钥,用户密码进行 hmac 运算,递交给服务器
  • 4.服务器读取数据库中的用户密码,利用密钥做和客户端一样的 hmac运算,然后与用户发送的结果比较,如果一致,则用户身份合法。

这么做有什么好处呢? 如果我们在登录的过程中,黑客截获了我们发送的数据,他也只能得到 hmac 加密过后的结果,由于不知道密钥,根本不可能获取到用户密码,从而保证了安全性。

image.png
image.png

现在有一个问题,我们卸载APP 更换手机等等,没有了随机数我们要怎么登录?

  • 1.我们的登录都不是一次请求,没有key 就找服务器要。服务器给你
image.png

这个key是定期更换的,当你长时间不登录会提示更换密码

    1. 当客户端没有key时,向服务器要key,服务器不给,询问授权手机或者常用手机是否允许新手机登录。
      例如:QQ,微信。 他们不一定用的就是HMAC,但HMAC一定能实现这样的功能

现在我们的密码已经足够安全了,已经想不到怎么破解了。但是我们进入了一个死胡同里,我们要加密的不单单只有密码,还有数据。不管你怎么加密你都是向服务器发送那32位字符串,我为什么要破解你的密码。盗号什么的 就是 模拟登陆。群发消息,哥们最近手头有点紧,给充10元话费,只要量大,一天万八的没有问题。

服务器保存了账号的账号,HMAC密码,key
这时我们就不能直接发送HMAC密码了,要发送:(HMAC密码 +“201710171111”).MD5 “201710171111”客户端时间
以前服务器是对比HMAC密码,
现在服务器要对比两次

  1. HMAC密码 +“201710171112”).MD5 “201710171112”服务器的时间 这次对比一定是失败的 时间不对
    2.(HMAC密码 +“201710171111”).MD5 “201710171111” 减一分钟
    不要用本地时间 找服务器要

密码有时间限制的最长也就2分钟所以才是两次。登录超过2分钟提示密码错误!!,你想让用户登录时看小菊花2分钟,然后提示一个密码错误??别开玩笑了,登录超过20秒用户都会任务APP死掉了, APP不行。尤其是苹果手机的用户。
Android与iOS开发者最大的不同就是,Android的开发者写的不好没有关系,用户只会说破手机。 iOS用户就会说破APP。
注意 请求时间不要超过6秒,超过了也不要提示我们自己的原因,就说,你的网络环境不好,请换个宽广的地方试一试。

这样就做到 每次加密的结果都不一样,这就需要黑客必须在2分钟内搞定

安全没有绝对,只有相对安全。
怎么估算相对安全:破解所得到的价值是否大于破解所需要的成本
大于就是不安全

问:指纹能做登录密码吗?指纹能否代替密码?
答:不可以。密码:能确定你是这个账号的主人。指纹:能确定你是这个手机的主人

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

推荐阅读更多精彩内容