Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 对网页进行静态签名的标准方法_Http_Cryptography_Http Headers_Digital Signature - Fatal编程技术网

Http 对网页进行静态签名的标准方法

Http 对网页进行静态签名的标准方法,http,cryptography,http-headers,digital-signature,Http,Cryptography,Http Headers,Digital Signature,假设我的服务器上有一个有效的加密证书(即,由一个普遍信任的机构签名)。很明显,我可以使用它来建立https会话,并传递具有机密性(只有端点可以读取)、身份验证(两个端点都知道他们在和谁说话)和可靠性(消息不能被篡改)的内容 现在假设我实际上不关心前两个,而是只需要最后一个。例如,假设我有一个我想要签名的静态资源(a-la PGP),这样我就可以将它交给其他不受信任的主机:如果我的证书是公共的,并且资源已经用它签名,那么任何客户端都应该能够验证资源没有被篡改(例如,被不受信任的主机篡改) 现在的问

假设我的服务器上有一个有效的加密证书(即,由一个普遍信任的机构签名)。很明显,我可以使用它来建立https会话,并传递具有机密性(只有端点可以读取)、身份验证(两个端点都知道他们在和谁说话)和可靠性(消息不能被篡改)的内容

现在假设我实际上不关心前两个,而是只需要最后一个。例如,假设我有一个我想要签名的静态资源(a-la PGP),这样我就可以将它交给其他不受信任的主机:如果我的证书是公共的,并且资源已经用它签名,那么任何客户端都应该能够验证资源没有被篡改(例如,被不受信任的主机篡改)


现在的问题是:有没有一种标准的静态签名方式?(我显然是指在所有浏览器中内置的东西)我知道有人()正试图通过Javascript实现大部分逻辑来完成类似的事情,但我仍然想知道是否存在更标准的方式。

我不知道在浏览器中有任何这样的标准实现

即使在邮件领域,这种行为在很长一段时间内是“标准的”(S/MIME),我们每隔一天就会发现不同客户机、中继和服务器的问题


下载时,您可以返回发送PKCS#7容器,并关联解包和验证工具。至少插件和助手应用程序随处可见。

我不知道在浏览器中内置了这样的标准实现

即使在邮件领域,这种行为在很长一段时间内是“标准的”(S/MIME),我们每隔一天就会发现不同客户机、中继和服务器的问题


下载时,您可以返回发送PKCS#7容器,并关联解包和验证工具。至少在任何地方都可以使用插件和助手应用程序。

我也不知道在浏览器中有这样的标准实现。但是,退一步说。。。需要考虑的一些事项:

  • 对于可执行内容(如下载的EXE文件、ActiveX控件、Windows Installer等),常用/标准解决方案是Microsoft Authenticode。看见Java、Adobe等的类似解决方案。您购买证书的CA将验证您的身份。当您使用来自受信任CA的证书对EXE文件进行签名时,Internet Explorer将显示签名者信息/警告消息。Windows Vista/7中的UAC高程提示也是如此。你可能很熟悉这个

  • 但对于静态内容情况,标准解决方案是SSL。请问为什么SSL在您的应用程序中不是一个可接受的解决方案

    我看到的问题是,除了单击浏览器中的SSL“锁定”图标查看证书外,用户无法从web浏览器验证网页的身份。新的SSL EV证书应验证您是否控制了相关域,以及您是否是您所说的人(即无法获得www.PayPal.com.hacker.cz的“PayPal”证书)


  • 从你的问题听起来,你在寻找一种“网页身份验证码”之类的东西:一个主题与域名无关的证书,网页可以去任何地方。不幸的是,对于标准HTML文件,我不知道有这样的事情。我相信你可以签署像AdobeAIR应用程序这样的东西,它可以基于HTML/Javascript/等等,尽管我不熟悉那个平台。当然,它确实会将网页放置在用户正常的web浏览器之外。

    我也不知道在浏览器中有这样的标准实现。但是,退一步说。。。需要考虑的一些事项:

  • 对于可执行内容(如下载的EXE文件、ActiveX控件、Windows Installer等),常用/标准解决方案是Microsoft Authenticode。看见Java、Adobe等的类似解决方案。您购买证书的CA将验证您的身份。当您使用来自受信任CA的证书对EXE文件进行签名时,Internet Explorer将显示签名者信息/警告消息。Windows Vista/7中的UAC高程提示也是如此。你可能很熟悉这个

  • 但对于静态内容情况,标准解决方案是SSL。请问为什么SSL在您的应用程序中不是一个可接受的解决方案

    我看到的问题是,除了单击浏览器中的SSL“锁定”图标查看证书外,用户无法从web浏览器验证网页的身份。新的SSL EV证书应验证您是否控制了相关域,以及您是否是您所说的人(即无法获得www.PayPal.com.hacker.cz的“PayPal”证书)


  • 从你的问题听起来,你在寻找一种“网页身份验证码”之类的东西:一个主题与域名无关的证书,网页可以去任何地方。不幸的是,对于标准HTML文件,我不知道有这样的事情。我相信你可以签署像AdobeAIR应用程序这样的东西,它可以基于HTML/Javascript/等等,尽管我不熟悉那个平台。当然,它确实会将网页置于用户正常的web浏览器之外。

    一点点历史。人们知道https,但大多数人从未听说过早期的竞争对手shttp。它在https起飞时从未流行过,但shttp是基于消息的,并且是围绕SMIME标准构建的。一个想法是:您可以在SSL服务器中提供
    NONE
    密码算法(但要与MAC算法一起确保真实性)。但我想大多数浏览器都不会接受它(这是正确的,因为大多数用户确实希望HTTPS保密)