在日常开发中,敏感数据应该如何保存或传输

这篇具有很好参考价值的文章主要介绍了在日常开发中,敏感数据应该如何保存或传输。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何保存用户密码?

说到敏感信息,第一个想到的恐怕就是用户密码了吧。攻击者一旦获取到了用户密码,就会登录用户的账号进行一系列操作。甚至有些用户还习惯不管什么应用都用同一个密码,导致攻击者可以登录用户全网账号。

为了防止用户密码泄漏,首先就要做到不保存用户密码。那不保存密码在登录的时候如何验证?其实这里说的不保存密码说的是不保存用户的原始密码,这样即使被攻击者获取到了数据库所有内容,也不会泄漏用户密码。

大部分人保存密码都会使用MD5加密之后保存。这确实是一个正确的做法,但不完全正确。

首先,MD5算法是不可逆的,是单向的,也就是说只能加密不能解密。使用 MD5 运算后得到的都是固定长度的摘要信息,无法再解密为原始数据。最重要的是,仅使用MD5加密保存,并不安全。

如下图所示,使用MD5对字符串123456进行加密,得到一个加密后的字符串

在日常开发中,敏感数据应该如何保存或传输 

 我们百度随便搜一个MD5网站,对这个密文进行解密

在日常开发中,敏感数据应该如何保存或传输

不到一秒就可以得到原始数据

其实大家可以想一下,虽然 MD5 不能解密,但是我们可以构建一个超大的数据库,把所有 20 位以内的数字和字母组合的密码全部计算一遍 MD5 存进去,需要解密的时候搜索一下 MD5 就可以得到原始值了。

或许多次MD5会更安全?其实并不是,下图使用两次MD5加密

在日常开发中,敏感数据应该如何保存或传输

 再使用网站解密,同样一秒出结果,甚至类型一栏还告诉你这是两次MD5加密的数据

在日常开发中,敏感数据应该如何保存或传输

 MD5加盐就安全了?确实,但是如果加盐不当,还是很不安全。有两点比较重要:

第一,不能在代码中写死盐,且盐需要有一定的长度。最好是每一个密码都有独立的盐,并且盐要长一点,比如超过 20 位。

第二,虽然说每个人的盐最好不同,但是也不建议将一部分用户数据作为盐。比如,使用用户名作为盐。盐最好是随机的值,并且是全球唯一的,意味着全球不可能有现成的字典表给你用。

比如使用UUID作为盐,把盐也存到数据库中,并且每次用户修改密码的时候都重新计算盐,重新保存新的密码。

其实更好的做法是,不要使用像 MD5 这样快速的摘要算法,而是使用慢一点的算法。比如使用BCrypt来进行密码哈希。BCrypt 是为保存密码设计的算法,相比 MD5 要慢很多。

例如,制作 8 位密码长度的 MD5 彩虹表需要 5 个月,那么对于 BCrypt 来说,可能就需要几十年,大部分攻击者应该都没有这个耐心。

最后需要注意的是,虽然攻击者已经很难通过彩虹表来破解密码了,但仍然有可能使用暴力破解,也就是对于同一个用户名使用常见的密码逐一尝试登录。因此,除了做好密码哈希保存的工作外,还要建设一套完善的安全防御机制,在感知到暴力破解危害的时候,开启短信验证、图形验证码、账号暂时锁定等防御机制来抵御暴力破解。

如何保存姓名和身份证?

在实名认证中,姓名和身份证叫做二要素。

现在互联网很发达,很多服务都可以在网上办理,很多网站仅仅依靠二要素来确认你是谁。所以,二要素是比较敏感的数据,如果在数据库中明文保存,那么数据库被攻破后,攻击者就可能拿到大量的二要素信息。如果这些二要素被用来申请贷款等,后果不堪设想……

显然这种信息不能使用单向加密来存储了,因为无法得到原始数据。这个时候就需要使用对称加密或非对称加密了。

对称加密算法,是使用相同的密钥进行加密和解密。客户端和服务端使用同一个秘钥加密解密,这种加密方式的特点是,加密速度比较快,但是密钥传输分发有泄露风险。

非对称加密算法,加密使用公钥,解密使用私钥。公钥密码是由一对密钥对构成的,使用公钥来加密,使用私钥解密,公钥可以任意公开,私钥不能公开。这种加密方式的特点是,加密速度比较慢,但是解决了密钥的配送分发安全问题。

对于保存敏感信息的场景来说,加密和解密都是我们的服务端程序,不太需要考虑密钥的分发安全性,也就是说使用非对称加密算法没有太大的意义。在这里,就使用对称加密算法来加密数据。

推荐使用AES+合适的模式进行对称加密。

使用HTTPS更安全

HTTP 协议传输数据使用的是明文。那在传输敏感信息的场景下,如果客户端和服务端中间有一个攻击者作为中间人拦截请求,就可以窃听到这些数据,还可以修改客户端传过来的数据。

这就是很大的安全隐患。为解决这个安全隐患,有了 HTTPS 协议。HTTPS=SSL/TLS+HTTP,通过使用一系列加密算法来确保信息安全传输,以实现数据传输的机密性、完整性和权威性。

机密性:使用非对称加密来加密密钥,然后使用密钥来加密数据,既安全又解决了非对称加密大量数据慢的问题。你可以做一个实验来测试两者的差距。

完整性:使用散列算法对信息进行摘要,确保信息完整无法被中间人篡改。

权威性:使用数字证书,来确保我们是在和合法的服务端通信

理解 HTTPS 的流程,将有助于我们理解各种加密算法的区别,以及证书的意义。此外,SSL/TLS 还是混合加密系统的一个典范,如果你需要自己开发应用层数据加密系统,也可以参考它的流程。文章来源地址https://www.toymoban.com/news/detail-473756.html

到了这里,关于在日常开发中,敏感数据应该如何保存或传输的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 敏感数据是什么?包含哪些?如何保障安全?

    最近看到不少小伙伴在问,敏感数据是什么?包含哪些?如何保障安全?这里我们小编就给大家一一解答一下,仅供参考哦! 敏感数据是什么? 敏感数据,是指泄漏后可能会给社会或个人带来严重危害的数据。敏感数据又称隐私数据,包括所有不公开或未分类的信息,可能

    2024年02月05日
    浏览(44)
  • 金融用户敏感数据如何优雅地实现脱敏?

    日志脱敏是常见的安全需求。普通的基于工具类方法的方式,对代码的入侵性太强,编写起来又特别麻烦。 sensitive 提供了基于注解的方式,并且内置了常见的脱敏方式,便于开发。 为了金融交易的安全性,国家强制规定对于以下信息是要日志脱敏的: 用户名 手机号 邮箱

    2024年02月07日
    浏览(41)
  • 多云中的数据安全:如何保护敏感数据在分布式环境中的安全

    随着云计算技术的发展,多云已经成为企业和组织的主流选择。多云可以为企业提供更高的灵活性、可扩展性和竞争力。然而,多云环境也带来了新的挑战,尤其是在数据安全方面。在多云中,敏感数据的分布和管理变得更加复杂,数据安全的保障也更加重要。因此,保护敏

    2024年02月21日
    浏览(40)
  • Debezium日常分享系列之:流式传输 Cassandra

    选择Cassandra 这个 NoSQL 数据库,主要是因为它的高可用性、水平可扩展性以及处理高写入吞吐量的能力。 将 Cassandra 引入我们的基础设施后,我们的下一个挑战是找到一种方法将 Cassandra 中的数据公开给我们的数据仓库 BigQuery,以进行分析和报告。我们快速构建了一个 Airflow

    2024年02月13日
    浏览(47)
  • Debezium日常分享系列之:流式传输Cassandra第二部分

    在本博客文章系列的前半部分中,解释了Cassandra 设计流数据管道的决策过程。在这篇文章中,我们将把管道分为三个部分,并更详细地讨论每个部分: Cassandra 到 Kafka 与 CDC 代理 Kafka 与 BigQuery 和 KCBQ 使用 BigQuery 视图进行转换 相关技术博客: Debezium日常分享系列之:流式传输

    2024年02月16日
    浏览(44)
  • 新手应该如何快速上手MySQL数据库?

    数据库是计算机系统中用于存储、管理和检索数据的系统。它允许用户访问并管理数据,并具有可靠、可扩展和高效的特性。 MySQL是一个开源的关系型数据库管理系统,在互联网领域被广泛使用,如今也成为各种行业使用的标准数据库之一。 在这部分学习过程中,主要以 M

    2024年02月06日
    浏览(68)
  • 《数据资产》专题:什么是《数据资产》?应该如何落地《数据资产管理与实施》

    2021 年 12 月,中国南方电网发布了《南方电网数据资产管理体系白皮书》,白皮书指出,数据资产管理,是数据资产价值释放的必经之路。 报告中称,不少企业对于数据如何促进内部的提质增效及外部价值的释放并无统一认知,对于数据资产的运营缺乏体制化规划。 随着企

    2024年04月08日
    浏览(59)
  • 数字之美:探秘数据可视化如何在我们的日常生活中展现魅力

    数据可视化是如何通过多种方式走进我们生活的呢?它不仅仅是冰冷的数字和图表,更是一门让信息跃然纸上的艺术。让我们一同探讨数据可视化如何以多种方式渗透进我们的日常生活,为我们呈现丰富而生动的信息画卷。下面我就以可视化从业者的角度来简单说说这个话题

    2024年02月02日
    浏览(47)
  • 上海阿里云代理商:如何保护阿里云服务器中的敏感数据?有哪些加密和访问控制措施?

    如何保护阿里云服务器中的敏感数据?有哪些加密和访问控制措施? 一、阿里云服务器安全概述 阿里云服务器作为云计算服务的主要产品,其安全性备受用户关注。在实际使用中,保护服务器中的敏感数据是至关重要的,而加密和访问控制则是阿里云提供的两大核心保护措

    2024年02月11日
    浏览(45)
  • 【ES6 Map数据结构】建议日常开发操作数组时使用 new Map

    算法使用 Map 还算是不少的,日常开发也可使用 new Map 替代某些数组操作,活到老学到老 JavaScript的对象 (Object) ,本质上是键值对的集合 (Hash结构) ,但是传统上只能用字符串当作键。这给它的使用带来了很大的限制 为了解决这个问题,ES6提供了Map数据结构。它类似于对

    2024年01月17日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包