睿治

智能数据治理平台

睿治作为国内功能最全的数据治理产品之一,入选IDC企业数据治理实施部署指南。同时,在IDC发布的《中国数据治理市场份额,2022》报告中,蝉联数据治理解决方案市场份额第一。

京东陈泳君:数字水印在数据泄露溯源中的应用与挑战

时间:2022-01-26来源:格子衫小帅气浏览数:311

        导读:随着全球数字经济的高速发展,中国的数字经济规模达到了5.4万亿美元,位列全球第二。据IDC预测,2025年中国将成为全球最大的一个数据圈。在数据量高速增长和数字经济持续发展的背景下,数据安全领域受到越来越多的挑战和重视。其中,数据泄露正是焦点问题之一。今天和大家分享的议题是数字水印在数据泄露溯源中的应用和挑战。主要围绕下面四个方面展开:

数据泄露现状

数字水印技术

水印在电商的应用

思考与探索

        01数据泄露现状

        首先和大家分享下数据泄露的背景。

        1. 数据泄露风险概述

        以2020年为例,全年的数据泄露总量已经超过了之前15年的总和,达到了36亿条。据分析,数据泄露的根本原因可分为三类:系统故障、人为失误和恶意攻击。恶意攻击不仅包括外部的黑客攻击,也包括内部恶意人员的主动泄露。

        2. 数据泄露黑色产业链

        目前,数据泄露,不是一个单点事件,而是形成了包括数据获取方、数据中间商、数据购买者在内的一条非常完整的黑色产业链。

        产业链上游:数据获取方,包括内部恶意人员、黑客,甚至黑客工具的提供者。

        产业链中游:数据中间商,获取到泄露数据后,将对这些数据进行二次加工,在暗网上进行售卖。

        产业链下游:数据购买者,泄漏数据的实际使用方会利用泄漏数据实施电信诈骗、精准营销、恶意刷单等。进一步,由于下游对于数据的精细化要求,又会促使上游去获取更全面的,更多样化的数据。据估计,整个产业链已经达到了千亿规模。

        3. 数据全生命周期安全保护

        不容乐观的数据泄露形势,对数据全生命周期提出了更高的安全需求。今天的讲座主要聚焦在数据交换阶段的水印添加技术,及其在数据溯源和版权保护方面的应用。

        4. 传统水印的困境

        网页上的明水印是用户最常接触的一种水印类型。对于有敏感数据或者重要文件展示的网页,背景往往铺满了包含访问用户ID、时间、公司logo等信息的水印,用于提醒用户及防止截图泄露。但是这种添加的明水印,通过马赛克、亮度调节、对比度调节,甚至图像二值化等手段可以简单直接的去除。

        另一方面,人工智能的发展对于图片水印、视频水印造成了非常大冲击。如图中的应用实例,即使打有非常厚的水印,通过人工智能算法依然可以去除。重建后,尽管有一些细节的损失,但整体效果已经非常惊人。

        02数字水印技术

        数字水印是永久镶嵌在其他数据(宿主数据)中具有可鉴别性的数字信号或模式,且不影响宿主数据的可用性。多用于版权保护和数据溯源。

        1. 数字水印通用框架

        数字水印通用框架主要分为水印添加阶段和水印提取阶段。

        水印添加阶段:将原始数据和通过密钥加密的水印内容输入到水印添加算法,获取到含水印的数据。较之原始数据,含水印的数据只会有细微的变化,不易被人眼观察到。

        水印提取阶段:将含水印的数据,通过水印提取算法来判断是否含有水印,提取水印的具体内容,进而定位到数据的具体来源。

        2. 数字水印评价指标

        一般,从以下五个维度来评价数字水印:


  • 隐蔽性:是指添加的水印是否容易被发现。
  • 容量:是指水印算法可嵌入的水印长度。
  • 鲁棒性:是指添加水印后的数据遭到攻击和破坏后,还能被正确提取的能力。
  • 实用性:是指实际使用算法中要考虑的因素,如:计算性能、内存存储消耗等。
  • 安全性:指水印不能被非法篡改、替换,及没有密钥的情况下不能进行水印内容的提取等能力。


        3. 图片水印

        图片水印是水印技术中发展的最早,相对最成熟的一个领域。LSB水印是一种简单的添加水印方法。如图所示,左上角是原始图片,下方是待插入水印图像。由于图片像素取值范围在0-255之间,由八个bit表示的。改变最低位的0,1取值,对于图像的整个质量影响很小,肉眼基本看不出什么变化。对于具体的像素值来说,插入0的地方变成了偶数,插入1的地方变成了奇数。因此,可以通过从最低有效位里面直接去抽取到添加的水印内容。LSB水印这种方法实现简单,但是鲁棒性比较差。JPG图像压缩就可能改变水印内容,图像剪切也会破坏掉部分的水印内容。

        当前最常见的数字图片水印是基于变换域的水印,例如离散小波变换DWT、余弦变换DCT等。通常将待插入水印图片或水印字符串转换为二值化数据,插入原始图片的变化域中,肉眼看不出与原始图片的差异,后续也可以提取出水印内容。此外,图片剪裁、遮挡攻击,尽管会导致提取结果的质量有所下降,但是依然可以判断出水印信息。

        4. 文本水印

        文本水印可分为三个大类:


  • 基于排版的文本水印:利用不同的行间距和字间距、字体、字号的微小改变,添加水印。
  • 基于特定字符的文本水印:零宽字符、加空格、换行符等。
  • 基于自然语言的文本水印:同义词替换、句法变换等。更隐蔽,实现复杂度高。


        基于零宽字符文本水印的举例:在Unicode编码中,存在很多的就是不可见字符,以及不占位的字符。利用这类字符,可以构造出文本水印。图中的两种“北京市朝阳区”肉眼看上去并没有区别,但其实在第二行的“北京市”后面插入了很多的零宽字符,字符串的长度发生了变化。

        基于不同空格文本水印的举例:在Unicode编码中,存在不同编码的空格,如半宽空格、全角空格、1/3空格等。从上图中可以看出,不同空格在宽度上略有不同,可用于水印嵌入。

        基于自然语言文本水印的举例:原始文本是“我的妈妈今年30岁,她是北京人,是一名医生”。同义词替换时,通过同义词的对照关系,可以做01编码去嵌入水印。句法变换时,往往涉及到省略,指代和替换,甚至句式上的变动。基于自然语言的文本水印方法将水印和内容嵌合在一起,提高了水印的鲁棒性。但是它本身也有弊端的,例如,可能会导致语言风格上的变化,或引入歧义。

        5. 数据库水印

        数据库水印是在2002年首次被提出。不同于其他类型的水印,它要求加入的水印对数据可用性影响尽可能小,甚至不能造成微小的精度丧失。因此,主流的研究方向是可逆水印,即:在添加水印后可恢复原始数据。

        针对数据库中数值型和字符型数据类型,有不同的水印添加方式。

        对于数值型,大部分水印添加方式都是从图像算法延伸扩展的,例如:基于最低有效位的(不可逆水印)、直方图平移、差值直方图平移和差值扩展素算法(可逆水印)。

        对于字符型,主要有两大类:一类是基于特定字符,如空格,大小写切换,半角全角等;另一类是基于自然语言,如同义词替换。

        一般来讲,图片水印有空间维度上的约束。文本水印有上下文的约束。不同于它们,数据库的元组和元组之间强关联性比较弱。因此,数据库水印添加阶段,需要添加一个预处理步骤,可分为三部分:

数据预处理:对元组和属性列进行排序操作,用来防止随机打乱类的攻击;接着,应用优化算法(如遗传算法,萤火虫算法、模拟退火等)确定最佳的水印嵌入位。在保证最小数据失真的前提下,嵌入更多水印容量来提升水印的鲁棒性。

        水印嵌入:如上所述的水印嵌入算法。

        水印提取:针对拿到的泄露数据库,可进行水印提取。

        03水印在电商生态的应用

        下面以电商生态为例,介绍若干数字水印技术应用实例。

        1. 电商生态数据泄露概述

        电商生态主要由平台、商家、ISV和物流四大块构成。所涉及的敏感数据主要分为两类:

        用户个人隐私:比如姓名、手机号、收货地址,身份证号等数据。

        交易数据,比如购买的商品、金额。

        由于电商业务涉及的环节多,从业人员流动性大等特殊性,通过内部人员泄露数据的比例较高,接近50%。截图拍照、批量导出是两种较为常见的泄露方式。

        2. 典型内部人员泄露案例

        举两个内部泄露案例:

        案例一:有操作权限的人员,访问订单系统中的订单记录。以截屏或者拍照方式,截取含敏感数据的图片区域,并通过社交软件途径外发。

        案例二:内部人员获取数据库的权限,批量导出数据,并通过移动存储设备、上传到云存储、邮件或者打印等方式来外发数据信息。

        3. 水印应覆盖的场景

        结合典型案例,水印技术应该覆盖的场景有截图拍照、批量导出、文件打印和非结构化数据保护等。

        截图拍照场景:在展示敏感数据的前端页面上添加网页水印,在重点人员的PC终端上添加桌面水印。 批量导出场景:数据库水印技术。 重要文件打印场景:打印水印,即直接打印在纸质文档上的水印。 非结构化的数据,比如Word、PPT、PDF文档、图片、音频视频,需要做对应的水印添加方式。

        4. 水印在实际应用中面临的挑战

        结合典型案例,水印在实际应用中面临着诸多挑战。

        在案例一中,截屏或拍照肯定会引起仿射变化,畸变,以及屏幕的摩尔纹;截取敏感数据时,会涉及到图片剪裁,用马赛克去除明水印、涂改或遮挡;在保存图片时,JPG保存会带来的图像压缩;在通过社交软件外发时,会导致图片二次压缩。

        在案例二中,打印导出的excel表将引起载体转换;黑产链数据中间商对数据的清洗,如数据格式化、过滤筛选、二次加工等。

        5. 重点业务系统前端水印保护方案

        如何解决这些问题?提出两个解决方案。

        含敏感数据的前端页面:明暗结合的解决方案。明水印用作事先提醒,可根据场景采用人员ID、访问时间、公司信息系统信息,或者内部资料请勿外传等提示语,用来提示员工该页面是一个不可截图的敏感页面。暗水印主要用于泄露溯源。因为它具有隐蔽性,暗水印在传播过程中不易被主动去除。因为它的鲁棒性,暗水印可抵御多种攻击。当获取到截图的时候,依然有很大概率可以提取到水印内容。

        文本水印:对敏感字段进行加强性保护。在选择文本水印算法时需要注意应选取适用于超短文本,且不仅可通过获取到的文本进行提取,而且通过截图亦可提取的算法。

        6. 数据库水印方案

        数据库水印方案的要点:

        水印包含的信息:人员ID,时间、系统都是可包含在水印中的信息。这样一来,就可以知道数据是通过谁,在什么时间,通过什么途径泄露的。

        在敏感属性中添加数水印:避免黑产清洗过滤掉水印。

        全元组插入水印:在所有行里插入水印,提升水印提取的有效性。因为往往在情报获取的环节,只能获取少量的泄漏样本。

        多重水印添加方式:基于特定的字符、基于自然语言。

        水印验证和篡改检测:引入纠错码、奇偶验证等方法,验证水印的准确性,检测是否被篡改。

        数据库水印添加算法应可抵抗筛选、排序、格式化等等常见攻击。我们自研的水印添加方案在京东场景下,平均50条数据,就可以锁定到唯一的ID。

        04思考与探索

        数字水印领域尚有很多未解决的问题,例如:

        通用性的水印添加方式的易分离去除:通用性的水印添加方式经常伴随着和被保护内容的分离,容易被探测并去除掉。比如文本水印中的加空格或者是零宽字符,网页水印与页面内容的分离。

针对超短文本、特定信息的水印添加方法:诸如手机号,身份证号等信息对精确性要求很高,且有固定的数据格式,无法容忍改动。对于这类信息,如何更加有效地去添加水印是值得探索的问题。

水印算法在时间消耗和空间存储上的优化。

        最后,就数据泄露溯源展开一些讨论。数据泄露溯源主要是要回答三个问题:搞清楚泄漏的源头在哪里、通过什么样的途径泄露、数据泄露给了谁。

数据泄露溯源并不止于对单一事件的成功溯源,溯源成功只是一个开始。比如,一旦发现了泄露的源头,可执行彻底的阻断,避免长期的内部泄漏风险。还原泄露途径后,可完善涉及人员管理、业务流程的整个安全体系建设。甚至可以挖掘出背后的黑产链,给予法律上的打击。基于有效溯源所掌握的信息,可对潜在的风险进行预警,例如:给被泄露用户及时发送反诈骗提醒。

综上所述,数据泄露溯源既不是一个终点,也不是一种亡羊补牢的操作,而是另外一种起点。

        05精彩问答

        Q: 网页暗水印用什么技术好一些?

        A: 网页暗水印当前比较常见的有高透明度水印、矢量水印,,看起来是一些小点点的那种,用不同的组合,去标注不同的01234这样的一些编码。还有就是像我刚才介绍的,可以把图片数字水印里的变换域水印迁移到网页来使用。

        Q: 基于自然语言替换的算法,如果两份带不同水印的数据互相融合的话,能否溯源出两个水印信息,如果能的话是怎样做的?

        A:这也是我们最近在思考的问题。这种情况不仅发生在文本水印中,在数据库水印场景也会发生。多份数据融合在一起的话,我们如何去精确地提取到水印。多份带水印数据融合,又可以细分为:1)带同一水印算法+同一密钥的数据融合;2)带同一水印算法+不同密钥的数据融合;3)带不同水印算法的数据融合。对于不同细分种类,会有不同的处理方法。对于1)来说,我们通过多条数据提取到的水印内容会呈现较明显的双峰现象,那么通过数据分析我们可以同时提取到插入的两个水印内容;对于2)和3),由于我们只掌握我们自己的算法和密钥,因此另一份数据中含有的水印会被当成噪声数据去除,仅可提取到我们自己添加的水印内容。实际场景中还会发生更加复杂的情况,例如我们添加水印的数据又被重复添加了另一种基于自然语言替换的水印,那之前的水印就遭到了严重的破坏。对于这种场景,如果两种算法使用不同的同义词替换表,可能会有一些有效的区分,那通过我们在水印编码中加入的纠错码,可以进行水印的验证和纠错。在真实溯源场景中,通过水印提取我们很多时候不是提取到一个唯一的ID,而可能是疑似的水印列表。例如,一个N位的水印编码,通过水印提取有一些位数我们是可以确定的,有一些位数是置信度不太高的,那就需要结合例如日志审计等多种手段,去进一步缩小范围,最后精确定位到源头。因此数据溯源并不能单纯依赖水印,还是要结合多种技术,多方面考虑,最后才能真正找到泄漏源头。


(部分内容来源网络,如有侵权请联系删除)
立即申请数据分析/数据治理产品免费试用 我要试用
customer

在线咨询