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

用于很好隐私的音频聊天(AC4QGP)

starIconstarIconstarIconstarIconstarIcon

5.00/5 (4投票s)

2021年2月28日

CPOL

31分钟阅读

viewsIcon

12690

downloadIcon

155

通过在隔离设备中进行“增强”端到端加密和音频信号调制来进行聊天,以确保隐私、匿名性和网络安全。

继续使用您最喜欢的聊天应用程序,同时保护您的隐私!

引言

随着在线数据监控、用户活动跟踪和用户画像的级别不断提高,在线数据安全和用户隐私的威胁持续困扰着我们大多数“普通用户”。但是,即使最广泛使用的工具似乎也无法实现这一目标,我们难道就无能为力来保护我们的隐私吗?答案是“可以”。下面的视频给了我灵感,让我尝试做出贡献。

ProtonMail,8:53起

经过数月的辛勤工作,结果是下面所示的跨平台应用程序一个适用于所有人的解决方案,而且确实有效!……老实说,它效果非常好!……几乎不花钱,除了购买线缆和适配器需要几美元。在这里,您可以找到一些带有示例的视频。

AC4QGP – 视频画廊

AC4QGP (Audio Chat for Quite Good Privacy) - 与 TRIfA 进行语音通话时的“隧道化音频聊天

AC4QGP (Audio Chat for Quite Good Privacy) – 主窗口

我们解决的问题:端点安全

聊天应用程序提供商提供“端到端加密”(E2EE)作为防止在线隐私泄露的最终措施。不幸的是,端到端加密的安全性仅取决于端点,而大多数端点存在巨大的漏洞。感染简单的“键盘记录器”等漏洞,就可以轻易获取初始加密密钥,从而使端到端加密通信毫无用处!

引用

端点安全:端到端加密模式并未直接解决通信端点本身的风险。

每个用户的计算机仍然可能被黑客攻击,以窃取其加密密钥(以创建中间人攻击),或者在实时和日志文件中读取解密后的收件人消息。

即使是最完美的加密通信通道,也仅与另一端的邮箱一样安全。[1]

提高端点安全性的主要尝试是将其与智能卡进行隔离,例如 Google 的 Project Vault。[19]

然而,由于明文输入和输出仍然对主机系统可见,恶意软件可以实时监控对话。

一种更健健的方法是将所有敏感数据隔离到完全气隙隔离的计算机。[20] PGP 已被专家推荐用于此目的。

如果我真的要把我的生命托付给一段软件,我可能会选择一个不那么花哨的东西——也许是 GnuPG,运行在一台锁在地下室里的隔离计算机上。

Matthew D. Green, A Few Thoughts on Cryptographic Engineering

为了应对恶意软件的密钥泄露问题,一种方法是将信任计算基(Trusted Computing Base)分割到两台单向连接的计算机上,以防止恶意软件的插入或已插入恶意软件的敏感数据泄露。[22]“

https://en.wikipedia.org/wiki/End-to-end_encryption#Endpoint_security

这就是E-E2EE(“增强”端到端加密)发挥作用的地方!

我们如何解决端点安全问题:E-E2EE

上面引用的文章已经提到了一些解决端点安全问题的方法。我在开发完应用程序之后才找到那篇文章,但它基本上描述了相同的基本思想。

当前的解决方案不需要将您的计算机锁在地下室,尽管您可能想这样做以进一步提高安全性 ;-)

您也不需要两台单向连接的计算机,尽管这是一个非常容易实现的当前想法的简单扩展。事实上,当前版本已经支持一种“中间”方法,如下面图 9 所示。

相反,当前的提议面向更广泛的受众,并专注于实用性,同时实现了网络安全和在线隐私的巨大飞跃

下面“进一步改进”部分描述的改进可能会为有更高要求(demanding requirements)的用户实现。

通过将加密与音频调制相结合来编码消息,实现了“增强”端到端加密,从而实现更安全的通信,提高交换信息的机密性和完整性。

E-E2EE 基于使用一个额外的隔离设备作为端节点,以及两个独立的物理单向音频通道作为数据二极管,它们允许隧道化承载加密数据的通信协议。隔离端点之间的数据交换可防止恶意软件注入数据泄露

该理念利用了一项无处不在(随处可见!)的技术,即老式的音频接口,并重新利用了现有的服务和基础设施。这使得它对每个人来说都几乎随处可用。典型的用例是使用通信双方的标准设备进行私密聊天,其中一个设备在WindowsLinux 下运行AC4QGP,另一个设备运行您最喜欢的信使

例如,您可以使用以下设备

  • 笔记本电脑 <–-> PC
  • 笔记本电脑 <–-> 手机
  • 笔记本电脑 <–-> 笔记本电脑
  • PC <–-> PC
  • PC <–-> 手机

……列表还在继续……只需将平板电脑、树莓派等添加到上面的列表中,并根据需要组合。数百万人在那里拥有这种可能性,他们也希望在与朋友和家人聊天时保护自己的隐私。

那么,我们如何解决端点“内部”不安全的问题呢?

很简单:在隔离设备中,秘密消息被加密然后转换为二进制格式。然后,一和零用两种不同的频率编码,例如 fOnefZero

如果 fZero = 2*fOne,这可以简化解码,那么一个 ONE 被转换为一个周期为 1/fOne 的正弦波周期,而一个 ZERO 被转换为两个周期为 1/fZero 的正弦波周期。

流中的每个编码位都由 N 个音频样本组成,表示为 int16,其中 N 取决于编码频率和采样率。

然后,隔离设备的音频输出接口将数字样本转换为电模拟信号,并通过音频线(模拟通道)传输。音频接口用作数据二极管,该二极管的构造只允许数据单向传输。

之后,音频信号还可以通过多种不同的媒体传输,并且可以在到达目标的过程中被转换回数字、压缩,甚至加密,例如在通过 VoIP 传输时。

请注意,此加密是在我们自己的加密之上应用的,并应用于整个音频信号的数字样本。

音频信号的目标接收者,拥有相应的会话密钥,只需执行上述步骤即可恢复原始秘密消息。

从另一侧传输秘密消息也使用相同的系统进行镜像。

关键点是“中间”的任何人或系统只会看到承载加密消息的音频信号,但无法访问会话密钥或端节点的任何资源,因为它们是隔离/离线的。因此,攻击者将无法解密消息或破坏端节点。

图 1 显示了最简单的连接示例,其中两个隔离设备 A 和 D 通过它们的扬声器和麦克风接口连接(speaker1 --> mic2, mic1 <-- speaker2),从而形成两个独立的物理通道,每个通道允许受控的单向数据传输,从而充当 2 个数据二极管

图 2 中,您可以找到一个基本配置,其中显示了可用于实际有用目的的设备排列。

图 1:设备连接

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

无论如何,避免将高音量的扬声器输出连接到麦克风输入!

在这里,您会找到我迄今为止使用的连接选项列表

  • 扬声器 -> 线路输入(首选选项!)。
  • “低音量输出”扬声器 -> 麦克风。
  • 带“带电阻和电容的适配器线”的扬声器 -> 麦克风(阻抗匹配)。
    在这里,您可以找到一个耳机输出/立体声混音连接到麦克风输入的视频教程
  • 带 T 型分路器(3.5mm 转 2X 适配器)的扬声器,连接耳机 -> 麦克风(阻抗匹配)。如果连接智能手机,为了正确检测,可能还需要连接耳机麦克风,但之后可以移除或静音。

简而言之

该想法使得在双方之间传输和接收秘密消息成为可能,通过在音频通道上建立低速率、半双工通信,方法是传输加密数据到专用频率范围

数据在时域上叠加在语音之上,而在频域上,它被放置在一个特定的频率范围,与语音使用的频率互补/不重叠。从而构建一个具有自身特性(例如低信号功率)的侧信道,可以将编码信号放置在低电平,以免干扰语音通信。

以下设备配置展示了一个基本配置中的整体思路

图 2:基本配置 - 概述

注意:通信当前是“半双工”的,因为这是我们当前大多数信使作为“基础设施”使用的语音聊天的限制!但当然,该想法可以扩展到“全双工”通信。

设备 B 和 C,可能相距很远,通过开放网络(例如,通过公共交换电话网络(PSTN)、互联网或蜂窝网络)进行双向音频信息通信,并使用标准通信协议(如 VoIP)。

设备 B 和 C 可以是进行视频会议或语音通话的两个手机,例如使用Skype,或者更好的是使用TRIfA,它是开源的,许可证为“GNU General Public License v2.0”。设备 B 和 C 也可以是笔记本电脑,甚至是固定电话。后一种情况,当使用普通电话时,您不再需要您喜欢的信使应用程序,因为它无论如何只用作 AC4QGP 的基础设施。

设备 A 和 D,它们都离线,可以是运行AC4QGP的两个 PC 或笔记本电脑。

主要假设是所有这些设备都使用标准接口和技术,这些接口和技术容易受到各种攻击。这些接口和协议通常是“数字”的。

通过将它们插入设备 B 和 C 的音频外设(例如扬声器和麦克风),如图2 所示,实现了设备 A 和 D(离线)之间的加密通信,从而能够使用音频信号作为秘密消息的传输介质(载波)。

在建立连接之前,设备 A 和 D 必须隔离,也就是说,需要将它们设置为离线以防止信息泄露。例如,这可以通过关闭以下接口(如果可用)来完成

  • WLAN
  • LAN
  • 蓝牙
  • USB
  • GPS

离线期间,设备 A 和 D 提供接近气隙条件,提高安全性。也就是说,在会话建立期间,生成的或输入的密钥不会被拦截并发送给攻击者,以防设备可能已经感染了恶意软件。

此外,A 和 D 中的密钥输入和屏幕信息也不会被泄露。这是此方法的主要优点之一。此外,设备 A 和 D“背后”的人员或系统的身份被隐藏了。

下一个图再次显示了基本配置,现在侧重于“隧道化”的概念。

图 3:基本配置 – 详细“隧道化消息”

该图清楚地表明,虽然VPN 和 Skype、Messenger、WhatsApp 和 Signal 等典型信使服务提供的加密都容易受到端点攻击,但AC4QGP 信息仍然是秘密的。

B 和 C 中的恶意软件会拦截通过标准信使传输的“假消息”,并将其转发给 Eve……就像它多年来通常做的那样 :-( 但是现在,有了 AC4QGP,通过音频通道隧道化并受到E-E2EE 保护的“真正秘密消息”是安全的!

恶意软件可能甚至没有注意到我们的秘密通信(顶部的表情符号),即使注意到了,现在它也真的无法解密!(B 中底部的表情符号)。

密钥验证

“‘端到端加密’正在迅速成为安全词汇中最无用的术语。因为实际加密内容并不是有趣的部分。真正的挑战是安全地分发用户的加密密钥,即不依赖于受信任的中央服务。

这里的问题很简单:如果我能破坏这样一个服务,我就可以说服您使用我的加密密钥而不是您目标接收者的密钥。在这种情况下——称为中间人(MITM)攻击——世界上所有的加密都帮不了您。”

https://blog.cryptographyengineering.com/2013/03/09/here-come-encryption-apps/

因此,在会话建立后,尽快“验证”交换的密钥非常重要。为此,AC4QGP 在应用程序的右上角显示一个会话代码

通过将此值大声读给您的通信伙伴,他可以检查并确认他的会话代码是否与您的匹配。只有在这种情况下,您才能确定您不是MITM 攻击的受害者。

为了方便起见,两个会话代码(以更简单、更短的格式)都从会话密钥派生而来,而会话密钥又从通信设置期间交换的公钥派生而来。两边的会话代码必须完全匹配。

请注意,语音通道充当会话代码验证的出站链接。如果您改用相同的通信通道(入站链接)用于此目的,那么攻击者就可以再次安排事情,让您相信您拥有正确的会话代码,但实际上您并没有。

要激活语音通信,您应按以下按钮

然后按钮将变为红色,表明您可以通过再次按下它随时停止语音通信(切换开/关 = 绿色-红色)。

扩展配置

假设可以连接其他“受信任的网络或设备”,设备 A 和 D 可用于从/向其他源接收和发送消息,例如充当网关或数据适配器。有关更多信息,请参阅AC4PGC 中的“进一步功能”AC4PGC

通信协议

由于在传输和接收过程中可能出现数据丢失、损坏或重复,以及需要每会话交换公钥,因此需要一个简单的通信协议。协议电报以严格的请求-响应序列进行交换,包含以下字段

字段 字节数 描述
前导码 4- 20 同步和载波检测
起始字节 1 0xAA 或 0x00 或 oxF2 或一些有用的信息,如源地址
地址 1 目标地址,例如编码为 0:chat, 1:console, 2-255:files
序列号 1 0-255 “自己的”序列号(TX)
序列号确认 1 0-255 “远程”序列号(RX)
命令 1 要执行的命令
数据字节数 1 数据字段大小(字节)
Data 0 - 255 Data
结束字节 1 0x55 或 0xAA 或 0xFF 或 0xF2 或 ~0xF2=0x0D 或一些有用的信息
校验和 1 从起始字节到数据最后一个字节的所有字节的 XOR
终止符 1 为防止信号失真损坏校验和位而设计的变通方法

输入消息后,聊天信息将被加密并传输。在正确接收数据后,接收者将回复肯定的确认。确认可能也包含来自接收者的数据。

在重传计时器超时或收到否定确认时,发送者将重传最后一个电报。此过程会重复最多可配置次数(MAX_RESENDS)。

完整的通信协议通过调制音频信号进行传输。

公钥加密在连接建立期间交换。然后,使用派生的共享密钥,对称加密用于加密电报的数据字段。

消息嵌入

下图显示了消息嵌入的细节

图 4:架构概述

图 4 中,展示了嵌入和加密的粗略概述。

输入消息 mA 通过键盘或触摸屏输入,然后立即使用加密密钥(密钥 4)进行加密。结果是 mAe

然后对加密消息 mAe 进行编码,应用使用密钥 3 的通道算法。密钥 3 由用于嵌入(如阈值)的具体设置组成。

密钥 3 和密钥 4 的值可以从连接建立期间交换的会话密钥派生。

一种基于AFSK (Audio Frequency Shift Keying) 的简单嵌入算法将输入消息(mAe)的每个比特转换为载波信号带宽内的不同频率。

为了避免载波信号引入的失真,可以使用专用/排他且足够小的频率范围,该范围不与语音使用的频率重叠。

但请注意,一些载波内容仍会保留在编码频率范围内。这是因为实际滤波器无法完全滤除定义边界之外的信号。这可以通过实现更好的滤波器来改进,但效果总会限制编码所需的最小幅度。

另请注意,具有尖锐频率截止的滤波器在处理具有过渡带频率成分的信号时,可能会产生长时间响铃的输出。因此,一般来说,可容忍的过渡带越宽,滤波器在时域中的表现就越好。

图 5:AFSK (音频频率移键控)

由于输入语音使用了整个带宽(例如,宽带 VoIP:50Hz - 7kHz),这需要载波信号在嵌入之前,通过带阻滤波器 FcA 移除/过滤嵌入频率范围。

高级嵌入技术可以考虑载波信号 cA 作为嵌入过程的一部分。也就是说,嵌入过程可能取决于载波信号的当前值。

校正因子 SA 根据预期的或测量的信道条件进行选择,特别是取决于信噪比(SNR)

SA 值可以选择,使得嵌入信号接近噪声水平。根据所使用的技术,嵌入信号甚至可以低于噪声水平,例如,用于隐写术,如AC4PGC(Audio Chat for Pretty Good Concealing)中所解释的那样。然后,借助相关函数和进一步的高级技术,就可以恢复消息。

对于没有事先了解信道条件的标准应用程序,使用 SA = MAX_AMP/1000 的值已证明能获得良好的结果。也就是说,使用此值,嵌入不会被人耳察觉,并且仍然可以从载波信号中的噪声中恢复。

在本文中,由于我们关注可靠性和提高信道容量,我们还没有达到这个目标。相反,将在 AC4QGP 和/或 AC4PGC 的未来版本中添加支持隐写术的扩展,其中嵌入将基于例如扩频技术,这将允许在频域中隐藏信号。

如前所述,载波信号 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,然后输出到扬声器。您可以听到您的通信伙伴说话。

“载波”

上面的描述将 cA 定义为“载波信号”,这是作为承载嵌入数据而传输的语音。这是一个正确的术语,尤其是在隐写术的背景下。

尽管如此,本文将参考术语的另一种含义。对此表示歉意,我现在找不到更好的词了。

audioSettings.py 文件中,您会发现两个定义,CARRIER_FREQUENCY_HZCARRIER_AMPLITUDE。这些定义指的是一种“技巧”,即在数据通过信使服务传输的错误率过高的 \u5730\u65b9 \u53ef\u80fd\u9700\u8981\u589e\u52a0\u4e00\u79cd\u4fe1\u53f7。

当用两部手机测试 Skype 时,我发现使用我的两台华为设备效果非常好。但一旦我使用了我的三星,通信在一个方向上就会经常失败。

Android 中的音频接口可以在所谓的 COMMUNICATION_MODECALL_MODE 中打开。后者提供高质量音频,允许我们的信号无问题地传输。

COMMUNICATION_MODE 中,信号质量有时“灾难性”。在语音聊天中,这很明显,就像那个人在浴室里一样。对于数据通信,这意味着一半的电报可能无法通过。

问题根源在于,VoIP 的设计并非用于以我们编码的方式传输数字数据。这篇文章证实了这个问题,并提供了该技术的良好背景。

是的,我们所做的与IP 调制解调器 (MoIP) 所做的没什么不同。至少在使用“直通”(G.711 VoP 通道)时。

一种更好的方法是使用调制解调器中继 (MR)MoIP 解决方案。不幸的是,经过多年的标准化,V.150.1 协议仍然没有得到广泛支持。

那么,载波的技巧是如何工作的呢?嗯,我仍然不知道。我只是在大量实验后偶然发现了它。我的理论是,借助“载波”信号,我们迫使算法,可能还有应用程序,在它们原本会停止传输的地方进行传输。在某些条件下,我们的代码可能被解释为干扰并被自动删除。

其他一些可能以显著方式扭曲我们信号的伪影,例如压缩伪影和回声消除。此外,可能还会有故障、音频线之间的耦合(串扰)、电磁干扰(EMI)等。我实际上注意到了所有这些。例如,给我的手机充电会在 2kHz 和频谱副本处产生峰值(2kHz 的功率:无干扰的噪声 = -93 dB,有干扰的噪声 = -86 dB)。

有了所有这些干扰,我竟然能通过这个简单的技巧将错误率降低到 5%,这似乎是个奇迹!

错误率为 5% 时,平均每 20 个电报会丢失一个。但我们甚至不会注意到,因为通信协议会自动重传丢失的电报。

您可能需要调整的一些参数以获得可靠的通信是 CHANNEL_DELAY_MS(就我而言,TRIfA 为 1500,Skype 为 1000)、ADD_CARRIER(如果您的手机使用 COMMUNICATION_MODE 则为 True)、AMPLITUDEFFT_DETECTION_LEVEL

configuration.pyaudioSettings.py 中找到的大部分参数都可以在 GUI 上方便地更改并保存以备将来使用。

关于我目前为“载波”频率使用的值,一件有趣的事情是,有些人可能认为它是一个“魔法频率”。如果您好奇,可以阅读这篇文章了解更多信息:魔法频率

代码

本文提供的代码也可以在GitHub 上找到(您可能在那里找到更新的版本)。

它是作为“概念验证”开发的,使用Python 3.7 / 3.9,并在Windows 10Linux Mint 20 上进行了测试。

README.txt 包含安装环境和生成可执行文件(如果需要)的步骤。

以下列表显示了最重要的 Python 脚本

  • AC4QGP.py
  • audioReceiver.py
  • audioSettings.py
  • audioTransmitter.py
  • configuration.py
  • init.py
  • soundDeviceManager.py
  • updateRequirements.py
  • ui/mainWindow.py

此外,以下文件也很有用

  • config.ini
  • gen_exe_with_pyinstaller.bat
  • audit_code.bat
  • requirements.txt
  • README.txt

请注意,此概念验证侧重于演示。也就是说,代码的编写是为了证明该想法确实有效。

例如,出于实验目的,定义了许多参数,这些参数可以在不同环境和配置(例如,使用不同的信使应用程序或固定电话)中探索不同的可能性。检查“设置”和“高级”选项卡(参见下面的图 6 和 7)。此外,还可以显示一个绘图窗口,在时域或频域中实时显示信号(参见图 8)。

这就是为什么代码质量对于其他目标可能较低的原因。例如,它故意违反了非常基本的原则,例如“数据封装/数据隐藏”、“单一职责原则”,仅举几例。

极限编程优先考虑简单性和时间而不是形式,并允许使用捷径和变通方法。如果您打算“学习”编程,请牢记这一点。在这方面,这段代码肯定不是最好的例子。

对于专业用途,需要对代码进行完全重构,需要检查许可证的使用情况等。特别是,需要引入正确实现的有限状态机,轮询可以被事件驱动方法取代,等等。

然而,作为一种参考实现,这段代码为任何严肃的项目提供了一个良好的起点。它功能广泛,并且足够健壮,甚至可以用于实际用途。

图 6:设置选项卡

图 7:高级选项卡

图 8:绘图窗口

一些建议

请注意,您可能正在使用相同的音频输出进行数据传输以及系统声音或其他应用程序的音频输出。这当然不是一个好主意,因为它们可能会干扰数据信号。所以,请根据需要调整您的设置。

总的来说,我建议禁用您系统上所有音频接口的所有音频效果(在 Windows/Linux 和 Android 上也是如此!)。但有时,某些音频功能实际上可能有所帮助,例如麦克风增强器,但它也可能使您的设备饱和。所以,如果需要,请小心进行测试,一次更改一个设置,并组合不同的设置以查看其效果。

正确设置音量,并将格式设置为“16 位,48000 Hz (DVD 质量)”。

在初始设置期间,通常有助于并行捕获音频信号,例如使用Audacity。在那里,您可以检查它们的电平、形状,然后根据需要调整您的设置。

虽然我到目前为止还没有像我想的那样进行太多测试,但在我尝试过的所有信使中,我肯定推荐使用TRIfA,它是免费的、开源的,并且效果非常好。

TRIfA 实现Tox 协议,支持端到端加密的点对点消息和视频通话。

您可能需要增加 TRIfA 中的音频缓冲区以容纳完整的电报,例如到 10240。

您在信使中可以调整的音频设置越多,获得更可靠通信的可能性就越多。

不幸的是,大多数信使都是黑箱,提供的音频设置调整选项很少或根本没有。到目前为止,我尝试了TRIfASkypeMessengerSignalWhatsAppDiscordWire

其中一些应用程序效果很差,有时取决于一天中的时间。有时,它们工作得很好,直到出于某种原因,它们就停止工作了。也许通信基础设施中的某些算法在搞鬼?

您还应该非常小心的另一件事是使用智能手机中的音频接口。插入和拔出设备、重新配置等。所有这些都可能在没有通知的情况下失败。像 Android App Lesser AudioSwitch 这样的应用程序可以帮助进行系统配置和检查“真实”连接状态。

改进的设置

您可以在 AC4QGP“外部”做什么以提高网络安全

  • 如果可能,请永远将端节点设备保持离线,或者至少不要通过音频接口以外的方式将其连接到您的在线设备。
  • 外部数据存储设备(例如,USB 闪存驱动器或 SD 卡)上运行 AC4QGP。
  • 使用Live CD(带或不带持久性)运行 AC4QGP。
  • 使用虚拟机(带或不带持久性)运行 AC4QGP。
  • 在您的在线设备上使用可信赖且安全的VPN(请注意)。
  • 拆分 TX、RX(使用一个在线设备进行传输,另一个在线设备进行接收,如图 9 所示)。

图 9:拆分配置

图 9 所示的拆分配置中,B1 可以使用 Skype 接收信息,而 B2 可以运行 TRIfA 传输信息。

请注意,AC4QGP 已经支持此类配置,因为两个物理通道是独立的,可以部署在同一在线设备上,也可以不部署,这对 AC4QGP 来说是透明的。

图 10 中,展示了一种具有增强网络安全功能的便携式配置。

图 10:具有增强网络安全功能的配置

请注意,上面图 10 中提出的配置是便携式的,因为它的体积足够小,可以放在口袋里,并且可以在任何两个设备之间连接,其中一个设备充当在线设备(例如,在智能手机上运行 TRIfA),另一个设备充当离线设备(例如,任何能够从 USB 上的 Live CD 启动 Windows 的机器)。

聊天会话结束后,您可以直接拔下 USB 集线器……您将不留下任何痕迹!

所以,下次拜访朋友时,您可能想尝试一下这个小工具,看看它效果如何。

您需要的所有设备是 2 个 USB 闪存驱动器、2 个 USB 声卡、一个 USB 集线器、一个耳机和一个音频线。

请注意,您甚至可以将耳机直接插入笔记本电脑,或者通过音频线将智能手机连接到笔记本电脑,因此只需要一个 USB 声卡。

数据速率

当前实现使用 AFSK 以每秒 1200 位(一次仅单向传输)的速度编码和传输数据。

但实际速率主要取决于错误率和通信信道引入的延迟。

可以使用 400ms 的信道延迟、5% 的错误率和每个电报 16 字节的数据负载来计算实际速率。

利用这些数据,我们每秒大约获得16 字节的载荷,同时双向传输

请注意,当我们传输数据时,来自另一方的响应电报可能包含数据,并且它还会确认我们上一封电报的接收。

网络安全注意事项

如上所述,在离线设备中,我们应避免使用 WLAN、LAN、蓝牙、USB 和 GPS 等标准数字接口,这些接口都已知容易受到攻击。与在线设备相比,这大大减少了所需的对策数量。

讽刺的是,在“数字化”时代,一种基于“老式模拟通信”的解决方案似乎克服了我们在处理数字通信时面临的许多安全问题。

在我看来,现代密码学应通过以下两种技术的补充/附加使用来紧急改进

  • E-E2EE
  • 隐写术

第一点在本文章中涵盖,它利用了数据二极管。第二点在AC4PGC 中涵盖,并将在本文的下一部分实现。

那么,与仅使用 E2EE 相比,使用E-E2EE 的优势有多大?

下面的图表可能有助于您直观地理解答案。

图 11:数据二极管

如果您到目前为止使用了一个配置良好的防火墙(如图 11 中的 vFirewall),这对于普通用户来说是最好的情况,通过添加基于数据二极管的 E-E2EE,您可以在无需昂贵网络设备的情况下,显著提高您的安全性和隐私性!

我希望我已经提供了足够的证据和解释来说明为什么会是这样。

但请您先自己验证一下,花些时间做些研究。我鼓励您(只有被说服的用户才是忠诚的用户)。

应用

同样的“无处不在”技术可用于无数应用,例如

  • P2PE(点对点加密)用于支付解决方案 - 例如,使用终端的读卡器。
  • 真正的私密聊天”!!!
  • 支持服务(银行、保险、政府……)
  • 远程医疗
  • 工业控制
  • 聊天机器人服务(见上文)

这项技术不仅限于文本消息。例如,通过文本转语音 (TTS),可以支持我们现在甚至无法想象的事物。观看此内容以了解其惊人的潜力:GPT-3

信不信由你,GPT-3 的接口是一个文本接口!

进一步改进

列表很长,但我将尝试总结最重要的改进

  • 代码重构
  • 与固定电话、蜂窝网络和无线电链路进行测试(如果需要进行调整)
  • 改进的滤波器
  • 加密整个电报(选项)
  • 隐写术
  • 控制台访问
  • 套接字网关(参见AC4PGC 的“图 3:扩展配置”)
  • 提高数据速率(例如 33.6 kbit/s)
  • 文件传输
  • 连接监控(带生命信号电报交换)
  • 载波自动检测
  • 音频监控(检测可疑音频信号、入侵、数据泄露)
  • 文本转语音
  • HART 协议(用于工业应用)

链接

在这里,您可以找到我几天前收集的有关相关主题的链接,这些链接可以帮助您了解所使用的技术、可用的协议、标准和工具

那么,AC4QGP 真的有什么新东西吗?嗯,有,也有没有。

正如我最近发现的那样,通过音频隧道传输数据的想法实际上已经存在很长时间了

也有不同的想法接近它

chirp

但据我所知,目前还没有应用程序能像我这样做的那样将所有东西整合在一起。特别是针对支持现代人最喜欢的玩具之一——在线聊天的功能。

摘要

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

  • 隔离设备插入音频外设和不安全通信设备之间
  • 简单的通信协议,具有错误检测和重传功能
  • 在隔离端节点进行数据加密(E-E2EE)
  • 基于 Audio-FSK 的通道编码,在一个缩小的频率范围内
    • 音频载波预滤波以去除编码频率范围内的成分
    • 根据相对幅度添加编码信号到载波
  • 添加了魔法频率以应对 MoIP 直通相关问题
  • 专门的多平台聊天应用程序,实现了以上几点

提出的嵌入技术以及该想法的许多其他方面都可以在未来得到改进。

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

因为隐私是一项人权!

没有在线隐私,我们就无法拥有自由的社会。

大多数“免费”信使的商业模式是获取您的私人数据。这就是您唯一需要付出的代价。但是,这是公平的价格吗?

这些大公司对保护您的应用程序或设备的安全不感兴趣,所以您必须自己做。

我们需要改变现状,努力建设一个自由的互联网,建设一个自由的世界。

AC4QGP 等工具以及它们背后新旧的思想需要得到传播。

AC4QGP 可能成为一场全新的革命的第一步——一场让真正私密的通信成为现实的革命。

您可以下载并使用它,并帮助改进它,直到我们达到一个真正在线隐私成为每个人的默认功能的地步!

Using the Code

除了本文以及其中提供的链接,您还可以找到一个简短的README.txt 文件,它将帮助您完成初始步骤。

关注点

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

引用

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

有关在线隐私危险的真实场景,请查看此链接

此处是上面使用的工具的完整播放列表

还可以查看另一篇带有源代码的文章:IP Radar 2,用于实时检测和防御恶意网络活动和策略违规(漏洞、端口扫描、广告、遥测、状态监控等)。

 

历史

  • 2021 年 2 月 27 日:初始版本
  • 2021 年 3 月 1 日:小幅修正
  • 2021 年 3 月 5 日:添加了 IP Radar 2 的链接
  • 2021 年 3 月 7 日:更新了图 8
© . All rights reserved.