jww@ told me to start a discussion on security-dev@, so here the description of the problem.
Microphone access blocked for the secure iframe which embedded into insecure page - this permission policy for iframes is killing our startup (speakpipe.com)
Our customers embed SpeakPipe widgets into their HTTP-websites via HTTPS-iframe.
Current Chrome (47.0.2526) automatically blocks access to a microphone for HTTPS iframe embedded into HTTP page and this policy is killing our service.
Unfortunately, most of our customers aren't going to switch their websites to HTTPS in the nearest future and I totally understand them.
Switching website with a lot of content and third-party services to HTTPS is not a trivial task. Most of our customers are podcasters, bloggers, teachers etc - people who produce public content and they don't see the reason why they should spend time and money for switching their websites to HTTPS.
By making such strict changes in the permission policy you break web services and don't give users a choice.
For now, we temporarily switched SpeakPipe back to Flash in Chrome, but it means the service is half-dead.
I understand your security concerns, but it would be great to consider that there are dozens of websites which still works via HTTP.
Any chances to find a better solution for this policy?
I would greatly appreciate any help. Thanks.
--
You received this message because you are subscribed to the Google Groups "Security-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to security-dev...@chromium.org.
--
You received this message because you are subscribed to the Google Groups "Security-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to security-dev...@chromium.org.
Microphone access blocked for the secure iframe which embedded into insecure page - this permission policy for iframes is killing our startup (speakpipe.com)
Our customers embed SpeakPipe widgets into their HTTP-websites via HTTPS-iframe.
Switching website with a lot of content and third-party services to HTTPS is not a trivial task. Most of our customers are podcasters, bloggers, teachers etc - people who produce public content and they don't see the reason why they should spend time and money for switching their websites to HTTPS.
By making such strict changes in the permission policy you break web services and don't give users a choice.
If iframe's parent page is not secure, why not to show a clear security warning in the mic permission dialog instead of blocking?
This warning could tell a user that the parent page is insecure and user should take the risk of allowing the mic?
> What communication (via e.g. postMessage, or anything else) happens between the secure (https, speakpipe.com, 443) origin and the non-secure (http, example.com, 80) origin?
None. Parent page has no access to the speakpipe page inside iframe. We don't use postMessage or any other communication with the parent page.
When speakpipe asks for a microphone, this permission is only available to the https page from speakpipe.com which works inside iframe. All work with a microphone and audio recording happens on the secure speakpipe page. Nothing is available to the page which embeds the widget. Parent page has no access to the microphone permission or recorded audio data.
> Allowing microphone access to non-secure origins is effectively the same thing as offering the microphone to *any* origin or network attacker (active MITM or passive eavesdropper).
I agree with you. But in speakpipe case non-secure origins has no microphone access. Non-secure origins can only embed iframe with the widget from secure origin (https, speakpipe.com, 443) but they cannot get access to a microphone through this iframe.
So, I still cannot understand why we cannot ask user for a microphone permission if this permission is only available to secure page from speakpipe?
If iframe's parent page is not secure, why not to show a clear security warning in the mic permission dialog instead of blocking?
This warning could tell a user that the parent page is insecure and user should take the risk of allowing the mic?
--
One hypothetical attack that comes to mind here is that if I was a network attacker, I could modify the http page such that the iframe pointed to a different account on your service. Then, any messages users recorded would be received by the wrong recipient: possibly an account I have access to. This would be prevented if the top level page was https.