Cns Unit-Iv Web Security
Cns Unit-Iv Web Security
Cns Unit-Iv Web Security
Web Security
Usage of internet for transferring or retrieving the data has got many benefits like speed, reliability,
security etc. Much of the Internet's success and popularity lies in the fact that it is an open global
network. At the same time, the fact that it is open and global makes it not very secure. The unique
nature of the Internet makes exchanging information and transacting business over it inherently
dangerous. The faceless, voiceless, unknown entities and individuals that share the Internet may or may
not be who or what they profess to be. In addition, because the Internet is a global network, it does not
recognize national borders and legal jurisdictions. As a result, the transacting parties may not be where
they say they are and may not be subject to the same laws or regulations.
For the exchange of information and for commerce to be secure on any network, especially the Internet,
a system or process must be put in place that satisfies requirements for confidentiality, access control,
authentication, integrity, and non-repudiation. These requirements are achieved on the Web through the
use of encryption and by employing digital signature technology. There are many examples on the
Web of the practical application of encryption. One of the most important is the SSL protocol.
A summary of types of security threats faced in using the Web is given below:
Netscape originated SSL. Version 3 of the protocol was designed with public review and input from
industry and was published as an Internet draft document. Subsequently, when a consensus was
reached to submit the protocol for Internet standardization, the TLS working group was formed within
IETF to develop a common standard. This first published version of TLS can be viewed as essentially
an SSLv3.1 and is very close to and backward compatible with SSLv3.
SSL Architecture
SSL is designed to make use of TCP to provide a reliable end-to-end secure service.
SSL is not a single protocol but rather two layers of protocols, as illustrated in
Figure 16.2.
The SSL Record Protocol provides basic security services to various higher-layer protocols. In
particular, the Hypertext Transfer Protocol (HTTP), which provides the transfer service for Web
client/server interaction, can operate on top of SSL. Three higher-layer protocols are defined as part of
SSL: the Handshake Protocol, The Change Cipher Spec Protocol, and the Alert Protocol. These SSL-
specific protocols are used in the management of SSL exchanges and are examined later in this section.
Two important SSL concepts are the SSL session and the SSL connection, which are defined in the
specification as follows.
Connection: A connection is a transport (in the OSI layering model definition) that provides a
suitable type of service. For SSL, such connections are peer-to-peer relationships. The
connections are transient. Every connection is associated with one session.
Session: An SSL session is an association between a client and a server. Sessions are created by
the Handshake Protocol. Sessions define a set of cryptographic security parameters which can
be shared among multiple connections. Sessions are used to avoid the expensive negotiation of
new security parameters for each connection.
There are a number of states associated with each session. Once a session is established, there is a
current operating state for both read and write (i.e., receive and send). In addition, during the
Handshake Protocol, pending read and write states are created. Upon successful conclusion of the
Handshake Protocol, the pending states become the current states.
Is resumable: A flag indicating whether the session can be used to initiate new connections.
Figure 16.3 indicates the overall operation of the SSL Record Protocol. The Record Protocol takes an
application message to be transmitted, fragments the data into manageable blocks, optionally
compresses the data, applies a MAC, encrypts, adds a header, and transmits the resulting unit in a TCP
segment. Received data are decrypted, verified, decompressed, and reassembled before being delivered
to higher-level users.
The first step is fragmentation. Each upper-layer message is fragmented into blocks of 214 bytes
(16384 bytes) or less. Next, compression is optionally applied. Compression must be lossless and may
not increase the content length by more than 1024 bytes.1In SSLv3 (as well as the current version of
TLS), no compression algorithm is specified, so the default compression algorithm is null.
The next step in processing is to compute a message authentication code over the compressed data.
For this purpose, a shared secret key is used.
Alert messages convey the severity of the message and a description of the alert.
Upon transmission or receipt of a fatal alert message, both parties immediately close the
connection.
The client and the server must communicate that the connection is ending to avoid a truncation attack.
Either party may initiate the exchange of closing messages.
Normal termination occurs when the close_notify message is sent.
This message notifies the recipient that the sender will not send any more messages
on this connection.
The session becomes unresumable if any connection is terminated without a
proper close_notify message.
Version Number: The TLS Record Format is the same as that of the SSL Record Format and the fields
in the header have the same meanings. The one difference is in version values. For the current version
of TLS, the Major Version is 3 and the Minor Version is 1.
Message Authentication Code: Two differences arise one being the actual algorithm and the other
being scope of MAC calculation. TLS makes use of the HMAC algorithm defined in RFC 2104. SSLv3
uses the same algorithm, except that the padding bytes are concatenated with the secret key rather than
being XORed with the secret key padded to the block length. For TLS, the MAC calculation
encompasses the fields.
Secure Shell Protocol (SSH)
The salient features of SSH are as follows −
SSH is a network protocol that runs on top of the TCP/IP layer. It is designed to replace the TELNET which
provided unsecure means of remote logon facility.
SSH provides a secure client/server communication and can be used for tasks such as file transfer and e-mail.
SSH2 is a prevalent protocol which provides improved network communication security over earlier version
SSH1.
SSH Defined
SSH is organized as three sub-protocols.
Transport Layer Protocol − This part of SSH protocol provides data confidentiality, server (host) authentication,
and data integrity. It may optionally provide data compression as well.
Server Authentication − Host keys are asymmetric like public/private keys. A server uses a public key
to prove its identity to a client. The client verifies that contacted server is a “known” host from the
database it maintains. Once the server is authenticated, session keys are generated.
Session Key Establishment − After authentication, the server and the client agree upon cipher to be
used. Session keys are generated by both the client and the server. Session keys are generated before user
authentication so that usernames and passwords can be sent encrypted. These keys are generally replaced
at regular intervals (say, every hour) during the session and are destroyed immediately after use.
Data Integrity − SSH uses Message Authentication Code (MAC) algorithms to for data integrity check.
It is an improvement over 32 bit CRC used by SSH1.
User Authentication Protocol − This part of SSH authenticates the user to the server. The server verifies that
access is given to intended users only. Many authentication methods are currently used such as, typed passwords,
Kerberos, public-key authentication, etc.
Connection Protocol − This provides multiple logical channels over a single underlying SSH connection.
SSH Services:
SSH provides three main services that enable provision of many secure solutions. services are briefly described as
follows −
Secure Command-Shell (Remote Logon) − It allows the user to edit files, view the contents of directories, and
access applications on connected device. Systems administrators can remotely start/view/stop services and
processes, create user accounts, and change file/directories permissions and so on. All tasks that are feasible at a
machine’s command prompt can now be performed securely from the remote machine using secure remote logon.
Secure File Transfer − SSH File Transfer Protocol (SFTP) is designed as an extension for SSH-2 for secure file
transfer. In essence, it is a separate protocol layered over the Secure Shell protocol to handle file transfers. SFTP
encrypts both the username/password and the file data being transferred. It uses the same port as the Secure Shell
server, i.e. system port no 22.
Port Forwarding (Tunneling) − It allows data from unsecured TCP/IP based applications to be secured. After
port forwarding has been set up, Secure Shell reroutes traffic from a program (usually a client) and sends it across
the encrypted tunnel to the program on the other side (usually a server). Multiple applications can transmit data
over a single multiplexed secure channel, eliminating the need to open many ports on a firewall or router.