UNDERSTANDING E-CASH SECURITY

Introduction

Task

Get Yourself Secure

Introducing Yourself

Get Some Money

Spend Some Money

Think About Harry

Conclusion

Resources

Data Dictionary

Teacher's Tools


The Task

E-Commerce has arrived!  If you log onto the internet, there is no shortage of goods that can be purchased.  New merchants are appearing daily with prices that are much lower than what you find in a store.  Auctions are getting more popular as you can submit a bid to buy a specific item.  Even popular chains are on the web and making their products available.

Not only can you go out and spend your money, you can withdraw it as well.  That's right!  Online banking has arrived.   No longer do you need to stand in line and wait for a teller.  You don't even have to go find an ATM.  With just a computer, you can log on and withdraw money, pay your bills, and deposit money.

The modern age is here!   You can withdraw money and spend it without getting out of your chair.  It's all online with e-cash!

However, there is one minor problem.   You aren't alone on the web.  Harry the Hacker is there!  And all Harry wants to do is take your money and spend it on himself.  He is an evil plotting thief and he'll do whatever it takes to get your cash.

Harry is a powerful person.  He can do the following:

  • He can monitor your communications with the bank and the merchant.
  • He can intercept your communications and reformat it.
  • He can selectively insert new messages between you and who you are communicating with.
  • He is able to record your communications and play them back at a later date.
  • He is a mathematical whiz!  If you are planning on just hiding something with a basic math formula, Harry will figure it out.
  • He has quite a few computers that can be used to hack into the system.
  • He is also a liar.  He might even claim to be you!

The bank is worried about Harry.   However, the bank is also worried about you.  The bank has some strict rules:

  • The bank must only withdraw the amount of cash that you request.
  • The bank must believe that it is you that is withdrawing the cash.
  • The bank must prevent you from trying to take a money order and spend it twice.
  • The bank would like to identify if you or the merchant is trying to cheat it.
  • The bank must be certain it receives valid money orders from merchants.

The merchant also has his concerns.

  • The merchant only wants your money if it is valid.  It doesn't want a check to bounce.
  • The merchant wants to be certain that the bank will accept your money order.
  • The merchant would like to know that the money order did come from you.
  • The merchant can't sleep because he knows Harry is out there.

Given these requirements, you have quite a task in front of you.  You must develop an answer to this question:

How can a system be designed so that you can withdraw money from a bank and spend it with a merchant? 

You will need to meet all the bank's requirements and you will need to satisfy all of the merchant's worries.   At the same time...you need to beware!  Harry is out there hacking...and you are his target!

The First Step - Get yourself secure!

Here we go!  You have a challenging set of requirements, an open ended question, and you might be thinking, "I'm no computer science major!  How am I going to do this?"

Let's break the problem up and try to solve it one step at a time.   The first step is to understand that we are developing a secure system.  A secure system is a system that guards against hackers like Harry and addresses the concerns of bankers and merchants.

There are basic terms in security that must be understood before you can proceed. Take a look at an introduction to security and then come right back!  But be sure that you fully understand the following concepts:

  • Cryptography

  • Keys

  • Protocols

  • Signatures

  • Attacks

Then, answer the following questions:

  1. Why is security needed in an online banking system?

  2. Why is security needed when you spend your money with a merchant?

  3. What are the concerns of the banker that security can address?

  4. What are the concerns of the merchant that security can address?

  5. What are the concerns you have that security can address?

The Second Step - Introducing your secure self to the world.

The next step is to make sure you, the merchant, and the bank meet in some manner.   But, we need to be very careful.   Harry wants to meet the three of you and you certainly don't want to meet him!

Time for you to get smart!  There are some key concepts that you should visit at this time:

If you get lost, feel free to click on some of the external links provided by each topic or take a quick peek at the data dictionary.   The data dictionary will provide some key terms and links to any resources on this site.

Now, that you have some great security knowledge in your head, you can answer the following questions.

  1. How do you get the bank's public key?   What is the protocol that you use to do this?

  2. How does the merchant get your public key?  What is the protocol that you use to do this?

  3. How can you establish a session with the bank where you can exchange private information or request a balance inquiry that no-one other than you can read?

  4. How can the bank give you a method to certify yourself in the future should you wish to obtain some money?

  5. What attacks have you guarded against with the processes you have developed in this section?   How have you foiled Harry?

The Third Step - Get some money!

In order to withdraw some money from the bank, you will need some more knowledge of secure systems.   It is time to become familiar with:

Now you are smarter!   Unfortunately, so is Harry!  He is really determined to get your money and spend it.    Get ready to outwit him!

  1. Determine a way to identify yourself to the bank so that Harry cannot impersonate you.   Remember, the bank helped you out in the last section.

  2. You will want to identify that a money order is yours.  Determine a method to do this, but be certain that Harry cannot identify that it is you!  We only want the bank to know that this is you.   Also, keep in mind that you may not want to let the bank or merchant know that it is you until some later point in time.

  3. Determine how you will send your request for an electronic money order to the bank.  The bank will not trust a single money order from you, so you will have to earn its trust.  In addition, you really don't want Harry to know how much money you are trying to get - so try to hide it from him!

  4. Assuming that the bank does find a way to trust you, show how the bank will issue you a money order that you can go spend.

  5. Please identify any other attacks that you preventing Harry from succeeding at.

The Fourth Step - Spend some money!

Now, that you have the money - it is time to spend it.   You have all the cryptographic knowledge that you will need!   You just have to answer the following questions:

  1. How do you send the money order to the merchant?

  2. How does the merchant establish that the money order is from a legitimate bank?

  3. How does the merchant send the money to the bank?

  4. How does the bank credit the money order to the merchant's account?

  5. How does the bank be certain the same money order is not used twice?

  6. How have you stopped Harry from disrupting this process and spending your money order?

The Final Step - Think about Harry!

No protocol is perfect.   Some will work better than others, but there always tends to be a way for a hacker to still disrupt the system.   So, please answer the following question:

What can Harry do to disrupt your protocol?  What can he do to stop you from getting and spending the money order?  

Give this some thought...no solution is perfect.  Check out some of the related links under the public key cryptography section if you need some help....Harry is reading these, so you better know what he does!

Conclusion

Online banking and spending money are getting more and more popular on the Internet.  However, hacking is also becoming more and more popular.  Therefore, secure system design is becoming increasingly more important.

This quest has introduced you to some tools that can be used to design secure systems.  It has walked you through a design process and shown how you can safely withdraw cash and spend it on the Internet.   Basic security concepts have been introduced and applied to a real world application.   It has also shown that while a solid design may exist, there are still potential problems posed by hackers.

You will be able to use this knowledge if you get involved with the design of Internet Security.   You can also use this knowledge when evaluating different secure systems that may be applied to your information technology solutions.  And most importantly, you probably have learned that you will not be able to hack into e-cash systems - so don't bother trying!  You'll end up being miserable, just like Harry.