HomeDigital EditionSearch Dotnet Cd
ASP.NET C# Certification Exams The CLI Data Access Editorials Extending .NET Fundamentals Interoperability Interviews Migrate Mobile .NET Mono .NET Interface Object-Oriented Programming Open Source Optimization Product/Book Reviews Security Source Code UML Visual Studio .NET

Developing .NET Applications Using Passport
Could Passport be Web services first-class ticket?

Web services have rapidly become the de facto standard for application-toapplication interoperability, and they are now one of the most frequently used designs in the enterprise architect's toolbox. Furthermore, Microsoft's Visual Studio .NET integrated development environment has proven to be one of the quickest and easiest ways to develop and deploy them.

Microsoft Passport has been available as a Web service for some time, but due to its structure and security concerns only larger enterprises having the infrastructure to support and develop applications, such as Citibank and eBay, really took advantage of it.

Passport is now a viable application to expose as a Web service to the middle tier, so corporate accounts can include Passport into new and existing applications. The reality of using Passport as an entry point for Web services developed on the .NET platform is here. With 200 million accounts, Passport could make applications coming out of a wider range of corporations more accessible in the near future. But there are some necessary steps to take, and some hurdles to avoid in the development process.

How Passport Works
Passport provides a centralized authentication system for all .NET services. Its single sign-in (SSI) technology means users no longer have to remember multiple user names and passwords for every Web site that requires them to log in. A single Passport account serves as identification to enter all participating sites.

Companies can employ this already-available authentication tool to implement new applications that were not possible before. Without the underlying infrastructure or money to spend on new technology, but instead a large investment in Web services, companies can use Passport and hook up to a ready-made database of users that lets them in readily and easily. Another advantage is that the Web services option is both cheaper and easier than buying an additional authentication package or building it from scratch.

Development
Passport offers the capability for developers to bind authentication within XML Web services. It makes a lot of sense and takes away a lot of fears. Why should developers deal with writing all of the security levels and the useridentification list?

If VS.NET becomes the de facto standard for building Web services, developers know that Microsoft already has a sensible model for scaling, which is also cost effective. The issue is not which platform to choose, but rather how to use the tool effectively in business.

Developers need to work with line-of-business people to think beyond a single application to how the company can build a customer interface. This will help build solutions that can handle more customers with fewer resources and extend the reach of business applications.

It is clear that Web services provide value through interoperability across platforms and vendor offerings, but that value diminishes if users need to provide credentials every time a boundary is crossed.

In order to achieve an SSI system, the architecture of the system must be flexible enough to allow a method of authenticating users and services on the supply chain through disparate systems and networks. By adopting Passport as an authentication and identity provider – and a strategic approach to solutions architecture – developers and development teams can build security and identity into the boilerplate of the solution. This not only simplifies the complexity of building secure applications by outsourcing the identity and authentication piece to a "trusted" specialized agent, but also gives the Web service the ability to concentrate on the service provided and the authority to consume it.

Developers should consider the following goals when creating a solution:

  • Define the problem clearly and concisely
  • Develop a clear design and plan for building the solution
  • Establish an integrated team and ensure full communication at all levels
  • Set standards and respect them throughout the life cycle
  • Maintain a continuous risk management approach to all issues and decisions
  • Approach security with skepticism. Always analyze the implications of the components and how they can be used, not only how they will be used
  • Take an object-oriented approach to planning, designing, and developing

    Usability and Integration
    Companies will still have full control of the client's data, but will provide an alternate way to log in to the system. We are far from an automated, fully authenticated supply chain. Right now, Starbucks authenticates its users through Passport. They come into the site for the first time, log in to Passport, add an e-mail address to open an account with Starbucks, and link it to their Passport account. There is a trust agent to authenticate a user on the site, but users who prefer the traditional way can still open accounts with an e-mail and a password.

    It will take time before Passport becomes fully adopted by the public. In the meantime, developers need to create solutions; using both proprietary authentication services and other agents such as Passport. Sites that can afford a single sign-in process, such as MSN, Hotmail, and other Microsoft family sites, can force people to use a single sign-in process, but other sites may be more hesitant, for fear of losing customers.

    Security
    There is always a trust issue with the question of how you can be sure that the information is truly secure and not being used by others. If you trust Microsoft with your operating system, why not trust this? The majority of users will already have a trust base with Microsoft, but the recent breaches in security have raised the question of whether Passport data could be more vulnerable. As the Passport database grows, the amount of information on users is huge, from MSN, Hotmail, and eBay for example. Microsoft already has access to these users, so there is no additional risk for a company in developing services for Passport users and giving anything else away.

    The possibility of impersonation could potentially allow someone to go into Citicards.com, for example, and hack into the records. Because of this security risk, Citicards forces users to provide a second password registered on Citibank's records.

    There is also a risk on the client side of creating cookies that can be captured and used for identity theft or impersonation. Web services will not create cookies on servers or databases. However, it takes only an insecure application and a careless user to capture a user's Passport credentials or impersonate a user. Some possible scenarios include:
    1.  A user is using a vulnerable browser (such as all IE browsers prior to 5.5) that exposes the cookies' content to hackers over the Web. The problem is not the cookies themselves, but the browser. Hackers do not need to decrypt the Passport token. Instead, they can use the token and retrieve the identity information.
    2.  Users go to a site that resembles a Passport log-in page and enter their credentials, which are then sent to the hackers.
    3.  When logging into Passport a user has checked the box that reads, "Sign me in automatically on this computer." This creates a cookie that will log the user in automatically to any Passport site. When this cookie is compromised, it exposes the greatest risk to the user.

    Users should log out immediately after visiting a Passportenabled site. This process will destroy the majority of cookies and the user will be protected.

    Measures Microsoft Can Take to Ensure Security
    To ensure security, Microsoft needs to manage the media and manage the issuance of patches to their software as vulnerabilities are either exposed or identified. Microsoft has already taken the Secure Code/Applications initiative. Codes and applications are analyzed from a security standpoint and security experts assess all applications and identify all potential security flaws and risks, mitigate the risks, take proper action, and ensure that only certified code is issued. This initiative comes from the inside out and will change the way applications are developed and used on the Microsoft platform. Perhaps this past year's Windows 2003 release has helped users to begin identifying Microsoft as a secure platform. But it will take years to change Microsoft's unsecure branding, and the competition will continue to exploit this weakness.

    Measures Developers Can Take to Add Further Security
    It is very difficult to build a totally secure system, but there are certain variables provided by the browser that can be used to further validate a user and make this type of attack more difficult. There are a couple of features developers can use to ensure further protection to their users, but each requires extra coding and administration.

  • Using the hashed value of the UserAgent header as an additional identity token. To replicate this, a hacker would need to replicate the user's browser; a task that while possible, will definitely add an extra layer of complexity
  • Time the session out in a shorter timeframe. This forces the user to reenter the password upon timeout
  • Use the IP address as a validation point. Certain Web technologies, such as Web proxies, would need to be considered, but this would add an extra layer of validation to the authentication process
  • Require users to provide their password when purchasing items.
  • Make sure that when the user is leaving a site, all high-risk cookies are deleted from the system.

    What Does the Future Hold?
    The largest issue ahead in spreading adoption is the education of corporate IT to demonstrate what Web services buys you and why you want to do it. The decision and the image come from the corporate level and spread through the media. In the face of recent fears, developers cannot do much to change this. Gartner's suggestion of submitting Passport's source code for opensource review to regain trust would be a solid step in the right direction.

    The future of .NET Web services and Passport is still unclear. The first step is the identity and authentication standard that was recently released. An architecture and development team can see and understand the technical benefits of having all applications distributed and working as Web services. For business, the idea of turning information into a service is amazing progress. The concept of offering an application as a service and charging for its use or consumption is a paradigm shift for the software industry.

    On the Passport side, there are other competitors starting to gain further momentum, and it is possible that other technologies for identification and authentication will become more accessible to the public. Web services will continue to evolve and will eventually offer services never imagined before.

    Author Bio
    Ted Dinsmore is president of Conchango New York, which he founded in 1997. He has since built it into a full consultancy, establishing practices in the Connecticut and Boston markets. He is responsible for sales and business development in the Northeast region, with a customer base of Fortune 500 firms. In addition, he has built a relationship with Microsoft to provide solutions in the New York and New England marketplace for international clients.

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.

      E-mail: info@sys-con.com