文档章节

OpenStack Fernet Key Rotate

平江夜弹
 平江夜弹
发布于 2017/07/07 11:38
字数 330
阅读 55
收藏 0

简单介绍一下OpenStack Fernet Keys 的 Rotate 工作

1.介绍

Openstack 的Fernet key 采用的是  python fernet 库生成的(https://cryptography.io/en/latest/fernet/)

from cryptography.fernet import Fernet
Fernet.generate_key()

Fernet Key 类似:

    RoFd7Kucd2RdzIoMcsc5j3nx7cHR0pWi-XVaiOel978=

2.工作方式

  • 数值最大的key 是当前的signing key (Primary Key)
  • 数值为0 的key 是即将要变成signing key 的key
  • 其它数值的key 都是 old keys,它们曾经是Primary Key。系统中也许会有一些tokens 是使用这些key 来加密的,取决于你所设置的过期时间方式
  • 新产生的key 通常都是数值为0的

3.怎么来做Rotate

举例,有三个key:0, 1, 2

  • 0 变成了 3 ,成为signing key (primary key)
  • 1 被删除
  • 2 仍然是2
  • 新创建了一个key 为0

图示如下:

    做个解释:在key rotate 之前,所有的token 都是用2来加密的。key rotate 之后,所有的token 都是用3来加密的,当过来一个token 时候,keystone 同时用3 和2 来解密,总有一个能够work 的。在这个时候,不能再次rotate,否则 2 被删除后,将会出现解密错误。

   这将要求你需要有更多的keys,或者过期时间设置的长一些。

   举例,一周做一次key rotate,然后token 的过期时间设置为2h。

 

© 著作权归作者所有

共有 人打赏支持
平江夜弹
粉丝 26
博文 47
码字总数 17530
作品 0
南京
程序员
私信 提问
安装OpenStack QUEENS版本二:keystone

安装Keystone,在控制节点上 yum install openstack-keystone httpd mod_wsgi -y create a database mysql -uroot -ppassword -e "CREATE DATABASE keystone;" mysql -uroot -ppassword -e "......

OpenStack2015
08/03
0
0
OpenStack教程-03.在CentOS7.5上安装OpenStack-Rocky-安装Keyston认证服务组件

本文分享openstack的认证服务组件keystone --------------- 完美的分割线 --------------- 3.0.keystone认证服务 1)用户与认证:用户权限与用户行为跟踪 User 用户Tenant 租户Token 令牌Rol...

天生帅才
10/26
0
0
理解 Keystone 的四种 Token

Token 是什么 通俗的讲,token 是用户的一种凭证,需拿正确的用户名/密码向 Keystone 申请才能得到。如果用户每次都采用用户名/密码访问 OpenStack API,容易泄露用户信息,带来安全隐患。所...

koala bear
2015/12/26
0
0
OpenStack(Queens版)高可用集群-4.keystone集群

参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:https://docs.openstack.org/ha-guide/index.html 理解Pacemaker:http://www.......

盖世英雄iii
08/23
0
0
openstack-ocata---2-keystone 安全认证

为什么写这个呢 一、为了记录自己干了啥 二、官方文档这里有点小问题 先决条件 mysql数据库 CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone. TO 'keystone'@'localhost' IDEN...

yr_linux运维
06/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

缓存穿透,缓存雪崩的四种解决方案

前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑...

小致dad
24分钟前
2
0
PHP 文字生成透明图片之路

摘要:在现在的开发中会经常运用到生成图片的功能,常用的验证码生成等。PHP语言生成图片需要用到GD2功能模块,所以基本的图片,图形处理都是没什么压力滴。 准备: 1、打开GD2模块,在php.i...

昙花一现
24分钟前
0
0
impala系列: 基本命令和jdbc连接

--======================= 使用impala-shell 登录 --======================= impala-shell --auth_creds_ok_in_clear -l -i ip_address -u user_name --======================= JDBC dri......

hblt-j
25分钟前
1
0
CSS实例详解:Flex布局

本文由云+社区发表 本文将通过三个简单的实例,实际应用上篇文章的基础理论知识,展示下Flex布局是如何解决CSS布局问题。 一.垂直居中 这里同时用非flex布局和flex布局两种方式来实现,可以...

腾讯云加社区
32分钟前
6
0
安装全局webpack

https://www.jianshu.com/p/119a825d8bba npm ls webpack 和npm ls webpack -g 查看本地和全局版本 npm install webpack@1.15.0 -g 全局 然后到项目里面 npm install npm init npm install w......

lsy999
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部