基于 esp32 的 u2f/passkeys 的开源项目 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
jocover
V2EX    分享创造

基于 esp32 的 u2f/passkeys 的开源项目

  •  1
     
  •   jocover 2024-01-19 20:41:12 +08:00 2950 次点击
    这是一个创建于 645 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/jocover/esp32_u2f

    基于 canokey 的开源方案,可以在 github 当 passkeys 使用,免账号输入登录,当然在其他平台当 webauthn 和 passkeys 认证设备也没问题

    在 esp32s2/s3 都能运行,淘宝买一个 s2 mini 开发板大概 10 元包邮就能到手,比起 yubikey 的天价便宜很多

    20 条回复    2025-05-13 17:36:27 +08:00
    Hansah
        1
    Hansah  
       2024-01-19 20:50:10 +08:00
    take my money ,你就说成品多少钱一个吧,我直接买。。。
    zhujinliang
        2
    zhujinliang  
       2024-01-19 20:55:28 +08:00 via iPhone
    humbass
        3
    humbass  
       2024-01-19 20:55:44 +08:00 via Android
    这个就是传说中的 ukey 吗
    morningtzh
        4
    morningtzh  
       2024-01-19 20:55:50 +08:00
    好好好!!!十一买了带屏幕和多个传感器的一体式 esp32 半成品有用了。
    samhjn
        5
    samhjn  
       2024-01-19 20:59:51 +08:00
    问题是 ESP32 真的能做到 Yubikey/Canokey 的硬件安全吗?
    密钥链在 Flash 当中能做到端到端加密保护吗?
    芯片本身支持 SecureBoot 能防止别人改固件 DumpKey 吗?
    实际的安全性要打个很大的问号。
    jocover
        6
    jocover  
    OP
       2024-01-19 21:12:19 +08:00   2
    @samhjn 其实完全可以,esp32 有基于 efuse hmac 的 key 安全解决方案,加密 flash 方案,安全启动也有,我开源项目就不搞这些了。
    其实 yubikey 也不安全,可以使用 SEM 的芯片逆向方法,TPM 和 CPU 的 Security Processor 都能搞定,这类 usb key 肯定不在话下了,没有什么是绝对安全的方案
    OutOfMemoryError
        7
    OutOfMemoryError  
       2024-01-19 21:38:23 +08:00
    type-c 口的 esp32-c3 能用吗 合宙那款
    jocover
        8
    jocover  
    OP
       2024-01-19 21:47:40 +08:00
    @OutOfMemoryError esp32c3 不支持 USB ,所以不能用。目前只支持 esp32s2 和 esp32s3 ,以后应该会支持 esp32p4
    mosliu
        9
    mosliu  
       2024-01-19 22:30:33 +08:00
    star 了。
    IvanLi127
        10
    IvanLi127  
       2024-01-20 02:35:45 +08:00 via Android
    star 了,话说成品是啥样子?想瞅瞅
    xianzheng
        11
    xianzheng  
       2024-01-20 10:04:57 +08:00
    有具体用法吗
    lee88688
        12
    lee88688  
       2024-01-20 11:11:52 +08:00
    op 没有有释放说明,我看项目主页中没写。我之前没有用过类似的东西,不太清楚怎么使用
    jocover
        13
    jocover  
    OP
       2024-01-20 12:01:51 +08:00
    @xianzheng
    1 、没 esp32 开发板的话淘宝 10 元买个 s2 mini 开发板
    2 、去 https://github.com/jocover/esp32_u2f/releases 发布页下载 esp32s2 版的固件
    3 、去 https://github.com/espressif/esptool/releases 下载刷机工具
    4 、按板子上按钮和重启键进入刷机模式
    5 、输入 esptool erase_flash 先清除 flash
    6 、然后输入 esptool --chip esp32s2 write_flash --flash_mode dio --flash_size 2MB --flash_freq 80m 0x1000 bootloader/bootloader.bin 0x8000 partition_table/partition-table.bin 0x10000 esp32_u2f.bin 刷固件
    7 、完成
    xianzheng
        14
    xianzheng  
       2024-01-20 13:17:20 +08:00
    @jocover 感谢!
    OutOfMemoryError
        15
    OutOfMemoryError  
       2024-01-20 22:32:12 +08:00
    @jocover #8 合宙那一款有一个 type-c 的母口。。接线连接到 pc 的
    OutOfMemoryError
        16
    OutOfMemoryError  
       2024-01-20 22:32:50 +08:00
    @jocover #8 还是谢谢了,兄弟有推荐的 s2 mini 硬件吗(你说的那个 10 元的),我们公司可能会生产一批出来用在内部的系统
    jocover
        17
    jocover  
    OP
       2024-01-21 10:23:23 +08:00
    @OutOfMemoryError 只是这个最便宜,其他开发板比这个贵
    youzengwei
        18
    youzengwei  
       2024-06-24 10:47:17 +08:00
    用树莓派的 PICO 刷的 https://www.picokeys.com/ 固件 价格差不多 Flash 都是没加密的无所谓了
    DIO
        19
    DIO  
       228 天前
    @jocover 老哥试了一下很好用感谢,就是安卓手机好像不太认。这个密钥和固件可以导出备份吗。
    hhs66317
        20
    hhs66317  
       165 天前
    安全类工具,希望能对 key 的安全进行加固,避免被克隆
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     831 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:59 PVG 04:59 LAX 13:59 JFK 16:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86