和 密码 + U2F 的验证方式相比,passkey 实际上类似于在手机等设备上实现了一个 U2F,并使用它代替了两者的组合。对于普通用户来说这固然是比只用密码要安全的多的(因为 passkey证明了用户拥有一个登录了该 Apple ID 或 Google 账户的设备,并且知道其解锁密码,或是向设备以生物信息证明了身份),但由于完全去掉了密码,设备本身的安全性就很重要了,在 Google 的实现中 ,锁屏密码用于生成端到端加密的密钥,因此一个能够登录 Google 账户,并且获知了锁屏 PIN 的人便能恢复出 passkey。根据文章的说法,通过硬件保证了 PIN 只能尝试最多十次,但总体上,无论是 Google 还是 Apple 的实现都依赖于一直在线的手机本身的安全性,而 U2F 设备通常并不是连接在设备上的,因此我认为尽管对普通人来说passkey 已经足够好,但对于需要持续提高电击电压的人群来说,使用 密码 + U2F 会更安全一些。
TCP和UDP协议使用了套接字进行双端通信。Java的套接字 API则是底层操作系统具体实现的的适配器。兼容POSIX规范的操作系统(如Unix, Linux, Mac OS X, BSD, Solaris, AIX等)中使用的socket通信被称作伯克利套接字(Berkeley sockets)。Windows中的套接字叫winsock,它也是基于伯克利套接字,但增加了额外的功能用于支持windows的编程模型。