互联网计算机用一种更先进安全的加密认证方法取代了用户名和密码。
要理解身份和认证在互联网计算机的背景下意味着什么,我们必须首先其在当今的网络中是如何使用的。
当登录一个网站时,用户名通常是电子邮件地址或一串字母和数字,它是你唯一的标识符,可以将服务器上的相关数据与你的身份联系起来。密码则是认证手段,从理论上讲,只有你自己才知道密码,而服务器则将你的密码解释为其与你交流的证明。然而事实是,密码实际上并不是一个好的远程认证机制。
当你在一个网站上输入密码时,你的电脑会将密码发送到服务器上,并与密码数据库进行核对。不幸的是,黑客可以获得这些密码数据库的访问权。在最恶劣的情况下,密码是以明文形式存储在服务器上的,非常不安全。即使密码是加密的,破解它们也只是黑客是否愿意为了获得访问权而投入计算和金钱资源的问题。
互联网计算机是一个以网络速度运行的区块链计算网络,可以无限制地增加其容量。其设计是通过在多个数据中心之间复制数据和计算来提供安全,以防止个别计算供应商的恶意行为。要注意的是,复制虽然可以保护数据的完整性,但并不能防止信息的泄漏;在互联网计算机上使用密码仍然会受到与传统网络上相同的安全问题的影响。因此,在互联网计算机上,我们用适当的加密认证取代了密码。
加密安全初创公司Carret完成种子轮融资,Sandeep Nailwa参投:金色财经报道,加密安全初创公司Carret宣布完成了一笔未公开金额的种子轮融资,Polygon 联合创始人 Sandeep Nailwal、贝莱德前高管 Yan Wu 和 Amesten Capital 等参投。Carret 主要构建加密安全应用程序,他们将利用这笔资金加强其运营、满足市场营销需求、扩大产品和战略垂直领域,并将把业务拓展到中东市场。(thewatchdog)[2022/8/13 12:22:32]
我们在互联网计算机上用于认证的主要加密机制是数字签名方案。数字签名是一个相当标准的概念,发明于20世纪70年代末,从90年代中期开始被广泛使用。
通常由以下三种算法组成:
密钥生成:密钥生成可以看作是选择密码。通常,密钥的产生会创造一对钥匙:1)一个是像密码一样必须保密的私钥,2)另一个是可以公开的从私钥衍生的公钥。签名:签名需要信息和私钥产生。当我们使用数字签名进行用户认证时,该算法是在持有私钥的用户端运行的。验证:算法接收信息、签名和公钥,并验证签名是否与信息和公钥相符。这里的关键属性是,与检查密码不同的是,密码需要存储在服务器上,而在这种情况下,签名的验证可以仅根据公共信息进行,因为服务器存储了公钥列表,每个用户都有一个,且公钥和签名都不需要保密。互联网计算机上的应用是基于通过传递信息进行交互的容器实现的。更详细地说,交互模型是基于请求的,类似于远程过程调用。当容器A调用容器B时,容器A便指定了目标容器,所要调用的函数的名称,以及该函数的参数。当指定的函数在容器B上被评估时,该容器也知道该函数是由容器A调用的。评估完成后,容器A将获得该函数的返回值以作为响应。而当用户与容器互动时,同样的远程过程调用模型也一样适用。当用户调用一个容器时,用户会向目标容器发送一个请求。这个请求也会指定一个带有参数的函数,用户也可以获得返回值以作为响应。在请求的变化过程中,容器也会了解到调用它的用户的身份。
Cardano EVM侧链发布后已进行750万笔交易:8月2日消息,dcSpark首席执行官兼联合创始人、Milkomeda协议核心贡献者Nico Arqueros在其社交媒体分享了Cardano EVM侧链Milkomeda C1的一些统计数据:共计7,485,720笔交易和96,026个钱包地址,并且钱包数量或将在8月推出的游戏发布后达到10万个。[2022/8/2 2:53:25]
注:在ICP平台上,Canister是最基本的组成元素,可以理解为容器,类似于以太坊等区块链公链平台上的智能合约。这些容器可以复制、可以分叉,更方便自组织。
上图是用户发送请求的示意图。中间的浅灰色区域显示了核心请求,包括目标容器ID,函数名称,参数,以及调用者的身份或主体。而深灰色区域显示的则是包含认证信息、签名和公钥的封套。如图左侧所示,调用者的主体是通过散列法从公钥中得出的。这种技术在区块链领域被广泛使用,例如比特币或以太坊地址就是如此。此外,图中右侧部分显示了作为数字签名方案中的消息的请求内容是如何通过签名与公钥绑定的。当互联网计算机收到这样的请求时,它既要检查签名在指定的公钥下是否有效,也要检查公钥和调用者主体之间的关系。
Cardano已成为市值第三大数字货币:8月13日消息,据福布斯报道,随着过去一周上涨46.5%,Cardano市值已推高至650亿美元上方,超过BNB和Tether,目前已成为市值第三大数字货币。据福布斯分析,Cardano的强势表现可能因为其主网刚刚完成Alonzo升级,本次升级后能让Cardano区块链有足够实力与以太坊竞争,并更好地支持DeFi APP(包括借贷协议和DEX)。[2021/8/13 1:53:54]
为了确保信息确实是由信息中指定的调用者发送的,容器不必理会这些技术细节。如果一切都检查完毕,互联网计算机会评估容器上的指定功能,但如果其中一项检查失败,请求就会被放弃。
以下是关于我们使用的身份格式的一些细节。我们从DER格式的公钥开始,用SHA-224对其进行散列,从而得到一个28字节的字符串。我们会添加一个字节,用于区分来自公钥的身份主体和我们在互联网计算机中其他地方使用的身份主体,例如容器。这29个字节是以用户委托书的内部二进制表示的。当把一个委托人转换为其文本表示时,我们首先要预加一个CRC-32错误检测码。然后,使用Base32编码产生的字符串,最后建立每组5个字符的组,并用破折号隔开。我们选择这种格式是为了支持在有适当错误检测的情况下,可以轻松复制粘贴,同时仍然允许ASCII表示法中的字符少于64个,以便与互联网协议兼容。
以太坊L2网络总锁仓量回落至51.7亿美元:金色财经报道,L2BEAT数据显示,截至目前,以太坊Layer2上总锁仓量为51.7亿美元。近7日跌4.12%,其中锁仓量最高的为扩容方案Arbitrum,约25.6亿美元,占比49.6%。其次是Optimism,锁仓量15.5亿美元,占比30.1%。dYdX占据第三,锁仓量5.05亿美元,占比9.76%。[2022/8/27 12:52:32]
到目前为止,我们所看到的方案在结构上还是有点不灵活的。它们将用户的身份主体与单一的加密密钥进行绑定,但这种限制会使用户很难与来自不同设备的容器进行交互,因为需要在这些设备之间共享相同的加密密钥,既繁琐又不安全。相反,我们在不同的加密密钥之间使用了授权。如上图所示,你可以看到从黄色密钥到橙色密钥的委托。这种委托包括被委托的密钥,即橙色的钥匙;一些额外的参数,如过期或委托范围的限制;以及委托密钥的签名,即黄色密钥。
当用橙色密钥签署请求时,用户可以使用来自黄色密钥的委托,以便使用来自黄色密钥的身份。此外,委托的强大之处在于,可组合性。例如,橙色密钥可以将授权扩展到紫色密钥。这种结构与公钥基础设施和X.509非常类似,但这并不是巧合,我们向其进行了借鉴,并使用了更轻量级的数据结构。
中非国家银行将推出在 6 个成员国中通用的数字货币:7月23日消息,中非国家银行董事会敦促该行为其六个成员国引入一种通用数字货币,以实现支付结构现代化并促进区域金融包容性。中非国家银行董事会本周在喀麦隆经济首都杜阿拉举行会议后,在一份由其负责人 Herve Ndoba 签署的电子邮件声明中发出了这一呼吁。
中非国家银行是中非经济和货币共同体(CEMAC)成员国喀麦隆、加蓬、乍得、刚果共和国、赤道几内亚和中非共和国的中央银行。中非共和国于 4 月宣布采用比特币作为法定货币,然而中非国家银行强烈反对该决定,称其与管理中非货币联盟的协议和公约不符。(彭博社)[2022/7/23 2:33:04]
委托的一个具体应用与网络认证有关。网络认证是万维网联盟的一个最新标准,主要针对网络应用的双因素认证。该标准的动机是,如前所述,密码有严重的安全缺陷。它们经常在钓鱼邮件、恶意软件以及黑客攻击发生时,成为网络犯罪分子的猎物。
双因素认证意味着除了密码之外,登录网络应用还需要一个额外的安全因素,通常是用户拥有的安全设备。在现实中,这可能是一个安全的USB钥匙或是一个内置在用户终端设备中并通过生物识别技术激活的安全芯片,由安全芯片存储加密密钥。由于加密密钥从未离开过安全芯片,所以即使用户的电脑或手机被恶意软件感染,它们仍然是安全的。
当网络认证被用作网络应用中的第二因素时,协议流程如下:在用户通过提供用户名和密码启动登录过程后,网络服务器将生成一个随机挑战并将其发送给用户的浏览器。然后,浏览器将挑战发送给安全设备,安全设备在签署挑战之前需要与用户互动。然后,签署的挑战书被送回服务器,服务器根据用户注册的公钥验证挑战书上的签名。这确保了登录网络应用程序时,除了密码外还需要持有安全设备。
公认的事实是,网络认证是一个开放的标准,使用数字签名进行认证,且已经被广泛的设备所支持。然而,当把它改编为互联网计算机时,我们必须克服一些障碍。网络认证假定了传统网络中面向会话的客户服务器模型,用户在登录应用程序时进行一次认证,并在同一会话中发送后续信息。相比之下,互联网计算机实现了一个模型,且每个请求都是单独认证的。特别是,由于浏览器和互联网计算机之间不存在有状态的会话,所以没有服务器可以生成挑战,并由安全设备签署。然而,回顾一下,在典型的网络认证流程中,安全设备需要对服务器发送的挑战提供数字签名。
为了使用相同的协议实现请求认证,我们需要使用请求本身作为挑战,并由安全设备签署,类似于我们的一般请求认证方案。我们必须克服的另一个问题是,网络认证需要用户对每个签名进行交互。在互联网计算机提供的典型前端中,一个页面的加载可能对应着多个请求。由于我们不想要求用户明确确认每个请求,所以我们使用了上述的委托机制。当使用网络认证与一个容器进行交互时,我们会首先生成一个短期的会话密钥。然后,使用网络认证来签署一个面向该会话密钥的委托,这样,单个用户的互动就可以触发对互联网计算机的多个请求。
虽然网络认证对安全存储加密密钥很有帮助,但它不仅将这些密钥绑定在设备上,而且还将其绑定在了一个特定的容器上。其原因是浏览器的安全模型,该模型严格地将在同一网络浏览器中运行的不同应用程序所能访问的状态按其来源分开。在网络上,你可以认为一个原点大致上对应于一个网站。在互联网计算机上,每个原点则对应于一个容器。这种严格的状态分离对安全至关重要,但它也使得诸如密钥备份或支持从多个设备无缝访问同一容器的功能变得繁琐,因为所有这些操作都必须为每个容器单独执行。我们通过使用互联网身份服务来解决这个问题,即身份提供者,类似于你在网络上熟悉的"用谷歌或Facebook登录"功能。
当用户第一次加载一个特定容器的前端时,该前端会呈现一个"用IC登录"的按钮。当用户点击该按钮时,浏览器会打开一个弹出窗口,显示互联网身份服务,这是一个允许用户管理钥匙和身份的特定应用程序。然后,用户可以决定是否允许容器前端使用用户身份。如果用户同意,浏览器就会被重定向到容器前端,并能以用户的身份访问容器。这个机制将再次触发会话密钥和委托机制。届时,容器前端会生成一个会话密钥对,并将公钥传输给互联网身份认证。如果用户确认,互联网身份认证产生授权,并将其返回给信息库前端。作为通过大技术提供商签署的额外好处,身份提供商的完整认证流程发生在用户端,所以对用户私人行为的暴露要少得多,从而减少身份跟踪。(互联网身份服务常见问题)
谈到用户追踪,互联网身份认证将为用户登录的每一个容器前端提供一个不同的身份,这对安全和隐私非常有利。如果不是这样,互联网身份认证将允许每一个前端在用户的单一主体下登录。如果该用户与不相关的服务互动,例如留言板和购物网站,这些服务就可以在背后关联用户在这些网站上的行为。更糟糕的是,留言板的前端可以恶意调用购物网站的容器,并以用户的名义下订单。因此,互联网身份识别服务为用户登录的每一个前端生成一个不同的身份,并以主机名进行区分。这样一来,用户在不同服务上的行为就不那么容易被追踪了。虽然前端仍然能够使用用户的身份来调用互联网计算机上的任何容器,但它永远只是与执行调用的前端有关的身份。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。