区块链时代-数字货币交易平台排行,数字货币交易所官方网站

一文知道Dfinity网络计算机的加密互联网认证和身份验证

时间:2021-12-18 21:42作者:未知

一般由以下三种算法组成:

网络计算机上的应用是基于通过传递信息进行交互的容器(Canister)达成的。更详细地说,交互模是基于请求的,像远程过程调用。当容器 A调用容器 B时,容器 A便指定了目的容器,所要调用的函数的名字,与该函数的参数。当指定的函数在容器 B上被评估时,该容器也知晓该函数是由容器 A调用的。评估完成后,容器 A将获得该函数的返回值以作为响应。而当用户与容器互动时,同样的远程过程调用模也一样适用。当用户调用一个容器时,用户会向目的容器发送一个请求。这个请求也会指定一个带有参数的函数,用户也可以获得返回值以作为响应。在请求的变化过程中,容器也会获悉调用它的用户的身份。

注:在ICP平台上,Canister是最基本的组成元素,可以理解为容器,像ETH等区块链公链平台上的智能合约。这部分容器可以复制、可以分叉,更便捷自组织。

上图是用户发送请求的示意图。中间的浅灰色地区显示了核心请求,包括目的容器 ID,函数名字,参数,与调用者的身份或主体。而深灰色地区显示的则是包含认证信息、签名和公钥的封套。如图左边所示,调用者的主体是通过散列法从公钥中得出的。这种技术在区块链范围被广泛用,比如BTC或ETH地址就是这样。除此之外,图中右边部分显示了作为数字签名策略中的消息的请求内容是怎么样通过签名与公钥绑定的。当网络计算机收到如此的请求时,它既要检查签名在指定的公钥下是不是有效,也要检查公钥和调用者主体之间的关系。

为了确保信息确实是由信息中指定的调用者发送的,容器不必理会这部分技术细则。假如所有都检查完毕,网络计算机会评估容器上的指定功能,但假如其中一项检查失败,请求就会被放弃。

以下是关于大家用的身份格式的一些细则。大家从DER格式的公钥开始,用SHA-224对其进行散列,从而得到一个28字节的字符串。大家会添加一个字节,用于区别来自公钥的身份主体和大家在网络计算机中其他地方用的身份主体,比如容器。这29个字节是以用户委托书的内部二进制表示的。当把一个委托人转换为其文本表示时,大家第一要预加一个CRC-32错误测试码。然后,用Base32编码产生的字符串,最后打造每组5个字符的组,并用破折号隔开。大家选择这种格式是为了支持在有适合错误测试的状况下,可以轻松复制粘贴,同时仍然允许ASCII表示法中的字符少于64个,以便与网络协议(如DNS)兼容。

到现在为止,大家所看到的策略在结构上还是有点不灵活的。它们将用户的身份主体与单一的加密密钥进行绑定,但这种限制会用户非常难与来自不同设施的容器进行交互,由于需要在这部分设施之间共享相同的加密密钥,既繁琐又不安全。相反,大家在不一样的加密密钥之间用了授权。如上图所示,你可以看到从黄色密钥到橙色密钥的委托。这种委托包括被委托的密钥,即橙色的钥匙;一些额外的参数,如过期或委托范围的限制;与委托密钥的签名,即黄色密钥。

当用橙色密钥签署请求时,用户可以用来自黄色密钥的委托,以便用来自黄色密钥的身份。除此之外,委托的强大之处在于,可组合性。比如,橙色密钥可以将授权扩展到紫色密钥。这种结构与公钥基础设施和X.509很类似,但这并非巧合,大家向其进行了借鉴,并用了更轻量级的数据结构。

委托的一个具体应用与互联网认证有关。互联网认证是万维网网盟(W3C)的一个最新标准,主要针对互联网应用的双原因认证。该标准的动机是,如前所述,密码有紧急的安全缺点。它们常常在钓鱼邮件、恶意软件与黑客攻击发生时,成为互联网犯罪分子的猎物。

双原因认证意味着除去密码以外,登录互联网应用还需要一个额外的安全原因,一般是用户拥有些安全设施。在日常,这可能是一个安全的USB钥匙或是一个内置在用户终端设施中并通过生物辨别技术激活的安全芯片,由安全芯片存储加密密钥。因为加密密钥从未离开过安全芯片,所以即便用户的电脑或手机被恶意软件感染,它们仍然是安全的。

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

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

为了用相同的协议达成请求认证,大家需要用请求本身作为挑战,并由安全设施签署,像大家的通常请求认证策略。大家需要克服的另一个问题是,互联网认证需要用户对每一个签名进行交互。在网络计算机提供的典前端中,一个页面的加载可能对应着多个请求。因为大家不想需要用户明确确认每一个请求,所以大家用了上述的委托机制。当用互联网认证与一个容器进行交互时,大家会第一生成一个短期的会话密钥。然后,用互联网认证来签署一个面向该会话密钥的委托,如此,单个用户的互动就可以触发对网络计算机的多个请求。

虽然互联网认证对安全存储加密密钥非常有帮,但它不只将这部分密钥绑定在设施上,而且还将其绑定在了一个特定的容器上。其缘由是浏览器的安全模,该模严格地将在同一互联网浏览器中运行的不同应用程序所能访问的状况按其出处分开。在互联网上,你可以觉得一个原点大致上对应于一个网站。在网络计算机上,每一个原点则对应于一个容器。这种严格的状况离别对安全至关要紧,但它也使得诸如密钥备份或支持从多个设施无缝访问同一容器的功能变得繁琐,由于所有这部分操作都需要为每一个容器单独实行。大家通过用网络身份服务来解决这个问题,即身份提供者,像你在互联网上熟知的 “用Google或Facebook登录 “功能。

当用户首次加载一个特定容器的前端时,该前端会呈现一个 “用IC登录 “的按钮。当用户点击该按钮时,浏览器会打开一个弹出窗口,显示网络身份服务,这是一个允许用户管理钥匙和身份的特定应用程序。然后,用户可以决定是不是允许容器前端用用户身份。假如用户赞同,浏览器就会被重定向到容器前端,并能以用户的身份访问容器。这个机制将第三触发会话密钥和委托机制。届时,容器前端会生成一个会话密钥对,并将公钥传输给网络身份认证。假如用户确认,网络身份认证产生授权,并将其返回给信息库前端。作为通过大技术提供商签署的额外好处,身份提供商的完整认证步骤发生在用户端,所以对用户私人行为的暴露要少得多,从而降低身份跟踪。

谈到用户追踪,网络身份认证将为用户登录的每个容器前端提供一个不一样的身份,这对安全和隐私很有利。假如不是如此,网络身份认证将允许每个前端在用户的单一主体下登录。假如该用户与不有关的服务互动,比如留言板和购物网站,这部分服务就可以在背后关联用户在这部分网站上的行为。更糟糕的是,留言板的前端可以恶意调用购物网站的容器 ,并以用户的名义下订单。因此,网络身份辨别服务为用户登录的每个前端生成一个不一样的身份,并以主机名进行区别。如此一来,用户在不同服务上的行为就不那样容易被追踪了。虽然前端仍然可以用用户的身份来调用网络计算机上的任何容器,但它永远只不过与实行调用的前端有关的身份。

网络计算机用一种更先进安全的加密认证办法取代了用户名和密码。

要理解身份和认证在网络计算机的背景下意味着什么,大家需要第一其在当今的互联网中是怎么用的。

当登录一个网站时,用户名一般是电子邮件地址或一串字母和数字,它是你唯一的标识符,可以将服务器上的有关数据与你的身份联系起来。密码则是认证方法,从理论上讲,只有你一个人才知晓密码,而服务器则将你的密码讲解为其与你交流的证明。然而事实是,密码事实上并非一个好的远程认证机制。

当你在一个网站上输入密码时,你的电脑会将密码发送到服务器上,并与密码数据库进行核对。不幸的是,黑客可以获得这部分密码数据库的访问权。在最恶劣的状况下,密码是以明文形式存储在服务器上的,很不安全。即便密码是加密的,破解它们也只不过黑客是不是想为了获得访问权而投入计算和资金资源的问题。

网络计算机是一个以互联网速度运行的区块链计算互联网,可以无限制地增加其容量。其设计是通过在多个数据中心之间复制数据和计算来提供安全,以预防个别计算提供商的恶意行为。应该注意的是,复制虽然可以保护数据的完整性,但并不可以预防信息的泄漏;在网络计算机上用密码仍然会遭到与传统互联网上相同的安全问题的影响。因此,在网络计算机上,大家用适合的加密认证取代了密码。

大家在网络计算机上用于认证的主要加密机制是数字签名策略。数字签名是一个相当标准的定义,创造于20世纪70年代末,从90年代中期开始被广泛用。

版权保护: 本文由 区块链时代 原创,转载请保留链接: http://www.bestruiyou.com//xinwen/628.html

本文标签: 区块链 比特币 以太坊

上一篇:美国风投公司推出2亿USD社交媒体Web3基金

下一篇:没有了