最近,订阅了桌客的密码学课,课程全面而系统的介绍了密码学的发展历史,以及密码学的加密原理。
对于密码,大家一定都非常熟悉,每天微信、支付宝支付时都需要输入支付密码、电脑登陆需要输入密码、还有各种app 账号的登入密码……可以说生活中我们离不开密码。
但是,短短的几个数字和字符,是如何保证账号的安全性的呢?
银行卡、微信、支付宝的支付密码,短短的6位数字,密码的安全性足够高吗?大家的财产真的是安全的吗?
直接告诉大家结果:我们的财产很安全,不用担心。
首先,银行有自己的一套加密系统。
比如说,我的网银密码是123456,这串密码在传送给银行做核对的时候,信息并不是以123456这样的原文到达的,而是先经过安装在手机或者电脑里的网银软件,做一次RSA加密。加密后,就是标准格式的一长串字符了。银行那边收到密文后,也是通过一些算法对密文做核对,然后判断密码是不是正确。
整个过程,根本就没有原文出现。对于只截获了密文的黑客来说,你的网银支付或者银行卡支付,到底是6位密码还是12位密码,是没关系的,它们没有安全性的强弱之分。
可是有人会问:那为什么规定这些密码一定是6位呢?
其实这更多是出于使用方便的角度考虑的。
有一系列科学研究结论显示,人在无压力的时候,轻松记住的一串数字的长度,大约就是5-7位,所以就取这中间值6位,当作密码的长度。
那你说,毕竟只有6位,可能性只有100万种,远远不及这门课之前说的那些几万亿亿种的可能性安全,所以暴力破解不是一下就能把它攻破呢?
是的。但银行早就想到了这一点,所以又增加了一些物理上的限制。比如说,连续5次密码输入错误,银行卡就会被锁住,只能用主人的身份证去柜台解锁。所以你看,虽然可能性少得可怜,但暴力破解是不可能的。
但是,为什么经常能在电视上看到某某银行账号的钱被盗的新闻?
漏洞还是出在人的操作上。
要确保足够安全,你得保证输入密码时没被任何人看到。而这一点不是每个人都能做到的,毕竟这样的操作太频繁了。
像9个点位的图形解锁,虽然能提供40万种的图案可能性,但有经验的贼离很远就能通过你的动作趋势,判断出你划屏的动作。
就算黑客没能掌握这些识别技能,他们只是试一试那些划屏常用的动作,像口字型、Z字型、C字型等,多试一试,也至少有1/3的手机的图形解锁是可以被破解的。
同理,数字按键解锁也一样存在这个问题。要不就是容易被人看到密码,要不就是设置得太简单,容易被人试出来。
所以一切这些,都属于人们操作中出现的漏洞。
怎么解决呢?
可以改用指纹、声纹、面部识别来解锁或者支付。
现在的手机中,用来比对生物特征的这部分数据,是单独存储在一个区域的。
首先,这个区域是不能被轻易读到的;其次,存储到里面以后,也是加密的;再次,存储的加密后的这些生物特征,并不是完整的特征数据。
以指纹识别来说,那个特殊存储块里存储的指纹信息,不是全部指纹的样子,而只是全部指纹信息的一部分,比如说10%。那到底是存了这跟手指指纹的哪10%呢?它其实是随机的。
这10%的特征,只用来核对跟当前按过来的指纹是否吻合。所以即便有超级牛的黑客,把这部分生物特征的数据想办法读到了,也解密了,也依然不能还原一个人的指纹。
声纹和面部识别,也都是基于同一种原理。
这样,安全性就更高了。
文章中的内容大部分摘要于得到app 的《桌客-密码学30讲》,感兴趣的赶紧去订阅吧。