-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
token 证书部分使用 url 编码的 base64 #107
Comments
相关: USTC-Hackergame/hackergame-challenge-docker#1 这里提议使用 hex 也不够好。好的 token 设计应该:
|
base64 在一些语言中也不唯一,去掉 padding 的等号也能解析成功。 |
确实,但是我记得 url 编码的 base64 是没有结尾的等号的,所以应该可以视为唯一的(不过唯一真的这么重要吗……同一个证书对同一个输入的签名真的是唯一的吗……) |
至少 Python 的
最主要的问题是我们的动态 flag 都是用 token 的哈希算出来的。如果一个非正规的 token 能通过验证,最终给出的 flag 却是错误的,就会很坑。
参见上面发的那个 pull request,我正在尝试换成 libsodium 生成的签名(其实是 ed25519),它不仅是确定性的(同一个私钥对同一个消息只会生成一个固定的签名),而且是没有 malleability 的问题的(不知道私钥的人没法从一个签名经过某种变换,制造出另一个不同但也能通过验证的签名)。所以至少签名这一块如果改了的话,是有唯一性的。 |
已经有不止一个参赛选手表示他们被「直接粘贴 token 进 url 不行」坑过了(我之前验题的时候也被坑过其实)。虽然这不是啥大问题,但是「可以直接粘贴进 url 的 token」想必能提升用户体验,实现起来(应该?)也不难。
The text was updated successfully, but these errors were encountered: