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

    浏览量

    6716
  • 树莓派
    +关注

    关注

    116

    文章

    1707

    浏览量

    105610
收藏 人收藏

    评论

    相关推荐

    保险箱智能化真的有必要吗?

    电子发烧友网报道(文/黄山明)如果家中拥有一些贵重的物品,又不适合存放于银行,那么购置一个保险箱将是一个不错的选择。而随着科技的发展,智能保险箱应运而生,它可以通过智能化,让传统硬件既硬(核心
    的头像 发表于 07-20 00:24 1754次阅读

    IC 卡保险箱

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

    什么是身份验证和授权

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

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

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

    什么是密码身份验证协议

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

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

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

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

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

    塑料的保险箱 你敢用吗?

    修锁匠Brisbane是澳大利亚锁匠行业和安全方面的专家,近些日子,他制作了一种非常特别的3D打印保险箱,因为它是塑料的!和一般的保险箱不同,这个以PET为原料的容器是专为敏感性电子设备和高辐射区
    的头像 发表于 04-02 14:03 5359次阅读

    制作简易保险箱

    如何用纸板做个保险箱呢?而且是跟真正保险箱的原理是一样的。
    的头像 发表于 01-22 16:22 3.2w次阅读

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

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

    采用Arduino和木板自制指纹保险箱

    用木板制作带指纹的智能保险箱,只有正确的指纹才打得开哦!
    的头像 发表于 05-24 06:34 4195次阅读

    智能钥匙开锁的简易保险箱设计

    给我20块,我给你做个保险箱
    的头像 发表于 08-12 10:50 3191次阅读

    了解如何创建Arduino保险箱

    电子发烧友网站提供《了解如何创建Arduino保险箱.zip》资料免费下载
    发表于 11-28 09:24 0次下载
    了解如何创建Arduino<b class='flag-5'>保险箱</b>

    基于Arduino并由纸板制成的保险箱

    电子发烧友网站提供《基于Arduino并由纸板制成的保险箱.zip》资料免费下载
    发表于 12-19 09:54 1次下载
    基于Arduino并由纸板制成的<b class='flag-5'>保险箱</b>

    LCD电子密码保险箱设计

    LCD电子密码保险箱系统介绍:       该电子密码保险箱的控制部分的主要任务包括:键盘的控制,LCD显示屏的控制,锁具的控制,蜂鸣器的控制。锁具的原理是通过直流马达转动,带动门闩移动,达到开门
    发表于 01-04 17:20 3次下载