The best way to perform age verification online is through photos. Users would be required to send several photos for verification (the licenses should be shot completely straight, not at angle):
1 of the back of a US Driver's license (no flash) 2 of the front of a US Driver's license (one without flash and one with)
The system would then use:
- OCR to read the date of birth
- QR/Bar-code reading to verify date of birth, and additional OCR to verify other information (The Bar/QR-Code should completely match name/height/eye-color, etc.
- Algorithms, maybe machine-learning based via neural networks to check for the security features unique to each state's driver licenses. (Each state will have multiple, accounting for over21(landscape) / under21(portrait) as well as redesigns.)
- Additional algorithms to compare specularity of a real ID to that measure online via help with the photo with flash and the photo without. (Would need to be aware of possible differences in the flash of different phones)
- Last, the Name on the ID will be matched to the name on the credit card being used to purchase whatever age-restricted material is being bought by the customer. If there is nothing being bought, the credit-card verification can be omitted at the cost of assurance against false-positives/negatives.
Advantages of this method:
- Lots of work up front but rarely needs to be updated/changed afterwards.
- Availability most people have smartphones with camera/flash.
- Crowdsourcing through sites like amazon mechanical turk could be used for training data to help fine tune the machine-learning algorithms.