TL/DR:在为语义网定义新词汇时,为什么我们不应该更喜欢https:
IRI?
语义网是围绕使用 IRI 来识别各种组件而构建的,无论是网页等资源还是所有权等抽象概念。我咨询过的每个来源都http:
特别推荐使用 IRI,例如:
- 链接数据书(2011 年),
- 英国政府开放数据倡议(2010 年),
- W3C 关于 Cool URIs 的说明(2008),以及
- W3C 关于 RDF 词汇表最佳实践的说明(2008)。
这让我有点吃惊。世界似乎正在从 HTTP 转向 HTTPS,但我知道没有使用https:
IRI 的词汇,而且上面引用的文档都没有讨论这个问题。我可以找到关于为什么ftp:
或urn:
不太好的选择的讨论,但没有关于https:
.
尽管语义网上的 IRI 主要是标识符而不是定位符,但有一个约定,即 IRI 是查找有关实体的更多信息的好地方,并且各种权威机构建议 303 重定向到 RDF 或 OWL 模式或其他描述性文档等文档信息。如果 IRI 是http:
一个,则至少可以通过 HTTP 进行初始请求和重定向。即使 schema 内容没有任何机密性,它仍然存在以下问题:
它容易受到中间人攻击。恶意方可能会故意注入不一致的模式信息,这可能会影响应用程序做出的处理决策,从而可能导致 DoS 或以其他方式破坏用户体验。
ISP 可能会自己做 MITM 以将广告注入内容。真的,他们不应该对非 HTML 内容执行此操作(好吧,他们根本不应该这样做,但这是另一回事),但这取决于 ISP 是否足够关心才能做到这一点。正如 Superfish 所展示的,这仍然可以通过 HTTPS 发生,但要困难得多。
ISP 可能会跟踪该请求。用户正在使用咨询特定模式的应用程序这一事实本身就是有关客户的有价值的信息,这些信息可以出售给美国参议院最近投票通过使其合法化的广告商。人们越来越注重隐私,并希望尽量减少这种情况。当然 ISP 仍然知道您访问了哪个域,因为SNI 字段未加密,但我们仍然可以尽量减少数据泄露。
如果客户端支持,HSTS可用于确保后续访问直接通过 HTTPS,但这对仍然通过 HTTP 发出的初始请求没有任何作用。迄今为止,在 DNS 中加入类似功能的尝试都失败了,我怀疑部分原因是 DNSSEC 采用缓慢。我不知道任何其他可能缓解上述问题的技术措施。
这些考虑都向我表明,与定义新词汇https:
相比,这是一个更好的选择。http:
显然,如果您有一个已经使用的现有词汇表,情况就不同了http:
,但这不是我感兴趣的情况。
但是我确定我不是第一个想到这个的人,所以我只能认为每个人仍然使用和推荐http:
是有原因的。如果是这样,有什么缺点https:
?任何人都可以指导我对此进行很好的讨论吗?据我所知,W3C 在这个主题上没有任何让我感到惊讶的东西。