Aca*_*lco 6 c usb datetime date hsm
有没有办法通过USB查询系统的日期/时间而无需在主机上安装任何东西(可能只是驱动程序)?
为了避免XY问题,让我解释一下我正在尝试做什么.
为了能够为2FA计算TOTP令牌(例如Google Authenticator应用程序),您需要一个实时时钟来获取日期和时间.
有一个名为SC4-HSM的USB设备,我想用它来计算令牌,但它没有时钟,根据设计师的说法,添加一个太贵了(需要电池等).
该设备将与已经具有RTC的计算机一起使用.因此,我有了查询系统的日期/时间以解决问题的想法.
(注意:我知道USB设备可以连接到各种主机,并非所有主机都有RTC,但由于这只需要与计算机一起工作,我认为这应该不是问题)
我的第一个想法是可能有一些USB设备类有日期/时间需要,所以我可以将设备注册为该类型,然后我将能够查询值.
在浏览了设备类代码列表(Internet Archive)后,没有任何东西像我需要的日期/时间一样跳到我身边.我能想到的最接近的是:
我浏览了USB实施者论坛中的设备类文档,但其中没有任何东西甚至与日期或时间有很大关系.
由于USB规格似乎是一个死胡同,我想可能有一种方法可以编写一个非常简单的USB驱动程序,可以在设备插入计算机时自动加载,然后我们可以使用驱动程序返回设备要求的日期/时间(除非我误解了某些内容).
我现在正在研究像Michael Opdenacker的Linux USB驱动程序这样的USB开发文档,我尝试了Linux USB项目,这似乎已经死了.通过Windows NT的驱动程序开发撇去只是为了得到一个想法,但是我仍然无法弄清楚这是否可能,以及它有多难.
我是一个完全的初学者,也许这是我的技能水平,但我想弄清楚我是否需要奇怪的黑客和变通办法,还是有更简单的方法来做到这一点?
关于它的信息似乎很少,或者我只是在寻找错误的地方.
关于解决原始问题或当前问题的任何想法/指示?
系统时间不一定是一般时间,即从 NTP 服务器获得的“原子”时间
最明显的解决方案是使用autorun,这在 Linux 上也是可能的,但通常 autorun 被阻止,因此用户必须明确激活它
获取时间的 linux 命令是date
or hwclock
or 如果计算机已连接到网络,则可以联系 NTP 服务器(如果防火墙没有阻止此操作)
那么您的自动运行程序必须将数据发送到SC4-HSM。我不知道 SC4-HSM 实现什么 USB 类,如果它实现 CDC ACM(虚拟 COM 端口),这很简单: 无法通过 USB 将计算机时间同步到 Arduino
(就像是echo "T$(($(date +%s)+60*60*$TZ_adjust))" >/dev/tty.usbmodemfa131
)
也许可以通过 USB 驱动程序访问系统时间,我现在不知道这一点