当前位置: 首页 > news >正文

加强网站建设考察交流申请付费网站

加强网站建设考察交流,申请付费网站,杭州广告公司有哪些,南宁专业网站制作前十排名jwt令牌当您使用JSON Web令牌 #xff08; JWT #xff09;或需要对有效载荷信息进行签名或加密的任何其他令牌技术时#xff0c;设置令牌的到期日期很重要#xff0c;因此#xff0c;如果令牌到期#xff0c;则可以假定这可能被视为安全漏洞#xff0c;您拒绝使用此令牌… jwt令牌 当您使用JSON Web令牌 JWT 或需要对有效载荷信息进行签名或加密的任何其他令牌技术时设置令牌的到期日期很重要因此如果令牌到期则可以假定这可能被视为安全漏洞您拒绝使用此令牌进行任何通信或者您决定通过使用新的到期日期更新令牌来启用该令牌。 但是使用某种秘密轮换算法也很重要因此用于签名或加密令牌的秘密会定期更新因此如果该秘密受到威胁则此密钥泄漏的令牌会更少。 同样您也可以减少机密被破解的可能性。 有几种策略可以实现这一目的但是在这篇文章中我将解释我如何在几年前开发的一个项目中实现秘密轮换 具有HMAC算法的JWT令牌。 我将展示如何在Java中创建JWT令牌。 try {Algorithm algorithm Algorithm.HMAC256(secret);String token JWT.create().withIssuer(auth0).sign(algorithm);} catch (UnsupportedEncodingException exception){//UTF-8 encoding not supported } catch (JWTCreationException exception){//Invalid Signing configuration / Couldnt convert Claims. } 请注意这里您需要做的是创建一个算法对象设置HMAC算法并设置用于签署和验证实例的密钥。 因此我们需要每X分钟旋转一次该算法实例因此破解密码的机率以及破解的密码仍然有效的机率变得非常低。 那么如何旋转秘密呢 好吧通过一个非常简单的算法每个人即使您不是加密专家也可以理解。 只是浪费时间。 因此要生成秘密您需要一个字符串在上一个示例中它是秘密字符串当然它并不是那么安全所以我们的想法是通过根我们称之为“大爆炸”部分来组成这个秘密字符串兼职。 总之秘密是bigbang timeInMilliseconds Bing bang部分没有任何奥秘它只是一个静态部分例如my_super_secret 。 有趣的部分是时间部分。 假设您想每秒更新一次秘密。 您只需要这样做 long t System.currentTimeMillis();System.out.println(t); System.out.println((t/1000)*1000);TimeUnit.MILLISECONDS.sleep(50);t System.currentTimeMillis(); System.out.println((t/1000)*1000); 我只是将0设置为毫秒部分所以如果运行此命令我将得到类似以下内容 1515091335543 1515091335500 1515091335500 请注意尽管在第二和第三次打印之间已经过了50毫秒但时间部分是完全相同的。 在同一秒内将是相同的。 当然这是一个极端的示例其中秘密每秒钟更改一次但其想法是您删除要忽略的部分时间并用0填充。 因此首先您要除以时间然后再乘以相同的数字。 例如假设您想每10分钟旋转一次秘密您只需要除以600000就可以了。 这种方法有两个问题可以解决尽管其中一个并不是很大的问题。 第一个是因为如果您想每分钟更改一次机密则您要缩短时间例如第一次计算是在一分钟的中间进行的因此对于这种初始情况轮换将在30秒后发生并且不是1分钟。 这不是一个大问题在我们的项目中我们没有做任何修复。 第二个是在秘密轮换之前签名的令牌的情况它们仍然有效您还需要能够验证它们而不是使用新的秘密而要使用之前的一个。 为了解决这个问题我们要做的是创建一个有效窗口其中还保留了先前的有效机密。 因此当系统收到令牌时将使用当前机密验证该令牌如果该令牌通过则我们可以进行其他任何检查并使用它如果未通过则令牌将由先前的机密验证。 如果通过则重新创建令牌并使用新的秘密对其进行签名如果未通过则显然此令牌无效必须拒绝。 要为JWT创建算法对象您只需执行以下操作 long currentTime System.currentTimeMillis();try {return Algorithm.HMAC256(my_big_bang (currentTime/60000)*60000); } catch (UnsupportedEncodingException e) {throw new IllegalArgumentException(e); } 我真正喜欢这种解决方案的地方是 它很干净系统上不需要额外的元素。 不需要异步运行的触发线程来更新密码。 它确实性能很高您无需访问外部系统。 测试服务真的很容易。 验证过程负责旋转机密。 扩展确实很容易实际上您无需执行任何操作可以添加同一服务的越来越多的实例并且所有实例都将同时旋转秘密并且所有实例都将使用同样的秘密因此轮换过程实际上是无状态的您可以按比例放大或缩小实例所有实例将继续能够验证其他实例签名的令牌。 但是当然有一些缺点 您仍然需要以安全的方式向每个服务共享机密的一部分大爆炸部分。 也许使用Kubernetes机密Hashicorp的Vault或者如果您不使用微服务则可以将文件复制到具体位置并在服务启动和运行时阅读大爆炸部分然后将其删除。 如果您的物理服务器位于不同的时区则使用此方法可能会遇到更多问题。 另外您需要使服务器或多或少同步。 由于您要存储以前的令牌和当前令牌因此不必在同一秒内同步它们并且几秒钟的延迟仍然可能没有问题。 因此我们已经看到了一种非常简单的秘密轮换方式可以使令牌更安全。 当然还有其他方法可以做到这一点。 在这篇文章中我只是解释了我是如何在三年前开发的整体应用程序中做到这一点的它确实运行良好。 我们不断学习 亚历克斯 翻译自: https://www.javacodegeeks.com/2018/01/secret-rotation-jwt-tokens.htmljwt令牌
http://www.huolong8.cn/news/159970/

相关文章:

  • 高校移动门户网站建设网易免费企业邮箱注册
  • 怎么介绍做网站技术石家庄房产信息网查询
  • 彩票网站怎么做的WordPress 插件修改界面
  • 深圳公司网站建设哪里专业时代汇创网站建设
  • 石家庄网站建设优化肇庆建设工程备案的网站
  • 微信公众号做头图的网站淘宝做推广网站
  • 菜鸟移动端网站开发珠海专业网站制作平台
  • 手机网站有哪些博客网站开发思维导图
  • 做龙之向导网站有用吗html最简单的代码
  • 游戏租号网站怎么建设打开网页
  • 呼和浩特房产网站建设成立一间网站开发公司
  • 广东省建设教育协会官方网站2024年营业执照年审入口
  • 网站建设期末答案广州建网站白云区
  • 模板式网站北京价格网
  • 网站策划预算怎么做北京公司网站建设
  • 网站里面的链接怎么做网站商品图片怎么做
  • 前后端分离的网站怎么做老河口市建设局网站
  • 东莞市品牌网站建设平台自己如何高效有力的维护一个网站
  • 深圳市营销型网站手机网站制作建设
  • 红盾网企业查询系统永康信誉好关键词优化
  • 山西旅游网站建设自己做一元夺宝网站
  • 外包类设计网站wordpress 移动社交主题
  • 网站建设步骤及分工论文wordpress 4.7 主题
  • 网站建设项目化教程wordpress还原恢复数据库备份
  • 做网站好公司2021电商行业发展现状及趋势
  • 做五金外贸哪个网站比较好建一个app平台的费用多少
  • 做跨国婚恋网站赚钱吗nian.so是国外还是国内网站
  • 福清市建设局网站多少献县网站建设公司
  • 广东网站备案系统企业建网站能不能一次进费用
  • 整容网站模板如何创建电商平台