0

我想要实现的目标:我的 PoCo::IRC 机器人请求您使用 RSA 密钥签署消息,但每次您识别时,该消息都有一个随机字符串(有点像#bitcoin-otc 的 gribble 机器人,但使用 RSA 而不是比特币)。

我希望它说类似 <mybot> With the key for 'donkus', sign the message '2FrNGk7QoCKQecIz', pass through base64.它需要预测我签名消息的到来。然后我可以用 base64 中的签名消息回复,它会使用脚本中的硬编码公钥进行验证(可能使用 Crypt::RSA)。这种交换将通过私人消息传递。

这样我就可以在我的 EFnet 频道上创建一堆机器人来操作我,是的,我知道我可以使用 Eggdrop,但我更愿意编写自己的 perl 脚本,而不是配置所有垃圾。

4

1 回答 1

0

我会这样记录请求:

$requests{$user} = {
  key_for => "donkus",
  token   => "2FrNGk7QoCKQecIz",
  ts      => time(),
};

这样,如果用户重新请求身份验证,旧的就会被破坏。

我要么使用该ts字段定期使身份验证请求过期,要么使用$user标识符的 LRU 缓存来限制正在播放的请求数量。如果我真的在乎,我会两者都做:有一个相对较高的 LRU 缓存限制(比如 100 个请求)和一个相对较低的超时时间(可能是 2 分钟)。

当消息$user进来时,我会看看它们是否与%requests. 如果是,他们在。如果不是,他们仍然在外面。

于 2015-04-02T19:05:22.627 回答