0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用树莓派完成双重身份验证的保险箱

科技观察员 来源:Pablo Carranza Vélez 作者:Pablo Carranza Vélez 2022-03-30 17:13 次阅读

本项目为需要2FA才能打开的保险箱。使用resin.io和Authy构建。

poYBAGJEH0GAFWA6AAPWLMSM-FU676.png

描述

物联网主要是将物联网带入互联网,但也将互联网带入物联网。银行账户或比特币钱包等关键任务服务网站提供双因素身份验证(2FA)已有一段时间了,它不仅提供了密码,还提供了额外的安全层。由于resin.io旨在跨越互联网与现实世界之间的鸿沟,我们决定通过构建一个需要2FA才能打开的保险箱来将这一概念付诸实践。

通过将resin.io与Twilio的Authy相结合,我们可以通过一个非常简单的部署系统——gitpushresinmaster——和一种添加2FA机制的非常简单的方法来实现这一点。

保险箱和储物柜通常通过钥匙或在数字键盘上敲击代码来打开。我们提出了一种替代方法,将数字代码与通过Authy发送到用户手机的SMS相结合,这意味着打开保险箱需要同时拥有代码和手机。

细节

我们在原型板上使用了RaspberryPi2和一个小电路。锁本身是一个5V螺线管。

Pi运行一个node.js服务器,该服务器通过一个简单的Web界面执行身份验证。我们使用Authy提供第二因素身份验证和resin.io以实现超简单的代码部署。

锁定和解锁保险箱的程序如下:

用户输入他们的电子邮件。

如果是新用户,他们会被要求提供电话号码。

UI要求用户输入密码来锁定保险箱。

当用户输入密码时,锁被接合。

完成后,打开保险箱:

首先,用户必须输入正确的代码。

输入代码后,Authy会向用户发送短信。

用户输入短信密码,锁打开。

锁只打开几秒钟,但可以通过按UI上的“打开”按钮再次打开。

当您在手机上使用UI时,您通常可以在SMS代码到达时输入它,因为它会显示在手机的通知区域中。

构建说明

硬件

螺线管驱动器电路原理图如下所示:

pYYBAGJEHzuAOGtYAADfl-k5b_0661.png

这是我们在原型板上组装螺线管驱动器的方式:

poYBAGJEHzeAftQZAAPEE_kLPTo992.png

软件

RaspberryPi运行一个node.js服务器,该服务器实现了多步身份验证机制,为了实现这一点,我们设计了一个使用machina.js的状态机,通过express.js在HTTP上提供服务。大多数交互都在socket.io上进行,以向用户提供实时反馈。

我们使用“authy”npm包轻松地与AuthyAPI交互,从他们的教程中借用一些代码。

状态机由产生从一种状态到另一种状态的转换的状态和事件组成——我们在应用程序中使用的模型“Safebox”具有“打开”和“关闭”状态,从一个状态到另一个方向的转换,通过通过处理身份验证过程的中间状态。

每当用户与UI交互时,都会通过socket.io触发输入事件,并将其传递给状态机。

下面的代码是如何定义这些状态和转换的示例:

poYBAGJEHzKAdS5lAABZjf17T4U593.png

当机器转换到“关闭”状态时,它的_onEnter函数被称为禁用锁并保存这个新状态。当用户随后输入代码时,我们将其与他们的密码进行比较,只有在匹配时才转换到下一个状态。

我们使用MongoDB来保存盒子的当前状态和用户数据——存储用户数据允许我们存储用户的密码和电话号码,这样他们就不需要在每次重启设备时重新配置他们的设备。

集成用户模型的代码还与AuthyAPI交互,该API提供了向用户发送SMS并验证他们提供的代码的方法。

在客户端,我们有一个简单的单页jQuery应用程序,它为每个状态机的状态显示不同的HTML内容,监听拨号盘和输入上的事件,发送socket.io消息并为用户提供适当的反馈。我们使用Bootstrap和toastr快速设计了一个相当赏心悦目的界面:)

我们使用resin.io将所有内容与设置环境并运行我们的启动脚本的Dockerfile绑定在一起:

poYBAGJEHy2AB5tGAAB-ru5Os9s869.png

我们的start.sh脚本然后启动MongoDB(在不正常关闭的情况下修复它)和我们的Web服务器:

poYBAGJEHymAFK1FAAAiqEcU9TU798.png

使用resin.io使我们的部署就像输入‘gitpush’一样简单,而且它允许我们使用docker确保我们所有的依赖关系都以完全相同的方式满足每个设备。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 保险箱
    +关注

    关注

    0

    文章

    11

    浏览量

    6527
  • 树莓派
    +关注

    关注

    113

    文章

    1640

    浏览量

    104757
收藏 人收藏

    评论

    相关推荐

    基于无线传感器网络智能保险箱安防系统的设计(一)

      摘要:提出了一种基于无线传感器网络技术的智能保险箱安防监测系统。该系统由前端监测设备、物联网网关和手机客户端3部分组成,实现了集远程监控、实时报警和、远程动态管理于一体的安防监测功能,并提
    发表于 11-06 15:52

    facexx人脸识别身份验证迎来新技术革新

    现在我们在很多公共场合里面,都可以通过一些快速通道进入到我们需要进入的场合里面。身份验证已经不再是一个需要等待或者是需要被质疑的过程。因为现在人工智能技术的出现,已经为身份验证提供了一个更强大的支持
    发表于 12-19 15:06

    Vivado和SDK身份验证错误

    尝试运行SDK或Vivado的安装程序时,出现“身份验证错误:发生了未知异常。请验证您的用户ID和密码,然后重试”我可以登录该站点,另一位同事可以登录该站点。我们可以下载安装程序,但是当我们尝试安装
    发表于 01-02 14:55

    PN5180无法使用mifare classic进行身份验证怎么解决?

    ....ok 2. Anticollision CL1.....ok 3. 选择......ok 4. 验证....错误当我发送身份验证命令时,我得到 0x02(等待卡响应超时(卡不存在)。)但是卡存在,我
    发表于 03-23 08:46

    如何使用TapLinx针对Ultralight C进行身份验证

    使用 TapLinx 针对 Ultralight C 进行身份验证
    发表于 04-21 06:08

    人脸识别技术在远程身份验证中的应用

    传统的身份验证主要有帐户/密码或智能卡等方式,存在着易被破解盗用和遗忘丢失等风险。该文提出了一种在远程登录过程中利用人脸识别技术进行身份验证的解决方案。该方案
    发表于 07-07 13:00 20次下载

    人脸识别技术在远程身份验证中的应用

    传统的身份验证主要有帐户/密码或智能卡等方式,存在着易被破解盗用和遗忘丢失等风险。该文提出了一种在远程登录过程中利用人脸识别技术进行身份验证的解决方案。该方案
    发表于 12-22 16:00 15次下载

    IC 卡保险箱

    本文详细介绍了利用逻辑加密卡SLE4442 设计IC 卡保险箱(DEMO 板)的过程该保险箱利用P87LPC764 做处理器另扩展1 片E2PROM 组成的应用系统该
    发表于 06-30 17:42 40次下载

    什么是身份验证和授权

    什么是身份验证和授权 根据RFC2828(Internet Security Glossary,May2000),验证是“校验被或向某系统实体声明的身份的过程”。此处的关键字
    发表于 04-03 16:03 5678次阅读

    什么是询问握手身份验证协议

    什么是询问握手身份验证协议 CHAP(询问握手身份验证协议)是用于远程登录的身份验证协议,通过三次握手周期性的校验对端的身份,在初始链
    发表于 04-03 16:06 2587次阅读

    什么是密码身份验证协议

    什么是密码身份验证协议 PAP是一种身份验证协议,是一种最不安全的身份证协议,是一种当客户端不支持其它身份认证协议时才被用来
    发表于 04-03 16:07 1512次阅读

    浅谈双因素身份验证的三个风险和缺点

    虽然有些人可能因为懒得去想而使用易破解的弱密码,但强密码并非坚不可摧。它们可能被拦截,被键盘记录或因大数据攻击而被泄露。 在过去几年,双因素身份验证(或双重身份验证,two-factor
    发表于 01-01 01:06 4697次阅读

    人脸识别在养老保险身份验证系统中的应用

    人脸识别养老保险身份验证系统是以人脸识别技术为核心,基于自定义数据库技术,实现了人脸采集、人脸识别、人脸模板管理、用户管理等功能的养老保险身份验证系统。
    发表于 07-05 15:50 4891次阅读

    身份验证和生物识别身份系统应用越加广泛

    身份验证和生物识别身份系统应用越加广泛
    发表于 02-27 14:37 1462次阅读

    PCB身份验证

    电子发烧友网站提供《PCB身份验证器.zip》资料免费下载
    发表于 07-22 10:09 2次下载
    PCB<b class='flag-5'>身份验证</b>器