疫苗接种PayWalls - Bertrand Fan

2021-06-24 17:07:13

几天前刚刚宣布,如果您在加利福尼亚接种疫苗,您可以通过转到数字Covid-19疫苗记录门户网站以QR码的形式获得疫苗接种录制的数字副本。 QR码如下所示:

但如果您尝试使用iOS相机扫描它,它只是说“找不到可用的数据”。 iOS 15将支持阅读智能保健卡,但直到下降至下降,直到那么我们拥有这些大多数无用的QR码。所以让我们和他们一起做点什么!

首先,它是一个巨大的QR码。那是因为它包含很多信息,包括:

基本上它拥有您在物理COVID-19疫苗接种卡上看到的一切,以及一些可以核实的东西。

当您扫描QR码时,您将留下一串数字:

您可以拍摄这些数字并通过将它们分成对成对将它们转换为Base64字符串,将每个对ASCII十进制添加到(45),并采用十进制总和的ASCII字符。例如,前两对是56和76.所以我们加入45 + 56 = 101,它表示为e和45 + 76 = 121,其表示为y并继续这样做,直到所有对完成,我们都有另一个长弦:

花费太多时间调试JWTS或OpenID Connect的读者将识别JWT的Telltale Ey前缀。事实上,将此投入JWT.IO将吐出我们的标题:

有效载荷看起来有点古怪。那是因为它是一个Base64URL编码。我们可以解码此编码以获取一堆字节,然后使用膨胀算法向JSON字符串解压缩这些字节。

常量PAKO =需要(' PAKO&#39); VAR有效载荷=' 3ZLLbtswEEV_JZhuZYkSVKfWLknRx6YokLSbwAuaGlsM-BD4MOIG-vfOyApaFEFWXYXQhpyZw3sv9QQ6RuhgSGmMXVXFEVUZrQxpQGnSUCoZ-ljho7SjwVhRd8YABbjdHrp63bStEJu2LtfvPxRwVNA9QTqNCN39H-a_uHfnzYo3sC1ABezRJS3Nbd49oEpM2Q86_MQQtXekry1FWdO1fHqdXW-QewJGn4PCu_lGWArFogCUN4ZoTCiALggnkkXkbMyPYKjheb4T1PC8eQH8XSZN82xbWjxDpNWGePBJZqWpctBHdGz7yqXBuxMd3ZawncjfTpP_jzIxqt6sNyvRrhoB01S8KKZ-XcxXa7PTv-TiKyaZcpzd8hMl7OnwKJXSDm98PxOU77U7zLrjKSa0y4vT4wzmsvThUHGwVdR9pY6PBFDzJDTiEqbtVMC4JDDL2WNAx9r-DpCavFI5zCU2e6ftGdHUK8EfYUcMex8s_UGsRarkAyN7HUcjOc2r65uLz-gwSHPxxcdRJ2koKArR-PQt2x2PgqDVvpJg8yYTbDb_N0Gx3nBhovUb&#39 ;; VAR字节= Buffer.from(有效载荷,' base64'); var incollat​​edpayload = pako.inflateaw(bytes,{to:' string' string'}); console.log(充气般的覆盖);

{" ISS&#34 ;:" https://spec.smarthealth.cards/examples/issuer&"" nbf&#34 ;:1624400941.658," vc" :{"类型&#34 ;: [" https://smarthealth.cards#health-card" ]," credentialsubject&#34 ;: {" fhirversion&#34 ;:" 4.0.1"" fhirbundle&#34 ;: {" resourcetype" :"捆绑&#34 ;,#34;类型&#34 ;:"集合""条目&#34 ;: [{" fullull&#34 ;:&# 34;资源:0""资源&#34 ;: {" resourceType&#34 ;:"患者""名称&#34 ;: [{&# 34;家庭&#34 ;:" fauci&#34 ;,#34;给定&#34 ;: ["安东尼"" s。" ]}],"出生日胎&#34 ;:" 1969-04-20" }},{" fullul&#34 ;:"资源:1&#34 ;,"资源&#34 ;: {" resourceType&#34 ;:"免疫免疫&#34 ;,"状态&#34 ;:"完成"" vaccinecode&#34 ;: {"编码&#34 ;: [{"系统&#34 ;: " http://hl7.org/fhir/sid/cvx" ;,"代码&#34 ;:" 207" }]},"患者&#34 ;: {"参考&#34 ;:"资源:0" },"发生attencedateme&#34 ;:" 2021-01-01","执行者&#34 ;: [{"演员&#34 ;: {"显示& #34 ;:" ABC综合医院" }}]," Lotnumber&#34 ;:" 0000420" }},{&#34 ;:"资源:2""资源&#34 ;: {" resourceType&#34 ;:"免疫免疫&#34 ;,"状态&#34 ;:"完成"" vaccinecode&#34 ;: {"编码&#34 ;: [{"系统&#34 ;: " http://hl7.org/fhir/sid/cvx" ;,"代码&#34 ;:" 207" }]},"患者&#34 ;: {"参考&#34 ;:"资源:0" },"发生&#34 ;:" 2021-01-29""执行者&#34 ;: [{"演员&#34 ;: {"显示& #34 ;:" ABC综合医院" }}]," lotnumber&#34 ;:" 0000069" }}]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

关键是发行人。在这种情况下,发行人是https://spec.smarthealth.cards/examples/issuer。发行者在ISS值+ /.WELL-KNOWN/JWKS.JSON发布他们的公钥,所以我们应该能够转到https://spec.smarthealth.cards/examples/issuer/.well-known/jwks.json和下载他们:

{" keys&#34 ;: [{" kty&#34 ;:" ec""孩子&#34 ;:" 3kfdg-xwp-7gxyywtufuadwbumdopkmqx-iell11w9s& #34 ;,"使用&#34 ;:" sig&#34 ;," alg&#34 ;:" es256&#34 ;," crv&#34 ;:& #34; p-256&#34 ;," x&#34 ;:" 11xvrwy1i2s0eyjlyf_bwfw_tq5cjjnlw78bhxnxcgw"" y&#34 ;:" ezxwxvo1hvcy0kucrpfko7yaymt6ajc3n7okab6vyy8" },......]}

不出所料,孩子匹配我们JWT标题中发现的孩子。通过使用公钥,我们可以验证此卡来自发行人,因为只有他们拥有签名所需的私钥。

当您从数字COVID-19疫苗记录门户中获取QR码时,这些是由https://myvaccinerecord.cdph.ca.gov/creeds发出的,因此可以在https://myvaccinerecord.cdph中找到他们的公钥。 ca.gov/creds/.well-known/jwks.json。由于任何人都可以通过生成公共/私钥对来成为发行人,因此重要的是您确定您实际信任的发行人是重要的。

如果我们可以采取QR码,提取疫苗接种记录,并验证它是由国家发出的,我们可以将其整合到几乎任何内容!听我说。

如果我们阻止人们根据其疫苗接种状态访问内容怎么办?如果你无法阅读reddit,观看YouTube,或在Instagram上发布的情况怎么办,而无需首先证明您已被疫苗接种?我觉得我们很快就把数字相当快。

作为概念验证,我建立了一个疫苗接种PayWall,提供了如何完成的例子。在这个例子中,伟大的盖茨比的书的内容受疫苗接种付费墙保护。要阅读它,您只需从数字Covid-19疫苗记录门户中获取您的数字疫苗接种记录,按扫描数字Covid-19疫苗接种录制按钮并扫描。

尚未询问任何问题,因此下面的此常见问题解答部分代表经常预期的问题。

你认为一个不会接种疫苗的人甚至想读伟大的盖茨比吗?

我不是加利福尼亚州的居民,所以我无法测试这种疫苗接种付费墙。

此博客帖子顶部的QR码可用于测试PayWall。

这不是一个问题。加利福尼亚州建议您可以要求将扫描数码Covid-19疫苗中的QR码扫描QR码的组织记录它们将如何使用您的数据或者他们将保留它。只有您可以决定如何以及何时分享您的记录。

这些数据仅用于验证您的疫苗接种状态并在笑话的情况下显示它,以上伟大的盖茨比的文本。

不可以。您可以查看源代码,但您无法验证网站是否使用相同的代码,以便我不知道还有什么要告诉您的方式。

我不。如果您可以接种疫苗,并且您可以使用疫苗,并且您没有获得一个,您应该感到差。

在物理设置中,数字疫苗接种卡应该与另一个识别证明一起使用,如驾驶执照。这是棘手的在线。防止滥用的一种方法是只允许与一个帐户相关联的疫苗接种记录。您可以存储有效载荷的哈希值并检查它是否已被使用,而不是存储整个有效载荷。

不是真的,但我可以看到它被用作促销,比如作为在线服务的折扣或信用。如果Dunkin'甜甜圈和Krispy Kreme可以有疫苗激励计划,也许在线服务也可以?坦率地说,我真的没有得到疫苗激励计划,或彩票,或给人们接种疫苗。如果没有染色是不够的动力来获得疫苗,我不确定会有什么。