Internet voting is a terrible idea, an invitation to all kinds of voting fraud. There are limitless ways of intercepting and corrupting signals en route to, and within, polling stations. Given any scheme for safeguarding such transmissions, clever hackers can devise techniques to circumvent them (not to mention corruption by insiders). Note how even carefully guarded governmental and financial systems on the internet are often penetrated. The battle between pernicious hackers, spammers, and computer-security people is unending.
Also bad is voting by mail, and other forms of early voting. These are seldom, if ever, implemented with proper attention to chains of custody, and also facilitate intimidation and bribery of voters.
DRE (touchscreen) e-voting machines are vulnerable to fraud and error, and there is no reliable paper ballot back-up. While optical scan e-voting machines do have the advantage of voter-marked paper ballots, they too have been shown to be highly vulnerable to rigging. There is no feasible way of ensuring that the machine-reported results are not fraudulent. Hand recounts of the paper ballots are rarely used to verify machine results.
The great majority of e-voting machines are made by one of just a few companies, none of which are renowned for either competence or integrity. They make every effort to keep the machine designs and programs secret. For example, click here.
No effort is made at any level of government to ensure that e-voting machines are not rigged for cheating. So-called "certification" of e-voting machines of the types now in use is carried out by private companies that report to the vendors. Their stated function is to look for faults that would affect the accuracy of the outputs. They do not even pretend to look for surreptitious software or hardware features.
Indeed, while careful testing might detect many cheating schemes, the possibilities for fraud are boundless. There are no practical approaches that could truly ensure that a particularly machine is clean in this respect.
Comparisons with automated teller machines are meaningless. It would be easy to determine if such a machine cheated you. Count the money, look at your monthly bank statement. But there is no way for you to verify that your vote was actually counted as cast in an e-voting system.
Almost all public discussion of e-cheating--and there isn't much of it--is about software, usually source code. There is little mention of assemblers, loaders, object code. Almost none about cheating schemes involving hardware, or even BIOS.