GoFuckYourself.com - Adult Webmaster Forum

GoFuckYourself.com - Adult Webmaster Forum (https://gfy.com/index.php)
-   Fucking Around & Business Discussion (https://gfy.com/forumdisplay.php?f=26)
-   -   Fully secured iOS streaming... unrippable. Testers required (https://gfy.com/showthread.php?t=1047788)

borked 11-29-2011 04:24 PM

Fully secured iOS streaming... unrippable. Testers required
 
OK, tagging on from my continued saga against the rippers, I've finally gotten extremely well protected iOS streams going....

Just so you can test:
http://bw.borkedcoder.com/iOS/

*NOTE* (and I know the GFY crowd won't read this)
if you *aren't* on an iOS device, you won't see the beauty - you'll just get a SWF stream
This test is purely for iOS (which as you know doesn't support flash).

If you're into this stuff, you know the problems of iOS support - html5, agent spoofing, chunk downloads... all meaning a ripper's playground to get your swf-protected content out there...
Well, this fucks with all that and makes it unrippable. Everything, including the actual stream is 128bit-strong encrypted.

Have a bash, and try rip the iOS stream... game on.

btw, *if* you have apple TV, the iOS stream *should* be projectable to your AppleTV. This is something I'm interested in testing, but don't have one to test... if you have, can you try projecting (little button on iOS device during stream to send to AppleTV) and see...

Porn on Apple TV in a secure way - that would be cooooool :thumbsup

Adraco 11-29-2011 04:41 PM

Very impressive, if I thought I had the knowledge to trumph you, I would give it a shot. But knowing that it's you behind it, I won't even waste my time. Five years ago, I would have taken on the challenge...

d-null 11-29-2011 04:48 PM

what is to stop someone from doing a low level analysis of the data going to the video at the os level, and saving that data to be re-assembled into an unencrypted ripped and viewable format? just curious

edgeprod 11-29-2011 08:03 PM

Can I just use a program like FRAPS, etc, combined with a user agent spoofer to grab 'em? Trying to save myself the effort if you've already coded around that. ;)

raymor 11-29-2011 08:21 PM

Sounds kind of interesting.

Quote:

If you *aren't* on an iOS device, you won't see the beauty -you'll just get a SWF stream
So by using any user agent other than ios it's easily ripped? Maybe we can work together on a complete solution.

mafia_man 11-29-2011 08:51 PM

If it's HTML5 then I guess it's using User-Agent combined with HTTP Referrer to detect where the client is coming from.

User-Agent alteration doesn't seem to work though.

mafia_man 11-29-2011 09:27 PM

I've managed to get it to load in Mac Safari.

Solace 11-29-2011 09:34 PM

In this regard no matter what you do will prove naive and futile.
This is taking place in a browser?
People modify browsers.

digitaldivas 11-29-2011 10:55 PM

...just ripped it with snapz pro :(

borked 11-30-2011 12:05 AM

Quote:

Originally Posted by raymor (Post 18593998)
Sounds kind of interesting.



So by using any user agent other than ios it's easily ripped? Maybe we can work together on a complete solution.

haha - I have already thought of that, I'm not that naïve :winkwink:
Quote:

you know the problems of iOS support - html5, agent spoofing, chunk downloads...
The html5 <video> stream will only work for iOS devices (ipad/pod/phone) and I'm *hoping* for restreaming to AppleTV.

borked 11-30-2011 12:28 AM

Quote:

Originally Posted by mafia_man (Post 18594089)
I've managed to get it to load in Mac Safari.

not any more.... :winkwink:

borked 11-30-2011 12:40 AM

Quote:

Originally Posted by digitaldivas (Post 18594161)
...just ripped it with snapz pro :(

that is a screen ripper, which has ripped the movie playing from the flash file. However, it has also ripped the user-identifiable info that is showing every 5 seconds randomly on the screen :winkwink:
The player is customisable to show some server-determined string every x seconds for y milliseconds to be able to identify the source of a screen rip...

However, snapz pro didn't rip the iOS stream, which is what this is about :winkwink:

borked 11-30-2011 12:47 AM

Quote:

Originally Posted by d-null (Post 18593697)
what is to stop someone from doing a low level analysis of the data going to the video at the os level, and saving that data to be re-assembled into an unencrypted ripped and viewable format? just curious

Well, for the iOS stream, it would have to be done from an iDevice... the server will reject any attempt to stream if the device isn't an iDevice... and user-agent spoofing *will not* get around this....

iDevices send out http requests for videos at a level much deeper than the browser, and you cannot get around this as it's within the iOS webkit. You can't get around that and so the streaming server will reject the request :thumbsup

It's true that jailbroken iDevices can then recover the video from the cache. However, this is useless since the cached video is 128bit encrypted and the public key has long disappeared from the cache :thumbsup

digitaldivas 11-30-2011 12:48 AM

cool, well best of luck with it!

DWB 11-30-2011 01:03 AM

You're alive!

borked 11-30-2011 01:08 AM

thanks testers - I could see iOS5.x users would receive "not permitted", but now that's fixed.
iOS 5 now supported

borked 11-30-2011 01:09 AM

Quote:

Originally Posted by DWB (Post 18594269)
You're alive!

:1orglaugh:1orglaugh
yeah, but with retinal burn in.... been hard at work

So are you! Thought you may have gotten washed away :(

borked 11-30-2011 01:12 AM

Quote:

Session has expired: currentTime: Wed Nov 30 09:05:57 CET 2011 expiresTime: Wed Nov 30 07:53:53 CET 2011
Oh yeah, I forgot to say, in this test the streams are time-sensitive, so your iOS will get a forbidden if you open up the page and wait to stream... or try re-streaming later on
Thought I'd play around with that option as well, cos it's useful for live streams like cams n shit.

AdultKing 11-30-2011 01:19 AM

Nice idea. Streaming the great race is it ?

Edit: at 1:09 it dies.

borked 11-30-2011 01:27 AM

yup,

I would like to implement this also for android, although I don't have an android device to test with :(

If anyone with android could test this link

I can see things better my end - you probably will be able to stream, but at least I can see server-end to secure it...

borked 11-30-2011 01:29 AM

Quote:

Originally Posted by AdultKing (Post 18594295)
Nice idea. Streaming the great race is it ?

Edit: at 1:09 it dies.

The stream was valid only for 1 min for testing, I've extended this to 1 hr

AdultKing 11-30-2011 01:35 AM

I don't know what you have changed but I'm getting quite a bit of stutter on the stream now from time to time.

borked 11-30-2011 01:52 AM

Quote:

Originally Posted by AdultKing (Post 18594326)
I don't know what you have changed but I'm getting quite a bit of stutter on the stream now from time to time.

Nothing changed to create lag, but the server is located in France, and France just started working so the pipes between server and you may be blocked ;)

AdultKing 11-30-2011 01:55 AM

Quote:

Originally Posted by borked (Post 18594337)
Nothing changed to create lag, but the server is located in France, and France just started working so the pipes between server and you may be blocked ;)

Not to mention even at the speed of light it's approx 234ms to Australia from France :-)

pstation 11-30-2011 02:17 AM

looks like its just wowza and apple's live http streaming.

seems like it wouldnt be too hard to bypass since the encryption key is also sent at the same time

borked 11-30-2011 02:23 AM

Quote:

Originally Posted by pstation (Post 18594356)
looks like its just wowza and apple's live http streaming.

seems like it wouldnt be too hard to bypass since the encryption key is also sent at the same time

there are many levels of security added at each stage, from browser page load to end-video play.

That is why I have asked for attempts at cracking the stream into a un-encrypted video on a computer, or any device.

I know it seems like it wouldn't be too hard, and that's why I put a *lot* of time and effort into it ;) And no - there is no encryption key sent. Only an encrypted stream name.
The private secure key is server-side only. Known only to apache and the streaming server.
The beauty is in how iOS handles live http streaming... which is actually a plus for Apple

CurrentlySober 11-30-2011 04:29 AM

lacks fresh poo... fail...

ottopottomouse 11-30-2011 05:08 AM

Quote:

Originally Posted by borked (Post 18594312)
If anyone with android could test this link

Sorry this video cannot be played.

Android 2.3 browser

ottopottomouse 11-30-2011 05:16 AM

Hmm. It works using Skyfire browser which converts it for the phone, but is only a small size on the screen and won't expand to anything bigger than the size of a large postage stamp.

mafia_man 11-30-2011 07:17 AM

Quote:

Originally Posted by borked (Post 18594245)
not any more.... :winkwink:

Interesting. Detecting window frame size maybe?

mafia_man 11-30-2011 07:30 AM

Quote:

Originally Posted by borked (Post 18594258)
iDevices send out http requests for videos at a level much deeper than the browser, and you cannot get around this as it's within the iOS webkit. You can't get around that and so the streaming server will reject the request :thumbsup

I was with you up until this.

A HTTP request is a HTTP request. If it's deeper then that's just a TCP socket.

borked 11-30-2011 08:10 AM

Quote:

Originally Posted by mafia_man (Post 18594667)
I was with you up until this.

A HTTP request is a HTTP request. If it's deeper then that's just a TCP socket.

Yes it's still a http request. However it isnt the browser making the request, its lower down than the safari engine. Bad choice of words perhaps on my part

borked 11-30-2011 08:16 AM

Quote:

Originally Posted by ottopottomouse (Post 18594493)
Hmm. It works using Skyfire browser which converts it for the phone, but is only a small size on the screen and won't expand to anything bigger than the size of a large postage stamp.

Interesting. Thats on android?
Im not too familiar at all with android but i thought 2.3 supported m3u8 plalists in httplive requests...
Do you know of any urls working for html5 android streaming of m3u8 playlists so i can look?

raymor 11-30-2011 08:20 AM

Quote:

Originally Posted by borked (Post 18594312)
yup,

I would like to implement this also for android, although I don't have an android device to test with :(

If anyone with android could test this link

I can see things better my end - you probably will be able to stream, but at least I can see server-end to secure it...

Blank page on 2.2.2

Fletch XXX 11-30-2011 08:22 AM

new android device in by friday for testing purposes mostly.

ottopottomouse 11-30-2011 08:47 AM

Quote:

Originally Posted by ottopottomouse (Post 18594493)
Hmm. It works using Skyfire browser which converts it for the phone, but is only a small size on the screen and won't expand to anything bigger than the size of a large postage stamp.

Quote:

Originally Posted by borked (Post 18594751)
Interesting. Thats on android?
Im not too familiar at all with android but i thought 2.3 supported m3u8 plalists in httplive requests...
Do you know of any urls working for html5 android streaming of m3u8 playlists so i can look?

That's on Android 2.3 but it's a custom rom not something official.

Fairly low spec phone (zte blade) as I got it specifically to fuck about with and not care about if I was going to turn it into a paperweight.

Skyfire is this and I only use it on video sites as the phone doesn't officially support flash. Although I have got Adobe Flash Player 10.2 on there since someone fixed it to work with the Arm6 processor but it struggles and plays things a bit shakily.

I don't understand enough about Linux to even start thinking about how to save your video :(

WarChild 11-30-2011 10:02 AM

It's streaming just fine for me in IE8. Is it not supposed to?

mafia_man 11-30-2011 10:17 AM

Quote:

Originally Posted by WarChild (Post 18594997)
It's streaming just fine for me in IE8. Is it not supposed to?

With Flash though?

It's not working for me now iOS5.

WarChild 11-30-2011 10:18 AM

Quote:

Originally Posted by mafia_man (Post 18595039)
With Flash though?

It's not working for me now iOS5.

Yes if I right click it I get flash player info.

borked 11-30-2011 12:35 PM

Quote:

Originally Posted by mafia_man (Post 18595039)
With Flash though?

It's not working for me now iOS5.

grrrr don't make me install iOS5 to debug :(

Are you sure it was a new page refresh and not an already-watched video? A video that has already been watched will require a page refresh since the encryption keys for the actual video have long expired - they are single-use keys.

Can you hit up the page again, refresh and try again? If still not, I'll have to fire up itunes and update from 4 to 5 which I didn't really want to do!

borked 11-30-2011 12:37 PM

Quote:

Originally Posted by WarChild (Post 18595044)
Yes if I right click it I get flash player info.

Yar, that's a fallback... if you aren't viewing the page with an iOS device, you'll get the flash player. Streaming via html5 through a regular web browser isn't secure. But as browsers can support flash, there's no need to put out html5 streaming to them... This is about mobile devices since:
1. Apple have never supported flash
2. Adobe are giving up on flash mobile.

So, got to get secure streams to mobiles/pads....

borked 11-30-2011 12:39 PM

Quote:

Originally Posted by borked (Post 18593662)
btw, *if* you have apple TV, the iOS stream *should* be projectable to your AppleTV. This is something I'm interested in testing, but don't have one to test... if you have, can you try projecting (little button on iOS device during stream to send to AppleTV) and see...

Porn on Apple TV in a secure way - that would be cooooool :thumbsup

What, NOONE has an AppleTV to test on??? Damn, you lot disappoint me!
Imagine the potential buying power.... HD porn in a secure way on your big phat plasma....

--edit
if someone wants to buy me one, I'll happily test it :P

mafia_man 11-30-2011 03:53 PM

Quote:

Originally Posted by borked (Post 18595449)
grrrr don't make me install iOS5 to debug :(

Are you sure it was a new page refresh and not an already-watched video? A video that has already been watched will require a page refresh since the encryption keys for the actual video have long expired - they are single-use keys.

Can you hit up the page again, refresh and try again? If still not, I'll have to fire up itunes and update from 4 to 5 which I didn't really want to do!

Works again now. I had to open a new page in Safari. Refreshing alone didn't work.

pstation 11-30-2011 08:49 PM

Quote:

Originally Posted by borked (Post 18594359)
there are many levels of security added at each stage, from browser page load to end-video play.

That is why I have asked for attempts at cracking the stream into a un-encrypted video on a computer, or any device.

I know it seems like it wouldn't be too hard, and that's why I put a *lot* of time and effort into it ;) And no - there is no encryption key sent. Only an encrypted stream name.
The private secure key is server-side only. Known only to apache and the streaming server.
The beauty is in how iOS handles live http streaming... which is actually a plus for Apple

there definitely is a key sent, otherwise the client would not be able to decrypt the file. in the m3u8 file there's the following field for example:

Quote:

#EXT-X-KEY:METHOD=AES-128,URI="http://stream.borkedcoder.com:1935/nuqem/_definst_/e2WTzuhKTdRyW/Fjuy1WbYlrwauk8XJncmbvulIwHuMdQl6QW6MpOlInNUZ%2B5k kO/DJBOo/AA8QaIcpghYeuksCZHSBOtDhJu8K/H2UBoR%2Bi%2BhDZYnl2GXY6%2Bi/uKWQV4RoXSRe%2Bj0gRXrTzorXatzvo9uOuryqtLzfJ83mtkHc y5hcTFPUHOYdkggXDQnQKjQniDKgJj2pIaRVMjjlGl2IBZh4Bm zg9KhCCtySWQIk%3D/key.m3u8key?wowzasessionid=247768873"
at best this is perhaps good for preventing people from ripping streams using browser plugins.

pstation 11-30-2011 08:53 PM

Someone else on the wowza forum also posted a step by step guide of easily decrypting the streams:

http://www.wowza.com/forums/showthre...7600#post67600

borked 11-30-2011 09:40 PM

thanks pstation - I wouldn't say "at best this is good for preventing from browser plugins". It is a real effort to lock down iOS streams.
This is exactly what I wanted testers for (hence the title). I know what every step entails and where keys are sent. The point is is to make it so darn difficult to rip the stream that it won't be worth it.

Sure, if you have an ass-to-mouth exclusive of David Cameron on Barack Obama , then it's gonna get ripped one way or the other. If you want 100% security, don't put it on the internet ;)

Anyways, I see how you did it and so I can probably close that door...
Additionally, I found a bug in the streaming logic - where the request for the key didn't go through the same checks to verify it was coming from an embedded <video> tag.

If you would like to hit me up on email (see sig), I would like for you to test further once I've modified a few things...

BigBen 11-30-2011 11:39 PM

It works fine with AirPlay and AppleTV. :)

borked 11-30-2011 11:46 PM

Quote:

Originally Posted by pstation (Post 18596379)
there definitely is a key sent, otherwise the client would not be able to decrypt the file. in the m3u8 file there's the following field for example:



at best this is perhaps good for preventing people from ripping streams using browser plugins.

Actually - I take all that I said previously back...
You didn't get the key at all, just the URL, so there wasn't a bug in the logic. :thumbsup

Sure, I see you got the encrypted chunks but never the key.

borked 11-30-2011 11:48 PM

Quote:

Originally Posted by BigBen (Post 18596566)
It works fine with AirPlay and AppleTV. :)

that is excellent news :thumbsup
I saw how airplay works now and it really is a restream from the ipad - I was thinking the ipad was simply sending the URL and AppleTV was grabbing the stream (in which case this wouldn't work), but nope - it really is restreaming to the tv
many thanks

stever 11-30-2011 11:54 PM

bump for a good cause


All times are GMT -7. The time now is 08:11 PM.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
©2000-, AI Media Network Inc123