热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

密码的一些存储方式和安全传输建议

密码是软件系统中非常常见的属性,密码保存和传递都需要考虑如何才能不泄漏。密码存储密码在服务器都需要加密保存,根据用途不一样,有可逆加密(aes)和非可逆加密(pbkdf2)算法。可

密码是软件系统中非常常见的属性,密码保存和传递都需要考虑如何才能不泄漏。

密码存储

密码在服务器都需要加密保存,根据用途不一样,有可逆加密(aes)和非可逆加密(pbkdf2)算法。

可逆加密方式存储

可逆加密一般是客户端保存密码,客户端需要还原出密码然后使用密码访问服务器。可逆加密的aes算法需要一个密钥,通过密钥加密和解密。因此aes算法的关键就是密钥。
通常的做法是密钥也加密存储,如果这么做,就是一个鸡和蛋的问题了。
解决这个问题的一个方法是提供一个 根密钥 和 工作密钥 。

1.根密钥 根密钥不加密存储,文件权限为600
2.工作密钥 工作密钥由根密钥加密得到,文件权限为600
3.密码使用工作密钥加密,不使用根密钥加密
3.密钥建议可以替换,以便及时修复密钥泄漏问题(最好没问题,有问题了尽量把影响降低到最小,有问题了能尽快修复)

非可逆加密方式存储

非可逆加密一般是服务端存储密码方式,因为服务端不需要逆向密码明文,服务端在校验密码的时候,有很多种方式。最常见的是把客户端发送过来的明文密码加密得到密文,与服务器保存的密文对比是否相等。

非可逆加密一般有一个随机盐值,保护好随机盐值,比可逆加密算法防护措施要简单。

密码传输

在很多场景下,需要在不同系统或进程之间传输密码,特别是不同的系统,传输密码比较麻烦。

1.不同系统之间,不能共享密钥(如果需要共享密钥的话非常复杂,读者们可以结合实际场景思考),所以不能传输加密之后的密码
2.如果通过命令行参数方式传输明文密码的话,又很容易通过操作系统的 ps 命令查看到(低权限级别的用户可以 ps 到高权限级别用户的进程)
3.将明文密码写到一个文件?密码不能明文存储啊!
一个典型的场景是调用mysql客户端连接mysql服务器时候,命令行参数传递密码。

当然,细心的读者发现这个例子不合适,因为你ps不到mysql客户端的密码!

代码如下:

mao 59402 9674 0 apr29 pts/4 00:00:00 mysql -u root -px xxxxxxxx

对的,mysql 客户端是专门考虑了这种场景的。这也是一种解决这个问题的方案哦。

环境变量 ,对就是用环境变量传递明文密码。每个进程的环境变量保存在:

代码如下:

/proc/${pid}/environ
-r-------- 1 root root 0 may 1 22:00 environ

文件中,这个文件权限是 400 ,属主是当前运行进程的用户。也就是说,只有当前用户才可以看到此环境变量值,而其他用户是无法查看的,即使权限比当前用户高(root除外)!








推荐阅读
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 网易严选Java开发面试:MySQL索引深度解析
    本文详细记录了网易严选Java开发岗位的面试经验,特别针对MySQL索引相关的技术问题进行了深入探讨。通过本文,读者可以了解面试官常问的索引问题及其背后的原理。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 汇编语言等号伪指令解析:探究其陡峭的学习曲线
    汇编语言以其独特的特性和复杂的语法结构,一直被认为是编程领域中学习难度较高的语言之一。本文将探讨汇编语言中的等号伪指令及其对初学者带来的挑战,并结合社区反馈分析其学习曲线。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文深入探讨了 Redis 的两种持久化方式——RDB 快照和 AOF 日志。详细介绍了它们的工作原理、配置方法以及各自的优缺点,帮助读者根据具体需求选择合适的持久化方案。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本主题面向IT专业人士,介绍了Windows Server 2012 R2和Windows Server 2012中的组托管服务账户(gMSA),涵盖了其应用场景、功能改进、硬件和软件要求以及相关资源。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
author-avatar
青烟_I乀n-a_396
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有