云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

京东云_进击的巨人3百度云_免费申请

小七 141 0

京东云_进击的巨人3百度云_免费申请

为了改善您使用SAP Cloud SDK的体验,我们最近开始在SDK的Maven原型及其持续交付工具包中加入匿名使用分析,以更好地了解如何进一步开发我们的产品。例如,我们经常问自己的问题是:

有多少项目在使用Java库和持续交付工具包?使用了哪些版本的SDK?使用SDK的哪些模块?哪些不是?使用了哪些操作系统、Java和Maven版本?

然而,鉴于我们不了解所有用户,我们无法回答这些问题。通过将使用情况分析整合到我们的产品中,我们希望在这里获得更多的见解。

由于我们知道收集使用情况数据是一个非常敏感的话题,本博客旨在提供关于我们如何收集哪种数据的完全透明。

在SAP,我们尊重您的隐私和知识产权。因此,我们只收集有关使用SAP Cloud SDK的非敏感数据。我们不收集任何有关您项目内部工作的个人信息或数据。任何远程敏感值(如您的项目的Maven组或工件ID)都会被混淆,因此除了您和您的团队之外,没有人知道或可以推断有关您项目的详细信息。

默认情况下,使用数据由SDK收集。当然,你可以选择退出,如下所述,让我们先来看看隐私保护的一些基本原理,以及我们如何应用这些机制来确保您作为个人的隐私,以及关于您的项目的商业案例或技术实现的敏感细节,它通常与匿名的概念有关。更正式一点说,匿名性是指恶意方(攻击者)无法在一组实体(即所谓的匿名集)中识别实体(如开发人员或项目)。

为了保护实体的匿名性,可以应用几种已建立的技术:

假名化:可以通过使用假名来混淆实体的身份,假名是与实体的实际身份不同的标识符。例如,云服务器是,给一个叫爱丽丝的人一个笔名可以是另一个像鲍勃这样的名字。使用假名实现匿名也被称为假名。请注意,虽然术语匿名性对应于攻击者无法识别匿名集中的实体,但假名仅指使用假名。因此,假名并不能保证真正的匿名性。例如,如果有人知道爱丽丝实际上是爱丽丝而不是鲍勃,那么这个假名就不再有用了。推断笔名通常是通过查阅或结合多种信息来源来实现的。在我们的示例中,攻击者可能只是观察到"Bob"住在一个铭牌为"Alice"的公寓中,从而使假名过时。缓解这种情况的一种方法是对多个实体使用相同的假名,从而形成一个组假名,开心返利,该组假名本身又形成一个匿名集。数据扰动:这给我们带来了实现匿名性的第二种选择:k-匿名性的概念。这里的想法是使每个实体与k-1其他实体不可区分。此外,还可以在数据中引入随机噪声来保护实体的隐私。虽然这样可以保持数据的粒度,但这样的噪声是以降低数据精度为代价的。数据泛化:如果数据的粒度不是必需的,也可以泛化数据,例如通过将单个数据点聚合为平均值。数据抑制:为了保护用户的隐私,可以抑制此类数据,例如,允许用户选择退出数据收集。

隐私感知使用数据收集

为了允许我们跨Java库和持续交付工具包的构建管道通过项目关联使用数据,我们需要唯一的项目标识符。当然,Maven组和工件id表示一个适当的标识符。然而,开发人员可能不希望公开Maven组和工件ID–虽然这可能不是高度敏感的信息,但这是不可取的。

因此,我们使用基于项目组和工件ID的假名来表示项目。我们只包括组和工件ID,而不包括版本,淘客源码,因此无法了解项目的开发进度或发布周期。此外,假设通常有一个开发团队在处理一个项目,这提供了一个额外的k-匿名层。

最后,我们在假名中加入了一个特定于项目的、安全生成的随机秘密。这个秘密在收集使用数据时不会传输,并且在项目中是保密的。生成的秘密与伪名具有相同的256位长度,因此无法从给定的伪名猜测基础Maven组或工件标识符。

项目的伪名生成如下:

projectId=h(groupId+artifactId+salt)

其中h(x)是加密哈希函数(在本文撰写时,SHA-256)、+字符串的串联,salt是一个与h(x)具有相同位长的随机值。salt值由加密随机数生成器(Java的SecureRandom)生成。

随机salt值由每个项目的s4sdk maven pugin生成。这个salt存储在项目的POM文件中,只用于计算散列值。决不能与任何不可信的人分享,因为知道salt可以减少暴力猜测项目组和工件ID的工作量。

例如,给定组ID通信公司、工件ID app和salt值e9a94b0ee5c8b75a3834ed6264dfda51bf4642f94e53e22d1cad8b340d1584c,项目的结果哈希值是0335b62e0bb82b11888302be2cb8160e0c0976cac7014b7866c3526ae3f7b0ab。