eCommerce and Security
Volume Number: 13
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:
• Crazy Shirts at http://www.crazyshirts.com.
• Educorp Direct at http://www.educorp.com.
• Club Mac at http://www.club-mac.com.
• CD Direct at http://www.cddirect.co.uk/.
• Pro Sound and Lighting at http://www.cddirect.co.uk/.
• APCnet CyerbMall at http://www.apcn.com/.
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.
Security Concerns
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.
Conclusion
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:
• Pacific Coast Software at http://www.pacific-coast.com.
• Everyware Inc. at http://www.everyware.com.
• BlueWorld Communications at http://www.blueworld.com.
• Icat at http://www.icat.com.
• StarNine Technologies at http://www.starnine.com.
______________________________
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 jayv2@pacific-coast.com.