天道酬勤,学无止境

https

Java Server,TLSv1.1 快,TLSv1.2 极慢(90MByte/sec vs 4MByte/sec)(Java Server, TLSv1.1 fast, TLSv1.2 extremely slow (90MByte/sec versus 4MByte/sec))

问题 测试之间的唯一变化是更改 TLS 版本。 Chrome 和 FireFox 之间的行为是相同的。 TLSv1 和 TLSv1.1 都达到 90 兆字节/秒。 他们在 Java 6 (TLSv1) 和 Java 8 (TLSv1/TLSv1.1) 上获得了这种速度。 然而,TLSv1.2 大大降低了速度。 我们得到 4 兆字节/秒。 没有更改密码,没有其他设置等。不仅我们的开发机器,而且客户也报告了同样的事情,Windows 操作系统、Java 8、TLSv1.2。 我们使用的是 OS X、Java 8、TLSv1.2。 所以这似乎是一个普遍的趋势。 测试是在本地主机、至强 6 核处理器、SSD 驱动器上完成的。 如果我们不使用 HTTPS,我们将获得超过 200MB/秒的速度。 所以 4MB/sec 只是对我们可以做的事情的可怕侮辱。 这不是初始连接、缓存或重新协商等。这只是原始传输速度。 我没有发现任何已知的 Java 错误,有没有人有任何猜测? 这是 Chrome 报告的连接和密码: TLSv1.2 您与 127.0.0.1 的连接使用现代加密技术进行加密。 该连接使用 TLS 1.2。 连接使用 AES_128_GCM 进行加密和验证,并使用 ECDHE_RSA 作为密钥交换机制。 TLSv1.1 您与 127.0.0.1 的连接使用过时的加密技术进行加密。 该连接使用

2021-09-20 00:34:20    分类:技术分享    java   performance   ssl   https

selenium Grid 和 Node URL 可以安全使用吗?(Can selenium Grid and Node URLs be used with security?)

问题 我的情况是我在云上运行我的 GridServer 和节点 当我想访问我使用的网格时: http://someip:4444/grid/console 当我想访问我使用的节点时: http:someip:<nodeport>/wd/hub 我认为这是一种威胁,因为 IP 可以公开访问。 我怎样才能限制它不应该被外部用户打开。 有什么解决办法吗? 回答1 Selenium 不支持这一点。 为此,您应该在您和网格之间建立 p2p 连接。 VPN 或 ssh 隧道将起作用。 只需将远程服务器端口转发到本地端口: ssh user@SERVER -L 4444:127.0.0.1:4444 现在,连接到本地 4444 端口会将您转发到远程地址“SERVER”。 现在所有连接都由 ssh 登录名/密码保护,流量隐藏在安全隧道中。

2021-09-19 19:09:07    分类:技术分享    http   selenium   selenium-webdriver   https

PHPCrawl 无法创建 SSL 套接字(PHPCrawl fails to create SSL socket)

问题 我正在尝试使用 PHPCrawl (http://sourceforge.net/projects/phpcrawl/) 来拖网通过 HTTPS 提供的网站。 我可以看到 PHPCrawlerHTTPRequest 类(openSocket 方法)中支持 SSL: // If ssl -> perform Server name indication if ($this->url_parts["protocol"] == "https://") { $context = stream_context_create(array('ssl' => array('SNI_server_name' => $this->url_parts["host"]))); $this->socket = @stream_socket_client($protocol_prefix.$ip_address.":".$this->url_parts["port"], $error_code, $error_str, $this->socketConnectTimeout, STREAM_CLIENT_CONNECT, $context); } 问题在于对stream_socket_client 的调用——尽管它返回零error_code,并且没有error_str,但是this->socket

2021-09-19 18:45:04    分类:技术分享    php   sockets   ssl   https   web-crawler

PHPCrawl 无法创建 SSL 套接字(PHPCrawl fails to create SSL socket)

问题 我正在尝试使用 PHPCrawl (http://sourceforge.net/projects/phpcrawl/) 来拖网通过 HTTPS 提供的网站。 我可以看到 PHPCrawlerHTTPRequest 类(openSocket 方法)中支持 SSL: // If ssl -> perform Server name indication if ($this->url_parts["protocol"] == "https://") { $context = stream_context_create(array('ssl' => array('SNI_server_name' => $this->url_parts["host"]))); $this->socket = @stream_socket_client($protocol_prefix.$ip_address.":".$this->url_parts["port"], $error_code, $error_str, $this->socketConnectTimeout, STREAM_CLIENT_CONNECT, $context); } 问题在于对stream_socket_client 的调用——尽管它返回零error_code,并且没有error_str,但是this->socket

2021-09-19 18:43:19    分类:技术分享    php   sockets   ssl   https   web-crawler

Web 服务器是否可以向自己发出 HTTPS 请求?(Is it possible for a web server to make a HTTPS request to itself?)

问题 假设您有两个应用程序 A 和 B,它们运行在同一个 Web 服务器上。 您希望应用程序 A 通过 SSL 在应用程序 B 上调用 webService。 是否可以使用像https://localhost/appsB/webService1这样的地址来做到这一点? 如何在没有客户端(如浏览器?)的情况下完成 SSL 握手,但在使用此地址http://localhost/appsB/webService1时它实际上有效,只是不在 SSL 模式下。 但是,当调用https://localhost/appsB/webService1时,它也适用于服务器和浏览器之间的 HTTPS。 现在,奇怪的是,它有时可以工作,但在使用 HTTPS 调用应用程序 B 上的 webService 时会随机失败。 使用 HTTP 它总是有效的。 我的测试是在 IIS7.0 上进行的,具有来自 Thawte 的有效 ssl 证书,应用程序 B 不需要 SSL 选项。 这是我的代码示例: string baseAddress = "http://localhost"; //or string baseAddress = "https://localhost"; var baseUri = new Uri(baseAddress); //final url for appB finalUrl =

2021-09-19 13:17:03    分类:技术分享    iis   https   request   localhost   server

Web 服务器是否可以向自己发出 HTTPS 请求?(Is it possible for a web server to make a HTTPS request to itself?)

问题 假设您有两个应用程序 A 和 B,它们运行在同一个 Web 服务器上。 您希望应用程序 A 通过 SSL 在应用程序 B 上调用 webService。 是否可以使用像https://localhost/appsB/webService1这样的地址来做到这一点? 如何在没有客户端(如浏览器?)的情况下完成 SSL 握手,但在使用此地址http://localhost/appsB/webService1时它实际上有效,只是不在 SSL 模式下。 但是,当调用https://localhost/appsB/webService1时,它也适用于服务器和浏览器之间的 HTTPS。 现在,奇怪的是,它有时可以工作,但在使用 HTTPS 调用应用程序 B 上的 webService 时会随机失败。 使用 HTTP 它总是有效的。 我的测试是在 IIS7.0 上进行的,具有来自 Thawte 的有效 ssl 证书,应用程序 B 不需要 SSL 选项。 这是我的代码示例: string baseAddress = "http://localhost"; //or string baseAddress = "https://localhost"; var baseUri = new Uri(baseAddress); //final url for appB finalUrl =

2021-09-19 13:15:52    分类:技术分享    iis   https   request   localhost   server

HTTPS + gzip:如果我只对非敏感文件进行 gzip,是否存在安全漏洞?(HTTPS + gzip: Is it a security vulnerability if I only gzip non-sensitive files?)

问题 据我了解,如果我将 gzipping 与 SSL/HTTPS 一起使用,它会打开一个安全漏洞(BREACH/CRIME)。 如果我只在我的 CSS 和 JS 文件上使用它,如果这些文件通过 HTTPS 从我的服务器上提供,它仍然是一个安全漏洞吗? 回答1 据我了解,答案是否定的 - 这不是安全漏洞。 CRIME/BEAST 攻击注入选定的明文以发现原始明文; 在您的情况下,这将是 CSS 和 JavaScript,它们没有安全价值。 (据推测,您通过 HTTPS 为它们提供服务以避免浏览器上出现混合内容警告)。 该攻击无法发现您的每会话对称密钥,因此假设它不使用 gzip/deflate,它不会影响您的敏感内容。 当然,如果您希望 100% 确定,除了 gzip 之外,您还可以考虑分块编码,如本文所述:https://community.qualys.com/blogs/securitylabs/2013/08/07/defending-反破坏攻击

2021-09-19 07:13:44    分类:技术分享    security   nginx   https   gzip

登陆HTTPS页面时如何避免IE中的安全警告?(How to avoid security warning in IE when landing an HTTPS page?)

问题 在 IE 8 中,当我尝试从在线商店门户网站的 http 页面登陆 https 时收到以下错误消息。如果我更改 IE 中的设置,它不会提示该消息。但由于它是浏览器设置,我们可以要求每个客户这样做。 为了不在 IE 中显示此消息,我们可以做些什么。 ? 回答1 确保您使用 https 协议提供所有内容,包括外部 CSS、JS 和图像。 警告应该消失。 我还没有找到任何开箱即用的方便的 IE8 工具来帮助收集您正在使用的所有路径。 但是您可以使用 Firebug 扩展在 Firefox 中尝试您的页面。 回答2 当页面包含混合内容时会显示此特定警告,即页面的某些部分通过 http 传送。 正如@nailxx 所说,解决方案是确保您通过 https 提供所有内容。 此警告背后的原因是用户看到页面的贪婪地址栏,因为主文档是通过 https 传送的。 这对浏览器和页面之间的内容交换的安全性和隐私性设定了某些期望*。 任何通过 http 传输的内容都默默地违反了这些期望。 特别是,此警告的来源通常是外部内容,尤其是第三方广告。 [*] 有人可能会争辩说,任何这样的期望都是错误的,而且 https 总体上给人一种安全的错误印象,但这不在当前讨论范围内:-) 回答3 在尝试了多种不同的方法后,我们的开发团队发现在尝试显示混合内容时将所有内容强制为 https 是最简单的。

2021-09-19 01:26:11    分类:技术分享    internet-explorer-8   https   security-warning

从 HTTPS 网址流式传输视频时出错(Error in streaming a video from HTTPS url)

问题 我在普通 http 中流式传输视频没有问题。 (例如:http://www.mywebsite.com/myvideo.mp4) 但是当我将其更改为 HTTPS 时。 我遇到了错误(例如:https://www.mywebsite.com/myvideo.mp4) 有没有人试过这个? 使用 HTTPS 链接将视频流式传输到第 3 方 APP。 (通过将 url/uri 传递给 android 中的应用程序,询问用户将使用哪个应用程序来播放视频) 目前的场景是: 1.) 我有一个 https 链接 2.) 我已经开始了一个意图,并检查了所有安装在 android 手机中的可用视频播放器(我目前已经安装了 vlc、mx 播放器、视频播放器、内置操作系统播放器等)。 3.) 我尝试选择上面的任何一个,但它们都不起作用。 (它只是提示一条消息,说“玩家遇到错误”这是一个通用错误。我只是想将 URL/URI 传递给玩家)。 4.) 请注意,如果我尝试在网络浏览器中播放它,一切正常。 5.) 请再次注意,我能够使用相同的代码流式传输 http 视频 String videoURL = "https://www.mywebsite.com/myvideo.mp4"; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse

2021-09-19 00:16:16    分类:技术分享    android   video   https   streaming

如何使用 SDK 的 SSL 的 -dot- 语法获取正确的 App Engine 模块主机名?(How do I obtain proper App Engine module hostname using -dot- syntax for SSL using the SDK?)

问题 根据 App Engine 上的文档,在使用 appspot.com 域时,您必须使用-dot-而不是. 在子域中。 请注意,在2013年4月,谷歌停止发放的SSL证书在appspot.com托管双通配符域(即.appspot.com的)。 如果您依赖此类 URL 对您的应用程序进行 HTTPS 访问,请将任何应用程序逻辑更改为使用“-dot-”而不是“.”。 例如,要访问应用程序“myapp”的版本“1”,请使用“https://1-dot-myapp.appspot.com”而不是“https://1.myapp.appspot.com”。 如果您继续使用“https://1.myapp.appspot.com”,证书将不匹配,这将导致任何希望 URL 和证书完全匹配的用户代理出错。 我试图找出使用 SDK 生成这些 URL的最佳方法,而无需手动替换点。 我试过modules.get_hostname(module="my module name")但它返回一个触发 SSL 不匹配错误的传统子域。 编辑根据建议,我为此功能打开了功能请求 回答1 所以举个例子 x = 'https://1.amodule.myapp.appspot.com' 您需要用-dot-替换除最后两个点-dot-所有点(最后两个必须保留,因为.appspot.com部分保持不变)。 鉴于此,我建议:

2021-09-18 23:33:24    分类:技术分享    python   google-app-engine   ssl   https