頻道欄目
首頁 > 資訊 > 工具軟件 > 正文

Branca Token:一款經過認證加密的安全API令牌

18-03-28        來源:[db:作者]  
收藏   我要投稿

Branca Token:一款經過認證加密的安全API令牌。今天給大家介紹的是一款名叫Branca的加密令牌,Branca使用了現代密碼學算法來對API令牌進行認證和加密,并可用于多種在線服務之中。

工具介紹

Branca是一種易于使用的令牌格式,并且它的易于使用并不是以犧牲安全性換取來的。它使用了IETF XChaCha20-Poly1305 AEAD對稱加密算法來生成防篡改的加密令牌,Payload本身是任意字節序列,你可以使用JSON對象、明文字符串或任意序列化二進制數據。

設計目標

1. 安全第一;

2. 易于實現和使用;

3. 更小的令牌體積;

令牌格式

Branca令牌由header、密文(Cyphertext)和一個認證標識(Tag)組成,其中header由版本信息(Version)、時間戳(Timestamp)和隨機數(Nonce)組成。將這些信息組合在一起之后,我們得到了下列數據結構:

Version(1B) || Timestamp (4B) || Nonce (24B) || Ciphertext (*B) || Tag (16B)

代表上述二進制令牌的字符串必須使用base62編碼,可選的字符集如下:

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy

版本信息(Version)

版本信息長度為8位,當前的版本信息為0xBA,你可以用它來識別已有的令牌,版本信息可以用來確定令牌格式和加密算法。

時間戳(Timestamp)

時間戳為32位,它是無符號的大端4字節UNIX時間戳。時間戳可以幫助驗證方判斷令牌的生成時間以確定其當前是否仍然有效。除此之外,以無符號整形存儲時間戳可以幫助我們避免2038年問題,因為研究人員預測到2106年才會出現無符號整形溢出的問題。

隨機數(Nonce)

隨機數長度為192位,隨機數必須是經過安全加密的隨機字節,并且不會在令牌間重復使用。

密文(Cyphertext)

Payload使用IETFXChaCha20-Poly1305來進行加密和認證,但header中的數據(版本信息(Version)、時間戳(Timestamp)和隨機數(Nonce))并沒有進行加密(只需要認證),因為在某些人眼里,header只能被查看到,卻不能被篡改…

認證標識(Tag)

認證Tag為128位,它是一種Poly1305消息認證碼,可以用來確保Payload以及其他未加密Header不被篡改。

令牌使用

我們假設你的密碼庫支持組合模式,在組合模式下,認證標識Tag以及加密消息需要存儲在一起。如果你的密碼庫不支持組合模式,tag就是ciphertext|tag組合的最后16字節數據。

生成令牌

一個256位的密鑰key加上任意Payload,我們就可以按照下列步驟生成令牌:

1. 生成安全加密隨機數。

2. 如果用戶沒有提供時間戳,則使用當前的unixtime。

3. 通過組合version、timestamp和nonce來構造header。

4. 使用IETF XChaCha20-Poly1305 AEAD以及用戶提供的密鑰來對Payload進行加密。

5. 使用Base62對整個令牌進行編碼。

驗證令牌

用戶可以按照下列步驟恢復原始的未加密Payload:

1. 使用Base62對令牌進行解碼。

2. 確保解碼后的令牌第一個字節為0xBA。

3. 提取header。

4. 提取nonce。

5. 提取timestamp。

6. 提取ciphertext|tag組合。

7. 使用IETF XChaCha20-Poly1305 AEAD解密并驗證ciphertext|tag組合。

代碼庫

當前已實現Branca令牌的項目如下:

編程語言

許可證協議

使用的加密代碼庫

Elixir

MIT

ArteMisc/libsalty

Go

MIT

GoKillers/libsodium-go

JavaScript

MIT

jedisct1/libsodium.js

PHP

MIT

paragonie/sodium_compat

Python

MIT

jedisct1/libsodium

許可證協議

本項目遵循MIT許可證協議!驹S可證文件】

相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片