内容


使用隐写术躲避探察

制造视觉盲点

Comments

隐写术是一项历史悠久的技术。这项强大的技术曾经在 9/11 恐怖袭击事件中充当了联络员的角色,因而备受关注。它使恐怖分子、极端分子能够用难以侦测的方式进行交流。本文将探讨隐写术的原理并展示如何侦测它的使用。

在开始之前,请允许我首先将它与另一种改变数据以防止未授权查看的方法区分一下,这种方法就是 加密。加密可以将明文(或未加密信息)变成加密文(或加密信息)。加密 无法做什么呢?它无法阻止别人知道该数据的传输,因为加密数据可以被破解。但没有所有重要的键,破解也并不容易。与此相比,隐写术在其他数据中隐藏加密数据,而别人没有意识到自己看到的只是表面数据,不知道里面还隐藏了数据。为什么要使用这种技术而不是其他技术?简单来说,如果您传输一条加密消息,它反而会吸引那些您不希望吸引来的人,而隐写术可以在第三方眼皮底下进行交流而不会引起怀疑。

现实中的隐写术

让我们看看整个过程是如何进行的,如果不了解一些基础知识的话这将很难理解。

在本例中,考虑一种常见的图片格式,比如 JPEG。JPEG 文件用途广泛并且受支持程度高,最重要的是,它支持 1670 万种颜色(人眼可以识别的最大颜色数),因此非常流行。现在再考虑一张高端相机拍摄的标准数码照片,可以是任何给定的事物,日落、海滩或者拉斯维加斯大道。这些事物可以包含许多颜色和细节,以及各种所谓的 白噪点(取决于使用的相机)。

那么什么是白噪点呢?它是包含在任何数据片中的背景或随机信息。在本例中,可以将它视为图片中保存的难以发现或者没有用的信息。利用隐写术技术的人可以使用白噪点隐藏 “秘密” —— 以难以察觉的方式转变信息。在这种图片中,每个像素都由用来指定要显示的颜色的成员组成。

在任何标准图片中,像素是三个相关联的成员序列,这三个成员指示像素的红、绿、蓝(RGB)通道的混合度(因而能指定颜色)。在一个 RGB 值中,任何给定的通道都可以包含一个从 0(无色)到 255(完整颜色)的值。在数字世界的上下文中,所有这些值都以 8 位的序列存储,Most Significant Bit(最高有效位,MSB)为 128,Least Significant Bit(最低有效位,LSB)为 1。让我们看看标准的像素:

原像素值:255, 255, 255(白色)
 该像素值二进制表示形式:11111111, 11111111, 11111111

现在,改变该像素来存储数据:

现在的像素值为:255, 255, 255(白色)
 该像素值二进制表示形式:111111rr, 111111gg, 111111bb

在新的示例中,我在每个通道标记了 LSB 以引起注意。在现实中,我可以跨几个像素改变这些通道的 LSB,以存储与字母有关的代码。因为大部分字母只需要 8 位,在图片的每个像素中能用的位比这多很多。记住,当我使用每个像素的 4 个 LSB 描述文本的字母时,这一更改也会改变像素的颜色;但是,在每个像素中存储一个字母需要做出的更改非常细微,因此更改后的颜色变化是非常细微的 —— 细微到肉眼根本无法察觉。除非您有原图片,否则要发现新图片与原图片之间的变化是一项非常艰难的任务(尽管有软件可以帮助侦测到这种变化)。

理解了如何改变像素来存储文本信息(或者其他数据)之后,我们可以进入下一个步骤,即计算大小。设想一个大小为 1024 x 768 像素的 JPEG 图片(这个大小是很常见的)。如果计算一下您就知道,该大小的图片可以包含约 800,000 个像素 —— 这个数量的像素可以包含很多信息了。那么大小为 1200 x 1600 像素的图片呢?该图片大小包含 100 万像素,每个像素都可以使用这种方法改变。它足以携带一本小说的信息,而且还有空闲!

隐写术工具

那么,您如何执行该步骤呢?有很多工具可以执行该步骤,包括在线工具和可下载工具。此外,有些工具可以用来侦测使用隐写术隐藏的信息 —— 这一过程称为 隐写术解密(steganalysis)

目前,您可以使用工具对各种媒体类型执行隐写加密。在这里,我介绍一些有用的工具(主要是基于图片的工具),它们工具可以对一些常见的媒体类型应用该技术。

Hiding Glyph

Hiding Glyph 应用程序可以以标准、未压缩的 24 位(或更大)位图图片存储文件或者文件组。该应用程序的好处在于,您可以选择任何包含各种颜色的图片作为隐藏文件的位置,使其躲避侦测。此外,如果不是同时拥有原文件和改变后的文件,侦测几乎是不可能的,更不用说提取实际的信息了。

Vecna

Vecna 是一个有趣的应用程序,可以使用 我在上文描述的方法 在图片中隐藏数据。Vecna 具有基于 Java™应用程序的优点,因此可以使用 Java 语言可以读取的图片格式作为存储数据的位置。在图片中嵌入信息后,得到的数据可以输出为一个 PNG 文件,使用 alpha 通道信息来携带数据。

该应用程序使用一个非常有趣的方法存储隐藏信息:以随机方式将添加的信息分散到图片中。Vecna 利用自己的随机数字生成器实现数据的相对混乱级别。还值得一提的是,该应用程序用来隐藏数据的技术也可以用来在图片中存储所有类型的数据,包括文本、Portable Data Format (PDF)、甚至其他图片。

TrueCrypt

TrueCrypt 是一个常用的工具,可以执行大量数据的加密操作,但是它还提供了一个额外的保护层,在已经加密的卷中隐藏一个卷。您可以使用 TrueCrypt 创建最初的加密卷,然后使用加密卷中的空闲空间隐藏其他数据。TrueCrypt 声称该功能给出了一种合理的推诿,因为他人可以轻松发现存在加密卷,但是即使某人设法获取了卷密码并打开了卷,但是侦测隐藏卷的机会几乎是不可能的,即使这个人怀疑到里面藏有数据。

TrueCrypt 的功能值得一提,因此请允许我再提几件事情。首先,TrueCrypt 能够以与图片相同的方式隐藏文件,这不奇怪,该技术与我讨论过的图片技术类似。如果要保护和隐藏的数据量很大,TrueCrypt 就有了用武之地。实际上,TrueCrypt 不仅能够隐藏文件,还能够隐藏整个操作系统。

F5

F5 是另一个以前开发的隐写术应用程序,最近进行了一些改进,让它更加有用。基本上,F5 是另一个隐藏数据的工具,比如在图片(如 JPEG)中存储 .txt 或 .doc 文件。

mp3stego

现在我们进入一个新的领域。我不想介绍该工具 “如何如何”,只想提醒您这是另一个利用隐写式加密术的工具。您可以使用 mp3stego 在适合原数据大小的 MP3 文件中隐藏数据(顾名思义)。基本上这个流程是这样的:您获取 .wav 文件,在其中隐藏数据,然后将 .wav 文件压缩到 MP3 文件。该格式的好处在于,您可以似乎用它轻松地以纯格式或者看似简单的格式隐藏任何类型的数据。

回想之前提过的基于图片的技术,您就明白了该过程的可能性。MP3 文件和图片代表了各种分发隐藏数据的方法。图片文件可以在网站上发布,而没有人会怀疑展示的是秘密数据,例如,在体育图片中发布一些机密数据(绝对是您最想不到的机密隐藏地)。例如,相比之下,MP3 文件可以嵌入数据并发布到 BitTorrent。一次会议的演讲可以加入数据并上传,下载该文件的人可能很久都不会发现它隐藏了一些内容。

Steganos Privacy Suite

该应用程序包是一个商业软件套件,包含一个隐写式实用程序的工具箱,以及其他掩藏踪迹的工具。Steganos Privacy Suite 可以选择现有文件并在其中嵌入数据,也可以创建一个图片或声音文件来携带数据。实际上,该套件可以接入扫描仪或者附加麦克风来创建携带数据的文件。此外,如果您无法确定用于存储秘密数据的最佳文件类型,Steganos 可以帮助您扫描硬盘以确定隐藏信息的最佳方式。

进一步混淆视听

想让事情更加有趣吗?如果希望隐藏数据,或者至少难以侦测,您应该给隐藏的秘密再加一层 保护。使用这种技术,伪装的数据将能够阻扰侦测,让原本浑浊的水变得更加浑浊不堪,侦测者将难以确定哪些是实际数据哪些不是。当然,还要注意,添加的数据会增加他人作为隐藏信息搜索位置的可能性。

侦测隐写术

当然,每一种方法都有破解的方法,隐写术也不例外。在本例中,破解方法是一种名为 steganalysis的技术。隐写式密码解密的目的非常简单:侦测可疑数据,确定数据中是否隐藏了信息,然后揭露该数据。

表面看来,该过程就像是类似 解密的技术。但实际上,它们是不一样的。使用隐写式密码解密,您需要观察数据并确定它是否加密。使用隐写式密码解密,数据的显示是不确定的。

如何有效侦测?

最简单最基本的方法是,使用统计分析技术执行隐写式密码解密。该技术使用一些方法比较已知、未修改的文件与可疑的文件,可以比较已知文件和可疑文件的 “指纹”。通过这种统计比较,理论上可以侦测到常见文件的变化。关键在于,已知的原文件必须与可疑文件出处相同(即数码相机或扫描仪),或者尽可能的匹配,这样才能有效检测。该技术的一种变体是查找已知压缩算法在 JPEG、MP3 和其他文件上的偏差,因为压缩算法都是公开的。

还有一种更高级的技术 —— Noise Floor Consistency Analysis。简而言之,该方法在数据片的 MSB 和 LSB 组件之间的位级别进行。因为 MSB 和 LSB 之间应该有一些基本的关联,有些隐写术会改变 LSB,因而可能打破这种关系,这给侦测带来了可乘之机。实际上,有些执行该技术的应用程序可以高度可靠地检测隐藏数据。

对于隐写式密码解密技术需要记住的一点是,另一个复杂的层可能添加到隐藏数据。想想看:如果希望添加另一个元素来保护隐藏数据,您应该在嵌入数据前进行加密。在这种情况下,即使侦测成功,也必须执行解密操作。

隐写式密码解密工具像大部分安全工具一样,往往价格不菲。但是,如果只是想探讨其中一些技术,那么有一个开源项目 Stegsecret(见 参考资料)可供您研究。

为什么要使用隐写术?

对于第一次见到该方法的人来说,这是个很难回答的问题。请允许我介绍一些使用该技术的应用程序。记住,就像所有的工具一样,该方法既可以用于合法的目的,也可以用于非法的目的,这取决于使用它们的人。合法使用的应用程序包括保护知识产权(如版权) —— 给图片加上所谓的 水印。相反,违法的目的包括出于法律原因隐藏信息,实际上,我们知道基地组织以及其他组织使用该技术在网站上的普通图片中隐藏信息。

那么,如何能阻止使用隐写术传输和存储非法信息呢?可以说这是一个很难回答的问题。在正确的人手中,可以轻松地在 “常见” 文件中隐藏信息并随身携带。记住,如果操作正确,信息可以隐藏在任何图片、文档或者其他数据片段中,而不会受到怀疑。尽管您无法确定该技术在非法或犯罪领域的使用范围,但可以肯定的是,罪犯、恐怖分子以及其他恶作剧者肯定在使用它。作为 “正义的一方”,我们可以使用公司安全策略和荣誉准则防止该技术的滥用。不幸的是,那些 “邪恶势力” 没有这些限制。

结束语

隐写术是一种使用广泛而有效的技术,可以在常见的文件中隐藏信息。尽管有一些侦测隐藏数据的方法,但它们都不是完全可靠的,没有 100% 有效的工具。如果希望侦测和破解该技术,必须要结合技术和警觉,这样才能增加成功的机会。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Web development
ArticleID=416537
ArticleTitle=使用隐写术躲避探察
publish-date=07272009