从外部验证安全密码存储

2023-11-15

许多网站( 包括 Adobe,Yahoo,LinkedIn,Gawker等大型网站)不安全地存储用户密码。 可以是纯文本格式的,也可以是加密的(可逆的)格式,或者是使用残破或蛮力的哈希函数。 许多网站的密码存储机制仍然很差。

所以呢? 好吧,如果数据库以某种方式泄漏(很明显它确实发生了,请参见上面的链接),则用户将有麻烦–不仅是他们在有问题的站点上的帐户受到了威胁–由于在网络上,他们在网上的许多帐户也可能受到了威胁用户重用密码的自然趋势。 因此,如果您的网站损坏了,那不仅仅关乎您,还关乎用户的其他帐户,仅此而已就意味着事情很严重。

是的,我们知道如何实现它–使用bcrypt / PBKDF2 / scrypt 。 我们知道,但很多人不知道。 因此,我认为最好给一个好的网站一种方法,向他们的用户证明他们认真对待密码问题。

因此,我创建了SaltedHashed.com (作为一个周末项目)。 它要求网站所有者将其密码存储机制公开为类似REST的API端点,我的服务会定期调用该端点以检查一切是否正常。 调用由随机生成的密码组成,网站必须使用其使用的算法以及存储在数据库中的密码的最终形式进行响应。

成功完成此过程后,站点将获得一个徽章(例如(过去)拥有的“ Valid XHTML”,“ Valid CSS”,“由VeriSign保护”等徽章),上面写着“我们安全地存储密码”,链接到获取网站最新状态并向用户说明为什么这很重要的页面。 我知道不是很多,但是它很少有机会提高对该问题的认识,这很重要。

唯一被认为是安全的算法是Bcrypt,PBKDF2和Scrypt。 SHA-512不是 。 没有简单的哈希函数。 不允许加密(因为它是可逆的,并且如果攻击者掌握了您的密钥,则会显示所有密码)。

解决方案不是防弹的-有人可能会暴露伪造的Bcrypt端点,同时仍然使用纯文本密码,但是如文档所述 -为什么您不使用已为实现“合规性”而实现的功能”? 总的来说,我认为开发人员为暴露端点所付出的努力是最小的。

该项目在GitHub上 。 它是用Java和Spring MVC编写的。 MongoDB用作数据库。 目前,它已部署在OpenShift(RedHat的PaaS)上,主要是因为它易于安装且免费。 (注意:我显然需要一个更好的设计师来至少修复徽章并减少网站的丑陋程度,即使Bootstrap将像我这样的开发人员所做的更改最小化也可以使它变丑)。 saltedhashed.com上的身份验证仅通过Mozilla Persona进行 –第三方身份验证不需要在我的一端存储密码(我实际上会向所有网站建议这样做)。

我正在尝试解决一个小而重要的问题。 我希望我至少可以帮助改善这种情况。

参考:Bozho的技术博客博客上,从我们的JCG合作伙伴 Bozhidar Bozhanov 外部验证安全密码存储

翻译自: https://www.javacodegeeks.com/2014/03/verifying-secure-password-storage-externally.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从外部验证安全密码存储 的相关文章

随机推荐

  • Games101,Lecture 13(光线与物体求交,引入包围盒)

    光线追踪 光线追踪更多的用于离线应用 因为一帧一般需要一万个CPU小时 原理 由摄像机发出感应光线 判断与物体相交的点是否可以与 光源连线 无遮挡物 如何判断光线与物体有交点 是管线追踪中较难的部分 光线与物体求交 1 与隐式表示的曲面求交
  • RabbitMQ 端口详解

    4369 epmd 25672 Erlang distribution Epmd 是 Erlang Port Mapper Daemon 的缩写 在 Erlang 集群中相当于 dns 的作用 绑定在4369端口上 5672 5671 AM
  • c++ 定时器_「STM32」定时器中断实验

    在上一篇文章中 STM32 定时器概述 中 定时器可以被人为分为4个大部分 时钟发生器 实际模块 输入捕获 输出比较 而定时器中断实验 我们更多的在操作时钟发射器这个模块 这个应用也是定时器最基本的应用了 时钟选择 内部时钟选择 时钟计算方
  • SpringBoot使用@JsonDeserialize和@JsonSerialize注解的功能简介说明

    转自 SpringBoot使用 JsonDeserialize和 JsonSerialize注解的功能简介说明 下文笔者讲述 JsonDeserialize和 JsonSerialize注解的功能简介说明 SpringMVC 在Spring
  • 【SQL基础】【关键字大写】条件查询:比较、不等于、IN、为空、BETWEEN

    概述 1 内容介绍 条件查询 比较 不等于 IN 为空 BETWEEN 2 建表语句 drop table if exists user profile CREATE TABLE user profile id int NOT NULL d
  • 使用 vite 代替 webpack 搭建 react 前端开发环境

    说明 在大型前端项目中 我们一般会使用 webpack Rollup 等工具进行模块整合 但是庞大的代码量会使得我们在开发阶段花费更多的时间在 代码改动 gt 页面渲染 这个阶段 即使使用 HMR 这个问题也没有完全的解决 项目代码量达到一
  • plsql链接服务器无响应,sqlplus 连接数据库无响应

    一批三台安装服务器 先后出现了sqlplus 连接数据库无响应问题 1 因为几乎同一时间出现问题 起初怀疑是网络组对网络有整体调整 后经过确认网络组有调整 但不影响我们的服务器 2 telnet server 1521端口正常响应 3 从终
  • 深度解析,抖音对口型唱歌类短视频内容制作流程,步骤技巧分享

    就像之前分享的信息差案例一样 任何时候都有信息差 但是还有一种叫认知差 就是认知高的人赚认知低的人的钱 不是有句话很火吗 你永远也赚不到认知以外的钱 更多精彩干货请关注共众号 萤火宠 你的认知很高 可以高客单价赚高认知人群的钱 但是也有些人
  • 图形学-改进的Bresenham算法

    图形学 改进的Bresenham算法 原理 代码 原理 虽然中点Bresenham算法是一种效率很高的算法 但也还有改进的余地 当然 其基本原理仍是每次在最大位移方向上走一步 而另一个方向上走还是不走取决于误差项的判断 根据中点Bresen
  • JSP和JavaBean

    8 JSP 8 1 什么是JSP Java Servlet Pages java服务器端页面 也和Servlet一样 用于实现动态Web技术 最大特点 写JSP就像是写HTML 区别 HTML只给用户提供静态的数据 JSP页面中可以嵌入Ja
  • 智慧政务行业发展报告

    转自微信公众号 智慧城市圈子邱文斌 一 智慧政务行业发展状况 从上个世纪90年代开始 政府信息化的建设就开始围绕 通 进行 而现今正逐渐过渡到 云 的建设 从网络的连通 数据的整合 到云的出现与整合 政府信息化的建设是一个漫长而又快速发展的
  • element-ui 实现多日期选择

    一 前端代码
  • Spring 多线程异步上传图片、处理水印、缩略图

    使用环境 SpringBoot FastDfs thumbnailator fdfs环境自己搞吧 thumbnailator maven依赖
  • C++中引用的用法以及将引用作为函数的形参

    在C 中引用就相当于是给变量起了一个别名 有点类似于指针 但是与指针又不同 引用的初始化 int i i 10 变量i的引用 引用必须在创建的时候就要初始化 而指针可以在任意的时候初始化 引用就相当于是给变量起了一个别名 int i r i
  • HTML基本结构

    HTML一般是在vscod中进行书写 后缀为html 其完整的基本结构如下 h1 一级标题 h1 每一个尖括号 lt gt 代表着标签或者说是元素 不同的标签代表有着不同的作用 标签一般成对出现后一个标签为前一个标签加一个 例如 但也有单个
  • 基于巴法云的esp8266实现温湿度、LED、sg90舵机和HC-RS04实现的小程序远程控制

    基于巴法云的esp8266实现温湿度 LED sg90舵机和HC RS04实现的小程序远程控制 具体代码 本项目想法已经在我脑海想了很久了 都没有时间去实现它 这次刚刚考完试就用了两天把它做了出来 希望对大家有帮助 有什么需要的可以在下面留
  • upload-labs:pass-10

    is upload false msg null if isset POST submit if file exists UPLOAD PATH deny ext array php php5 php4 php3 php2 html htm
  • 工厂三兄弟之工厂方法模式(四)

    5 重载的工厂方法 Sunny公司开发人员通过进一步分析 发现可以通过多种方式来初始化日志记录器 例如可以为各种日志记录器提供默认实现 还可以为数据库日志记录器提供数据库连接字符串 为文件日志记录器提供文件路径 也可以将参数封装在一个Obj
  • Puppeteer 安装与注意事项 《一》

    Puppeteer 安装与注意事项 1 安装node js 在使用puppeteer的时候 它一些低版本的node是不支持的 作者推荐使用8以上的版本 否则node在后面使用puppeteer的时候会 抛出 SyntaxError Unex
  • 从外部验证安全密码存储

    许多网站 包括 Adobe Yahoo LinkedIn Gawker等大型网站 不安全地存储用户密码 可以是纯文本格式的 也可以是加密的 可逆的 格式 或者是使用残破或蛮力的哈希函数 许多网站的密码存储机制仍然很差 所以呢 好吧 如果数据