爱加密威胁感知-iOS SDK合规指引

根据《个人信息保护法》、《数据安全法》、《网络安全法》等法律法规和监管部门规章要求,App 开发运营者(以下简称为“开发者”)在提供网络产品服务时应尊重和保护最终用户的个人信息,不得违法违规收集使用个人信息,保证和承诺就个人信息处理行为获得最终用户的授权同意,遵循最小必要原则,且应当采取有效的技术措施和组织措施确保个人信息安全。为帮助开发者在使用威胁感知-iOS SDK的过程中更好地落实用户个人信息保护相关要求,避免出现侵害最终用户个人信息权益的情形,特制定本合规使用说明,开发者使用威胁感知-iOS SDK时必须在《隐私政策》中告知终端用户SDK使用用途,并且在终端用户未同意《隐私政策》前不得初始化任何SDK。请您务必按照以下步骤做好合规自查,避免被监管部门通报或下架您的应用。

升级最新版SDK

请务必确保您已经将升级到满足监管新规的最新版本。

SDK申请系统权限的说明

接入说明:爱加密威胁感知-iOS SDK包括基本业务功能和扩展业务功能。
基本功能:为开发者提供移动安全监测服务,可监测APP运行状态,及时发现潜在风险,保证APP可以安全运行。
扩展功能:为开发者提供风险应用检测服务,可监测硬件中可能会对iOS APP造成攻击的风险应用。

功能区分 业务功能 功能介绍 相关个人信息及处理目的 配置方式
基本功能 应用风险监测 对APP的运行状态进行全面实时监测,及时发现并预警潜在风险。 应用信息(包括应用版本、安装时间、证书MD5、签名证书)用于定位遭受攻击的应用信息,开发者可根据应用信息,针对问题较多的应用版本对应用进行优化。 硬件信息(包括设备型号、设备厂商、分辨率、内存使用率、剩余电量、CPU使用率、CPU型号、CPU架构、接近感应支持、多任务支持、指令集):用于生成脱敏的终端用户设备唯一性标识,以确保能准确定位风险设备。 系统信息(包括系统名称、系统版本、系统内核信息)用于定位遭受攻击的系统信息,开发者可根据系统信息,针对问题较多的系统版本对应用进行优化。 网络信息(包括网络代码、联网方式)用于定位风险设备的网络信息,应对团伙攻击场景,及时发现团伙内的其它风险设备。 基本业务,必要个人信息
扩展功能 高频更换地域、位置欺诈监测 用于识别风险设备是否有地理位置伪造行为 粗略位置信息(经度、维度) 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->location = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->location = NO; setFieldsSwitch(fs);
风险设备监 用于定位风险设备的网络信息,应对团伙攻击场景,及时发现团伙内的其它风险设备 网络信息(外网IP、局域网IP) 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->localIp = YES;//局域网ip fs->ip = YES;//外网ip setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->localIp = NO;//局域网ip fs->ip = NO;//外网ip setFieldsSwitch(fs);
用于识别异常风险设备 供应商标识符(IDFV) 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->idfv = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->idfv = NO; setFieldsSwitch(fs);
广告标识符(IDFA) 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->idfa = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->idfa = NO; setFieldsSwitch(fs);
分辨率 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->deviceScreenStr = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->deviceScreenStr = NO; setFieldsSwitch(fs);
陀螺仪信息 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->behavEnv = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->behavEnv = NO; setFieldsSwitch(fs);
WiFi MAC 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->wifiMac = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->wifiMac = NO; setFieldsSwitch(fs);
WiFi名称 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->wifiSsid = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->wifiSsid = NO; setFieldsSwitch(fs);
风险应用监测 用于定位风险应用信息,可帮助开发者对风险应用进行识别、阻断,保护APP的运行环境安全。 应用安装列表。 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->applists = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->applists = NO; setFieldsSwitch(fs);
用于判断宿主 APP 信息,识别异常软件 应用名称 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->appName = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->appName = NO; setFieldsSwitch(fs);
应用包名 开启: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->appPackageName = YES; setFieldsSwitch(fs);
关闭: struct FiledsSwitch *fs = (struct FiledsSwitch *) malloc(sizeof(struct FiledsSwitch)); memset(fs, 1, sizeof(struct FiledsSwitch)); fs->appPackageName = NO; setFieldsSwitch(fs);

个人信息收集频次、精度说明

接入说明:我们将根据业务功能实现之最小必要进行用户个人信息的收集。收集频次方面,爱加密威胁感知-iOS SDK 的数据采集仅在 APP 调用相关功能时触发,关于频次 APP 开发者不可自行配置,故我们对频次不对外提供可选择的配置方式、示例;收集精度方面,主要涉及定位相关功能,主要通过权限进行控制,爱加密威胁感知-iOS SDK 通过可选权限让 APP 可以控制是否申请精确地理位置权限或粗略地理位置权限。如果您需要对定位权限进行配置,可参考以下 “SDK 申请系统权限的说明” 进行配置。

SDK申请系统权限的说明

接入说明:对于爱加密威胁感知-iOS SDK可选申请的系统权限,您可以参考相关如下表格的内容,详细了解相关权限与各业务功能的关系及其申请时机,因相关权限的不申请将会对其对应的功能造成影响,您可以结合业务实际需要进行合理配置。

iOS 操作系统应用权限列表
权限 是否可选 用途 申请时机
网络访问权限 必选 网络权限。用于实现和服务器通信,以便提供态势感知服务 启用业务功能读取
定位权限 可选 获取位置信息权限,用于识别安全风险,位置欺诈、高频更换地域 启用业务功能读取
IDFA 可选 用于识别设备信息是否有被篡改 启用业务功能读取
WIFI权限 可选 用于获取WIFI名称和WIFI Mac 启用业务功能读取

SDK 可选权限

以下为可选权限, 如您需要更精准的识别风险设备,建议集成以下权限(可选)

SDK隐私政策披露要求与示例

接入说明:开发者在App集成威胁感知-iOS SDK后,威胁感知SDK的正常运行会收集必要的设备信息用于监测APP运行安全和业务安全。请开发者根据集成威胁感知SDK的实际情况,在您APP的隐私政策中,对威胁感知SDK名称、公司名称、处理个人信息种类及⽬的、采集方式、隐私政策链接等内容进行披露。 建议:确认您所接入的威胁感知SDK版本和功能模块,从隐私政策中确定与威胁感知SDK交互的数据内容;在您App的隐私政策中,以文字或列表的方式向公众披露威胁感知SDK的相关信息。

披露示例:

SDK名称:爱加密威胁感知-iOS SDK

第三方主体:北京智游网安科技有限公司

SDK 用途:保障APP运行安全和业务安全,避免用户受到黑灰产攻击

处理个人信息类型:硬件信息(设备型号、设备厂商、分辨率、内存使用率、剩余电量、CPU使用率、CPU型号、CPU架构、接近感应支持、多任务支持、指令集),应用信息(应用名称、应用版本、安装时间、包名、证书MD5、签名证书),系统信息(系统名称、系统版本、系统内核信息),地理位置(经度、维度、时区信息),SIM卡/网络 (网络代码、联网方式、外网IP、WiFi-MAC、WIFI名称、局域网IP)

数据处理方式:去标识化、数据加密

隐私权政策链接:https://www.ijiami.cn/privacypolicy/infoBeat-ios-privacy.html

官网链接:https://www.ijiami.cn

最终用户同意方式的说明及示例

接入说明: APP⾸次运⾏时应当有隐私弹窗,隐私弹窗中应公示简版隐私政策内容并附完整版隐私政策链接,并明确提示最终⽤户阅读并选择是否同意隐私政策;隐私弹窗应提供同意按钮和拒绝同意的按钮,并由最终⽤户主动选择。 如涉及敏感个⼈信息,应当取得您最终⽤户的单独授权同意,您可以通过单独弹窗的形式来实现最终⽤户的授权,并在您的《隐私政策》中针对敏感个⼈信息通过字体加粗或其他显著标识显示。

隐私政策授权弹窗示例:

应用安装列表授权弹窗示例:

最终用户行使权利说明

接入说明:开发者在其 APP 中集成威胁感知SDK后, 威胁感知SDK的正常运⾏会收集必要的设备信息⽤于监测APP运行安全和业务安全的⽬的。开发者应根据相关法律法规为最终⽤户提供⾏使个⼈信息主体权利的路径或功能,需威胁感知SDK 配合的,请与爱加密公司及时进⾏联系,我们将与开发者协同妥善解决最终⽤户的诉求。

SDK 业务功能调用时机

接入说明:请务必在⽤户同意您 APP 中的隐私政策后,再进⾏威胁感知SDK 的业务功能调用。⽤户同意隐私政策之前,避免动态申请涉及⽤户个⼈信息的敏感设备权限;⽤户同意隐私政策前,您应避免私⾃采集和上报个⼈信息。

SDK安全监测功能启用

威胁感知调⽤:确保 APP ⾸次启动时,在⽤户阅读您的《隐私政策》并取得⽤户授权,才调⽤威胁感知功能接口,此时 SDK 会进行注册,并生成威胁感知唯一标识(UUID)和采集业务功能所必要的个⼈信息(设备信息、网络信息及位置信息)并上报。

若⽤户未授权或未同意您的《隐私政策》,则不能调用威胁感知服务接口。

隐私保护机制

如果您对威胁感知SDK权限有任何疑问、意见和建议,可通过以下联系方式与我们联系:

  • 电子邮件:service@ijiami.cn
  • 电 话:4000-618-110
  • 联系地址:广东省深圳市福田区梅林街道孖岭社区凯丰路10号翠林大厦12层