A computer-implemented method comprising: obtaining (602, 702) two or more images of a subject including a view of an eye, wherein the images collectively include a plurality of focus distances; determining a behavioral metric based on, at least, detected movement of the eye as the eye appears in a plurality of the images, wherein the behavioral metric is a measure of deviation of detected movement and timing from expected movement of the eye; determining a spatial metric based on, at least, a distance from a sensor to a landmark that appears in a plurality of the images each having a different respective focus distance; determining a reflectance metric based on, either (i) detected changes in surface glare on a surface of the eye as the eye appears in a plurality of the images, by measuring a time difference between (i) an occurrence of a flash pulse captured by one or more of the images and (ii) an appearance of a corresponding glare detected on the eye in one or more of the images; or (ii) detected changes in specular reflection patterns by measuring uniformity of a pattern of glare on an outer surface of the eye visible in one or more of the images caused by one or more flash pulses captured by one or more of the images, wherein the uniformity of a pattern of glare on the eye is measured as a ratio of circumference to an area of the glare; wherein the reflectance metric is a measure of changes in glare or specular reflection patterns on the surface of the eye, determining (604, 730) a liveness score based on the behavioral, spatial, and reflectance metrics, the liveness score reflecting the likelihood that the images depict a live eve; and rejecting or accepting the two or more images based on the liveness score, wherein the two or more images are rejected when the liveness score indicates a low likelihood of a live eye. obtaining (602, 702) two or more images of a subject including a view of an eye, wherein the images collectively include a plurality of focus distances; determining a behavioral metric based on, at least, detected movement of the eye as the eye appears in a plurality of the images, wherein the behavioral metric is a measure of deviation of detected movement and timing from expected movement of the eye; determining a spatial metric based on, at least, a distance from a sensor to a landmark that appears in a plurality of the images each having a different respective focus distance; determining a reflectance metric based on, either (i) detected changes in surface glare on a surface of the eye as the eye appears in a plurality of the images, by measuring a time difference between (i) an occurrence of a flash pulse captured by one or more of the images and (ii) an appearance of a corresponding glare detected on the eye in one or more of the images; or (ii) detected changes in specular reflection patterns by measuring uniformity of a pattern of glare on an outer surface of the eye visible in one or more of the images caused by one or more flash pulses captured by one or more of the images, wherein the uniformity of a pattern of glare on the eye is measured as a ratio of circumference to an area of the glare; wherein the reflectance metric is a measure of changes in glare or specular reflection patterns on the surface of the eye, (i) detected changes in surface glare on a surface of the eye as the eye appears in a plurality of the images, by measuring a time difference between (i) an occurrence of a flash pulse captured by one or more of the images and (ii) an appearance of a corresponding glare detected on the eye in one or more of the images; or (ii) detected changes in specular reflection patterns by measuring uniformity of a pattern of glare on an outer surface of the eye visible in one or more of the images caused by one or more flash pulses captured by one or more of the images, wherein the uniformity of a pattern of glare on the eye is measured as a ratio of circumference to an area of the glare; determining (604, 730) a liveness score based on the behavioral, spatial, and reflectance metrics, the liveness score reflecting the likelihood that the images depict a live eve; and rejecting or accepting the two or more images based on the liveness score, wherein the two or more images are rejected when the liveness score indicates a low likelihood of a live eye.