The world of the internet and technology has grown by leaps and bounds in the past few years. In this scenario, the security of your data is the most significant facet of all your business decisions. Security of your server gains the utmost importance. Gone are those days where one used telnet or rlogin to connect to remote servers and send passwords in clear text format over the wire for user authentication. SSH provides a secure path over the network.
SSH enables you to safely and securely transfer data and confidential information from one machine (SSH Client) to a remote machine( SSH Server) over an unsecured network. SSH is a client-server model communication protocol. In SSH, the device we initiate the SSH connection is considered as SSH Clients, and the device we are trying to connect from the client machine is considered as SSH Servers.
A device can play either as an SSHClient or as an SSHServer (or it can be both at the same time) depending on its SSH connections. Protocols like SCP, SFTP also use SSH in the backend for securely transferring files over the network.
SSH supports password-based and passwordless authentication methods. In password-based authentication, the user sends a username and password to a server for authentication. In the passwordless approach, there are two methods, SSH Keys (Public key) authentication and SSH Cert-based authentication. The SSH Cert method is a relatively newer solution and the market is slowly adopting it. However, a major share of the industry still relies on public key authentication. If it is properly managed, there are many advantages with SSH-key based approach over password-based authentication
- SSH Key is considered more secure than passwords, which is more resistant to brute-force attack
- The complexity of the key can be increased by changing its bit-length or algorithms
- Unlike passwords, SSH Keys can’t be guessed or can’t be understood by peeping at it
- Unlike passwords, SSH Key (Private Key) never leaves the client machine, so the bad guys don’t have access to the user’s private key by intercepting the traffic or via a compromised SSHh server
SSH Key Pair consists of public and private keys which will be stored in client machines. As the name implies public keys can be shared with anyone and the private key has to be kept secret in the client machine. So this brings the importance of safeguarding private keys. Private key helps to decrypt the message which is encrypted using its public key.
Problems in current SSH key management
Though SSH Key is widely adopted as a passwordless approach in SSH authentication, there are still a few challenges that exist when we talk about its manageability, especially in large organizations.
When the count of SSH Keys increases drastically, the admin’s responsibility of tracking each key and doing revocation on-time becomes a burden. There should be a centralized platform when multiple admins are working on SSH Key lifecycle management (KLM) tasks. There are still people who rely on spreadsheets, which is not a scalable solution. KLM tasks involve discovering existing keys from the network, provisioning and tracking access to each host and for each user, and revoking the access once it expires. Also as per best practice guidelines, companies do key rotations at regular intervals to reduce security threats. However, such tasks are performed manually and are prone to human errors, while consuming a lot of time and effort of an engineer.
Nowadays cloud infrastructure is part of every organization. Deployments of hosts in the cloud are instantaneous and very frequent. Users can’t wait to get access to it after it’s been deployed. Organizations need a solution to provide necessary access to the users, which acts at the same pace that the cloud infra operates.
SSH Keys never expire
SSH keys are cryptographic keys that don’t have any expiry on its own. So it becomes the admin’s responsibility to remove access from the hosts (SSH Servers) when the purpose or duration of the access is over. Leaving any key as is in the system leaves a chance for someone to get unauthorized access to the company’s critical servers. When an employee leaves the organization, his/her access to the hosts can still continue to exist if the admin missed to revoke it. These are serious security issues that have to be addressed.
SSH Keys are decentralized
SSH Keys can be created by anyone within the system using simple commands. Each key pair is independent. Therefore, a centralized inventory needs to be there for proper tracking and visibility to the keys. The system should be capable enough to detect new keys if it has been created anywhere in the network. Users may tend to create weaker keys with lower bit-length or by using outdated algorithms, which leads to more vulnerable infrastructure. This needs careful and periodic monitoring
Public key authentication doesn’t have any drawbacks by technology, but it has many operational challenges. To overcome the above-mentioned pain points, a centralized SSH Key Life Cycle Management is absolutely necessary.
Talk to an Expert to know how AppViewX provides a comprehensive solution to address all your critical business requirements.