加密技术的未来:从服务端密码存储到用户数据加密方案

本文探讨了密码存储的安全性问题,从明文存储的危害到哈希函数、加盐、提高计算强度等加固措施,以及用户数据加密方案。介绍了可搜索加密技术的挑战和未来加密技术的可能性,特别是全同态加密在数据安全和隐私保护上的潜力。
摘要由CSDN通过智能技术生成

经作者授权转载,原文链接,作者:Roronoa Zoro

本文主要讲常见场景的数据加密方案,以及对未来加密技术的展望,先看几条新闻:

Facebook 明文存储用户密码:

Hundreds of millions of Facebook users had their account passwords stored in plain text and searchable by thousands of Facebook employees — in some cases going back to 2012, KrebsOnSecurity has learned. Facebook says an ongoing investigation has so far found no indication that employees have abused access to this data.

早在 2012 年,Facebook 明文存储数亿用户的账户密码,成千上万的 Facebook 的员工可以随意进行搜索…

原文:Facebook Stored Hundreds of Millions of User Passwords in Plain Text for Years

CSDN 600万用户账号密码泄露:

北京时间12月21日晚间消息,中国开发者技术在线社区CSDN今晚发表声明,就“600万用户账号密码泄露”一事公开道歉,承认部分用户账号面临风险,将临时关闭用户登录,并要求“2009年4月以前注册的帐号,且2010年9月之后没有修改过密码”的用户立即修改密码。

原文:CSDN详解600万用户密码泄露始末:暂关闭登录

为什么不能明文存储密码

很多新手程序员都是这样存储密码的:

username phone password
小明 18888888888 asd123456
大明 17777777777 123abc!@#

为什么这样做是不安全的?

首先,如果遇到数据泄露事件,明文密码直接将用户隐私暴露在空中,任何人可以登陆暴露密码的账号,随意更改。其次,即使不会泄露,内部员工也可以轻易访问用户的明文密码,当公司上了规模,你无法保证公司内部没有坏人,他们是否会搜索某些用户的密码,侵犯用户隐私。所以明文存储密码是绝对不安全的。

即使你用了这样的密码:ppnn13%dkstFeb.1st(娉娉袅袅十三余,豆蔻梢头二月初),明文存储,安全性也是木有的。

再复杂的密码, 也敌不过CSDN的明文

来自知乎用户:Right Here

题外话:历史上最有名的电脑密码是什么?

密码 含义
FLZX3000cY4yhx9day 飞流直下三千尺,疑似银河下九天
hanshansi.location()!∈[gusucity] 姑苏城外寒山寺
hold?fish:palm 鱼和熊掌不可兼得
Tree_0f0=sprintf(“2_Bird_ff0/a”) 两个黄鹂鸣翠柳
csbt34.ydhl12s 池上碧苔三四点,叶底黄鹂一两声
for_$n(@ RenSheng)_$n+=“die” 人生自古谁无死
while(1)Ape1Cry&&Ape2Cry 两岸猿声啼不住
doWhile(1){LeavesFly();YangtzeRiverFlows()}; 无边落木萧萧下,不尽长江滚滚来
dig?F*ckDang5 锄禾日当午

如何存储 & 检查密码

既然密码不能明文存储,那怎么存储才是安全的?我如何检查用户输入的密码是正确的?

存储相关信息用于校验是必须的,有没有一种机制能够只保存密码的部分信息,也能用于密码校验?这样即使数据库泄露,攻击者也无法通过这些信息反推用户的密码,进而保护用户账号安全。

哈希函数(hash function)可以解决这个问题。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5KVtuech-1615542644083)(https://content.markdowner.net/pub/3e6Wnp-038oQV9)]

哈希函数是单向不可逆的,从上图很好理解,经过 hash 函数都会被丢弃一部分信息,就如同这个算法:

算法:存储用户名时丢弃用户姓氏然后随机打乱顺序,输入赵日天,输出天日。

即使知道这个算法和天日这个数据,也无法推断出赵日天这个名字,因为部分信息丢失了。

h = h a s h ( p ) h = hash(p) h=hash(p)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值