1.5 现状与不足
1.5.1 隐私保护机器学习现状
机器学习在便利我们生活的同时也引入了隐私泄露的安全风险。同时,数据安全与隐私保护技术作为计算机安全领域一个独特的学科门类,发展到今天,已经有差分隐私、同态加密、混淆电路、秘密分享、隐私求交、安全多方计算等各种各样的隐私保护技术。当我们在享受机器学习带来的种种便利时,隐私是如何被泄露的呢?上述提到的各种隐私保护技术又是怎样拓展并应用到机器学习中的?这里将从机器学习面临的现实威胁与隐私保护技术在其中发挥的作用这两个角度出发,对隐私保护机器学习的现状进行简要的介绍。至于这些隐私保护技术的详细原理和部署方案,我们将在后续的章节中进行更为详细的阐述。
1. 机器学习中的隐私泄露风险
对于一个具体的机器学习任务而言,参加者可以按照任务分配分为三方:数据提供方、算力提供方、模型使用方。数据提供方负责提供机器学习算法所需要的训练样本数据,算力提供方接收数据提供方的数据并在其基础上进行训练并得到机器学习模型,模型使用方申请使用算力提供方运行得到的模型,并使用其进行预测,这是一个机器学习算法从训练到应用的全过程,当参与执行算法中的三方由同一实体承担时,显然不存在隐私泄露的问题,但是当三方由两个或者更多的实体承担时,例如在现实中,数据提供方往往是互联网上的大量用户个人,而算力提供方可能是多方来共同承担运算消耗,在这种情况下,就会出现隐私泄露的风险。
一种最显而易见的风险是,数据提供方的完整数据被以一种不经任何加密或转化的原始形式储存在算力提供方的服务器中,这意味着将用户的隐私数据完全不加防备地暴露在各种可能的攻击中,这种风险在现实中是最应该避免的。
如果算力提供方不储存完整的样本数据而只存储从样本中提取的特征呢?这已经被证实也是不安全的,因为攻击方可能会具有根据特征向量重建原始隐私数据的能力,从而可能导致重构攻击(Reconstruction Attacks):当攻击方成功窃取到服务器中的特征向量并重建了其对应的原始数据,就能够通过原始数据欺骗机器学习模型从而达成目的。例如,J. Feng等人[14]提出的针对指纹识别的重构攻击和M. Al-Rubaie等人[15]提出的通过重建移动设备触摸手势实施的重构攻击,这一类攻击能够进一步地破解由机器学习模型构建的身份识别体系,从而造成设备使用者隐私泄露的危险。因此明文下的数据特征也不应被认为是安全的,从而应避免显式地存储特征向量等可能泄露原始数据信息的数据。
当攻击者无法从算力提供方窃取特征信息时,还可能导致其他的攻击。例如,攻击者可以通过重复询问机器学习模型来根据模型的回答重建特征向量从而实施上面提到的重构攻击。想要避免这一攻击,模型使用方就应当对模型进行访问和输出的限制,从而避免攻击者的重复询问。
攻击者除了想要或许对模型有贡献的数据或特征之外,还可能想要了解某一数据是否用于构建该机器学习模型,这一攻击称为成员推理攻击(Membership Inference Attacks)。这种攻击利用了模型预测结果由于训练集包括或未包括某样本而产生的差异。例如,对于一个训练数据包括个人医疗记录的分类模型,攻击者可以通过成员推理攻击了解某个人的医疗记录是否被用于训练这一模型。Shokri等人[16]研究了这类攻击,并且训练了一个攻击模型,该模型的输入为攻击者想要推理的数据和目标机器学习模型,输出的是该数据是否在目标机器学习模型的训练集中。
一个保护用户隐私数据的自然手段是将准备披露的数据中个人识别标签删除或掩盖,从而实现数据匿名化,但事实上,攻击者仍然能从这些数据中推断出一些用户的数据信息。2006年,网飞平台(Netflix)举办了一个关于预测算法的比赛Netflix Prize,该比赛为参赛者提供了匿名的公开数据并要求参赛者在此基础上推测匿名用户的电影评分。Netflix起初认为仅仅将数据中用户个人身份标识信息抹去就能保证用户的隐私。但是有研究人员表示,通过对照Netflix公开数据集和IMDb网站上公开的记录就能够识别出匿名后用户的身份。因此事实告诉我们,简单的数据匿名化并不能真正地保护用户的隐私。
2. 机器学习中的隐私保护技术
面对以上机器学习中隐私泄露的风险与挑战,差分隐私、同态加密、混淆电路、秘密分享等隐私保护技术可以被广泛地应用于机器学习当中。
在实际中,当机器学习算法需要多个数据提供方联合提供数据进行训练时,可以使用加密协议对原始数据进行加密,并在加密的数据上进行机器学习的训练和预测。这意味着,数据提供方将加密数据传输给算力提供方,因此隐私保护机器学习问题实际上转化成了一个安全的两方或者多方安全计算问题。
全同态加密 全同态加密使得在加密数据上进行计算成为可能,全同态加密是指能够在加密数据上进行正确的加法和乘法运算。而实际用于隐私保护机器学习的往往是只支持加法同态的半同态加密,这一方案中,机器学习算法的加法运算在密文状态下进行,而乘法运算则在明文状态下进行。Erkin等人[17]设计的协同过滤系统(Collaborative Filtering System)是一个代表性的同态加密机器学习方案。该方案中除了同一实体的数据提供方和模型使用方,以及外部负责计算和存储加密数据的运算方,还引入了隐私加密服务的提供方。数据提供方使用隐私加密服务方的服务对数据进行加密并将密文发送给计算方。显然,这一方案的关键在于计算方和隐私加密服务的提供方之间不能串通,事实上,由于现实中提供这两种服务的公司往往不会存在交集,因此可以认为这个假设是合理的。
混淆电路协议 假设Alice和Bob两方希望获取在其私密输入上计算的函数结果,同时又不想泄露自己的输入给对方,Alice可以将该函数转变为混淆电路并将自己的输入加密后发送给Bob,Bob则通过自己和Alice的秘密输入在混淆电路表上计算得到函数的输出,更加具体的协议实现过程将在后续章节中介绍。一些隐私保护机器学习的方案将同态加密和混淆电路结合起来,Nikolaenko等人[18]提出了一种基于半同态加密和混淆电路协议的岭回归隐私保护机器学习方案。在这一方案中,私密输入的加密由半同态加密完成,算力提供方使用加密的输入和混淆电路进行模型的计算。Bost等人[19]提出了基于同态加密和混淆电路协议模块构建隐私保护决策树分类模型的方法。
秘密分享 基于秘密分享的安全多方计算协议能够使用不泄露任何一方隐私的秘密分享进行运算,并在最终将其合并以输出最终的结果。一种基于秘密分享的机器学习方案如下:参与运算的由多个数据提供方和多个计算服务器,每个数据提供方都把自己的输入进行拆分并分发给所有服务器,这些服务器分别根据自己的收到的份额进行计算,最终所有服务器的计算结果会集中到一个负责汇总并输出最终结果的服务器上,这一方案的要点在于服务器相互之间不会串通。一般来说,秘密分享方案比其他方案更加实用,因此已有多个商业产品应用秘密分享。例如,Cybernetica网络所研发基于秘密分享的安全多方计算框架ShareMind。
可信硬件 Intel SGX可信执行环境的设计目的是确保敏感代码执行的机密性和完整性,因此同样可以用于隐私保护计算。Ohrimenko等人[20]开发了一种基于可信硬件的,可用于神经网络、支持向量机、k-means聚类、决策树等算法的隐私保护机器学习算法。其主要思想在于数据提供方通过独立的安全信道向算力提供方提供数据,算力提供方在SGX环境中安全地执行机器学习算法。
差分隐私 差分隐私技术可以通过向输入数据或算法输出结果添加随机噪声来防备成员推理攻击。对于分布式计算的机器学习算法,差分隐私还可以用来保护多个输入方的原始数据。根据噪声扰动添加的阶段和方式,差分隐私可以分成输入扰动、算法扰动、输出扰动、目标扰动等。差分隐私在机器学习中的应用广泛,例如,Hardt和Price[21]提出的一种基于差分隐私的主成分分析方法(DP-PCA)和Abadi等人[22]提出的基于差分隐私的深度学习算法等。