Authentication is the process that verifies the user's identity to control access to resources, prevent unauthorized users from gaining access to the system, and record user activities (to hold them accountable for their activities). It is used to authenticate users who log on to a server, ensure that software comes from a reputable source, and ensure that the person sending the message is who he says he is.