首页
学习
活动
专区
圈层
工具
发布

去中心化数字身份DID简介——四、用户属性的零知识证明

在上一篇文章中,我们介绍了用户具有多个身份属性时,选择性的把其中的一个属性暴露出来,而不会造成其他信息的暴露。...所以我们可以认为: 1.生成VC和生成VP是两个独立的事件,生成VP时不应该有发证方参与。...Issuer:断言默克尔树的构建 现在我们已经构建好了断言数组,接下来就只需要将断言数组作为默克尔树的叶子节点,并采用上一篇文章中说的加盐方法,防止哈希碰撞,从而构建一个加盐断言默克尔树。...Verifier:验证VP 商家在收到顾客生成的VP后,可以直接通过签名验证默克尔根是否是公安机关签名的,然后通过默克尔验证来证明”2002:1“这个断言是正确的。...如果想要证明,我们就需要将划分范围的粒度变细,比如变成每一个范围是1W,这样构建了一个新的长了很多的叶子节点列表[0,1W,2W,3W…….]如果我们将范围上限定在1000W,那么就需要1000个叶子节点

1.6K32

Innovative Technology for CPU Based Attestation and Sealing论文翻译

最后,当平台所有者计划转移平台所有权时,应使其所有权期间可用的秘密不可访问。 Intel®SGX包含一个用户拥有的特殊持久值,当更改该值时,将更改软件可用的所有密钥。...REPORT结构包括飞地的两个identities,与飞地相关联的属性(属性标识模式和在ECREATE期间建立的其他属性),硬件TCB的可信度,以及飞地开发者希望传递给目标飞地的额外信息,以及一个消息认证码...下图显示了一个示例流程,说明两个飞地在同一平台上如何相互验证,并验证对方在同一平台上的一个飞地内运行,因此符合Intel®SGX的安全模型。...3.2.1 Intel® Enhanced Privacy ID (EPID) 当在平台的整个生命周期中使用少量密钥时,使用标准非对称签名方案的认证引起了隐私问题。...EPID是一种组签名方案,它允许平台对对象进行签名,而不需要唯一地标识平台或链接不同的签名。相反,每个签名者都属于一个“组”,验证者使用该组的公钥来验证签名。EPID支持两种签名模式。

44430
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SoapUI中是如何断言的呢(四)

    何时使用内置断言? 当响应短时,可以使用那些内置断言之一对其进行验证。 如果从Web服务器发送的响应本质上始终是静态的,我们也可以使用内置声明。如果它是动态的,我们将无法使用内置断言来断言。...当不可避免地使用诸如超时断言和安全断言之类的内置断言时。 对于无需重复测试的一次性用法,内置断言非常有效。 断言选项 可以通过下面突出显示的控制面板来最好地控制创建的断言。 ?...如果一个断言被禁用,它会变灰,并且在执行一个测试用例时,将不执行被禁用的断言。 取消组合断言:如果测试人员决定取消组合的断言,则可以将其取消组合。...XPath匹配使用XPath表达式选择目标节点及其值。XQuery匹配使用Xquery表达式从target属性中选择内容。...JMSJMS状态验证测试步骤的JMS请求是否已成功执行,并且对于具有JMS端点的测试步骤而言是否成立。JMS超时验证测试步骤的JMS响应是否花费的时间不超过指定的持续时间。

    2.1K10

    OAuth2.0 OpenID Connect 一

    在考虑使用哪种流程时,请考虑前台渠道与后台渠道的要求。前端通道是指直接与 OpenID 提供商 (OP) 交互的用户代理(例如 SPA 或移动应用程序)。当需要前端通道通信时,隐式流是一个不错的选择。...当需要反向通道通信时,授权代码流是一个不错的选择。 授权代码流使用response_type=code. 身份验证成功后,响应将包含一个code值。...身份验证成功后,响应将在第一种情况下包含一个id_token和一个,在第二种情况下仅包含一个。当您有一个应用程序直接与后端对话以获取没有中间件的令牌时,此流程很有用。它不支持长期会话。...该令牌可以用作不透明标识符,也可以检查其他信息——例如身份属性。它调用这些属性claims。该规范还包括对加密签名的 JWT(称为 JWS)和加密的 JWT(称为 JWE)的规定。...也就是说,当访问令牌过期时,用户必须再次进行身份验证才能获得新的访问令牌,从而限制它是不记名令牌这一事实的暴露。

    1.2K30

    OAuth 详解 什么是 OAuth?

    OAuth 有两个版本:OAuth 1.0a和OAuth 2.0。这些规范彼此完全不同,不能一起使用:它们之间没有向后兼容性。 哪一个更受欢迎?好问题!...在这种情况下,最终用户与其身份提供者交谈,身份提供者生成一个加密签名的令牌,并将其交给应用程序以对用户进行身份验证。应用程序信任身份提供者。只要该信任关系适用于已签名的断言,您就可以开始了。...这是一个很大的规范,但主要的两个组件是它的身份验证请求协议(也称为 Web SSO)和它打包身份属性并对其进行签名的方式,称为SAML 断言。...它们是必要的,因为客户的能力,我们需要如何获得客户的同意,谁正在同意,这给 OAuth 增加了很多复杂性。 当人们问您是否支持 OAuth 时,您必须澄清他们的要求。...id_tokenOpenID Connect (OIDC) 使用新的客户端签名和UserInfo获取用户属性的端点扩展 OAuth 2.0。

    5.9K20

    开发中需要知道的相关知识点:什么是 OAuth?

    OAuth 有两个版本:OAuth 1.0a和OAuth 2.0。这些规范彼此完全不同,不能一起使用:它们之间没有向后兼容性。 哪一个更受欢迎?*好问题!...在这种情况下,最终用户与其身份提供者交谈,身份提供者生成一个加密签名的令牌,并将其交给应用程序以对用户进行身份验证。应用程序信任身份提供者。只要该信任关系适用于已签名的断言,您就可以开始了。...这是一个很大的规范,但主要的两个组件是它的身份验证请求协议(也称为 Web SSO)和它打包身份属性并对其进行签名的方式,称为SAML 断言。...它们是必要的,因为客户的能力,我们需要如何获得客户的同意,谁正在同意,这给 OAuth 增加了很多复杂性。 当人们问您是否支持 OAuth 时,您必须澄清他们的要求。...id_tokenOpenID Connect (OIDC) 使用新的客户端签名和UserInfo获取用户属性的端点扩展 OAuth 2.0。

    1.5K40

    应用宝基于Robotium自动化测试(上)

    为了支撑项目组的这种研发模式,测试侧需要在FT分支上及主干上做大量的测试,而其中在FT分支的rebase测试、合流后验证、主干灰度测试等等阶段还包括大量的重复性测试,因此有必要在这些环节加入自动化测试,...以持续验证新特性未破坏原有系统。...apk一致 2.跨应用能力弱 同Robotium 1.只支API>16 2.需要被测控件有 android:hint等属性 1.API4.2以下只支持Selendroid方式 2.一台MAC机只能运行一个...abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ这26个字母及.号输进去,这样,当键入.号或26个字母时,就会有自动提示,提高代码输入效率。...此时,需要先获取节点控件的父视图,通过父视图再查找相应的子视图。

    2.2K60

    统一异常处理介绍及实战

    不过跟异常处理相关的只有注解@ExceptionHandler,从字面上看,就是 异常处理器 的意思,其实际作用也是:若在某个Controller类定义一个异常处理方法,并在方法上添加该注解,那么当出现指定的异常时...善解人意的Enum 自定义异常BaseException有2个属性,即code、message,这样一对属性,有没有想到什么类一般也会定义这2个属性?没错,就是枚举类。...code、message 是所有返回结果中必有的字段,而当需要返回数据时,则需要另一个字段 data 来表示。...验证统一异常处理 因为这一套统一异常处理可以说是通用的,所有可以设计成一个 common包,以后每一个新项目/模块只需引入该包即可。所以为了验证,需要新建一个项目,并引入该 common包。...启动时,自动插入的数据为: -- licence INSERT INTO licence (licence_id, organization_id, licence_type, product_name

    1.5K20

    减少 try catch竟然这么容易?

    不过跟异常处理相关的只有注解@ExceptionHandler,从字面上看,就是 异常处理器 的意思,其实际作用也是:若在某个Controller类定义一个异常处理方法,并在方法上添加该注解,那么当出现指定的异常时...善解人意的Enum 自定义异常BaseException有2个属性,即code、message,这样一对属性,有没有想到什么类一般也会定义这2个属性?没错,就是枚举类。...code、message 是所有返回结果中必有的字段,而当需要返回数据时,则需要另一个字段 data 来表示。...所以为了验证,需要新建一个项目,并引入该 common包。...启动时,自动插入的数据为: -- licence INSERT INTO licence (licence_id, organization_id, licence_type, product_name

    87510

    替代try catch处理异常的优雅方式

    不过跟异常处理相关的只有注解@ExceptionHandler,从字面上看,就是异常处理器的意思,其实际作用也是:若在某个Controller类定义一个异常处理方法,并在方法上添加该注解,那么当出现指定的异常时...善解人意的Enum 自定义异常BaseException有2个属性,即code、message,这样一对属性,有没有想到什么类一般也会定义这2个属性?没错,就是枚举类。...code、message是所有返回结果中必有的字段,而当需要返回数据时,则需要另一个字段data来表示。...所以为了验证,需要新建一个项目,并引入该common包。...启动时,自动插入的数据为: -- licence INSERT INTO licence (licence_id, organization_id, licence_type, product_name

    65921

    为什么不建议用try catch处理异常?

    其实际作用也是:若在某个 Controller 类定义一个异常处理方法,并在方法上添加该注解,那么当出现指定的异常时,会执行该处理异常的方法。...| 善解人意的 Enum 自定义异常 BaseException 有 2 个属性,即 code、message,这样一对属性,有没有想到什么类一般也会定义这 2 个属性? 没错,就是枚举类。...code、message 是所有返回结果中必有的字段,而当需要返回数据时,则需要另一个字段 data 来表示。...为了区分成功和失败返回结果,于是再定义一个 ErrorResponse。...| 验证统一异常处理 因为这一套统一异常处理可以说是通用的,所有可以设计成一个 common包,以后每一个新项目/模块只需引入该包即可。所以为了验证,需要新建一个项目,并引入该 common 包。

    2K21

    Jmeter(二十二) - 从入门到精通 - JMeter

    虽然我们的通过响应断言能够完成绝大多数的结果验证工作,但是JMeter还是为我们提供了适合多个场景的断言元件,辅助我们来更好的完成结果验证工作。...如果上图您看得不是很清楚的话,宏哥总结了一个思维导图,关于JMeter5的断言类型,如下图所示: ? 通过以上的了解,我们对断言有了一个大致的了解和认识。...2、关键参数说明如下: 名称:控制器的描述性名称,显示在左边节点上,并用于命名事务 注释:控制器注释信息,非必填项 signature:签名(可选择对协议的签名验证状态) Verify...signature:验证签名 Message not signed:没有签名消息 Signer certificate:签名证书(因为SMIME协议增加了安全传输,需要证书验证)...编写断言,使用BeanShell断言的好处是可以自由发挥,比如当断言失败,提示预期结果、实际结果,或者失败时把结果输出到日志。

    1.6K20

    减少 try catch ,可以这样干!

    不过跟异常处理相关的只有注解@ExceptionHandler,从字面上看,就是 异常处理器 的意思,其实际作用也是:若在某个Controller类定义一个异常处理方法,并在方法上添加该注解,那么当出现指定的异常时...善解人意的Enum 自定义异常BaseException有2个属性,即code、message,这样一对属性,有没有想到什么类一般也会定义这2个属性?没错,就是枚举类。...code、message 是所有返回结果中必有的字段,而当需要返回数据时,则需要另一个字段 data 来表示。...所以为了验证,需要新建一个项目,并引入该 common包。...启动时,自动插入的数据为: -- licence INSERT INTO licence (licence_id, organization_id, licence_type, product_name

    94740

    万字长文带你吃透SpringCloudGateway工作原理+动态路由+源码解析

    在上述配置文件中,如果多种Predicates同时存在于同一个路由,请求必须同时满足所有条件才能被这个路由匹配。当一个请求满足多个路由的Predicate条件时,请求只会被首个成功匹配的路由转发。...● 通过Header属性匹配 路由断言工厂接收两个参数,分别是请求头名称和正则表达式。...设置时间后断言:从After Route Predicate Factory中获取一个UTC时间格式的参数,当请求的当前时间在配置的UTC时间之后,则成功匹配,否则不能成功匹配。...下面是实例配置: 设置时间前断言:从Before Route Predicate Factory中获取一个UTC时间格式的参数,当请求的当前时间在配置的UTC时间之前,则成功匹配,否则不能成功匹配。...下面是实例配置: 设置时间之间断言:从Between Route Predicate Factory中获取一个UTC时间格式的参数,当请求的当前时间在配置的UTC时间之间,则成功匹配,否则不能成功匹配

    15.2K42

    rfc 5280 X.509 PKI 解析

    当一个使用证书的系统使用证书时(用于校验远端用户的数字签名),系统不仅会校验证书的签名和有效性,而且会获取一个最近合适的CRL来校验该证书的序列号是否在CRL中。"...当无法识别的属性类型对应的属性值使用了非DirectoryString的编码方式时,可能会用到二进制比对。...cRLSign:当subject public key用于校验证书吊销列表(如CRLs, delta CRLs, 或ARLs)中的签名时置位。...当该字段出现时,其必须大于或等于0;反之没有数量限制。 当CA证书中的public key用于校验证书的数字签名时,必须在所有CA证书中包含该扩展,且必须将此扩展标记为critical。...TIPS: 可以使用openssl verify -CAfile $CA.CRT $MY.CRT命令验证证书发布 证书路径的存在是沿着证书路径找到一个可信的CA 当浏览器校验证书时,会校验证书的有效性,

    2.1K20

    4000字讲清 《深入理解TypeScript》一书 【基础篇】

    但是,类型断言纯粹是一个编译时语法,同时,它也是一种为编译器提供关于如何分析代码的方法 类型断言通常被认为是有害的 在很多情景下,断言能让你更容易的从遗留项目中迁移(甚至将其他代码粘贴复制到你的项目中)...如下一个非常实用的例子所示,当使用者了解传入参数更具体的类型时,类型断言能按预期工作: function handler(event: Event) { const mouseEvent = event...; // ok } TypeScript 是怎么确定单个断言是否足够 当 S 类型是 T 类型的子集,或者 T 类型是 S 类型的子集时,S 能被成功断言成 T。...WARNING 请注意,这种错误提示,只会发生在对象字面量上 允许分配而外的属性: 一个类型能够包含索引签名,以明确表明可以使用额外的属性: let x: { foo: number, [x: string...当一个函数没有返回值时,它返回了一个 void 类型,但是,当一个函数根本就没有返回值时(或者总是抛出错误),它返回了一个 never,void 指可以被赋值的类型(在 strictNullChecking

    2.3K30

    测试工程师必备:深度剖析XPath与CSS Selector的选型与高阶用法

    适用场景: 现代Web应用主流定位方式,尤其适用于基于ID、类名、属性等显式特征的快速定位。XPath:定位原理: 基于XML/HTML文档的树形结构,通过路径表达式遍历节点。...(仅当唯一时可靠)。...当UI变更时,清晰记录定位器的修改原因和内容。持续验证与监控:在自动化测试执行中,加入对关键定位器有效性的断言或检查点。利用测试报告监控定位失败率,及时发现UI不稳定因素。...(仅当唯一时可靠)。...当UI变更时,清晰记录定位器的修改原因和内容。持续验证与监控:在自动化测试执行中,加入对关键定位器有效性的断言或检查点。利用测试报告监控定位失败率,及时发现UI不稳定因素。

    14010

    Spring Cloud 之 GateWay

    #Spring Cloud 之 GateWay 前言 API 网关是一个搭建在客户端和微服务之间的服务,我们可以在 API 网关中处理一些非业务功能的逻辑,例如权限验证、监控、缓存、请求路由等。...它由一个 ID、一个目标 URI、一组断言(Predicate)和一组过滤器(Filter)组成。...|Predicate(断言)|路由转发的判断条件,我们可以通过 Predicate 对 HTTP 请求进行匹配,例如请求方式、请求路径、请求头、参数等,如果请求与断言匹配成功,则将请求转发到相应的服务。...|断言|示例|说明 |------ |Path|- Path=/user/listUserInfo/|当请求路径与 /user/listUserInfo/ 匹配时,该请求才能被转发到 上。...|Header|- Header=X-Request-Id,\d+|请求头上携带属性 X-Request-Id 且属性值为整数的请求,才会被转发到 上。

    25510

    掌握这几个减少 try catch 的方法,让代码更简洁!

    不过跟异常处理相关的只有注解@ExceptionHandler,从字面上看,就是 异常处理器 的意思,其实际作用也是:若在某个Controller类定义一个异常处理方法,并在方法上添加该注解,那么当出现指定的异常时...善解人意的Enum 自定义异常BaseException有2个属性,即code、message,这样一对属性,有没有想到什么类一般也会定义这2个属性?没错,就是枚举类。...code、message 是所有返回结果中必有的字段,而当需要返回数据时,则需要另一个字段 data 来表示。...所以为了验证,需要新建一个项目,并引入该 common包。...启动时,自动插入的数据为: -- licence INSERT INTO licence (licence_id, organization_id, licence_type, product_name

    59720
    领券