65.9K
CodeProject 正在变化。 阅读更多。
Home

用于“充分隐藏”的音频聊天 (AC4PGC) - 第一部分

starIconstarIconstarIconstarIconstarIcon

5.00/5 (12投票s)

2019 年 7 月 9 日

CPOL

15分钟阅读

viewsIcon

17265

使用音频信息隐藏技术进行低速率数据交换(例如,聊天),确保隐私、匿名性和网络安全

Sample Image - maximum width is 600 pixels

引言

随着在线数据监控、用户活动跟踪和用户画像的程度不断提高,“我们”这些普通用户越来越担心在线数据安全和用户隐私受到威胁。但是,即使最普及的工具似乎也无法实现这一目标,我们是否能做些什么来保护我们的隐私呢?答案是“可以”。以下视频给了我启发,促使我尝试做出贡献

ProtonMail,最短 8:50

经过几个月的辛勤工作,最终实现了如下所示的 Android 应用这是一个真正有效的解决方案!
..老实说,它效果真的很好!
...而且几乎不花钱,只需购买几美元的线缆和适配器

AC4PGC( pretty good 隐藏的音频聊天)-“秘密音频聊天” 在视频会议期间!

AC4PGC( pretty good 隐藏的音频聊天)- 环回测试截图

信息隐藏,在这个背景下是一种“改变游戏规则”的技术,但尚未得到广泛推广。信息隐藏(将数据隐藏在无害的载体介质中)的实践,有很大的潜力为减轻这些担忧做出有意义的贡献。本创意采用了音频信息隐藏方法,将隐蔽消息嵌入通过用作数据二极管的模拟通道传输的数字音频信号中。两个设备 A 和 B,通过它们的扬声器和麦克风接口连接(speaker1 --> mic2mic1 <-- speaker2),从而形成两个独立的物理通道,每个通道允许受控的单向数据传输,表现得像一个数据二极管;因此,为独立的传输和接收通道奠定了基础,这些通道不允许任何感染或数据泄露。

图 1:设备连接

警告:按照图 1 所示连接音频接口可能会损坏您的设备!尽管我通过对多个不同设备进行各种操作时都没有遇到任何问题,但仍需谨慎考虑麦克风/线路输入接口允许的输入电平。现代设备会根据检测到的音频信号电平自动调整其阻抗,因此在一般情况下不会出现问题。

简而言之

低速率、全双工双向通信通过隐蔽通道建立,通过将数据叠加在语音(载波信号)上来传输。数据在时域上叠加在语音上,而在频域上,它被分配到自己的频率范围内,与语音使用的频率互补/不重叠。因此,构建了一个具有自身特性的侧信道,例如低信号功率(允许将编码信号置于噪声电平)。下面的配置图显示了基本配置中的一般想法

图 2:基本配置

设备 B 和 C,可能相隔很远,通过公共交换电话网络(PSTN)、互联网或任何其他网络进行双向音频信息通信,并使用标准的通信协议,如VoIP。设备 B 和 C 可以是两个笔记本电脑,使用Skype 进行视频会议或电话会议,或者更好的是,使用 TRIfA。设备 B 和 C 也可以是手机或固定电话。设备 A 和 D 可以是两部智能手机。主要假设是所有这些设备都使用标准接口和技术,并且容易受到各种漏洞的攻击。设备 A 和 D 之间的隐藏通信通过将它们“插入”音频外设(例如,扬声器和麦克风)和设备 B 和 C 之间来实现,如图 2 所示,从而能够使用音频载波作为秘密消息的传输介质。此外,秘密消息可以加密。设备 A 和 D 各有一个显示屏用于显示秘密消息,以及一个输入接口用于输入消息(例如,结合了两者的智能手机触摸屏)。连接建立之前,设备 A 和 D 应设置为离线状态,以防止任何信息泄露。例如,可以通过关闭以下可用接口来完成

  • WLAN
  • LAN
  • 蓝牙
  • USB

在离线状态下,设备 A 和 D 提供“几乎”气隙条件,从而提高安全性。这些设备仅通过模拟音频接口与 B 和 C 连接,从而实现了两个数据二极管,可防止外部攻击或信息泄露。也就是说,在会话建立期间,生成的或键入的密钥无法发送给攻击者。这是一种“增强型”端到端加密,是此方法的主要优势之一。

其他功能

或者,假设可以连接其他“受信任的网络或设备”,则设备 A 和 D 可用于从/向其他源接收和发送消息,例如提供以下服务

  • 中继器(数字音频,带有嵌入式消息转换为模拟音频)。
  • 网关(数据适配器,套接字通信,消息转换为带有嵌入式消息的模拟音频。
    这可以用于扩展现有的聊天应用程序)。
  • 隧道(协议嵌入器,低速率协议到模拟音频。在这种情况下,低速率协议就是消息)。
  • 适配器(专有协议,用于将存储在媒体中的数字文件转换为模拟音频。
    在这种情况下,二进制文件就是消息。

这些替代方案中的每一种都有几个优点

  • 提高匿名性,扩大地理范围
  • 提高匿名性,扩大地理范围,重用现有应用程序(聊天)
  • 提高匿名性,扩大地理范围,重用现有解决方案
  • 提高匿名性,重用现有解决方案(文件系统)

下图显示了一个示例

图 3:扩展配置

在图 3 所示的示例中,隐蔽设备 D 向位于受信任网络中的设备 E 提供服务(中继器、网关、隧道、适配器)。根据使用的服务,在设备 A 和 E 之间或设备 A 和 D 之间实现了“增强型”端到端加密。在此示例中,秘密消息的源和目标是设备 A 和 E,或者操作这些设备的用户。

在 AC4PGC 中,“网关模式”已实现,允许转发通过套接字接收的消息,反之亦然。也就是说,支持以下连接

  • 音频 <--> 音频
  • 音频 <--(网关)--> 套接字(如图 3 中设备 A、D 和 E 之间所示)
  • 套接字 <--(网关)--(网关)--> 套接字
  • 套接字 <--> 套接字

通信协议

由于传输和接收过程中可能丢失、损坏或重复数据,以及在每个会话中交换公钥的需要,因此需要一个简单的通信协议。除了数据字段外,隐蔽协议的电报至少包含以下字段

  • 序列号
  • CRC
  • 电报类型(类型:密钥交换、聊天、确认等)

如果需要,将重新传输聊天信息。在空闲模式下,当没有数据传输时,协议会传输哑电报,其中包含伪随机比特,作为对抗隐写分析的对策。正确接收数据后,接收方将回复正面确认。超时重传计时器或收到“否定”确认后,发送方将重新传输最后一个电报。完整的通信协议作为嵌入式隐写数据传输,隐藏在载体中。为了提高对隐写分析的防御能力,电报比特可以每次根据伪随机生成器进行“打乱”,该生成器使用在启动时交换公钥后计算出的会话密钥进行初始化。此功能将使音频信号的统计分布保持在“正常”水平。公钥可以在连接建立期间使用迪菲-赫尔曼密钥交换进行交换。会话密钥在双方相同,通过公钥和私钥计算得到:K = g^ab mod(p) = g^ba mod(p) 所有这一切都基于事先约定好的素数 (p)生成元 (g),公钥是根据它们生成的,私钥也是根据它们计算的。

消息嵌入

下图显示了消息嵌入的详细信息

图 4:架构概览

图 4 展示了隐写嵌入和加密的粗略概览。输入消息 mA 通过键盘或触摸屏输入,然后立即使用加密密钥(密钥 4)进行加密。结果是 mAe。然后,使用密钥 3 应用通道/隐写算法对加密消息 mAe 进行编码。密钥 3 由用于隐写嵌入的特定“设置”组成(例如阈值)。密钥 3 和密钥 4 的值可以从连接建立期间交换的会话密钥中推导出来。一种基于多频移键控(FSK)的简单隐写算法将输入消息(mAe)的每个比特转换为载波信号带宽内的不同频率。为了避免载波信号引入的失真,可以使用一个“专用/独占”且足够小的频率范围,该范围不与语音使用的频率重叠。因为语音使用的带宽完全被占用,这需要载波信号通过带阻滤波器 FcA 移除/过滤掉嵌入频率范围。高级嵌入技术可能在嵌入过程中考虑载波信号 cA。也就是说,嵌入过程可能取决于载波信号的当前值。根据预期的或测量的信道条件,特别是根据信噪比(SNR),选择校正因子 SA(隐写幅度)。

选择 SA 值,使嵌入的隐写信号接近噪声水平。根据所使用的技术,嵌入的隐写信号甚至可以低于噪声水平。然后,通过相关函数可以恢复消息。对于没有信道条件“先验”知识的标准应用,SA = MAX_AMP/1000 的值会显示出良好的结果。也就是说,使用此值,人耳无法感知嵌入,并且仍然可以从载波信号中的噪声中恢复出来。如前所述,载波信号 cA 通过“带阻”滤波器 FcA 进行过滤,该滤波器会移除用于编码隐写消息的频率范围。然后,将其乘以因子 (1-SA),将信号调整到这样的幅度,使其与隐写信号相加时永远不会超过最大电平而饱和。至此,输出到设备扬声器接口的信号为

XA = cAf*(1-SA) + mAeS*SA

当同时考虑通信信道中的一些噪声时,我们得到

YA = cAf*(1-SA) + mAeS*SA + nA

需要注意的是,信道噪声既是优势也是劣势。如果实现良好,嵌入在噪声水平的隐写修改将能够通过传输并能在接收端正确检测。在这种情况下,信道噪声提供了良好的隐藏,攻击者无法区分自然噪声和嵌入噪声。另一方面,信道噪声可能过高,或者可能存在其他信道干扰,影响隐藏通信。

在这种情况下,我们依赖上述隐写协议,该协议会负责在需要时重传数据。我们不能忘记,所有载波信号不可避免地会带有一些附加噪声,最常见的是“粉红噪声”。

这种“无法区分”的噪声在图 4 中没有明确显示,只是被视为 cA 的一部分。在图 4 的顶部,显示了逆过程(解码和提取),演示了如何恢复消息。

“带通”滤波器 FYB-pass 的结果是 YBf,它只包含输入信号 yB 的频率范围,这是由另一台设备传输嵌入信息的地方。

YB = cBf*(1-SA) + mBeS*SA + nB
YBf = mBeS*SA + nB’

然后,将 YBf 乘以因子 1/SA,得到 mBeS',这是 mBeS 的“非常近似”版本。然后可以对 mBeS' 进行隐写解码和解密,以恢复原始消息 mB。如前所述,实际实现不会直接传输 mB,如简化概述所示,而是传输一个包含 mB 的电报。该电报将支持错误检测和纠正,确保一致性、数据完整性和及时性。在检测到错误时,接收方可以发送“否定确认”,或者什么都不做,等待发送方的重传超时到期。最后,“可选”使用滤波器 FYB-stop 将得到 YB' ~ Voice B,并输出到扬声器。即使没有 FYB-stop 滤波器,人眼也无法感知嵌入信号或语音 B 中缺失的频率。

数据吞吐量与信道容量

此创意考虑了 VoIP 的全双工音频通信,每个方向的速率为 64kbps,这是大多数基于 VoIP 的系统使用的典型通信链路。作为参考,可以认为当前的应用版本使用 16 位电报在 341ms 内传输 -> 16/0.341 ~ 47 bps。这导致用于隐写信息的总带宽/容量的 1/1361 被使用,这是隐写应用中的一个常见数字。事实上,隐写容量甚至更低,64000/2722 实际上每秒只传输 23 bps 的数据有效载荷,即每 2722 位音频数据中就有 1 位隐写数据。这是此方法的一个固有特性,因此它最适合数据传输速率较低的应用。

网络安全注意事项

如上所述,在隐写设备中,应避免使用 WLAN、LAN、蓝牙和 USB 等标准数字接口,这些接口都已知容易受到漏洞攻击。与在线设备相比,这大大减少了所需的措施数量。讽刺的是,在“数字化”时代,一种基于“老式模拟通信”的解决方案似乎可以克服我们在处理数字通信时面临的许多安全问题。下图展示了此创意涉及的层,并显示了它的一些优势。1 到 7 层在隐写设备中实现,提供多种密钥。7 到 9 层在主机设备中,主机设备不知道“下方”的所有层(事实上,我应该把层定义颠倒过来!)。就其本身而言,它只传输语音(音频载波)。

图 5:层概述

像往常一样,我们假设所有协议,即使是“专有”的隐写协议,都是开放的,只有“密钥”是秘密的。

也就是说,安全性应该仅取决于密钥,而不取决于算法。

  • 密钥 1:端到端加密(例如:Skype)
  • 密钥 2:根据伪随机生成器打乱隐写比特
  • 密钥 3:根据通信设置期间约定的“精细调整”设置进行隐写嵌入(这是一种“密钥”)
  • 密钥 4:“增强型”消息端到端加密

摘要

简而言之,本文提出的方法的一些主要要点是

  • 将额外的设备“插入”音频外设和“不安全”通信设备之间
  • 简单的通信协议,具有错误检测和纠正功能
  • 通信协议电报的比特被打乱,以防止隐写分析
  • 基于多频移键控(FSK)在减小频率范围内进行隐写/信道编码
    • 预先过滤音频载波以去除编码频率范围内的分量
    • 在考虑相对幅度(取决于 SNR)的情况下,将音频载波添加到隐写信号

拟议的嵌入技术当然不是最“强大”的抗隐写分析技术,但它效果很好,在复杂性、实时性、音频质量和鲁棒性之间取得了良好的折衷。

这一点以及此创意中的许多其他方面都可以在未来得到改进。

为什么我们需要 AC4PGC 这样的东西?

聊天应用程序提供商提供“端到端”加密作为防止隐私泄露的终极措施。不幸的是,端到端加密的安全性仅与其端节点一样高,而大多数端节点都存在大规模漏洞。感染简单的恶意软件,如“键盘记录程序”或甚至执行周期性“屏幕截图”的工具,可以轻松访问初始加密密钥,从而使端到端加密的通信变得无用。通过结合音频信息隐藏、基于额外硬件使用的“增强型”端到端加密,以及托管通信协议的两个独立物理音频接口,可以实现隐蔽的数据交换,不仅可以保护信息本身,还可以保护通信的事实。

优点

  • 以下内容在会话期间不会受到影响
    • 用户地理位置
    • 用户 IP
    • 用户身份
    • 通信量
    • 消息长度
    • 使用“这项技术”的事实
  • 基于“无处不在”且廉价的技术(音频接口)的解决方案,使每个人都可以访问。
  • 该解决方案几乎可以与任何具有音频接口的通信设备一起使用,例如电话、手机、笔记本电脑、台式机、平板电脑。
  • 在德国,有大量未使用的过时智能手机(总共超过 1 亿部)可作为额外硬件使用。因此,除了低成本音频线缆和聊天应用程序外,无需额外投资。用户肯定会乐于为旧的设备赋予有意义的用途。
  • 网关功能等附加功能可以提高灵活性,并重用现有基础设施和扩展当前聊天应用程序。

Using the Code

这些信息将与代码一起提供在本文的第二部分中。

目前,您可以查看 AC4QGP( pretty good 隐私的音频聊天),这是一款用 Python 编写的“桌面”应用程序,其工作原理非常相似。

关注点

借用 Andy Yen 的一些话(见上面的链接)

“我们在这里所做的只是第一步,但这表明随着技术的进步,隐私不必是困难的,不必是破坏性的。最终,隐私取决于我们每个人。我们现在必须保护它,因为我们的在线数据不仅仅是零和一的碎片。它实际上比这多得多。它是我们的生活,我们的个人故事,我们的朋友,我们的家人,在某种程度上也是我们的希望和抱负。所以,现在是时候站起来说:是的,我们确实希望生活在一个在线隐私的世界里。是的,我们可以共同努力将这一愿景变为现实!”

如果您想查看更多信息隐藏的示例,请单击此链接

视频播放列表

另请查看 AC4QGP( pretty good 隐私的音频聊天),这是一款用 Python 编写的“桌面”应用程序,其工作原理非常相似(代码在文章中提供)。

历史

  • 2019 年 7 月 8 日:文章第一部分发布
  • 2021 年 2 月 23 日:已修复损坏的链接
  • 2021 年 3 月 5 日:已添加 AC4QGP 的链接
© . All rights reserved.