Skype switched to the MSN Messenger Protocol

Noah Petherbridge
kirsle
Posted by Noah Petherbridge on Tuesday, December 09 2014 @ 10:21:54 AM

Today, Fedora 21 was released and I upgraded to it immediately, and decided not to install Skype this time.

Skype for Linux has been poorly maintained, going years between updates sometimes, and who knows what kind of unknown zero-day vulnerabilities are in there. On my previous installation of Fedora, Skype twice showed a weird issue where it replaced some of its icons with Chinese (or Korean, or something) symbols. I posted about it on Reddit and the Skype forum with no responses, as if I'm the only one who's ever seen this. Was I hacked? Maybe.

I took the latest Windows version of Skype and dumped all its icons trying to find these weird symbols but came up empty-handed. And I don't know of any way to pry icons out of the Linux binary of Skype. So... for now I just don't trust it.


In other news, I decided to Google the Skype protocol, and see what the progress is on people attempting to reverse engineer it, to be able to build an open source third-party Skype client (e.g. to have support in Pidgin). The Wikipedia article said something interesting:

On June 20, 2014, Microsoft announced the deprecation of the old Skype protocol. [...] The new Skype protocol - Microsoft Notification Protocol 24 - promises better offline messaging and better messages synchronization across Skype devices.

I wrote previously that the MSN Messenger service was still alive but it looks like it's the future of Skype as well.

The Microsoft Notification Protocol (MSNP) is the protocol used by MSN Messenger/Windows Live Messenger. I'm reasonably familiar with it from back in the day when I used to work on chatbots that signed in to MSN Messenger to accept their add requests and carry on conversations with humans.

MSNP is a plain text, line-delimited protocol similar to SMTP. There is some outdated documentation up through MSNP10 that we referenced in developing an MSN module in Perl. As an example, this is what you'd see going over the network if somebody sent a chat message to a friend:

MSG 4 N 133
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22

Hello! How are you?

The protocol consisted of command lines, typically three letters long (some I remember offhand: NLN--go online, FLN--go offline, BRB--set status to "be right back", RNG--request a conversation with a contact ("ring"), ANS--accept a conversation request ("answer"), and MSG--send a message). The RNG and ANS commands were invisible to the user in the official client, but allowed for some interesting behaviors in our chatbots (like immediately sending you a message the moment you open their chat window, before you even begin to type anything!)

It's interesting that Skype "downgraded" to the MSNP though, given that Skype's old protocol was an impenetrable fortress of obfuscation and encryption that nobody's ever managed to reverse engineer. Even third party clients like Trillian that had Skype support were technically using SkypeKit, a developer tool that allowed Skype to be remote controlled, but which kept all the proprietary bits a secret still. On the other hand, it makes sense for them to make Skype conform to Outlook.com and their other services that used MSNP, rather than upgrade all their other services to use the Skype protocol.

The last version of Windows Live Messenger used MSNP19 (or MSNP21 depending who you ask), so the new Skype protocol is just the next version of MSNP.

In Googling MSNP24 I found this site where efforts are already underway at reverse engineering it. This other site has a lot more details on the current status of the Messenger protocol.

It's only a matter of time now until Pidgin can natively support Skype accounts. It will also be fun to program chatbots for Skype. :)

Categories:

[ Blog ]

Comments

There are 5 comments on this page.

Avatar
guest
Posted on Tuesday, December 09 2014 @ 09:25:22 PM by dpogue.

There is an existing 3rd party Pidgin plugin for Skype that I used several (or seven) years ago: http://eion.robbmob.com/

The author wrote a post just today about a branch of it that doesn't require Skype to be running: http://eion.robbmob.com/blog/2014/11/30/using-the-new-skype-for-web/

Avatar
kirsle
Posted on Tuesday, December 09 2014 @ 10:06:13 PM by Noah Petherbridge.

That's interesting. On the first link: I knew of that one, it required the Skype client to be running and used its API (the Linux version of Skype still has an API you can configure in its settings, but as I understand it, the API is deprecated and was removed already from the Windows version).

SkypeKit was a headless Skype client that implemented the same (or functionally similar) API.

The new link looks interesting; it's probably related to the MSNP24 stuff, since MSNP24 uses an HTTPS API only (MSNP protocol versions).

Avatar
guest
Posted on Monday, December 29 2014 @ 01:49:48 PM by Flobo.

I added that part on wikipedia last summer even though i could not find any reference to support it.

I used messenger on Windows Phone 7 and my dekstops and it handled smart notifications only to the active device perfectly.
That all went away with Skype in 2013. All of my device were always ringing.

But it suddenly started working again last summer when skype switched protocol.
That and the fact that typing /dumpmsnp in a skype windows made it look like it was connecting to the messenger service made me think we were back to the messenger protocol.

Since i could not find any reference for it, I added it to the wikipedia page but was not fully certain i was right and that someone would remove it if i were wrong since i know really very little about how it works on the inside.

Avatar
guest
Posted on Monday, March 16 2015 @ 12:45:39 PM by DiaaAttia.

Hi, I am currently learning Chinese language with native speakers by Skype through http://preply.com/en/chinese-by-skype and I must say that the guys there are presenting Excellent quality and I am satisfied, but I am looking to try another option in order to choose the best, anyone got some options?

Avatar
guest
Posted on Tuesday, August 11 2015 @ 02:01:43 PM by klear6.

Need a little help getting Trillian to support msn/windows live and skype again. I know they have disabled the service but somehow I had gotten a plug-in to work before I reinstalled windows last week. I don't remember exactly what I did but it had something to do with skypekit. Please help or point me in the right direction. I seriously doubt trillian has blocked whatever I did in less than one weeks time.

Add a Comment

Your name:
Your Email:
Message:
Comments can be formatted with Markdown, and you can use
emoticons in your comment.

If you can see this, don't touch the following fields.