1. A method for establishing a secure connection between a card reader and a server, the method comprising: receiving, at the card reader, a first challenge request; generating, at the card reader, a response to the first challenge request using a first encryption key; sending, from the card reader, the response to the first challenge request; sending, from the card reader, a second challenge request to the server; receiving, at the card reader, an encrypted response to the second challenge request; verifying, at the card reader, 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, at the card reader, a magnetic fingerprint based on the intrinsic magnetic characteristic; and sending, from the card reader, the magnetic fingerprint to authenticate the data card.