Update #4 almost impossible to fix

Hey Guys,

it has been a while since my last update. It was a busy week an unfortunately not a good one for the proxy.

I managed to patch the certificate pinning out of the App to be able to read the SSL encrypted traffic and thought that from now on, it would be easy to get the proxy up and running again.

I was wrong. I was able to reverse engineer the new API but when it comes to play the actual stream I always got the already mentioned Forbidden response from the server. Until yesterday I was not sure what is the problem but then I discovered, that there is always a request on a port directly on the device.

Calling internal SSL Proxy

Calling internal SSL Proxy

What Vodafone is doing here is, they are proxying the stream through an internal SSL-Proxy. This is kind of a a VPN which secures the complete communication of the stream.

I am not able to see what happens inside of this secure connection.

There is a only slight chance that I am able to find some solutions in the source of the Android App, but it is very hard. Vodafone uses a SSL-Proxy package provided by Ineoquest and I am not able to disassemble this part of the code, because it is encrypted.

I am sorry but I think they found an very effective way from preventing us watching TV on other devices than the allowed ones.

Best regards,
André

Update #3 Progress on fixing the problem

This is just a very short Update to tell you that finally I found a solution to query the API of KabelDeutschland (Vodafone Kabel) again.

Postman Query Channel List

Postman Query Channel List

I found the reason why the API was not responding anymore.

There is still a problem getting the licensed channel-links. The request results in an error.

VLC error Channel Link

VLC error Channel Link

Hopefully I will find a solution for this soon.

Best regards,
André

Update #2 on the still broken KabelDeutschland (Vodafone Kabel) Proxy

Hey,
I try to keep you guys updated as often as I can.

Today i was able to take a look into the current version of the Vodafone Kabel TV App. I tried to find the part of the code where they check if someone is interfering with the communication of the app. And to be honest, Vodafone (KabelDeutschland) found a pretty efficient way to prevent me from reading the SSL-encrypted traffic.

The following code example out of the app shows, how they did it.

In the onCreate action of the splash-screen, they are checking if the provided SSL-pub-key fits to the one provided by the app itself. This prevents me from using a proxy with a self-signed certificate to decrypt the communication.

I have not completely given up on this, but it is getting harder and harder to find a way to fix the proxy.

In the source I am able to see what requests are made, but the payload of the request body will be generated with a couple of properties but also dynamically generated IDs. These IDs I was not able to re-generate by myself, yet.

It definitely will take longer than expected to get this up and running again.

Best regards,
André

Update on the still broken KabelDeutschland (Vodafone Kabel) Proxy

Hey Guys,

to give you a little update about the current state of my work, here is what I tried already.

First, I was not able to solve the problem. KabelDeutschland (Vodafone Kabel) changed something in their API and within their Apps.
Normally I would use the same strategy I did to start this project in the first place, reverse engineering.

Unfortunately KabelDeutschland(Vodafone Kabel) now scans on every startup of the App (Android and iOS) if something listens to the connection. I am not able to use burp as a proxy to read the HTTPS encrypted traffic by now. It always tells me that I am not connected to the internet.

Vodafone TV App Error

Vodafone TV App Error

I will have to find another way to get into the encrypted communication of the app, to find out what they changed within their API.

If anyone has an idea, I would love to hear it.

Beste regards,
André

KabelDeutschland Streaming Proxy broken at the moment

Hey Guys,

as some of you already noted, the Proxy is not working at the moment. KabelDeutschland changed something the way they deliver the streams.

Good news, the App on Android and iOS is still working, so I am able to reverse engineer what is going on.

I will keep you updated as soon as I know more.

Best regards,
André

Belkin USB 3.0 Dual Video Docking Station using with Apple MacBook Pro

My Setup

Today I received my new Docking Station to be used with my MacBook Pro (Retina, 13-inch, Early 2015). I ordered it to be able to only attach a single cable (next to the power cord) to my MacBook and have display, network and sound available.

Belkin USB 3.0 Dual Video Docking Station

The station is not a new product, but at the moment the price is unbeatable compared to other products designed to be used especially with a MacBook. If you take a look at the Belkin Thunderbolt 2 Express-HD-Dock which offers nearly the same specifications (but including Thunderbolt) for almost three times the price, buying the USB 3.0 version is the most rational decision. My decision was faced regarding my intended use, to be able to work on the external displays and not for gaming.

Specifications

The following ports are available:

  • 1x SuperSpeed USB 3.0-Port (Typ B),
  • 2 SuperSpeed USB 3.0-Ports (Typ A),
  • Hi-Speed USB 2.0 Ports (Typ A),
  • 1 RJ45-Gigabit Ethernet-Port,
  • 2.1 Sound Port (Out-, Input)
  • Kensington Lock
  • 1x DisplayPort,
  • 1x DVI-I Port

As you can see, you do not only have the display and ethernet ports but also 4 USB ports. Two of them are using the fast USB 3.0 standard and one of these is providing 2.1A output to be able to charge your tablet or mobile phone as fast as possible.

Scope of delivery

  • Belkin USB 3.0 Dual Video Docking Stand
  • 1,8 m 5V/4A Power Supply,
  • Upstream-USB 3.0-Cable
  • DVI-I/VGA Converter

Hardware

The dock is not only a port replicator but includes a fully working graphics- and sound-module. The display port will be provided by the DisplayLink technology. With this setup you are able to use 4 additional displays on your latest mac, two of them connected directly to the MacBook (Thunderbolt, HDMI) and the other two connected via DVI and DisplayPort to the Belkin Dock. I know it is possible to use display-chaining provided by ThunderBolt but displays with a Thunderbolt port are way too expensive.

Software

Most of the functions are working out of the box. That means your are able to use the Gigabit Ethernet Port and the sound-module without installing any additional drivers. Only the graphic-adapter needs the installation of a driver provided by the DisplayLink interests group. You can download it from here. Be sure to always use the latest version. At the moment I am using 2.5 Beta 2 because with some older version I experienced problems plugging in and out of the Dock would result in a system freeze. This problem is solved within the newest version.

Advantages and Disadvantages

One of the biggest advantage is the price of about 90€. You will get a fully featured docking solution for you MacBook or any other UltraBook. It look tremendously good, is well made and provide a stable stand for your book.

I can’t see any real disadvantage, but you should be aware of, that the DisplayLink technology uses you CPU to provide the power to render the image on the external Displays. This means you have a constant load of about 3-5% for the DisplayLink process. The next thing you should know is, you can’t compare the graphics adapter with a modern Nvidia GeForce card, you won’t be able to play games on a display attached to the dock because it is not able to rendern a suitable frame-rate. But nevertheless it is no problem to watch movies or anything like this.

Using the Docking Station via USB2 is possible but not recommended. The problem is, that USB2 only provides 480Mbit/s transfer-rate. The combination of Gigabit Ethernet, one Display Port and the sound module results in loosing frames-per-second, which makes it almost impossible to use. But as the name already said, it is designed for USB3 and not USB2.

Conclusion

To face a final conclusion it is way too early, but the first impression couldn’t be better. You will get a pretty good looking docking station with a lot of features to an very affordable price. I would definitely recommend buying the Belkin USB 3.0 Dual Video Docking Station.

There will be a new post in a couple of weeks where I will write about the daily work with the station and provide you with more information about advantages and disadvantages.

Fit and Healthy – Der Weg zum gesunden Leben

Obstsalat mit ein paar Toppings

Einleitung

Hallo ihr Lieben,
es wird Zeit euch an meinen sportlichen und gefühlt gesunden Leben teilhaben zulassen.

Es gehört mittlerweile zu mir bzw. zu uns und wir leben es jeden Tag aufs Neue, es gehört dazu wie das morgendliche Aufstehen und Zähne putzen.

Sport und Ernährung.
Zwei Komponenten die eine besondere Aufmerksamkeit genießen sollten.

Ich möchte euch heute am Beispiel eines für mich typischen Sonntages beschreiben, wie ich diesen Tag verbringe.

  • teils sportlich
  • gesunde & köstliche Ernährung
  • Erholung
  • neue Pläne / Ziele schmieden.

Sonntag

Ausschlafen
das heißt min. 8h Schlaf, bis ich der Meinung bin, ich fühle mich fit genug um den Tag zu beginnen.

Ein klares Zeichen dafür ist, das typische wechseln im Bett von einer Seite auf die andere.
Dann wird es Zeit für die morgendliche Fitness. Der Körper muss in Schwung kommen und etwas Sauerstoff tanken. Da die Sauerstoffzufuhr am besten bei Bewegung funktioniert, gehe ich jetzt eine Runde joggen.

Herbst-Jogging

Ich laufe am liebsten im Wald, im Park, am Wasser, in der schönen Natur und auf weichem Untergrund.

Jogging

Bevor es Zuhause los geht, ein kurzer Check ob meine Kopfhörer und das iPhone geladen sind. Ein Blick auf das Thermometer und dann geht es los.

Die Dauer & Länge der Strecke sind unterschiedlich. Es gibt Tage, da laufe ich wie mir zumute ist und dann gibt es diese Tage, an denen ich überaus motiviert bin und eine bestimme Geschwindigkeit bzw. Dauer schaffen möchte. Dieses Gefühl des Glücks und Wohlbefindens, wenn ich ein durch mich bestimmtes Ziel erreicht habe ist einfach wunderbar. Es bringt mich nach vorn und motiviert mich weiter so gesund zu leben und aktiv Sport zutreiben.

Erholung und Frühstück

Nachdem ich erschöpft wieder zu Hause angekommen bin, lasse ich meinen Körper erst einmal entspannen, sodass er wieder ein wenig zur Ruhe kommen kann.

Es wird Zeit für eine lange Erholungsphase, die mit einem ausgewogenen Frühstück beginnt.

Meiner Meinung nach die wichtigste Mahlzeit des Tages.

Da ich in der Woche meistens zum Frühstück Müsli in unterschiedlichsten Variationen esse (dazu später mehr), gibt es am Wochenende frische Brötchen vom Bäcker.

In Summe gibt es fast immer ein Brötchen, wobei eine Hälfte davon vom Nuss-Möhren-Vollkorn-Brötchen ist und die andere wahlweise vom Rosinen-Brötchen oder auch sehr gern vom Vollkorn-Croissant kommt.

Nach dem Motto zu jeder Mahlzeit Gemüse oder/und Obst, werden dazu meist Gurken- und  Tomatenscheiben sowie Rucola und ähnliches serviert.

Der Sonntag ist Rührei-Tag …
dafür nehme ich zwei bis drei Eier für zwei Personen, etwas gekörnten Frischkäse, Petersilie, Salz und Pfeffer. Durch den Frischkäse wird das Rührei sehr cremig.

Kleiner Tip: wenn ihr das verquirlte Ei 10 Minuten vor dem Braten salzt wird es besonders cremig.

Ich sage euch, der absolute Hammer und macht sich auch super auf dem Brötchen, wenn ihr es mögt.

Lecker cremiges Rührei

Lecker cremiges Rührei

Zu einen guten Frühstück gehört aber selbstverständlich auch ein leckerer Kaffee mit frischen Milchschaum und ab und an ein kleiner Orangensaft bzw. ein kleines Glas Smoothie.
Jedoch nicht zu viel, da Obst zwar sehr gesund ist, aber auch Fruchtzucker enthält, der einige Kalorien mit sich bringt.

Somit geht es beim Essen um Genuss. Alles in Maßen, genieße die Details und nimm dir gerade am Wochenende die Zeit dafür, die du wahrscheinlich unter der Woche nicht immer hast.

Nach dem Frühstück

Den Rest des Vormittages bzw. Mittags genieße ich mit Sachen, die ich schon längst mal wieder machen wollte und mir Kraft geben für die nächste Arbeitswoche.

Ich nehme mir Zeit um den nächsten Urlaub zu planen, ein heißes Bad zu nehmen, Fotobücher zu gestalten, Bücher zu lesen, Filme und Serien zu schauen und mich einfach etwas zu erholen.
Lasst euch einfach fallen und macht ein paar Sachen worauf ihr Lust habt und die sich gut anfühlen, macht etwas für euch und wenn ihr mögt gönnt euch sogar mal ein kurzes Mittagsschläfchen.
Aber bitte nicht länger als 15-30Minuten, sonst seid ihr danach erst richtig müde.

Die gute alte Vesper neu aufgelegt

Gegen 14:00Uhr gibt es bei mir meistens einen richtig leckeren Obstsalat, da ich am Wochenende nur selten etwas warmes zum Mittag esse und dafür lieber spät frühstücke.

Beim Obstsalat bin ich meistens sehr kreativ. Es gibt die Standards wie Apfel, Birne, Banane und Kiwi, aber auch besondere Zutaten nach Saison so wie Granatapfel, Himbeeren, Brombeeren, Heidelbeeren, Mango, Ananas, Feige und vieles mehr.

Gönnt euch was gesundes und probiert neue Obstsorten aus.

Dazu gibt es bei mir als zweite Schicht einen leckeren Naturjoghurt mit 1,5% Fett und als Topping etwas Fruchtjoghurt (aus selbst gemachter Marmelade und Naturjoghurt mit 1,5% oder 3,5% Fett).

Meine absoluten Highlights kommen zum Schluss.
Es sind ein bis zwei Löffel Crunchy Müsli, ein paar Nüsse, getrocknete Cranberries und ab und an ein paar Raw-Kakoasplitter.

Fertig ist der gesunde und leckere Obstsalat.

Der größte Anteil sollte wirklich das Obst und der Joghurt sein, sonst ist es nicht mehr wirklich gesund 🙂

Abschluss

Lebt es, genießt es, seid kreativ und fühlt es, wie gesundes Essen euch Energie, Spaß und Wohlbefinden entgegen bringt.

Was es zum Abendessen gibt und wie ich meinen Sonntagnachmittag genieße, berichte ich euch beim nächsten Mal.

Bitte erzählt mir, ob euch die erste Ausgabe gefallen hat, was ihr noch wissen möchtet und seid ein Teil dieses Blog und der Community. 

Liebe Grüße
Sanne

Fixed CDN problem with KabelDeutschland streaming proxy

What’s new

As some of you already noted, there have been some issues with getting the channel-list from the KabelDeutschland API. They migrated to a new Content-Delivery-Network which does not support a get-header-Request anymore. This causes the proxy to generate invalid channel-links and your were unable to watch the streams.

This should be fixed by now. I committed the fix within the PHP and the GO version of the proxy and also compiled the binaries to a new version 0.1.3.

Please give me feedback if the problem is solved for you.

Binaries Download

Shared Folder at mega.co.nz (mirror at dropbox)

Sourcecode Repositories

PHP

https://github.com/edi-design/kd-streaming-proxy

GO

https://github.com/edi-design/kd-go

Code of the KabelDeutschland streaming proxy is available as open source

Why

A couple of times (stadt-bremerhaven.dedo-it-neat.com) I have been asked to open up the source code of my KabelDeuschland Streaming Proxy. There has been the PHP version available for quite some time on github (kd-streaming-proxy) but until now I was not able to open-source the version written in GO.

Now I got the time to clean up everything, wrote a lot of comments and put it on github for everyone to contribute.

https://github.com/edi-design/kd-go/

I hope there are a lot of developers out there using my proxy and are willing to help me with the further development.

About the code

The code is completely written in GO. It should be able to compile with any version above 1.3, but to be able to generate the cross-platform binaries you need version 1.5 of GO.

Dependencies

It only has one dependency to the gorilla mux router. You can install it by entering the following command.

Build the source

To build the source for various platforms, simply run the build-script provided under scripts/build.sh.
It relies on a proper configured go-environment with GOPATH and GOROOT set up.

By now, I only tested the build process on OS X but it should not be a problem to run the commands on Linux.

Configuration

Place a config.json next to the binary and fill it with the following content, including your KabelDeutschland credentials.

Run the binary

The easiest way, is to run the binary without any params. It searches automatically for the config.json next to the binary.

 

 

PowerPC 64bit version of the KabelDeutschland streaming proxy

What’s new

Since golang updated their compiler to version 1.5 a couple of weeks ago, I am now able to use their new cross-compile toolchain to provide you some more binaries. By now there are two new, PPC64 and PPC64le. Both of them are, as the name says, for the PowerPC architecture with a 64bit bus system. The second one is directly compiled for the low-energy profiled CPUs. This build can be used on the Synology DS213+ for example.

Below you can see the full list of all supported platforms.

Download

Shared Folder at mega.co.nz (mirror at dropbox)

Usage

 

 

Take the binary that fits to your environment and run it.