[转帖]关于Nacos默认token.secret.key及server.identity风险说明及解决方案公告
https://nacos.io/zh-cn/blog/announcement-token-secret-key.html
近期Nacos社区收到关于Nacos鉴权功能通过token.secret.key默认值进行撞击,绕过身份验证安全漏洞的问题。社区在2.2.0.1和1.4.5版本已移除了自带的默认值,并在token.secret.key未传入或非法时阻止Nacos节点启动来提醒用户设置自定义token.secret.key。考虑到现在的控制台登陆页面并没有进行模块化,无法和是否开启鉴权功能关联,因此暂时需要强制设置token.secret.key,社区正在进行控制台登陆页面和鉴权功能的关联,待完成后,未开启鉴权的集群将不再强制需要token.secret.key,开启后仍然强制需要。
同时Nacos社区还收到关于通过nacos.core.auth.server.identity.key 和 nacos.core.auth.server.identity.value默认值进行撞击,绕过身份验证安全漏洞的问题。社区在2.2.1和1.4.5版本已移除了自带的默认值,并在开启鉴权后,未填写这两个参数时阻止Nacos节点启动来提醒用户设置自定义的nacos.core.auth.server.identity.key 和 nacos.core.auth.server.identity.value。
说明:这两个默认值原意是为了方便新用户在快速搭建新集群进行使用时可以减少一些繁琐步骤,更简单的使用nacos,在实际部署时提供机制修改配置来提高安全性;随着社区用户对安全性要求提升,默认值可能会导致部分用户未修改直接使用时出现安全风险,因此Nacos社区去除了默认值,并在启动时进行校验,阻止启动提示用户配置。
使用旧版本的用户请根据文档进行环境检查,查看是否使用了默认的token.secret.key、nacos.core.auth.server.identity.key 和 nacos.core.auth.server.identity.value,如仍然使用默认值,请参考文档内容尽快进行修改。
新部署环境请使用最新2.2.1版本部署,并根据文档设置token.secret.key、nacos.core.auth.server.identity.key 和 nacos.core.auth.server.identity.value,并尽快修改默认密码。
关于Nacos的部署建议
Nacos 定义为一个应用服务发现和配置管理中间件服务,这类应用一般应该部署于内部网络环境,因此不建议用户将Nacos暴露在公网环境。
同时应开启鉴权,设置自定义token.secret.key、nacos.core.auth.server.identity.key 和 nacos.core.auth.server.identity.value,并修改nacos用户的密码,提高安全性。
另外,即使升级到最新版本,开启鉴权并修改了token.secret.key、nacos.core.auth.server.identity.key、nacos.core.auth.server.identity.value和nacos用户的密码,也请不要暴露在公网环境使用。
关于变更token.secret.key对正在运行程序的影响及初步解决方式
修改token.secret.key并重启Nacos Server端后,来自Nacos Client的请求将会因无效token被拒绝。直到客户端到达旧token的TTL时间后,才会重新去获取新token。
解决方式
目前该问题的解决有一个关联ISSUE,欢迎大家进入讨论。
在修改token.secret.key前,先修改token.expire.seconds为5,客户端默认每5s检查一次token是否过期,需要让客户端尽快过期掉旧token。
# 2.1.0版本前
nacos.core.auth.default.token.expire.seconds=5
# 2.1.0版本及更高版本
nacos.core.auth.plugin.nacos.token.expire.seconds=5
修改token.expire.seconds后重启集群,运行一段时间(超过原token.expire.seconds值,以保证所有客户端已经获取到新TTL)
注意:修改后会导致客户端较为频繁地调用login接口,修改前请确保Nacos Server集群的资源足够。
最后将token.secret.key修改为新值,并重启集群,token.expire.seconds值请酌情修改。
关于变更nacos.core.auth.server.identity.key 和 nacos.core.auth.server.identity.value对正在运行程序的影响
修改nacos.core.auth.server.identity.key 和 nacos.core.auth.server.identity.value不会对当前正在运行造成影响,但可能会导致变更同步失败或自动摘除实例失败。
解决方式
按照文档提示,先开启userAgent白名单,在变更新server.identity后,立刻关闭userAgent白名单。
或保证变更server.identity期间,不进行业务应用的变更。
[转帖]关于Nacos默认token.secret.key及server.identity风险说明及解决方案公告的更多相关文章
- PHP、Java、C#实现URI参数签名算法,确保应用与REST服务器之间的安全通信,防止Secret Key盗用、数据篡改等恶意攻击行为
简介 应用基于HTTP POST或HTTP GET请求发送Open API调用请求时,为了确保应用与REST服务器之间的安全通信,防止Secret Key盗用.数据篡改等恶意攻击行为,REST服务器使 ...
- Yii2.0 安装使用报错:yii\web\Request::cookieValidationKey must be configured with a secret key.
下载了Yii2.0的basic版,配置好apache之后,浏览器访问,出现如下错误: Invalid Configuration – yii\base\InvalidConfigException y ...
- yii2.0 报错Cookievalidationkey Must Be Configured With A Secret Key
'components' => [ 'request' => [ // !!! insert a secret key in the following (if it is empty) ...
- gpg: signing failed: secret key not available
1 使用png签名tag时报错“ jb@39:~/11$ git tag -s gpg -m "gpg"gpg: directory `/home/jb/.gnupg' creat ...
- Maven发布封装到中央仓库时候报错:no default secret key: No secret key
今天因为发布swagger-spring-boot-starter做一个问题的修复,然后碰到了下面这个问题,记录一下解决过程,帮助后续碰到类似问题的童鞋: *gpg: WARNING: "- ...
- yii\web\Request::cookieValidationKey must be configured with a secret key.
yii\web\Request::cookieValidationKey must be configured with a secret key. 出现的错误表示没有设置 cookieValida ...
- yii2安装配置完成后,网页打开报错yii\web\Request::cookieValidationKey must be configured with a secret key
下载了Yii2.0的basic版,配置好nginx之后,浏览器访问,出现如下错误: Invalid Configuration – yii\base\InvalidConfigException yi ...
- Openssl 生成证书server.key and server.crt
1.key的生成 openssl genrsa -des3 -out server.key 2048 这样是生成rsa私钥,des3算法,openssl格式,2048位强度.server.key是密钥 ...
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连
在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连 sql server服务器sqlserver远程连接数据库防火墙在建立 ...
- javascript 解决默认取整的坑(目前已知的最佳解决方案)
javascript 解决默认取整的坑(目前已知的最佳解决方案) 复现该问题 js在数字操作时总会取更高精度的结果,例如1234/10结果就是123.4,但是在c或者java中整数除以10的结果还是整 ...
随机推荐
- 常见的Java中SQL注解的用法
@Select:用于查询操作,标注在方法上,指定相应的SQL查询语句. @Select("SELECT * FROM table_name WHERE condition") Li ...
- 云图说丨初识华为云OrgID:轻松实现统一帐号、统一授权
本文分享自华为云社区<[云图说]第282期 初识华为云OrgID:轻松实现统一帐号.统一授权>,作者: 阅识风云 . 组织成员帐号 OrgID是面向企业提供组织管理.企业成员帐号管理以及S ...
- 如何通过一个SDK轻松搞定人脸识别,拯救初入职场的程序猿
摘要:看一个SDK如何拯救初入职场的程序猿小Hi- [职场初体验] 时间过得真快,距离上次给小Hi安排"人脸识别"的开发任务(话接上期:[快速玩转华为云开发]小Hi拍了拍你,基于华 ...
- 云图说|移动应用安全服务—App的体检中心,全面检测,安全上路!
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 移动应用安全服务 ...
- ModelBox姿态匹配:抖抖手动动脚勤做深呼吸
摘要:本案例使用Windows版本的ModelBox SDK进行二次开发,主要是针对姿态匹配案例开发实践. 本文分享自华为云社区<姿态匹配:抖抖手动动脚勤做深呼吸>,作者:吴小鱼. 在之前 ...
- 提升漏洞修复率,DevSecOps真的很有一套
摘要:在业务应用交付规模不断扩大.交付速度不断提高.开发运营场景一体化的大环境下,安全问题你真的重视么? 本文分享自华为云社区<HDC.Cloud2021 | 提升漏洞修复率,DevSecOps ...
- 华为海外女科学家为您揭秘:GaussDB(for MySQL)云栈垂直集成的力量有多大?
摘要:让数据库性能UP!UP!UP!华为云GaussDB(for MySQL)是这样做的 本文分享自华为云社区<华为海外女科学家为您揭秘:GaussDB(for MySQL)云栈垂直集成的力量有 ...
- POJ2431 优先队列+贪心
题目大意: 见<挑战程序设计竞赛>P74. 我的理解: 优先队列+贪心 注意把输入的距离(加油站到终点)改为起点到加油站. 因为求得是最优解,需要尽可能少的加油站,所以我们每次希望去加油的 ...
- 森林消防智慧预警:火灾监测 Web GIS 可视化平台
前言 森林火灾是一种突发性强.破坏性大.处置救助较为困难的自然灾害.2021 年前三季度全国共发生森林火灾 527 起,受害森林面积约 2628 公顷,15 人死亡:发生草原火灾 12 起,受害草原面 ...
- 【Serverless实战】传统单节点网站的Serverles
什么是函数?刚刚考完数学没多久的我,脑里立马想到的是自变量.因变量.函数值,也就是y=f(x).当然,在计算机里,函数function往往指的是一段被定义好的代码程序,我们可以通过传参调用这个定义好的 ...