Securing Client/Server Transactions Securing Client/Server Transactions Securing Client/Server Transactions The three basic ways that security is implemented in the area of client/server transaction. The first area is firewalls. The basic idea of a firewall to monitor traffic from a trusted network ( a company’s internal network) to an untrusted network (such as the Internet). Firewalls fall into two categories, “proxies” and “packet-filtering” firewalls. Packet-filtering determines whether a packet is allowed or disallowed depending on the source of the packet and the contents of it. Packet-filtering also looks at the source and destination ports, and to determine if a packet is part of an ongoing conversation.
An application-level firewall, better known as a proxy acts as an intermediary between the client and the server. The client application connects to the proxy. The proxy opens a connection to the server and passes information back and forth between the server and the client (refer to Figure 1.). Figure 1. Both firewalls have their advantages and disadvantages.
In most cases both categories will be implemented on the same firewall. A packet-filtering firewall tends to be less secure than a proxy based firewall, since complete knowledge of the protocol is used by the application. However packet filtering can allow a concept known as masquerading. Masquerading is when the firewall takes the outgoing source address on the packets and converts the address so the receiver thinks they are talking to the firewall. The receiver’s packets will have it’s address on it coming back so the firewall can determine which sender gets the packet. The advantage of masquerading is that a company’s internal network can be hidden behind the firewall.
Another security implementation is encryption. Encryption is the process of modifying information so that it can not be read by anyone except the intended recipient. This is done by applying mathematical algorithms that require a “key” to unlock, or decrypt, the original data. Algorithms that use the same key to encrypt and decrypt data are known as “symmetric” encryption algorithms. Algorithms that use different keys to encrypt and decrypt data are known as “asymmetric” or “public-key” encryption algorithms. Encrypted data comes in two forms 40-bit and 128-bit.
40-bit encryption uses a 40 bits of space to encrypt data and 128 bits of space for the 128-bit form. The process of verifying the sender’s identity is known as “authentication”. Authentication can be performed with a user name and password, or with a piece of information known as a “digital certificate”. A digital certificate contains encryption parameters, which can be used to uniquely identify a user or a host system. Verifying that an external party has not modified data is known as “integrity checking”. Integrity checking is done by applying a mathematical algorithm, known as a “hash”, to data before it’s sent and computing the same hash when the data is received.
If the two hashes map to the same result, then the data hasn’t been modified. How do these areas affect client/server transaction? Client/server transaction deals with the everyday transactions that people engage in on the Internet. With each transaction, personal information is sent from client to vendor. The information has a tendency to be sensitive in nature and not something shared with anyone except the vendor. Such information may include social security numbers, credit card numbers, and possibly information for monthly bills (account numbers and balances specifically).
Businesses have to save-guard their customers in order for their customers to feel secure in buying products and services from them. Businesses understand this importance. Some businesses and development groups have evolved from the need to make business transactions more secure on the Internet. In doing so, business presence has grown exponentially over the last decade. Commercials on TV tell business owners if they aren’t on the web, they won’t survive.
Programmers face difficult and exciting challenges in the areas of security for client/server transaction. One of the most popular languages used on the Internet is Java. Java runs on many different platforms, which makes it very versatile in Internet applications. JavaSoftTM has introduced the Java Commerce Client (JCC) framework. The JCC provides a secure, robust, and reliable platform that enables software vendors to write electronic commerce applications.
With a framework, you focus on the application-specific business logic and let the framework handle the low-level programming details. Application-specific code is organized into modules called cassettes. A cassette represents one part (or module) of a transaction. Cassettes are mixed and matched to lay the foundation for an electronic transaction. A cassette designed by one vendor can interact with one or more cassettes by that same vendor or by agreement with a cassette from another vendor. The JCC framework orchestrates cassette interoperations and enforces the high level of security required for reliable transactions between clients and merchant servers. The framework and cassette innovation supports a full range of large and small money-based applications such as personal finance software, tax calculation programs, and retail sales applications–all of which can run on any Java-enabled platform with the JCC framework installed.
The JCC framework consists of commerce-related classes, interfaces, and cassettes for you to implement your own application-specific electronic commerce code, and an environment within which the application code runs. Clients with an installed and configured JCC framework can initiate transactions on a commerce server that execute on the client machine. The JCC framework enables the cassette interoperations that form a transaction. A cassette is a signed Java ARchive (JAR) file containing the compiled classes that implement one part of an electronic commerce transaction on the client side. One transaction typically involves several interoperating cassettes.
Cassette functionality is defined primarily by the code in a commerce Bean. There are several types of commerce Beans, but the following three types that provide the basic functionality for a purchase transaction: An operation Bean to implement an action such as a purchase. A protocol Bean to implement the electronic transfer standard to use. An instrument Bean to implement the form of payment such as VISA. An electronic purchase transaction requires a purchase operation cassette, one or more protocol cassettes, and one or more instrument cassettes.
Note that a commerce Bean is similar to but not exactly like a standard JavaBean. Commerce Beans are not currently written to the same specifications as JavaBeans, and support additional security and other functions required by the JCC framework. To create the cassettes for a transaction, you can write your own cassette(s), and use or modify any of the following types of cassettes that come with the JCC framework: User Interface (including the Java Wallet) Purchase operation Protocol Instrument Service (for local operations) The JCC framework uses roles, tickets, gates, and permits to ensure that only authorized cassettes have limited access to information and resources in other cassettes and the JCC framework. This model is called the Gateway Security model because access to sensitive data within a cassette is permitted through specific controlled gateways only. Roles define what a cassette can do.
A cassette is signed for a role or set of roles. For example, every cassette is signed for the Cassette role because this role is required to install the cassette. If a cassette is not installed, the cassette cannot work with the JCC framework. Operation cassettes are signed with the Operation role, protocol cassettes …