Skype Logo Take a deep breath™.
Buy Skype Credit · Help ·
  • Download
  • Use Skype
  • Business
  • Shop
  • Account
Peeter P. Mõtsküla

API access authorization revisited

By My status Peeter P. Mõtsküla on October 31, 2007 in Developer Blog.

On October 19, I blogged about a change in the way Skype for Windows handles the attempts from new programs trying to access the public API. The change was implemented in Skype for Windows 3.6.0.159 (beta), released on October 24.

Since then, we've received a lot of developer feedback, and continued our internal discussions as well. Based on this additional input, we've reached a different solution which I'll describe in detail below. Having a better solution at hand also means that this interim change will be rolled back and the upcoming gold release of Skype for Windows 3.6 will handle the API access requests exactly as the earlier versions did.

The new solution, for which we don't have a fixed release date yet, is based on adding central blacklist and whitelist to the already-present local API access control list (ACL). What will happen when an application tries to connect to the Skype client API, depends on which list -- if any -- the application is on, and whether the user has already allowed or denied it to use the API.

How will this work?

  • First (for all API connection attempts), the central blacklist is checked. If the application is centrally blacklisted, it will not be allowed to access the Skype client API, and the user will be notified.
  • Then (for applications that are not blacklisted centrally), the local ACL is checked to see whether the application is already known to the user. If so, it will be allowed or denied access to the API according to the user's choice, and no warnings will be displayed. This is identical to how it works with the earlier versions of Skype.
  • Third (for applications that are new to the user and not centrally blacklisted), the central whitelist is checked. If the application is whitelisted, it will be given access to the API and marked as "allowed" in the local ACL. No warnings will be displayed to the user, but the user may later deny the application API access via Tools - Options if he so wishes.
  • Finally (for applications that are new to the user but neither blacklisted nor whitelisted centrally), an event notification will be generated, and the user can then open the "old-style" API access authorization dialog by clicking on the missed event flag.

What's in it for users?

  • Increased security -- malicious software will no longer be able to easily fire coordinated mouseclicks into the API access authorization dialog.
  • Increased ease of use -- Skype Certified software and drivers for Skype Certified hardware will "just work" without the API access dialog ever popping up.

View blog reactions

Comments

Please consider adding an option for the user to disable step three, where the whitelist is checked, thus forcing step four to occur. This way, the user will always be manually prompted to allow or dis-allow an application.

The whitelist idea is good, and will help for your "average" user. But for power users, it may lead to problems. For example, take a Skype Certified application that is whitelisted and thus automatically given access to Skype. It starts up, and changes settings that break the current user's setup. (E.g., in my case, I have to blacklist Logitech's "Communication_Helper" because it keeps trying to switch Skype to the QuickCam microphone, while I have other headsets on my machine that I prefer to use.) While you still give people the option to blacklist a whitelisted application, the whitelisted application still has the opportunity to run at least once and break a user's environment when it first launches, _before_ the user has the ability to go in and blacklist said application.

Again, for "average" users, whitelists will be helpful. But for more advanced users, please give us the option to always explicitly decide if we want to allow a whitelisted application.

Also, as a related side note: will the API authorization dialogs be updated to indicate if an application is on the whitelist or not?

Another option to consider is making the API authorization more granular. Right now, it is an all-or-nothing deal.

cwichura | Wednesday, Oct 31

Will it cost developers to have their application be on the whitelist, or is it only open to Skype partners?

Will the white/blacklist only apply to the "NAME [[ProgramName]]" that's sent over the API, or will it be in a similar way to how program's are checked at the moment, eg by .exe name? Will that mean that applications that are updated need to be updated on the whitelist/blacklist?

If an evil program only needs to modify itself a little to look like a seperate program to Skype every time it runs, won't it defeat the purpose of a blacklist?

bigbrownchunx | Thursday, Nov 1

The whole concept of asking the user to authorise local programs stinks of Windows "security". http://www.youtube.com/watch?v=VuqZ8AqmLPY If a malicious program wants to get around it, all it has to do is pretend to be a program that's on the whitelist. On unix systems, a program is assumed to be trusted if it is running as the current user on the local system. Please add an "allow all", or "allow by wildcard" option in future versions, so we can disable this feature.

alsuren | Saturday, Nov 3

Will it cost developers to have their application be on the whitelist, or is it only open to Skype partners?

All developers will be able to apply for getting their apps whitelisted. We may decide to whitelist only Skype Certified apps, or request a separate testing fee from the developers who want their applications to be whitelisted.

Will the white/blacklist only apply to the "NAME [[ProgramName]]" that's sent over the API, or will it be in a similar way to how program's are checked at the moment, eg by .exe name? Will that mean that applications that are updated need to be updated on the whitelist/blacklist?

The white/blacklist will work based on the SHA256 hashes of the executables attempting to connect to the Skype Client API. If the executable is modified in any way, then its hash would no longer be found in the central lists, and the application's access attempt would end up in missed events list.

If an evil program only needs to modify itself a little to look like a seperate program to Skype every time it runs, won't it defeat the purpose of a blacklist?

Not really. First of all, "good" developers can also request old versions of their applications to be blacklisted, e.g. in case they have identified a vulnerability in their application, and want to force their users to upgrade to an improved version. Second, a lot of malicious software is not polymorphic. Third, if the users are required to go through a series of actions more complex than just hitting "ok" in a dialog that pops up, then they are more likely to think before acting, so the spreading of such bad applications will be a lot harder than before.

If a malicious program wants to get around it, all it has to do is pretend to be a program that's on the whitelist.

This would only be possible if the malicious program manages to modify the whitelisted program at run time. Modification of the whitelisted program's executable before it is launched results in the hash no longer matching that in our centrally managed whitelist.

Please also see a related case in our public issue tracker, Jira: SDS-250.

ppmotskula | Monday, Dec 3

As I understand from the posts above, Skype may decide to whitelist only Skype Certified apps, or request a separate testing fee from the developers who want their applications to be whitelisted. I would like to know the process of getting the application whitelisted by paying a seperate testing fee (if this process is already defined).
Thanks,
Prashant

prasshantg | Thursday, Jan 3

@prasshantg: Don't worry, as soon as we have more information to share, we will share it via this blog here.

ppmotskula | Thursday, Jan 3

Hi, You said that "Skype Certified software and drivers for Skype Certified hardware will “just work” without the API access dialog ever popping up.", I want to know when this feature be available?Thanks.

ycj-123456 | Friday, Feb 22

It's available in Skype 3.6.0.248 that was released on Feb 5. Read the release notes and an article in our January newsletter.

ppmotskula | Friday, Feb 22

Comment on this post

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Back to index

Subscribe to this blog
What? Tell me more…

using RSS Subscribe
via Bloglines Subscribe in Bloglines
using Newsgator Subscribe in NewsGator Online
with MyYahoo
with Google Add to Google
with My AOL Add to My AOL
with Anothr.com Subscribe by Anothr
with netvibes Add to Netvibes
with email Get email updates
Skype Developer Newsletter

Sign up now for all the latest news, tips and tricks on using Skype Public API.

Developer Zone

  • Home
  • Docs
  • Tutorials
  • Download
  • Support
  • Certification
  • Blog
  • Community
  • Help
  • Find...
Skype Blogs
  • Share Skype Blog
  • About Skype
  • Heartbeat
  • Developer Zone
  • Business
  • Jobs
  • Skype Prime
  • Skype Gear
  • Security
  • Garage
  • Mac
  • Linux
  • Eesti keeles
  • Töökuulutuste leht
  • 日本語
  • Česky
  • Deutsch
  • Français
  • Italiano
  • Brasil
  • United Kingdom
  • Svenska
  • Polski
  • United States

Recent posts

  • New Skype Certified product in June -- Trend Micro WTP for Skype
  • Developer Zone version 3 is out there
  • Developer Zone down for maintenance
  • Skype for Business Showcase in Stockholm, Sweden
  • Skype sponsors Python Developer Conference (sold out)
  • Support updates and fixes in EM 2.0
  • New Skype Certified products in April
  • Update from Eion Robb and Brandon Holland
  • Long time partners... SDP, what's going on?
  • Time to Join Skype at the eBay DevCon

Archives

  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • June 2006
  • May 2006
  • April 2006
  • March 2006
  • February 2006
  • January 2006
  • December 2005
  • November 2005
  • October 2005
  • September 2005
  • August 2005
  • July 2005
About us · Partners · Jobs · Prices · Security
Privacy policy · Legal · © 2008 Skype Limited