织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 比特币资讯

一文了解Dfinity互联网计算机的加密网络认证和身份验证(3)

时间:2021-05-24 18:34来源:未知 作者:admin 点击:
双因素认证意味着除了密码之外,登录网络应用还需要一个额外的安全因素,通常是用户拥有的安全设备。在现实中,这可能是一个安全的USB钥匙或是一个

双因素认证意味着除了密码之外,登录网络应用还需要一个额外的安全因素,通常是用户拥有的安全设备。在现实中,这可能是一个安全的USB钥匙或是一个内置在用户终端设备中并通过生物识别技术激活的安全芯片,由安全芯片存储加密密钥。由于加密密钥从未离开过安全芯片,所以即使用户的电脑或手机被恶意软件感染,它们仍然是安全的。

当网络认证被用作网络应用中的第二因素时,协议流程如下:在用户通过提供用户名和密码启动登录过程后,网络服务器将生成一个随机挑战并将其发送给用户的浏览器。然后,浏览器将挑战发送给安全设备,安全设备在签署挑战之前需要与用户互动。然后,签署的挑战书被送回服务器,服务器根据用户注册的公钥验证挑战书上的签名。这确保了登录网络应用程序时,除了密码外还需要持有安全设备。

公认的事实是,网络认证是一个开放的标准,使用数字签名进行认证,且已经被广泛的设备所支持。然而,当把它改编为互联网计算机时,我们必须克服一些障碍。网络认证假定了传统网络中面向会话的客户服务器模型,用户在登录应用程序时进行一次认证,并在同一会话中发送后续信息。相比之下,互联网计算机实现了一个模型,且每个请求都是单独认证的。特别是,由于浏览器和互联网计算机之间不存在有状态的会话,所以没有服务器可以生成挑战,并由安全设备签署。然而,回顾一下,在典型的网络认证流程中,安全设备需要对服务器发送的挑战提供数字签名。

为了使用相同的协议实现请求认证,我们需要使用请求本身作为挑战,并由安全设备签署,类似于我们的一般请求认证方案。我们必须克服的另一个问题是,网络认证需要用户对每个签名进行交互。在互联网计算机提供的典型前端中,一个页面的加载可能对应着多个请求。由于我们不想要求用户明确确认每个请求,所以我们使用了上述的委托机制。当使用网络认证与一个容器进行交互时,我们会首先生成一个短期的会话密钥。然后,使用网络认证来签署一个面向该会话密钥的委托,这样,单个用户的互动就可以触发对互联网计算机的多个请求。

虽然网络认证对安全存储加密密钥很有帮助,但它不仅将这些密钥绑定在设备上,而且还将其绑定在了一个特定的容器上。其原因是浏览器的安全模型,该模型严格地将在同一网络浏览器中运行的不同应用程序所能访问的状态按其来源分开。在网络上,你可以认为一个原点大致上对应于一个网站。在互联网计算机上,每个原点则对应于一个容器。这种严格的状态分离对安全至关重要,但它也使得诸如密钥备份或支持从多个设备无缝访问同一容器的功能变得繁琐,因为所有这些操作都必须为每个容器单独执行。我们通过使用互联网身份服务来解决这个问题,即身份提供者,类似于你在网络上熟悉的 "用谷歌或Facebook登录 "功能。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容