Some Security Components


Cryptography/Encryption.  Cryptography is a very involved effort and area of investigation.  It has been important in wars, business and computer networking.  Considering the stakes associated with many uses of cryptography, it shouldn't surprise you to see how quickly such efforts get complicated.  We will make use of illustrations from some of the simplest codes.  Hopefully, these examples will assist your understanding of how encryption can functionally enhance security.

Consider the following table containing the letters of the alphabet and their associated number based on their order.


1 2 3 4 5 6 7 8 9 10 11 12 13


14 15 16 17 18 19 20 21 22 23 24 25 26


So now you should consider the following message

20 1 11 5 26 25 6 15 18 3 12 1 19 19 1 14 4 18 5 1 12 12 25 12 5 1 18 14

If you received something like the following what would you do to try and understand it?  You can consider who wrote it.  This might help you decrypt it using the above table to read.

Take Zy for class and really learn

So even this simple code is quite cryptic.  But if you don't know they "key" then it might be too difficult to decode or considered not worth the effort.  Or maybe you think that all secret messages should be imbedded in professor's lectures.  Then you know for certain that no one will ever be able to figure out what is trying to be communicated.

On the other hand, you could make the encryption quite a bit more elaborate, or just a little bit more elaborate and probably fool all but those that are skilled and motivated.  So these sorts of approaches are typically at the basis of many ways of trying to securing data that is sent across networks.

Consider modifying the above code just slightly to take multiply each number by 5 and subtract 4 and transmit this in secret to someone to whom you are about to send a message.  Given you know this is the key how would you read this next message?

36 21 56 56 71 111 71 86 56 16

If you have secretly communicated this code to someone else then this would be called the secret key and used to decipher the message.  The key to decrypting would be to take each number, add four to it and then divide by five.  Then you use the above table to translate it to the following.

Hello World

Considering all the possible codes you possibly now understand why the NSA and who knows what other agencies have huge computers and intellects dedicated to such endeavors.  Also considering how the obscurity of an encryption is increased as the number of bits used for the encryption increases.  Which should fundamentally make sense since there is going to be just that much more to figure out.  You shouldn't be surprised that many governmental agencies want to limit the encryption capabilities that are readily accessible to potential abusers.  In some sense it is not unreasonable to consider, at least as a gross measure, that the power of an encryption doubles for each additional bit of information that is well used in an encryption.

There are some popular secret key encryption algorithms, which we will not delve into.  They are in the following list.

  • DES - Data Encryption Standard
  • 3DES - Triple DES
  • RC - Rivest Cipher 4

But there are some inherent vulnerabilities to secret key encryption and its use for securing data.

  • generating the secret keys
  • exchanging the keys between authorized parties without having them fall into the hands of unauthorized parties
  • dealing with the complexities of securing communications between many different parties
    • for example, maybe you want some things to be known by several others in one communication and you want other things to be known more exclusively within the same group

It is also usually important to change the keys fairly frequently to help avoid compromising security.

One approach that purports to improve on some of these vulnerabilities is called public/private key encryption.  It actually makes use of two different keys, one of which is public and fairly widely available, while the other is private and known only to the user.  Both keys are required to complete a secure communication.  Reiterating, each user involved in an exchange has both a public and private key.

Authentication.  Now we want to focus on approaches that assist in authenticating a user's identity, particularly that of a sender.  One of the more prevalent ways currently being used to authenticate senders makes use of digital signatures.  These digital signatures consist of encrypted information appended to a document.  This additional information helps verify the sender and the integrity of what was sent.  Digital signatures don't actually encrypt the data, they just help ensure the data came from the reputed source and has not been altered.

Public key signatures and hash algorithms are used to create and verify digital signatures.  Hash algorithms are mathematical calculations that create message digests.  They have been developed to significantly resist reverse engineering so that the original message cannot be discovered.

The hash process goes like the following.

  1. The senders software hashes the message with a key that is a shared secret, that is it is known to both the sender and receiver.
    1. The hash produces a binary numerical result
    2. this result is usually at least 128 bits in length to increase the difficulty of producing the same result from different data
  2. The message and result, the message digests, are both sent to the receiver.
  3. To confirm that the message has not been altered, the recipient applies the same key and should get the same numerical result.
    1. If the numerical result is different then the receiver knows the message was altered, though not vice-a-versa.

Two of the most popular hashing algorithms are

  • SHA - Secure Hash Algorithm
    • developed by the NIST - National Institute of Standards and Technology and the NSA - National Security Agency
  • MD5 - Message Digest 5
    • developed by Ron Rivest at MIT

Digital certificates are messages that contain the digital signature of a trusted third party or certificate authority.  These certificates are used to help ensure the authenticity of messages that travel across networks such as the Internet.  The certificate authority warrants that a particular public key actually belongs to a specified entity.

A user that has a particular private key that is associated with a particular public key requests a certificate from a certificate authority.  This authority has the responsibility of verifying that this public key belongs to the specific user.  These certificates are almost always valid for a specified period of time and the certificate authority retains the right to revoke them.

The PKI - Public Key Infrastructure consists of organizations that can provide these certifications.  Some of the major players offering digital certificates are in the following list.

  • Verisign
  • GTE Cybertrust
  • Keywitness
  • TradeWave

It is very reasonable to think of these certificates as electronic ID cards.

Kerberos is a particular authentication protocol that is an Internet standard for verifying the identity of a user or computer system.  Kerberos is named after the three headed dog that guarded the gates of Hades.

Kerberos relies on three factors:

  • the client
  • the server
  • the trusted authority or KDC - Key Distribution Center

The KDC maintains a database that keeps track of the participating entities.

Kerberos is based on the concept of allocating tickets which are encrypted messages that are used to request service from a server.  Authentication is performed using secret key encryption.  The following diagram outlines the typical process.



The Kerberos process is outlined in the following steps.
  1. The client makes a request of the authentication server
    1. ticket
    2. session key
    3. these are given to the client in an encrypted form based on the client's password and a random value used to represent the requested service
    4. this TGT - ticket granting ticket is returned to the client is used to verify the client's identity
  2. The TGT is then sent by the client to a ticket granting server
    1. this might well be the same server as the authentication server
    2. based on the TGT the ticket granting server returns a ticket to the client to be presented to the file server whose resources the client wants to make use of
  3. The ticket is valid for a specified amount of time so that the client can make additional requests of the file server without going back through this process

UNIX has made use of this approach for many years.  It has been implemented by Microsoft in Windows 2000.  Microsoft's Active Directory trust relationships are based on Kerberos authentication.

Other Authentication Approaches.  Even with the capability to make use of usernames and passwords on computers systems, it can be very important to have some additional authorization techniques.  It might also important to be able to authenticate identities in situations other than those involving computer networks.  Considering both of these kinds of needs we will spend a bit of time describing two more approaches to authenticating identities.

  • smart cards
  • biometrics
    • fingerprint
    • retinal scans
    • iris recognition
    • voiceprint
    • etceteras

Smart cards resemble credit cards, but they also store information such as public/private keys, passwords and other information.  The storage devices can be simple magnetic strips or more involved integrated circuits embedded in the card.

A smart card reader can be hooked up to a computer and used in conjunction with username/password sorts of verification.  This increases the likelihood that the user is who they claim to be.  This sort of approach can also be used in other places where card access isn't considered to be adequate.  it may be that the potential user needs to swipe the card and enter a password on a touchpad.

An advantage of such cards is that even if they are lost or stolen they are not sufficient to gain access.

Biometrics make use physical characteristics of a potential user in efforts to uniquely identify them in ways that cannot be duplicated. Most everyone is familiar with the sorts of fingerprint analyses that can be carried out at crime scenes.  Similar sorts of analyses can be done in order for potential users to gain access to particular resources.  These approaches can also be used in conjunction with other approaches such ass username/password protection.

The most common approaches make use of fingerprints, voiceprints, retinal scans or iris scans.  Though if the movies are right, even these can be outmaneuvered.  But fortunately, outmaneuvering them is not going to be at all easy.