加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

一文搞懂Web中暗藏的密码学

发布时间:2019-11-13 15:19:14 所属栏目:建站 来源:前端劝退师
导读:【线上直播】11月21日晚8点贝壳技术总监侯圣文《数据安全之数据库安全黄金法则》 前言 开发网站登录功能时,如何保证密码在传输过程/储存的安全? 相信不少前后端的朋友,在面试时都会被问到类似的问题。 在我对密码学一无所知时,也仅会回答:MD5加密

尽管不能保证机密性,但混淆仍有其它应用:

  • 用于防止篡改和保护知识产权。
  • APP 源代码通常在打包之前就被混淆了
    • 因为源代码位于用户的设备中,可以从中提取代码。由于混淆后代码不友好,因此会阻止逆向工程,从而有助于保护知识产权。
    • 反过来,这可以防止篡改代码并将其重新分发以供恶意使用。

但是,如此存在许多有助于消除应用程序代码混淆的工具。那就是其它话题了。。。

4.1 例子一:JavaScript混淆

JavaScript源代码:

  1. function hello(name) { 
  2.   console.log('Hello, ' + name); 
  3.  
  4. hello('New user'); 

混淆后:

  1. var _0xa1cc=["x48x65x6Cx6Cx6Fx2Cx20","x6Cx6Fx67","x4Ex65x77x20x75x73x65x72"]; 
  2. function hello(_0x2cc8x2){console[_0xa1cc[1]](_0xa1cc[0]+ _0x2cc8x2 "_0xa1cc[1]")}hello(_0xa1cc[2]) 

总结

从机密性,完整性,真实性分析四种密码技术:

一文搞懂Web中暗藏的密码学

  • 加密,虽然是为了保证数据的机密性,但某些现代加密算法还采用了其他策略来保证数据的完整性(有时通过嵌入式哈希算法)和真实性。
  • 哈希,只能保证完整性,但可以通过完整性对比来做权限控制,如:基于哈希的消息认证码(HMAC)和某些传输层安全性(TLS)方法。
  • 编码,过去曾被用来表示加密,并在技术领域之外仍具有这种含义,但在编程世界中,它仅是一种数据处理机制,从未提供任何安全措施。
  • 混淆,可以用来提高抵御攻击的能力;但是,它永远不能保证数据的机密性。狡猾的对手最终将绕过混淆策略。与编码一样,永远不要将混淆视为可靠的安全控制。

附录:哈希函数常用的哈希函数:

  • MD5,一种被广泛使用的密码杂凑函数,可以产生出一个 128 位元(16 位元组)的哈希值,用于确保信息传输完整一致。*虽广泛,但过时。
  • SHA-256/SHA512 , "加盐"。在比特币中,区块链使用SHA-256算法作为基础的加密哈希函数。
    • 安全散列算法secure hash algorithm,是一个密码哈希函数家族。
    • SHA家族有五个算法,分别是SHA-1,SHA-224,SHA-256,SHA-384,SHA-512
    • 它们是美国的政府标准,后面的四个称之为SHA-2
  • bcrypt:bcrypt算法相对来说是运算比较慢的算法。

在密码学界有句常话:越慢的算法越安全。算法越算,黑客破解成本越高:

通过salt和const这两个值来减缓加密过程,ta 的加密时间(百 ms 级)远远超过md5(大概1ms左右)。

对于计算机来说,Bcrypt 的计算速度很慢,但是对于用户来说,这个过程不算慢。

bcrypt是单向的,而且经过salt和cost的处理,使其受rainbow攻击破解的概率大大降低,同时破解的难度也提升不少。

相对于MD5等加密方式更加安全,而且使用也比较简单.

  • 设计良好的密钥扩展算法,如PBKDF2,bcrypt,scrypt。

后记 & 引用

  • How Secure Are Encryption, Hashing, Encoding and Obfuscation?[3]
  • CTF 中那些脑洞大开的编码和加密[4]
  • 散列文件的存储——‘桶’[5]

那么,如何保证密码在传输过程/储存的安全呢?

参考资料

How Secure Are Encryption, Hashing, Encoding and Obfuscation?: https://auth0.com/blog/how-secure-are-encryption-hashing-encoding-and-obfuscation/#What-is-Encoding-

引自:一篇文章彻底弄懂Base64编码原理: https://blog.csdn.net/wo541075754/article/details/81734770

How Secure Are Encryption, Hashing, Encoding and Obfuscation?: https://auth0.com/blog/how-secure-are-encryption-hashing-encoding-and-obfuscation/#What-is-Encoding-

CTF中那些脑洞大开的编码和加密: https://www.cnblogs.com/godoforange/articles/10850493.html

散列文件的存储——‘桶’: https://blog.csdn.net/Dearye_1/article/details/78492021

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读