1. A method for establishing a secure connection between a card reader and a server, the method comprising: receiving a first challenge request; generating a response to the first challenge request using a first encryption key; sending the response to the first challenge request; sending a second challenge request; receiving an encrypted response to the second challenge request; verifying the encrypted response to the second challenge request; and if the encrypted response is verified: reading data card information from a data card, the data card information comprising an intrinsic magnetic characteristic and recorded data on the data card; generating a magnetic fingerprint based on the intrinsic magnetic characteristic; and sending the magnetic fingerprint to authenticate the data card.