发表于 收录于合集 #json 1 个 #token 1 个 #全部文章 56 个 #web安全 24 个 #web前端 2 个 PASETO 是一个新的基于token的认证机制,它和jwt有些类似,但是对于于jwt本身存在的一些安全问题进行了改进,如果你熟悉JWT的认证方式,你将看到这个会非常熟悉。
上述的PASETO是由以下json内容生成: 下面对PASETO的格式进行下简介: 最后的展示情况可以认为是: PASETO的生成过程可以认为如下: 一旦生成token后,就可以在互联网上进行传输,由于对信息做了加密,在没有密钥的情况下,是无法获取传递信息的内容的,同样也无法对内容进行修改 这种方式的PASETO的生成过程可以认为如下:
https://ZhouSa.com “PASETO是一种新的接口认证方式,和jwt同属于json认证方式,但是又有其独特的设计机制”
01
PASETO简介
02
PASETO格式
PASETO 同样和JWT一样简单,对字符串进行base64编码处理,下面是个简单的实例,一样是采用点进行连接
v2.local.sIgVm0es9uswZliPdyXOOi99czPbpl41KOUu45e62BvCaL5H3kHNibrbRZkM1-wW091ARzNexLY8g0GZA0-WCNsgs8GZLClEk5TJbgQjf__yExZRh2qMnqxfVr_KS9WoqKVlU-WrAG6TRUXZo43OSJQkeNBnB8Gq4rN2A8HYeA3ms20up80dgz2rpY79F9ILvPrAIzxNkDSE51vAxv50BTShuel3F3hXgReHsDv2PJCnMBnMyE_AfePxJ6WJ1obXSIUpSsOQX6wjwdQdOIcXZ853c-NPYMVU-abXJhhLVvvHyNZPi1wcEvjt.eyJraWQiOiAiMTIzNDUifQ
{
"exp": "2019-10-09T13:59:13-07:00",
"id": "59e5d078-8783-4c64-bed2-3c759e47b477",
"name": "Randall Degges",
"permissions": [
"download:file-a.mp4",
"download:file-b.mp4",
"download:file-c.mp4"
]
}
第一部分说明PASETO使用的是第几版的协议标准,例如本次使用的V2版本 第二部分说明PASETO的目的使用,例如本次使用的是local。PASETO有两个目标:local及public 第三部分是对内容的加密内容,这部分也被称为payload,若是你有争取饿得密钥的话,是可以解密出明文信息来的 最后部分认为是一个备注,可以存储一些其他额外的信息,这块是不加密的。
version.purpose.payload.optional_footer
03
PASETO的工作原理
对于PASETO的使用,可以采用对称及非对称方式,也就是上面说的为了何种目的:local or public
Local PASETO
和对称加密机制一样,创建和加密都采用了同一个密钥对json数据串进行加解密处理,这样只要保护好secret_key,你的信息在传输过程中就能保证安全性
利用安全的随机数生成函数生成随机数 采用hash算法,对随机数进行处理,创建一个nonce串 增加同步信息:v2.local,或者在备注上增加一些预认证的数据 选用安全的加密算法对json和密钥进行加密处理 组合到一起:v2.local.payload.optional_footer
Public PASETO
Public PASETO是对于合作伙伴安全传递密钥的的一种技术方案,他不是为了加密信息的,而是一种数字签名,这个和JWT有些类似。
创建一个安全的公私钥对 添加版本信息:v2.public 利用私钥对数据进行签名处理 生成PASETO:v2.public.<signed string>.footer 将公钥分发给合作方,由于公钥是可公开的,合作方可以通过签名值验证是由正确的厂商发送出来的
还没有评论,来说两句吧...