On Message with Ben Gross

A Practical Attack and Fixes for Current SSL/TLS Vulnerabilities

New security flaws have put TLS, the Transport Layer Security protocol in the spotlight once again. Early in November, Marsh Ray and Steve Dispensa from PhoneFactor, Inc. published a security report detailing three new potential TLS vulnerabilities. Ray and Dispensa describe man-in-the-middle (MITM) type attacks that target the renegotiation feature of TLS that allows in-connection changes to keys and parameters. The TLS protocol specification supersedes the Secure Socket Layer (SSL) specification, although SSL is commonly used interchangeably with TLS.

The full report from PhoneFactor describing potential attacks on the renegotiation functionality in TLS is available on the PhoneFactor web site. The authors discovered the vulnerabilities in August, 2009. The Register, reports that Ray and Dispensa met with major vendors and distributors of SSL libraries in September, 2009. Developers immediately began working on fixes. PhoneFactor maintains a page on the current status of patches for major vendor’s SSL/TLS implementations.

Eric Rescorla and coauthors published a proposed change in the protocol to fix the vulnerability in an IETF draft specification titled Transport Layer Security (TLS) Renegotiation Indication Extension. Rescorla is well known in the security community for his work on secure protocols and is one of the authors of the current SSL specification. His guide to Understanding the TLS Renegotiation Attack is clearly written and informative.

Shortly after the disclosure, Anil Kurmus, showed that the vulnerabilities were not just theoretical. He illustrates a practical attack against Twitter API using the TLS renegotiation vulnerability. Twitter quickly made changes to prevent the attack from working again, but a practical attack means that vendors and and large web services are under significant pressure to implement fixes in a timely fashion. Netcraft reports that 24 of the 100 top HTTPS sites now safe from TLS renegotiation attacks.

TrackMyShipments Offers Simple Email-Based Package Tracking

The web-based interfaces offered by the various shipping services allow you to schedule shipments, offer integrated billing ,stored address books, online package tracking. A number of third party services offer simplified interfaces and allow you to track shipments from multiple carriers at once. Still, managing the process inputing multiple tracking numbers into multiple services can be cumbersome. I prefer the email-based input method used by the TrackMyShipments service.

Say you ordered a new hard disk online to get an early start on your New Years resolution to make regular backups and you want to see if it will be delivered today or tomorrow. The most common way to find out the status of your package is to search through your email to find the confirmation email from the store that contains the tracking number for your drive. If you are lucky the store has formatted the message so you can simply click on a link and it will take you directly to the page on the shippers site that has information about the state of your package. Unfortunately, I find many stores do not give their customers such an easy path and so must copy the number from the email and paste it into the web form for your package carrier. You might even already have an account on the package carriers web site that lets you save the number for future reference or set up email or SMS alerts to let you know when there is progress or problems. For most people, this somewhat cumbersome process is the norm.

TrackMyShipments is an email-based online package tracking service. I have been using the service for about a year and a half and have found it be the most streamlined method to track packages. The email-based component of the service is the interesting part. Once you have gone through a very quick signup process, you can begin to forward any email messages from vendors that contain tracking numbers to track [at] trackmyshipments [dot] com. The service will then let you know when the shipping status changes. Similar to the TripIt, TrackMyShipments takes advantage of the fact that you already have the tracking numbers sent to you in email, which is similar to the TripIt travel planning service I reviewed previously.

There are a small number of options to configure the level of detail about the status of the shipment. If you choose, the service will notify you about every hop the package takes along the route, but in my experience this is far too much information. I configure the service to notify me on the day of delivery and exception information. This means I get notified that the package is out for delivery and when it is delivered or if there are any problems with the delivery. All of the package carriers have pretty significant lag in their delivery status information and TrackMyShipments can not give you any more information than the carriers have, it’s just more convenient.

The basic TrackMyShipments service is free for tracking up to 9 shipments at a time. You will receive email updates about that status of your package or you can log on to the TrackMyShipments web site to see the status and location of all of your shipments at once. TrackMyShipments Pro costs $20 a year and gives you the ability to track unlimited packages and receive notifications about the shipping status via SMS. I suspect most people will find the basic more than adequate, although those with greater package tracking needs will find the pro service a bargain.

TrackMyShipments created an iPhone and iPod Touch application that gives mobile users the ability to see the current status of all packages tracked and the ability to remove any packages from tracking. Previously the service offered a free lite version of the iPhone application and a full version for $2. Currently, the full iPhone version of TrackMyShipments is available for free on the iTunes store. The iPhone application works with both basic and pro accounts.

Overall, I have found TrackMyShipments to be the most convenient way to track packages online. The service is simple to use and in my experience it just works. You simply send the TrackMyShipments your emails containing the tracking numbers and the service will email or SMS you when package status changes. While neither the TrackMyShipments web site nor the iPhone application will win any design or usability awards, there is little reason to use either unless you want an overview of all shipments at once. TrackMyShipments currently supports tracking DHL, FedEx, UPS, and US Postal Service packages.

New and Noteworthy in Passwords and Authentication for 11/09/09

The Electric Alchemy security consulting firm has an interesting post about Cracking Passwords in the Cloud: Breaking PGP on EC2 with EDPR describing their experiences running Elcomsoft’s Distributed Password Recovery tool across 100 Amazon Elastic Computing Cloud (EC2) instances. The goal was to crack the passwords of several files in the old PGP ZIP format. The results clearly show that the cost of recovering relatively simple passwords that are all lower case and less than 10 letters, has become affordable. Longer and more complex passwords with mixed case and symbols are still prohibitive to recover. The graphs make it easy to see that small amounts of additional complexity dramatically increase the difficulty of recovering the password. Electric Alchemy posted a follow up as Cracking Passwords in the Cloud Q&A.

In his post, Twitter, OAuth and Passwords – Oh My!, Terence Eden describes a potential risk with OAuth if a user changes their password on a service such as Twitter, but still has active OAuth tokens that are not invalidated. He proposes a scenario where a user believes he has lost control of his password and changes it, but does not realize that an attacker has also authorized other services to access the Twitter account and still has access. The OAuth developers point out that this is not a design flaw as typically users would not want to invalidate all of their OAuth tokens, but that they should check to make sure if they have personally authorized all the services linked to that OAuth site. The resulting discussion in comments and related posts is interesting. I do believe that when a user changes a password on a site, the service should all of their active OAuth tokens for inspection along with an interface to invalidate them at the same time in case the attacker created new OAuth-based authorizations. Eden’s points out a more complex problem where the attacker might have authorized an OAuth token for a service that the user has already previously authorized.

The article 30 years of failure: the username/password combination by John Timmer in Ars Technica describes a recent study published in the 2009 Proceedings of the Human Factors and Ergonomics Society Hoonakker et. al. The study included two rounds of focus groups and a survey given to the employees of a large organization that asked about password habits. They received 836 responses that illustrated a litany of problems users have associated with remembering and managing passwords. The results are not surprising, but detailed breakdown in the analysis is valuable for determining the scope of the problem. The authors indicate the tradeoffs between security and usability are significant and that we need to find ways to make it easier for users to maintain good security practices. The paper includes a nice overview of previous research and current options for improving the situation.

New and Noteworthy in Messaging for 10/19/09

In hist post Email Newsletters Are Serious Business, Jason Baptiste describes the focus, estimated number of subscribers, and profits for DailyCandy, Thrillist, Help a Reporter Out, Jason Calacanis’ List, and Ideal Bite newsletters. Baptiste reports that DailyCandy and Ideal Bite sold for $125 million and $20 million respectively. Some of the reasons he attributes to the success of email newsletters are that they are “opt-in and permission based, usually a targeted demographic or crowd, and that they provide utility or gratification to the reader.” The article is worth a look although I wish he provided more direct links for the financial numbers.

Denis Papathanasiou writes about his experiences of being Blacklisted as Malware: a Downside of using Amazon EC2. He says that when his startup launched their web service on EC2 they immediately found themselves listed on three web filtering lists. He was able to make an appeal to each of the blacklists and have his site removed after inspection, but wondered how me might find out about new blacklists in the future. Originally, Papathanasiou attributed the problem as specific to EC2, however commenters on his post quickly pointed that it was unlikely there was anything specific to Amazon’s services. For example, his IP address may have been recently used by someone else for purposes that may have attracted attention of the blacklists. In addition his domain name may well have had negative reputation from its previous owner.

Credit Karma created a graphic linking Credit Scores and Email Domains, which is intriguing, but ultimately a gimmick and not particularly useful as their 20k address sample is likely skewed enough to render the results meaningless. The comments are more entertaining than the original article. Quite a few comments lambast Credit Karma for both their data analysis and their visualization choices that create obvious distortions in the data. For example, the article does not take into consideration that many users may well have used a secondary email address to sign up with the service as they may have been worried about spam.

The State of User Tracking and the Impossibility of Anonymizing Data

What we think is reasonable, commonplace, or even possible in terms of protecting or violating online privacy shifts constantly. Recent developments in tools and techniques for tracking online behavior and identifying individuals from supposedly anonymized data sets should cause us to reevaluate what is possible.

Katherine McKinley of iSEC Partners published a detailed analysis of how popular browsers and browser extensions handle cookies and other methods of local data storage used for tracking users in her December, 2008, paper Cleaning Up after Cookies (PDF). McKinley tested the ability for browsers and extensions to clear the private data as well as “private browsing” features. She found that most browsers attempted to clear previous stored private data, but often left some data accessible. She found that Adobe Flash did not attempt to remove this data and in fact stored it in such a way that it circumvented most privacy protections offered by browsers. iSEC Partners created an online version of the test used in the article to allow individuals to test their own configurations. It is available at Breadcrumbs Tracker.

The August, 2009 paper Flash Cookies and Privacy by Ashkan Soltani and Shannon Canty and Quentin Mayo and Lauren Thomas and Chris Jay Hoofnagle at UC Berkeley focuses directly on the privacy issues related to Flash Cookies. The authors survey the top 100 web sites according to QuantCast in July of 2009 and found that more than half of them used Flash cookies. The authors note that unlike standard HTTP cookies, Flash cookies do not have an expiration date and are stored in a different location on the file system that is harder to find. Most cookie management tools will not delete these type of cookies and they remain in place even when private browsing mode in enabled. The authors found that Flash cookies were frequently employed to track users that had explicitly attempted to prevent cookie tracking by using the Flash cookie to regenerate a HTTP cookie that had been deleted.

Most online services use multiple tracking services for analytics, performance monitoring, and usability analysis. A mixture of JavaScript-based tracking codes and cookies is the most common method for user tracking. The paper On the Leakage of Personally Identifiable Information Via Online Social Networks (PDF) presented at the ACM Workshop on Online Social Networks by Balachander Krishnamurthy and Craig Wills describes the techniques used by advertising firms and social networks services to track users and the types of information they release. The authors studied information leakage from twelve online social networks and found that the bulk of user information is released through HTTP headers and third-party cookies.

In his post Netflix’s Impending (But Still Avoidable) Multi-Million Dollar Privacy Blunder on the Freedom to Tinker blog, Paul Ohm discusses his 2009 publication Broken Promises of Privacy: Responding to the Surprising Failure of Anonymization in the context of the announcement for the second Netflix prize to improve the accuracy of Netflix predictions. Ohm argues that it is not possible to anonymize the data and that it is irresponsible and possibly illegal to release it. Netflix released a half a million anonymized subscriber records for analysis in the original contest. The one million dollar prize resulted in significant numbers of researchers entering the contest.

Soon after the Netflix released the records, researchers Arvind Narayanan and Vitaly Shmatikov proved they could identify individual subscribers by combining the Netflix data with other databases. Their publication Robust De-anonymization of Large Sparse Datasets (PDF) presented at the 2008 IEEE Symposium on Security and Privacy describes How to Break Anonymity of the Netflix Prize Dataset. Narayanan and Shmatikov continued their research and demonstrated de-anonymizing social networks such as Twitter in De-Anonymizing Social Networks (PDF) (paper FAQ) a paper presented at the 2009 IEEE Symposium on Security and Privacy. Ohm, reminds the readers about the scandal that occurred in 2006 when AOL researchers Greg Pass, Abdur Chowdhury, and Cayley Torgeson presented their paper A Picture of Search (PDF) at the first International Conference on Scalable Information Systems. The authors released an anonymized dataset they analyzed in the paper that included more than six hundred thousand AOL users, some individuals were subsequently individually identified.

Carnegie Mellon University professor Latanya Sweeney developed the foundation for much of the current work on de-anonymizing data sets. Her paper All the Data on All The People (editor: abstract is no longer publicly available; contact author) published in 2000, showed that it was possible to identify individuals in US Census data using only a few variables. The paper argues that it is possible to identify almost 90% of the US population using only full date of birth, gender, and ZIP code.

Alessandro Acquisti and Ralph Gross (no relation) presented their research on Predicting Social Security Numbers from Public Data. The authors demonstrate that it is possible to automate the process of predicting an individual’s Social Security Number (SSN) for large portions of the population using public information. The information used to create predictions is easily harvested from social networking sites, voter registration records, and commercial databases. Aquiusti and Gross argue that we must reconsider our policies around the use of SSNs, which are commonly used for authentication and frequently abused by identity thieves.

You should follow me on Twitter.

New and Noteworthy in Security for 9/24/09

SANS’ report The Top Cyber Security Risks for September 2009 states that “Application Vulnerabilities Exceed OS Vulnerabilities.” The report lists two main areas of vulnerability. First, outdated client-side software such as Adobe Acrobat Reader, Flash, Microsoft Office, and QuickTime are the primary vectors for attack on desktops. Second, that web applications comprise more than 60% of the attacks overall and that SQL Injection, Cross-site Scripting (XSS), and PHP File Include attacks are the three most popular of those types of attacks.

Schneier’s post on Hacking Two-Factor Authentication reiterates his 2005 concerns that man-in-the-middle and trojan attacks are major risks two factor authentication. Schneier cites the recent article Real-Time Hackers Foil Two-Factor Security by Robert Lemos in MIT Technology Review. The story describes how a trojan application extracted more than 400 thousand dollars from a construction company’s bank account during the time the account manager was issuing payments. Schneier argues that banks need to increase their effort to authenticate transactions rather than individuals. He believes this will only occur when banks are forced to accept liability for the losses. Schneier says once this happens, the industry will begin to focus on authenticating transactions as the credit card companies have done.

David Naylor’s post on the Dangers of Custom Shortened URLs describes a problem where a user registered robots.txt as a bit.ly URL and then redirected it to another page. Naylor hypothesizes that a web crawler that performed insufficient checking could be convinced to not crawl the site or provide alternate information in a sitemap.xml. The general class of problem’s Naylor describes is more interesting than the specific example in the article. Similar problems could potentially occur in services that offer usernames in the format of servicename.com/username. This is a good example of why anyone offering custom namespaces in the forms of usernames or URL should give some thought to assignments with potential unwanted side effects or risks.

New and Noteworthy in Messaging for 9/20/09

Campaign Monitor recently updated and reorganized its excellent Guide to CSS support in email clients. I find the logical groupings of the new guide make it even more useful. CSS support varies widely across mail clients, which makes Campaign Monitor’s guide is well worth examining for anyone designing HTML email messages that include CSS. A version of the guide with the ten most popular email clients is available in HTML, while a full version of the guide that includes 23 mail clients is available in PDF and Excel formats. Recent updates to the guide include MySpace Mail and seven mobile email clients. The mobile email clients roughly in order of CSS functionality are iPhone 3.0, Android, Android Gmail application, Palm Pre (WebOS), Palm Treo (Windows Mobile 6.5), Palm Treo (Palm Garnet OS), and the Blackberry.

In a post on Smarterware, Gina Trapani makes a good point that you should Never Use Inactive Webmail as Your Secondary Email Account. Trapini says that people often use a infrequently accessed webmail account or other secondary account when signing up with services out of fear that providing their email address might result in an increase in spam. The problem is that most free webmail services deactivate accounts that have not been used in a specified amount of time. Deactivation typically means that the service will begin bouncing mail to that account. After an additional amount of time the account may be deleted entirely and in some cases reassigned to someone else. This can have severe consequences as it did in the Twitter hack story since a deleted hotmail account was assigned as the recovery email address for the Twitter employees Gmail account. Thus the attacker simply registered the recycled Hotmail username and reset the Gmail account. The moral of the story is that you should only register accounts with email addresses you will be able to maintain control over time. If you do register an account with an infrequently used webmail account, put an entry on your calendar to log into the account every few months. People do regularly change primary email addresses and it is not a bad idea to periodically review the email addresses listed in your account information for important services.

Symantec’s latest Spam and Phishing Landscape: September 2009 report finds that while the overall volume of spam decreased two percent since the previous report, they still place the overall spam rate at 87%. Phishing attacks decreased by 45%. There was a 74% decrease in the use of phishing toolkits to automate the phishing process. Symantec hypothesizes this was largely due to the discontinuation of a specific toolkit that targeted a social network site. The discontinuation was likely caused by the shutdown of command and control servers for the toolkit.

Easily Clean up Duplicates in iPhoto to Simplify Sharing

As Apple iPhoto has added functionality to easily share photos first with email and now with Facebook, Flickr, and MobileMe, I have found it increasingly useful. The program generally does a great job of managing large collections of data without you needing to worry how it manages the underlying data. However, if something goes wrong, it can take a bit of work to find out how to look under the hood to try to fix it. Duplicate photos are one such problem as they take up disk space and make for additional work when trying to select which photos use when creating album to share.

A few years ago, I cleaned out hundreds of duplicates from my iPhoto library that were the result of a few imports that went bad because of a faulty USB cable. I used a set of command line tools (find, md5, grep, uniq) to help me make the comparisons. The process was frustrating, time intensive, and generally unpleasant. The problem is complicated by the fact that expects photos to be in a set of folders under its control and builds an index over those files, so if you make changes, you may need to rebuild your iPhoto library. I highly recommend you avoid this path.

Recently, I felt like it was a good time to clean up my library again so I did a bit of searching and came across Duplicate Annihilator from Brattoo Propaganda Software. The license was inexpensive, about $8, so I bought it. I tried it on my own collection the other week and the process went surprisingly well.

Duplicate Annihilator has a few methods to figure out duplicates and a new “magic” will pick the best method for you automatically. Typically the program uses a MD5 hash to checksum the files as the default. You can of course do this yourself for free as I did in the past, but where I spent hours painfully comparing sets of number before, I spent maybe 15 minutes this time around. I did not want blindly trust the program so I manually compared the results and all photos listed as duplicates clearly had multiple versions.

The application nicely tags all of your duplicates in iPhoto comments, which makes both searching for and deleting the duplicates straightforward and painless. Duplicate Annihilator uses iPhoto itself for file management and tagging so no mucking with the file system or the iPhoto library files is necessary. I recently recommended it to several friends who experienced similar results. I recommend trying out Duplicate Annihilator if you want to clean up a messy iPhoto library.

Validating Email Address in Web Forms - The Hazards of Complexity

Validating data in web forms reduces the likelihood of inadvertent submission of data that is incorrectly formatted, inconsistent, or incomplete. It is often useful to validate email addresses, especially if the addresses are going to be used for receipts or other types of follow up. Validation (and basic bounds checking) can also reduce the chance that email address field could be used as an attack vector.

It is important to note that email addresses can be significantly more complicated than commonly thought. This means that it is important to consult the most current RFCs for email standards and ICANN announcements for new types of Top Level Domain names otherwise valid email addresses may be blocked. For example, the plus character is a valid within the local portion of an email address. The plus is typically used as an optional feature for sub-addressing and is supported in many mail servers, Cyrus IMAP installations, and in Gmail. However, the plus sign is frequently rejected as invalid by many web forms.

Unless there is a specific need for sophisticated email address validation, I recommend that sites limited themselves to very basic validation such as simply checking for an @ sign and possibly characters to either side of it. When sophisticated validation is used, it is important to test the algorithm and make sure it is kept up to date. This Stack Overflow thread, How far should one take e-mail address validation?, details many of the problems with being too clever when validating addresses. There will always be users who purposefully submit incorrect data and while this can be limited somewhat by validation, simply sending a verification email is a far more effective method.

Dave Child’s early posts from 2004, Email Address Validation and Email Address Validation Updated, laid out many of the complexities of more sophisticated email address validation. The comments to the posts brought up edge cases where the script resulted in both false positives and false negatives. Child has continued to revise the script and it is available as a Google Code project php-email-address-validation.

Douglas Lovell’s 2007 Linux Journal article Validate an E-Mail Address with PHP, the Right Way attempted to present and even more complex email validation algorithm along with detailed notes on the requirements relating to the various updated RFCs. The comments to this article also bring up many edge cases, which demonstrate the complexity of accurately validating email addresses. Jochen Topf’s articles, the Anatomy of a Mail Address and Characters in the local part of a mail address, are good introductions to the problem as well.

Dominic Sayers wrote a series of posts that iterated on a further refined algorithm that resulted in the RFC-compliant email address validator. Sayers also produced a set of unit tests with a large collection of email addresses in order to compare his own algorithm against others. His PHP code is regularly updated and is also available on Google Code. Cal Henderson (formerly of Flickr) wrote his own RFC (2)822 & 3696 Email Address Parser in PHP, which also passes 100% of Sayers Unit tests.

The examples above are all in PHP. Unfortunately, I could not find a client-side only validation option in JavaScript that was anywhere near as complete as an of the PHP examples. Hopefully, someone will write one or port one of the PHP versions to JavaScript. Les Hazlewood released a Java-based application for Email Validation using Regular Expressions (the Right Way) and Casey Connor of Boxbe updated Hazlewood’s EmailAddress.java code.

The chapter on inline validation from Luke Wroblewski’s excellent book Web Form Design: Filling in the Blanks describes how inline validation can improve the usability of web forms. He suggests that users should receive immediate feedback on whether or not a given input will be accepted as well as suggestions for correcting invalid input. His blog post Web Form Design: Boingo shows a real world example where inline validation would improve the user experience for a registration form. A recent report Web forms design guidelines: an eyetracking study from cxpartners’ Chui Chui Tan provides even more suggestions on how to best handle inline validation.

In this article, I primarily discuss server-side validation, rather than validation by SMTP commands such as looking for 250 and 550 SMTP response codes as presented in How to check if an email address exists without sending an email?. If the email address is to be used in a mailing list I recommend that systems send an email with a URL that must be clicked for verification so that the address qualifies as double opt-in for compliance with CAN SPAM and most major Email Service Provider requirements.

APIs for Building SMS and Push Notifications Into Applications

In many ways, text messages/SMS messages delivered to mobile phones are the default for near real-time consumer notifications. The advantage of text messages is that they are fast, reliable, and nearly all Internet connected consumers have access to them, even when they are not at their computers. US consumers are catching up to the rest of the world in familiarity with text messages so people increasingly use them for everything from flight arrival information to bank balance notifications to Twitter updates. The problem is that SMS messages can be expensive for both businesses and consumers. Carrier rates vary, but in general rates for consumer SMS messages have increased. Each message sent or received without a bulk message plan can cost up to $0.20 per message for domestic messages and even higher for international messages An unlimited text messaging plan can cost $20 per month per line. This means that SMS messages can be quite expensive for individuals without a bulk message plan or for those who go substantially over their alloted number of messages. Sending SMS notification messages can be a significant expense for businesses, even with substantial discounts for bulk purchases. Some very large SMS senders have managed to strike deals with carriers as the carriers generate revenue from delivering the messages from the large volume SMS senders.

Developers have many SMS aggregators to choose from such as Bulk SMS, Clickatell, Esendex, and Ribbit that provide developer APIs for integrate SMS into applications. Developers who wish to build their own SMS service can choose from a number of commercial an open source packages. Kannel is the most well known open source SMS (and WAP) gateway. Slingshot SMS from MobileActive is a new open source option that is simple and can run from a laptop or USB drive with a standard GSM modem or cell phone. Slingshot SMS is written in Python and will run on Mac OS X, Windows, and Linux. The O’Reilly ebook How to Build an SMS Service O’Reilly Media by Brian Retford, Jordan Schwartz is an excellent primer on beginning development, although the book was published in 2007 and some information needs an update. The authors describe building SMS services with the open source SMS Toolkit for the .NET Framework from Microsoft Research India.

Push services are rapidly becoming a viable alternative to push data and notifications to smartphones. Push notifications are delivered can be delivered over both cellular data and WiFi data connections. Since most US smartphone users have unlimited data plans, there are no concerns about additional charges from push data. The disadvantage is that push notifications require a data connection and are queued for delivery when a data connection is not available. SMS messages are delivered over the voice channel and arrive even when no cellular data service is available. Users who do not have unlimited data plans or who roam internationally, have a very real concern that push data could result in significant additional charges.

RIM’s BlackBerry has long been known for the speed and reliability of its push-based email service and RIM recently opened up a BlackBerry Push API to developers. Microsoft Exchange ActiveSync Direct Push is well established on the Windows Mobile and Symbian Smartphone platforms. Palm is readying its own push infrastructure for its WebOS on the Palm Pre, called the Mojo Messaging Service. Google will enable the Mobile Java Push API for Android devices in 2009. The Apple Push Notification service (APNS) for iPhone or an Internet connected iPod Touch devices has received far and away the most public attention and developer support.

With first version of the iPhone OS, Yahoo! email was only push-based email option available. The second version of iPhone OS brought support for Microsoft Exchange ActiveSync Direct Push to deliver messages, events, and contacts. Apple’s Push Notification service arrived with the third generation of the iPhone OS. APNS keeps a persistent connection open to each device allows developers to deliver real-time messages. Third party developers are not currently allowed to run applications in the background on the iPhone OS.

For developers, there are a few potential difficulties with Apple push notifications. First, even though the system is designed to be highly reliable, there is no delivery information available. Second, all push notifications are centralized and must be delivered through Apple’s servers. Third, even though all push notifications must be delivered through Apple, developers must run their own infrastructure in order handle push operations for their application, this infrastructure must scale as the user base grows. Urban Airship offers a service to simplify the integration of push notifications into iPhone applications.

Difficulties aside, iPhone developers are rushing to add push notifications where they make sense. Push notifications have only been available for about two months and already AOL, Associated Press, Ebay, E*Trade, Yahoo!, Zillow, and many smaller developers have added push notifications to their applications. Boxed Ice, a UK software development firm has published a nice tutorial called How to build an Apple Push Notification provider server.