eCommerce and Security
Volume Number: 13 (1997)
Issue Number: 11
Column Tag: Webtech
eCommerce and the Security Myth
by Jay Van Vark
The real security issues of eCommerce
eCommerce in Today's Market
Business is done with many communication technologies today, walk-in retail, mail-order phone, mail-order fax etc. The Web and the Internet are just one another communication medium with its own benefits and disadvantages. The cost for a business to have a world wide presence is the lowest in history with the World Wide Web. Budgets of the 1980's would have listed at least $100,000 per month in expenses to have a business handling international customers 24 hours a day, 7 days a week. Today those same budgets are closer to $5,000 per month and some even much lower. Yet the quality of service that the customer of these businesses is expecting continues to climb.
With these demands you need a scaleable sales force, immediate, accurate and secure information exchange, automatic delivery of products, and accurate tracking information for package delivery. In this article we will discuss the issues in constructing a web site that can give you all of this and much more. However, there are some pitfalls to be watchful of. The anonymity of the people buying from you can make you feel like you are talking to Mr. X. You rarely have the chance to speak directly with your customers. It is also far more difficult to get a feel for the size and condition of your vendors and your competitors. You have to help your customers overcome the fear that many people have putting their credit card number into a form on a web page. Using and understanding eCommerce can give you a strong advantage over your competitors while providing greater value and comfort to your customers.
How eCommerce is Different from Normal Business
eCommerce is very similar to the mail-order business. You normally do not have your customer right in front of you to confirm the signatures with the back of their credit card. You do have an advantage in eCommerce in that you can track exactly where your customer is "calling" from. This can help to reduce fraud, unlike mail-order and other types of communication. It also doesn't cost you any more to be open 24 hours a day, 7 days a week.
You have the opportunity to give your customer more information about their purchase, both in terms of product information and in delivery tracking, you can provide direct links to shipping services with tracking numbers and much more. With many of the emerging payment technologies you will also be able to offer smaller priced items for sale, that is, access to a complete new story for 50 cents is now practical in eCommerce, but it would be silly to do with mail-order. If you sell electronic products, like software, your customer doesn't have to wait for overnight delivery services, you can give them immediate delivery once the payment has been cleared.
To make sure that all of this access to information is accurate and secure, there are some precautions that you should take. Don't be like most people and assume that eCommerce is just an electronic catalog on a SSL server. These are the same people that are happy to accept the price for a product from a static HTML page. That would be like honoring a faxed order form that a customer has written their own prices written on; imagine buying a new PowerBook 1400 cs for, oh, how about $10. We will come back to this issue later, first what do we mean by SSL server?
What is SSL?
SSL stands for Secure Sockets Layer. This is the technique in which web servers and web browsers encrypt and decrypt all of the information that they transmit and recieve. Secret decoder ring time. Both ends establish and use the same scheme for making sure that no one else is listening to their conversation. Web browsers will typically indicate a secure connection with an alert when the connection is first established and with a key graphic somewhere in the window. As of this writing (August 1997), the only current SSL server implementation available on the Macintosh is from StarNine, WebStar SSL.
SSL encrypts every bit of data that is transmitted from the server to the customer and vice versa. Think about that one, every bit of data, text, pictures and all. This can be very wasteful if you don't use it carefully. Not to mention the fact that there are still some browsers out there that aren't capable of SSL and those users wouldn't be able to access the secure part of your site. You don't want to slam the door on any customers. So now that we have a technique to keep our conversation private, what does the conversation look like?
Flow of a eCommerce transaction
We often describe the web as being analogous to doing business with faxes. Imagine that the home page of your site is a fax back form. You have checkboxes for people to indicate what they are interested in and, in return, you send them another fax. The customer then fills out some more check boxes and we continue the exchange until they get what they want. The web is very similar, the site must respond with a page which elicits more information from the customer guiding them to their buying decision.
The basic flow of a eCommerce site has 4 major sections 1) Entry & Search, 2) Results, 3) Invoice, 4) Thank You. Each of these sections can be a single page on simple sites, or become complete sections on more complicated sites. On the Entry & Search page you must have some way for the customer to select what they want to see. (This actually can be embedded right in the Entry page if you only have a few products, but to keep the flow simple we'll assume that it is its own page.) On the Results page you display information about a product or products and the option to add it to the customer's shopping cart or Invoice. Once you are on the Invoice page you collect the necessary payment information from the customer and complete the order. These steps are illustrated in Figure 1.
Figure 1. Flow of a eCommerce Web Site,
courtesy of Pacific Coast Software.
Here are some sites that follow the above flow, just to mention a few:
As you can tell from this type of flow, all of the pages past the entry page are returned from a CGI. There are a number of commercially available CGIs designed for both database access and the complete eCommerce process, including WebCatalog from StarNine, Tango Merchant from Everyware, Icat from Icat, and many others, both commercial and shareware. You can even write all of this interaction in your own CGI with AppleScript, Frontier or another programming language. Many of the commercial products have their own language to help you. Let's spend just a few minutes talking about the key functions reguired for the CGI to handle the eCommerce transaction.
Tracking the customer
Of primary importance in any transaction is that the customer feel comfortable with your communication. To make it seem like the website is talking to each customer individually you must track who the customer is and what they are interested in. The most common way this is achieved on the web is with the shopping cart concept. This allows many different people to be shopping on your site and all have their own sets of items in their cart. In our fax back example you would have to use something like the fax number to keep track of each customer. The equivalent with the web would be the IP number (known as IP tracking). The one major difference is that a customer's fax number doesn't change very often, while a customer's IP number can change everytime that they connect to the Internet -- for those people using dial up accounts or other dynamic addressing situations -- so IP numbers are not a very reliable way to track customers.
Another common tracking technique is cookies. You can have your website put a cookie onto the customer's machine so that it maintains important information, like the contents of their shopping cart. A better technique that I have found is tag propagation. This is a technique in which the first page that someone hits when they enter the site assigns a unique number, something like the number of seconds since 1904. This number is in turn passed thru every page on the site and the shopping cart information is stored in a file with that number on the server. This allows a customer to disconnect (by choice or happenstance) from the Internet and not loose the shopping cart information. This can be very important in situations where buying approval from someone else is required for the purchase. Most of the commercial products include a way of doing this. With WebCatalog you insert a cart=[cart] parameter into every HREF and form on your site.
Tracking the customer is very useful not just for the convenience of a shopping cart, but for things like tracking down people that you think are using stolen cards and, more importantly for that all allusive goal, to make the site more usable. Correlating this tracking information with the general web server logs can be used to determine trends of the people visiting your site, are they getting all the information they need to make a buying decision, are they understanding the buying process, are they loosing interest after a certain amount of time. One big advantage of this tracking log is to look for all the searches that people are doing on your site and were they are not finding any products. Maybe you should describe the products more effectively. All of these answers can help you understand ways to change your site to make it more useful.
Calculating Accurate Invoices
The hardest part about calculating invoices is just like fax transactions, you have to wait until you get all of the information from the customer before you can have accurate results. The most obvious place this happens is on the invoice page. Let's just say we had SKU, TITLE, QUANTITY and PRICE on our invoice. In the simplest case the customer gets to the invoice from the result of a search, usually with a simple hyperlink, so you assume a quantity of one. Since you want to allow the customer to order more than one of a product, you make the QUANTITY an input field on the invoice. To provide as much feedback as possible there may be a subtotal and other information on the invoice, so if the user changes the quantity, then they may no longer have accurate information.
This should be the first area of concern for the WebMaster. Once the customer has chosen some products, is the subtotal always accurate? Do they understand what they are looking at? Are there any ways to get the system to accept a "bad" subtotal? If the eCommerce product does not confirm the field "PRICE" from the web page with the value in the database, it will accept whatever the incoming page said the price was. What does that mean? You may have a sneaky customer looking at an invoice for a PowerBook 3400. The original page from the web server says the price is $3799. The sneaky customer can save the web page locally as source from his web browser, open the file with SimpleText and change the price to $10. Now the sneaky customer uses his web browser to view that file, fills in the rest of the purchase information and submits the form to the web server. Obviously, you must make sure that your site uses the "real" price for the PowerBook and not the $10 price!
This is just a simple example of calculation issues; add in taxes and shipping costs and you can see that this can easily get very complex. The best way to overcome these issues is to split the invoice into two pages, a proforma invoice and a final invoice. Most of the commercial products do a very good job taking care of these situations. The proforma invoice shows a listing of the shopping cart, possibly with a subtotal, as well as any other information that you need to complete a final invoice, like quantity for each item, what state they are buying from to help with the tax calculation, choice of shipping method etc. Collecting all of that information will allow you to calculate and display a final invoice. With Lasso and Tango you can communicate back to your current database, SQL, FileMaker etc., to calculate these numbers for your website. Not until you get to the Invoice page is any information sensitive. From this point on, you want to make sure that you are communicating only with the customer. You should make sure that no one is listening in.
Areas that we DO care about security
As mentioned in the section about SSL we do want to protect the transmission of sensitive information with something like SSL to keep the eavesdroppers away, but another equally important issue for security is protection from attacks on your web server. People trying to find credit card numbers in accounting logs or just trying to steal products, to buy at ridiculously low or free prices. Prevention of this type of security breach is the most overlooked area. Much of the information on the machine should not be allowed any access. You don't want people knowing even about access statistics without you knowing about it.
The first obvious area to secure is the accounting files. Let's say the web server is doing a great job of keeping people out of sensitive areas, but the same machine is also your ftp server. People are prevented by the web server from getting to your accounting log, but maybe there is a security hole because your ftp server software allows access to this log... so my first advice, limit the access protocols to all sensitive data -- 1) store your accounting logs and other sensitive files outside of the web server folder, WebStar and many other web server products will not serve files outside of their folder tree, 2) don't run ftp and other protocol services on the same machine. Also, make sure that if you are delivering electronic product, only the person that bought it, gets it. For this you should either be copying the product to some unique place only that person is given access to or have a one time password scheme allowing only one shot at downloading the product.
The concern of the web server allowing access to files that are sensitive is best taken care of by your disk organization. Below is a screen shot of a sample organization of your web server folder structure using WebStar and WebCatalog:
Figure 2. Folder Structure for a typical web server.
Figure 3. Folder structure inside WebStar.
Figure 4. Folder structure inside WebCatalog.
Areas that we DON'T care about security
There are many areas within the selection and buying process that are considered public information and therefore don't need security. In fact, the whole process would be slowed down if it sent everything through a SSL server. Imagine if you received a mail-order catalog from MacWarehouse or Club-Mac and you had to put a decoder ring over each letter to figure out what it really was, that would take you hours just to read one page. That is what your browser is doing with SSL data. So, big picture, you only want to use SSL when you are expecting sensitive data from the customer, like a credit card number. Protect that from eavesdroppers with SSL, everything else should go thru the non-SSL server.
eCommerce is more secure than most business we conduct everyday and is getting better every minute. Knowing various hacking techniques on the Internet and having built an eCommerce package, if I wanted to get a few credit card numbers I would head for the local bar and go thru the dumpster long before I would start going after websites. Give yourself time to understand and work with your new sales force. A properly constructed website benefits the consumer with up to the minute information and immediate response. The same website serves as hundreds of sales people for the merchant, all trained with exactly the right information as well as access to tracking information etc. The positive return for the customer and the merchant will help to overcome the myth and fear of the security on the Internet. I would like to end on a observation about most credit cards, even if it is stolen, the owner is only liable for $50.
There are a variety of tools on the market to help you construct your eCommerce web site. Each has its own strengths and weaknesses. To choose the best for your needs, you must carefully research the speed and responsiveness of the server under load, how they handle the security areas and your database connectivity needs, do they have to handle a live existing database. You can find more information to help you with your research at these web addresses:
Jay Van Vark is the founder and CEO of Pacific Coast Software a Internet commerce tool and commerce site hosting company, developers of WebCatalog & WebMerchant, marketed by StarNine. Jay has an engineering background and continues to do much of the engineering on the products and services that Pacific Coast Software offers. He is also an active speaker with the MacCryptography conference as well as other Internet & Macintosh conferences. You can reach him at firstname.lastname@example.org.