2.2
保护代理
关于对工作人员的保护,有几个有限的解决办法,但最终没有令人满意
的办法。总结见下表
1
防止信息提取。一些方法的目标是防止从代理提取任何信息,从而使
得篡改难以识别或至少可检测。这种方法的示例包括防篡改硬件
[26]
和
代码混淆
[8]
。防篡改硬件需要一个专门制造的设备,作为代理的执行环
境。硬件设备仍然可以在更长时间的观察后进行修改,因此需要额外的
维护服务。 目前,还没有制造商为大众生产这些设备。此外,这些设
备的高成本使得它们对于大量用户来说不切实际。即使防篡改硬件设备
在未来变得普遍可用,我们仍然需要确保制造商没有恶意。另一种方法
是有限黑盒
[8]
,它使用代码混淆的概念。在这种情况下,由于传输和执
行时的额外成本,性能下降。没有证据来确定这些方法有效的最短持续
时间。另外的限制是需要一个全局时钟,并且代理的黑盒测试仍然可能
发生。上述将代理变为黑盒的方法没有提供实际的和完全实现的解决方
案。该方法还可以用于在代理很大的情况下仅加密代理的一部分。请注
意,黑盒方法的另一个不幸的后果是,主机由于无法检查代理,可能无
法保护自己免受恶意代理的攻击。
另一类方法试图保护代理的一小部分免受主机的信息提取和篡改。这
一类的例子包括部 分 结果封装
[9]
、滑动加密
[28]
、部分结果认证码
[27]
、前向完整性
[1
,
10]
、环境密钥生成
[17]
、加密函数计算
[18]
、不可
分离签名
[11]
和信任评估
[5]
。环境密钥生成是有用的,如果有一个代理
访问权限的不同级别的需要。如果给定的环境条件为真,则为主机解密
一些加密的数据。然而,这种方法的一个主要问题是,它允许主机探索
访问代理的可执行代码。使用加密函数进行计算是一种提供只能在加密
状态下执行的函数的方法,到目前为止,这种方法只支持接受多项式或
有理输入的函数。 这实际上意味着代理的大多数部分不能以这种方式
加密。 不可分离的签名是 加密函数的变体,并使用
RSA
方案来保护签
名函数。不幸的是,它不是多跳场景的可行解决方案。信任评估需要代
理和主机之间通过信任评估功能进行协商。然而,如果一个