Network Security: Protecting An Organization's Network
Network Security: Protecting An Organization's Network
Protecting An
Organization’s Network
A Note About Security
Humans are usually the most susceptible
point in any security scheme
A worker who is malicious, careless, or
unaware of an organization’s information
policy can compromise the best security
• William Stallings
A Note About Security
If your site has multiple access points,
the overall security of the site is only as
strong as the security of the least secure
access point
• Thus, you must ensure that all points of
access are secure
• Again, frequently the weakest link is people
• This includes such access points as E-Mail, their
personal web sites, etc.
A Note About Security
A recent demonstration found that 24% of
passwords could be determined, by:
• Searching dictionaries of names, places, and other
words
• Using the username
• Using information about the user, such as their first
name
A much higher percentage would result if
variations of the above were used
• e.g. marge123
Security Terminology
Authentication: The process of determining the
identify of a client or other entity
Encryption: The process of obfuscating data so
that it cannot be examined in its current form
Public key: An object used in the encryption
process that is publicly available
Private key: An object used in the encryption
process that is kept private within an
organization
Authentication: IPSec
Uses IP datagrams to provide security
features such as authentication
Authentication is provided for each
datagram
• An IP datagram, such as those used for TCP
connections will be assigned an
authentication header (AH)
Authentication: IPSec
A B
A B
A B
A B
In Depth
Authentication and Encryption
These two technologies are frequently inter-
related
• Both can be closely related to private keys
There are really two categories of encryption
techniques:
• Conventional (single-key) encryption: The same
key (shared by both sides) is used to encrypt and
decrypt the data
• Public key encryption: One key is used for
encryption (usually the private key), and another for
decryption (usually the public key)
Single Key Encryption
Somehow, a shared key must be
distributed between both programs
Single key encryption algorithms must be
symmetric:
• They must provide a means to use the same
key to decrypt and encrypt the data
• Usually this means there are two (reverse)
algorithms
Single Key Encryption
To ensure security, the key exchange must
occur in some secure way
If someone intercepts the key, the encrypted
message can be decrypted
• Assuming they have the decryption algorithm
This separation of encryption algorithm from
the key is an advance in cryptography
• Encryption algorithms in the 30’s and 40’s involved
only an encryption algorithm
Terminology
Plaintext: Data prior to the encryption process
• Or data after the decryption process
Ciphertext: Data after the encryption process
Cipher: An encryption algorithm
Secret key: A piece of data used by the
encryption algorithm to generate ciphertext
• The secret key is also used by the decryption
algorithm to generate plaintext
Encryption Algorithms: Ancient
Encryption methods (not applied to data per se, but to
spoken or telegraph/written messages) usually involved
the replacement of common parts of the messages with
other characters/words
• One common example is the replacement of letters with
some other letter in the alphabet
• This scheme was used by Julius Caesar, and as such it is
called the Caesar Cipher
Later, these schemes employed some changing factor
• Such as a table containing mappings between letters
• This table represents a changeable key that both parties
must know
Caesar Cipher Problems
If the relationship between ciphertext letters
and plaintext letters follows some pattern (as
they did in Caesar’s method), the key can be
easily determined
One way to combat these problems is to
convert groups of letters at a time
Thus AB might translate to XY, but AC might
translate to WV (not XV or something like that)
The Playfair Cipher
party
Obviously we want to avoid this
• We need to distribute public keys in such a
way as to eliminate this possibility
Public Key Distribution
Secure public key distribution really boils
down to one problem:
• How do we know that the public key we
receive is really from who we think?
The answer is simple: certificates
• Certificates provide a way of distributing
public keys, while also providing source
authentication
Certificates
Certificates are quite simple:
• They are an encrypted version of your public key
Certificates are encrypted using the private key of
a certification authority (CA)
• Public keys of CAs are well known
• In fact, the public keys of several CAs are built into browsers
for SSL
• Since the public key of a CA is well known, we do not
need to transfer it (and thus run the risk of it being
tampered with)
• The CA public key can be used to decrypt the certificate,
and thus extract the public key of the owner of the certificate
Certification Authorities
CAs job is to create certificates
The certificate (i.e. public key) of at least one well-known CA is
installed into browsers
• For other (non-browser) uses of PKC, the certificate/public key of a
CA must be known
If the incoming certificate is issued by (encrypted using the
private key of) a different CA, the certificate can still be verified
• The public key of the certificate’s CA can be downloaded (they are
also publicly available), and used to extract the public key in the
certificate
• The CA’s public key is contained in a certificate authorized by
another CA
• Eventually, through a chain of certificates, the certificate can be
validated, and the public key extracted
SSL
A Common Scheme
Secure Socket Layer (SSL)
SSL was designed to create a
communication model similar to that
available through TCP
However, SSL employs additional
security techniques, such as encryption
• Thus SSL gives the appearance of normal
socket communication, while providing
security features
SSL
SSL can use several different encryption
algorithms, including IDEA, DES, 3DES
However, due to the streaming nature of
TCP, normally uses one of the schemes
that encrypts a stream byte by byte:
RC4
• This includes key sizes of 40 (RC4-40) and
128 bits (RC4-128)
SSL Operation
SSL begins when clients connect to servers
• This stage is marked by each side exchanging hello
messages
Next, certificates are exchanged
• The server sends its certificate to the client, followed by
the client sending its certificate to the server
Then, the two agree upon an encryption
algorithm and parameters
• Now, it is possible for the client and server to exchange
information using the agreed encryption algorithm and
the certificates (which contain public keys)
E-Mail Security
E-Mail Security
There are two aspects to E-Mail security:
1. E-Mail privacy
Using encryption (or some other means) to keep
data contained in E-Mail private
2. Virus protection
Since E-Mail is a simple portal through which any
entity may send messages, those messages must
not affect the user’s system or the network
E-Mail Privacy
The most common way to ensure data
privacy through E-Mail is to use PGP
PGP: Pretty Good Privacy
• A freeware tool that uses single key cryptography
(and public key cryptography) to encrypt text
• It uses public key cryptography for digital signatures
(obviously)
• The tool allows users to choose the encryption
method: 3DES, IDEA (SKC), RSA (PKC)
E-Mail Virus Protection
Microsoft recently release a “patch” for
Outlook, which Outlook 2002 (shipped with
Office XP) had already preinstalled
• This patch essentially prevents receiving any files
which are suspect (.EXE, .COM, etc.)
Other (better) solutions are to have virus
checkers virus scan all incoming files
• Norton Antivirus, McAfee, PC-cillin, and others
already perform these scans, if configured to do so
Malicious Programs
A program with 2 goals; to propagate itself to other machines,
and to do some harm to this machine, possibly:
• Trap door: A modification that allows a secret entry point to a
system (accidental or purposeful; by an employee?)
• Logic bomb: Code hidden within a seemingly harmless program
that will activate when certain conditions are met (e.g. a time
elapses)
• Trojan horse: A program that appears to be useful, but actually
has some unwanted behaviour
• Virus: A program that propagates itself by embedding its own
code into other executable programs
• Worm: A program that uses network connections to propagate
• Bacteria: A program that does no harm, except propagate