首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在彼此接近的设备之间共享一个JWT

在彼此接近的设备之间共享一个JWT
EN

Security用户
提问于 2016-09-22 18:33:03
回答 1查看 905关注 0票数 2

设置:

  • iPhone (为了这个问题,让我们假设6和更高版本)。
  • 覆盆子Pi 2

Raspberry运行iPhone查询的REST web服务。web服务使用JSON令牌进行身份验证和授权。我正试图找到一种尽可能安全的方式,让iPhone能够在没有太多麻烦的情况下从Raspberry中获得一个JWT --但是安全性比易用性更重要。

这两个设备将彼此紧密地操作,因此在物理受限的信道上进行令牌交换似乎是一个很好的解决方案,因为攻击者必须在此之前实际存在(例如,留下可以使用不同信道嗅探和中继信息的设备)或在令牌交换期间。

由于iPhone不允许开发者访问NFC芯片,这不是一种选择(我在其他地方也看到,它在10米的范围内容易受到MITM攻击)。

蓝牙数字比较似乎是一种可能的选择,因为它已经是已证明安全 (至少在v2.1)。

Q1:这仍然有效吗?蓝牙数字比较在蓝牙4.x中能被认为是安全的吗?

必须对设备是不理想的,但作为一个iPhone只会与覆盆子互动几天,然后被一个新的iPhone与相同的覆盆子Pi交互。我想避免每天清理Raspberry的配对设备列表。

我一直在考虑一种自定义解决方案,在这种解决方案中,我将生成一个(安全的)随机值,它将显示在连接到Raspberry Pi的显示器上。这将用作iPhone用户手动输入的短暂令牌,应用程序将使用此值向web服务发送auth请求。web服务将保持一个计时器,以确保短时间令牌只能在短时间内(例如5-10分钟)被交换为实际的JWT,以防止暴力攻击。我们可以假设PKI可以用于在Raspberry Pi和iPhone之间建立SSL连接,这样就可以以安全的方式执行将短命令牌转换为长寿命JWT的操作。

Q2:我知道设计自定义安全解决方案是一个可怕的想法,应该留给安全专家。不过,建议的策略似乎很简单,但肯定是有缺陷的,我想知道为何有问题。

EN

回答 1

Security用户

发布于 2016-09-22 19:33:44

回答Q2:

据我所知,你并没有在这里发明什么东西。您正在使用一个非常简单的一次代码生成器.

在Pi上本地生成代码,使其在有限的时间内有效(可能几秒钟),要求将其输入电话,一旦使用,立即使其失效。

使用Pi作为本地with与适当的安全,它应该是足够的快速进出你需要。即使有人上了with,只要其他人是用HTTPS和你的OTP安全的,它应该是好的。

为了节省工作量和避免本地发明问题,请在Pi上使用一组标准库。Node.JS与ExpressJS和标准模块,如护照,头盔,卢斯卡或类似的可以处理登录和应用程序的安全性。本地生成的证书对HTTPS来说应该足够了。

这似乎是一种简单、标准和合理安全的方法。

票数 3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/137578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档