我们必须记住的密码数量每天都在增加。是否曾经想要一些设备可以为您记住所有这些密码,甚至无需触摸键盘就可以输入密码?
该项目针对此问题提出了一种可能的解决方案,使用Azure 云生态系统进行密码保管和管理,并使用Azure Sphere IoT 设备将密码安全传递到您的指尖。
此图显示了该项目的基本构建块及其互连。用户名和密码安全地存储在Azure KeyVault中。使用在Azure App Service上运行的 Web 应用程序访问和管理这些项目。根据用户的请求,选定的登录详细信息通过Azure IoT 中心发送到Azure Sphere IoT 设备。从那里可以立即或按下按钮将登录数据发送到 USB 键盘模拟器,后者将在目标设备上“键入”它们。
通过这种方式,我们可以在从密码存储到将其交付到目标系统的整个链条上使用高级 Azure 云安全功能。我们可以向任何支持 USB 键盘输入的设备输入登录数据。
该项目由几个独立的部分和应用程序组成,必须安装和精确配置它们才能协同工作。我们首先设置 Azure 服务。
创建资源组
该资源组将用于将所有与 Azure 相关的项目部分整齐地放在一个地方。
登录到 Azure 门户并根据以下幻灯片设置新的资源组:
创建 KeyVault
KeyVault 将安全加密您的所有秘密和密码。
请参阅下面的幻灯片,了解如何创建 KeyVault。在第 3 步中,选择离您最近的服务区域,同时确保将定价层设置为标准。记下KeyVault 名称,因为您稍后将需要它。
创建物联网中心
IoT 中心控制您的物联网设备,并且在此项目中将启用与您的 Azure Sphere 套件的连接。
下面的幻灯片显示了创建 Azure IoT 中心服务所需的所有步骤。在第 3 步选择在地理上离您最近的服务区域。在第 4 步确保定价层设置为免费,如果这是您的第一个 IoT 中心并且您只想测试这个项目。稍后还需要IoT 中心名称。
现在您的资源组将如下所示:
创建物联网设备
如下面的幻灯片所示创建物联网设备。记下IoT 设备名称(设备 ID),因为您稍后会需要它。
获取连接字符串
对于这个项目,我们将需要IoT Hub 服务 Connection string和IoT device Connection string 。您将在下面显示的位置找到这些字符串,将它们复制到某个文本文件中,因为您稍后会需要它们。
部署网络应用
将项目存储库克隆到本地目录。注意:此项目使用 Git 子模块,使用--recurse-submodules进行克隆:
git clone --recurse-submodules https://github.com/jgroman/azsphere_pwd_man.git
确保你的 Visual Studio 2019 安装了ASP.NET和Azure 开发工作负载。打开 SpherePasswordManager 解决方案,打开 appsettings.json 文件并将您的 KeyVault 名称作为 KeyVaultName 值。
现在您可以发布 web 应用程序,如下面的幻灯片所示。在第 3 步创建新的应用服务时,确保选择了正确的 Azure 帐户。注意:如果第 6 步 - webapp 发布 - 失败,您可能需要安装 Microsoft Web Deploy工具。
启用 WebApp 对 KeyVault 的访问
在您可以使用新发布的 WebApp 之前,必须授予它 KeyVault 访问权限。
配置网络应用
您现在将设置 Web App 配置并输入IoT Device name和IoT Hub Service Connection string 。如果您在打开 WebApp 配置页面时遇到错误,您可能忘记了在上一步中编辑应用程序设置或授予 WebApp 权限。
安全的 WebApp 访问
现在 WebApp 必须受到保护,以便只有您可以使用它。
安装 Pro 微应用
Pro Micro 板在此项目中用作简单的 I2C 到 USB 键盘桥。从 I2C 接收到的任何字符都会作为模拟按键发送到 USB。
如果您不熟悉 ATmega32U4 Pro Micro 开发板,可以在此处阅读教程。使用 USB 线将 Pro Micro 板连接到您的计算机,在 Arduino IDE 中打开i2c_usb_keyboard.ino草图并将其闪存到 Pro Micro。
现在您可以根据本页底部的原理图连接 Azure Sphere Starter Kit 和 Pro Micro 开发板。
安装Azure Sphere 应用程序
确保您的计算机上安装了Azure Sphere SDK ,启动 Visual Studio 2019 并打开azsphere_pwd_man解决方案。将IoT 设备连接字符串作为 MY_CONNECTION_STRING 值放入connection_strings.h中。将IoT 中心名称放入app_manifest.json 中的 AllowedConnections。构建应用程序并将其上传到 Azure Sphere 工具包。
现在应用程序正在运行,您应该会在显示屏上看到就绪消息。该项目确实可以使用了。
在浏览器中打开 WebApp。使用新项目菜单选项添加新项目:
只有项目名称和密码是强制性的,添加用户名是可选的。您还可以在用户名和/或密码后插入 Enter。可选的用户名和密码可以在一个块中输入,由 TAB 字符分隔 - 这对于 Web 登录表单很有用。用户名和密码可以预加载到 Azure Sphere,然后单击按钮输入。或者,它们也可以在单击 WebApp 中的项目后立即输入 - 这在通过手机控制 WebApp 时非常有用,因为您只需将光标定位到登录表单并单击 WebApp UI 中的所需项目。
几分钟后,Azure Sphere 似乎忘记了预加载的项目
这实际上是一个内置的安全功能。您可以通过在main.c中编辑PERIOD_TO_FORGET_SEC来设置此延迟长度。
系统运行过程中的问题
WebApp 中显示常见的操作错误。例如,如果 Azure Sphere 断开连接,您将看到超时错误:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !