互联网核算机用一种更先进安全的加密认证方法取代了用户名和暗码。

要理解身份和认证在互联网核算机的布景下意味着什么,咱们有必要首先其在当今的网络中是怎么运用的。

当登录一个网站时,用户名一般是电子邮件地址或一串字母和数字,它是你仅有的标识符,能够将服务器上的相关数据与你的身份联系起来。暗码则是认证手法,从理论上讲,只有你自己才知道暗码,而服务器则将你的暗码解释为其与你沟通的证明。然而事实是,暗码实际上并不是一个好的长途认证机制。

当你在一个网站上输入暗码时,你的电脑会将暗码发送到服务器上,并与暗码数据库进行核对。不幸的是,黑客能够取得这些暗码数据库的拜访权。在最恶劣的情况下,暗码是以明文形式存储在服务器上的,十分不安全。即便暗码是加密的,破解它们也仅仅黑客是否愿意为了取得拜访权而投入核算和金钱资源的问题。

互联网核算机是一个以网络速度运转的区块链核算网络,能够无约束地添加其容量。其设计是经过在多个数据中心之间仿制数据和核算来供给安全,以避免单个核算供货商的歹意行为。要注意的是,仿制虽然能够维护数据的完整性,但并不能避免信息的泄漏;在互联网核算机上运用暗码依然会受到与传统网络上相同的安全问题的影响。因而,在互联网核算机上,咱们用恰当的加密认证取代了暗码。

咱们在互联网核算机上用于认证的首要加密机制是数字签名计划。数字签名是一个相当规范的概念,发明于20世纪70年代末,从90年代中期开端被广泛运用。

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

  • 密钥生成:密钥生成能够看作是选择暗码。一般,密钥的发生会发明一对钥匙:1)一个是像暗码相同有必要保密的私钥,2)另一个是能够公开的从私钥衍生的公钥。

  • 签名:签名需求信息和私钥发生。当咱们运用数字签名进行用户认证时,该算法是在持有私钥的用户端运转的。

  • 验证:算法接纳信息、签名和公钥,并验证签名是否与信息和公钥相符。这儿的要害属性是,与查看暗码不同的是,暗码需求存储在服务器上,而在这种情况下,签名的验证能够仅依据公共信息进行,由于服务器存储了公钥列表,每个用户都有一个,且公钥和签名都不需求保密。

互联网核算机上的运用是依据经过传递信息进行交互的容器(Canister)完成的。更详细地说,交互模型是依据恳求的,类似于长途过程调用。当容器 A调用容器 B时,容器 A便指定了目标容器,所要调用的函数的称号,以及该函数的参数。当指定的函数在容器 B上被评价时,该容器也知道该函数是由容器 A调用的。评价完成后,容器 A将取得该函数的回来值以作为呼应。而当用户与容器互动时,同样的长途过程调用模型也相同适用。当用户调用一个容器时,用户会向目标容器发送一个恳求。这个恳求也会指定一个带有参数的函数,用户也能够取得回来值以作为呼应。在恳求的改变过程中,容器也会了解到调用它的用户的身份。

注:在ICP平台上,Canister是最基本的组成元素,能够理解为容器,类似于以太坊等区块链公链平台上的智能合约。这些容器能够仿制、能够分叉,更便利自组织。

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

上图是用户发送恳求的示意图。中心的浅灰色区域显现了核心恳求,包含目标容器 ID,函数称号,参数,以及调用者的身份或主体。而深灰色区域显现的则是包含认证信息、签名和公钥的封套。如图左侧所示,调用者的主体是经过散列法从公钥中得出的。这种技能在区块链领域被广泛运用,例如比特币或以太坊地址就是如此。此外,图中右侧部分显现了作为数字签名计划中的音讯的恳求内容是怎么经过签名与公钥绑定的。当互联网核算机收到这样的恳求时,它既要查看签名在指定的公钥下是否有用,也要查看公钥和调用者主体之间的联系。

为了保证信息确实是由信息中指定的调用者发送的,容器不用理睬这些技能细节。假如一切都查看完毕,互联网核算机会评价容器上的指定功能,但假如其间一项查看失败,恳求就会被抛弃。

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

以下是关于咱们运用的身份格局的一些细节。咱们从DER格局的公钥开端,用SHA-224对其进行散列,然后得到一个28字节的字符串。咱们会添加一个字节,用于区分来自公钥的身份主体和咱们在互联网核算机中其他地方运用的身份主体,例如容器。这29个字节是以用户托付书的内部二进制表明的。当把一个托付人转换为其文本表明时,咱们首先要预加一个CRC-32错误检测码。然后,运用Base32编码发生的字符串,最终建立每组5个字符的组,并用破折号隔开。咱们选择这种格局是为了支撑在有恰当错误检测的情况下,能够轻松仿制粘贴,一起依然答应ASCII表明法中的字符少于64个,以便与互联网协议(如DNS)兼容。

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

到目前为止,咱们所看到的计划在结构上仍是有点不灵敏的。它们将用户的身份主体与单一的加密密钥进行绑定,但这种约束会运用户很难与来自不同设备的容器进行交互,由于需求在这些设备之间同享相同的加密密钥,既繁琐又不安全。相反,咱们在不同的加密密钥之间运用了授权。如上图所示,你能够看到从黄色密钥到橙色密钥的托付。这种托付包含被托付的密钥,即橙色的钥匙;一些额定的参数,如过期或托付范围的约束;以及托付密钥的签名,即黄色密钥。

当用橙色密钥签署恳求时,用户能够运用来自黄色密钥的托付,以便运用来自黄色密钥的身份。此外,托付的强大之处在于,可组合性。例如,橙色密钥能够将授权扩展到紫色密钥。这种结构与公钥基础设施和X.509十分类似,但这并不是偶然,咱们向其进行了学习,并运用了更轻量级的数据结构。

托付的一个详细运用与网络认证有关。网络认证是万维网联盟(W3C)的一个最新规范,首要针对网络运用的双要素认证。该规范的动机是,如前所述,暗码有严重的安全缺陷。它们经常在钓鱼邮件、歹意软件以及黑客攻击发生时,成为网络犯罪分子的猎物。

双要素认证意味着除了暗码之外,登录网络运用还需求一个额定的安全要素,一般是用户具有的安全设备。在现实中,这可能是一个安全的USB钥匙或是一个内置在用户终端设备中并经过生物辨认技能激活的安全芯片,由安全芯片存储加密密钥。由于加密密钥从未离开过安全芯片,所以即运用户的电脑或手机被歹意软件感染,它们依然是安全的。

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

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

为了运用相同的协议完成恳求认证,咱们需求运用恳求自身作为应战,并由安全设备签署,类似于咱们的一般恳求认证计划。咱们有必要战胜的另一个问题是,网络认证需求用户对每个签名进行交互。在互联网核算机供给的典型前端中,一个页面的加载可能对应着多个恳求。由于咱们不想要求用户明确承认每个恳求,所以咱们运用了上述的托付机制。当运用网络认证与一个容器进行交互时,咱们会首先生成一个短期的会话密钥。然后,运用网络认证来签署一个面向该会话密钥的托付,这样,单个用户的互动就能够触发对互联网核算机的多个恳求。

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

虽然网络认证对安全存储加密密钥很有帮助,但它不只将这些密钥绑定在设备上,并且还将其绑定在了一个特定的容器上。其原因是浏览器的安全模型,该模型严厉地将在同一网络浏览器中运转的不同运用程序所能拜访的状况按其来历分隔。在网络上,你能够以为一个原点大致上对应于一个网站。在互联网核算机上,每个原点则对应于一个容器。这种严厉的状况别离对安全至关重要,但它也使得比如密钥备份或支撑从多个设备无缝拜访同一容器的功能变得繁琐,由于所有这些操作都有必要为每个容器独自履行。咱们经过运用互联网身份服务来解决这个问题,即身份供给者,类似于你在网络上熟悉的 "用谷歌或Facebook登录 "功能。

当用户第一次加载一个特定容器的前端时,该前端会出现一个 "用IC登录 "的按钮。当用户点击该按钮时,浏览器会打开一个弹出窗口,显现互联网身份服务,这是一个答运用户办理钥匙和身份的特定运用程序。然后,用户能够决定是否答应容器前端运用用户身份。假如用户同意,浏览器就会被重定向到容器前端,并能以用户的身份拜访容器。这个机制将再次触发会话密钥和托付机制。到时,容器前端会生成一个会话密钥对,并将公钥传输给互联网身份认证。假如用户承认,互联网身份认证发生授权,并将其回来给信息库前端。作为经过大技能供给商签署的额定好处,身份供给商的完整认证流程发生在用户端,所以对用户私人行为的暴露要少得多,然后削减身份跟踪。(互联网身份服务常见问题)

谈到用户追寻,互联网身份认证将为用户登录的每一个容器前端供给一个不同的身份,这对安全和隐私十分有利。假如不是这样,互联网身份认证将答应每一个前端在用户的单一主体下登录。假如该用户与不相关的服务互动,例如留言板和购物网站,这些服务就能够在背面关联用户在这些网站上的行为。更糟糕的是,留言板的前端能够歹意调用购物网站的容器 ,并以用户的名义下订单。因而,互联网身份辨认服务为用户登录的每一个前端生成一个不同的身份,并以主机名进行区分。这样一来,用户在不同服务上的行为就不那么简单被追寻了。虽然前端依然能够运用用户的身份来调用互联网核算机上的任何容器,但它永久仅仅与履行调用的前端有关的身份。

视野开拓

狗具有无实用性的优点,一如其在气质上的特别天赋。就以最为人乐道的秉性而言,狗常被称为人类的朋友,其聪慧和忠诚更是备受赞赏。这意味着狗是人类的仆役,并具有毫无保留的奉承天赋,及善于揣摩主人心情的奴隶敏感度。这些特性——就此处而言,即可视之为具有“实用”特质。除了使狗和主人的身份关系非常配合外,狗还具有某些在美学价值上较为模糊的特质。狗是驯化动物中性格最猥琐而习性最龌龊的。正是这种特质,狗对其主人总装出一副卑躬屈膝、媚俗讨好的姿态,而对其他事物随时摆出惹人厌烦而横加破坏的姿态。如此一来,狗在满足人类支配偏好的同时,博取人类的欢心。又由于狗是一种开销的项目,且通常不负有生产的任务,遂使得狗在人类的认可中,确保其作为赢得令誉的一种工具。与此同时,狗又和人类有关打猎的想象联系在一起:打猎是一项值得夸耀的体力活动,又是抒发荣誉性掠夺冲动的表现。 处于这种有利的条件下,不管狗在形态和动作上具有何种美感,以及狗具有何种可赞许的智力特质,都能受到人类习俗上的认可和夸大。甚至于那些爱狗成痴的人所培养出来奇形怪状的变种狗,也都被许多人衷心地嘉许为美。这些变种狗——其他为奇情雅兴而饲养的动物变种也是如此——在美学上的等级和评价,大体上是和其在既定的畸形情况下怪异的程度及特别款式的不稳定性成正比的。光就目前讨论的情形而言,这种基于怪异程度和结构不稳定性所产生的差别效用,可简化为其稀有性的条件和连带出现的开销。这类犬科怪胎,就像时下供男性及女性作为宠物犬的品种,其商业价值是以其培育的高昂成本来考虑的,而对于饲主的价值,主要在其能成为炫耀性消费项目所产生的效用上。透过尊荣性奢华的反映,间接体现出狗的社会价值。于是乎,借着字词和观念的简单转折,狗遂成为众所艳羡的宠物,也赢得美丽的称号。因为对这些动物再怎样照顾,也绝不意味着想从中得利或别有用途,这只会带来好的名声。正由于细心呵护这些动物的习惯并不受到质疑...-《有闲阶级论》

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注