In: Computer Science
Suppose you need to transfer some data ensuring integrity and authentication and confidentiality of data. Explain the steps.
Please don't provide handwritten solution for this question.
To ensure the security of your data in transit across a public network, you need more than an encrypted connection. You need a secure file transfer client that can preserve data integrity. Data integrity means that information sent from one end of a file transfer operation arrives intact at the other. Data integrity may be compromised through a man-in-the-middle attack, a hack that involves an attacker making independent connections with a client and host and relaying messages between them so that users at each end believe they are communicating over a private connection.
There are a number of things to consider when improving the security of data transfer procedures, these include:
The diffrent mechanisma iused for data transmission are
Encryption :
Encryption of the data by a separate program before performing the transfer was probably the first method used to solve this problem. Though this method is readily available, it doesn’t solve all of the problems. This method doesn’t protect the user’s password, so someone spying on the transmission could get access to the data after it has been decrypted unless a separate mechanism is used to limit the reusability of passwords.The requirement for manual encryption could cause problems when the user is in a hurry or discovers that there is a file that is needed that wasn’t encrypted before the transfer session was started. When the source and destination systems run different operating systems, it is possible that the data also needs to be converted either before or after it is encrypted. While this may be taken care of by the encryption program it is something to take in account when evaluating this method. Separate encryption may not provide data integrity. There are no mechanisms for the server to certify that it is the intended system in this method. This is the weakest method.
Separate Encryption before using FTP
Encryption of the data by a separate program before performing the transfer was probably the first method used to solve this problem. Though this method is readily available, it doesn’t solve all of the problems. This method doesn’t protect the user’s password, so someone spying on the transmission could get access to the data after it has been decrypted unless a separate mechanism is used to limit the reusability of passwords.
SFTP (SSH File Transfer Program)
SFTP is widely available for a number of platforms and it solves the problems of securing the user’s password and provides data encryption and integrity on the fly. SSH (which SFTP uses as an authentication and data transport mechanism) also authenticates the server involved though the exchange of keys. SSH keys are privately maintained and require external acceptance upon first use or prior transfer through an alternate method.
FTP over SSH
SSH can be used to create a secure tunnel between two systems. It is possible to have one end of this tunnel point to an FTP server and provide a secure channel for FTP transfers. Some SSH servers and clients recognize the FTP PORT and PASV commands and replies and can provide protection for the data channel as well. To use this method an SSH connection must be established between the two systems before the FTP connection is established, which adds inconvenience or uses resources even when there are no transfers being done. With this method SSH provides data privacy and integrity, server identification verification and privacy for the user password. FTP provides any data format conversion that is necessary between the two systems.
IPSec (and FTP)
IP Security (IPSec) provides secure communications (authentication, integrity, confidentiality) over IP-based networks between systems. Not all systems have IPSec available. Even when systems have it available, configuring differing types of systems to work together can be a challenge. Since this needs to be configured on a per system basis it may lack flexibility when destinations or sources change frequently.
Virtual Private Networks (and FTP)
A Virtual Private Network uses encryption to provide secure communication between two systems. It may do it at network layer 2, by creating a logical wire between the two systems. In this case all network traffic passes over this logical wire, whether or not is destined for the system on the other end. Or it may create it at network layer 3 by encrypting and encapsulating packets that traverse a particular route. A VPN can also be created with external (router) hardware being configured to encrypt the data between specified addresses.
FTP over TLS (
Transport Layer Security is commonly used to secure data transferred between web browsers and servers (https). TLS is also known as Secure Socket Layer (SSL). FTP over TLS is specified by RFC 4217 and uses TLS to add password privacy and server verification to FTP. It also makes privacy for data transfers available. The command channel is protected during the user authentication procedure and may be set to clear after setting file transfer protection requirements to let firewalls and NAT devices learn about the FTP data channel and open the necessary ports to allow the data to be exchanged. The data channel may be set to private, which provides both data security and integrity. FTP was designed to properly handle ASCII and binary file transfers so it does well when different system types are involved.