3

关于 jwt 做认证,有些疑问

 2 years ago
source link: https://www.v2ex.com/t/899780
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

关于 jwt 做认证,有些疑问

  yusheng88 · 3 小时 5 分钟前 · 773 次点击
  1. jwt 的密钥怎么存储,怎么防止内部人员泄露
  2. 参考 jwt ,自定义算法是否可行,如: token: 时间戳.userid.hashcode[加盐] 其中时间戳和 hashcode 采用 62 进制字符表示。 主要作用是缩短 token 长度。
8 条回复    2022-12-03 13:28:20 +08:00
yusheng88

yusheng88      2 小时 50 分钟前

hashcode = murmurhash(盐+时间戳+userid)
dzdh

dzdh      2 小时 49 分钟前

1. 使用 rsa ,每个 ID 的私钥都不一样。视需要的安全程度比如可以开发一个专门的认证服务私钥在这个服务里面生成、保存。

2. jwt 只是个协议,算法和表述可以自己定义不用过分拘泥于形式。如果用什么三方包那就干掉自己实现一个。也就两个方法事。
dzdh

dzdh      2 小时 48 分钟前

docker registry 的 jwt 使用是自定义 CA 生成证书,给每个 ID 生成证书,证书内容在 payload 里,认证时使用 ca 公钥验证证书合法性再验证签名。
yusheng88

yusheng88      2 小时 39 分钟前

@dzdh 嗯嗯,但感觉内部人员还是可以去服务器内拿到私钥,然后自己任意创建 token.
iseki

iseki      2 小时 16 分钟前 via Android

看一看 Linux 的 keyring 机制?不管是不是 jwt ,凭据存储都是个问题,我看大多都无所谓了,直接往哪一丢谁爱看谁看了…
momocha

momocha      2 小时 8 分钟前 via iPhone

jwt 客户端需要考虑对签名证书链的信任,一般都会内置证书的公钥来认证签名的有效性。
服务器上有私钥当然如果能拿到就没有安全性可言,一般证书管理都会有专门的服务来避免直接接触到私钥。
yusheng88

yusheng88      1 小时 51 分钟前

@momocha ok ,了解,感谢各位大佬的解答

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK