Archive for September 4th, 2007

Secret Breathalyzer Software Finally Revealed

Tuesday, September 4th, 2007

As I’ve indicated in previous posts, defense attorneys for years have been trying to discover the software source code used by manufacturers of various breathalyzer models.  (See "Secret Breathalyzer Software Still Secret")   The accuracy of these  machines, which essentially determine a suspect’s guilt or innocence, depends upon the accuracy of the software driving them; as the computer techs say, "Garbage in, garbage out".  But the manufacturers have refused to produce the information, relying upon a claim of "trade secrets" — that is, that the code of each model is a unique creation of the manufacturer.  And prosecutors, apparently more concerned with profits than with justice, have joined them in resisting disclosure.

Smart TV BOX

Recently, however, judges in Florida, Minnesota, New Jersey and a growing number of other states have begun ordering the manufacturers to reveal the inner workings of their machines to the defense.  (See "Judge: Divulge Breathalyzer Code…or Else".)  Not surprisingly, the manufacturers have refused to comply.  Until a few days ago….

New Jersey attorney Evan M. Levow was finally able to get an order from the Supreme Court of New Jersey forcing the manufacturer of the popular Draeger AlcoTest 7110 to reveal the source code.  Levow turned the code over to experts, Base One Technologies, to anaylze.

Initially, Base One found that, contrary to Draeger’s protestations that the code was proprietary, the code consisted mostly of general algorithms:  "That is, the code is not really unique or proprietary."  In other words, the "trade secrets" claim which manufacturers were hiding behind was completely without merit.

Some of the more interesting excerpts from the Base One report:

 1. The Alcotest Software Would Not Pass U.S. Industry Standards for Software Development and Testing: The program presented shows ample evidence of incomplete design, incomplete verification of design, and incomplete "white box" and "black box" testing. Therefore the software has to be considered unreliable and untested, and in several cases it does not meet stated requirements. The planning and documentation of the design is haphazard. Sections of the original code and modified code show evidence of using an experimental approach to coding, or use what is best described as the "trial and error" method. Several sections are marked as "temporary, for now". Other sections were added to existing modules or inserted in a code stream, leading to a patchwork design and coding style…

It is clear that, as submitted, the Alcotest software would not pass development standards and testing for the U.S. Government or Military. It would fail software standards for the Federal Aviation Administration (FAA) and Food and Drug Administration (FDA), as well as commercial standards used in devices for public safety…If the FAA imposed mandatory alcohol testing for all commercial pilots, the Alcotest would be rejected based upon the FAA safety and software standards…

4. Catastrophic Error Detection Is Disabled: An interrupt that detects that the microprocessor is trying to execute an illegal instruction is disabled, meaning that the Alcotest software could appear to run correctly while executing wild branches or invalid code for a period of time. Other interrupts ignored are the Computer Operating Property (a watchdog timer), and the Software Interrupt.

6. Diagnostics Adjust/Substitute Data Readings: The diagnostic routines for the Analog to Digital (A/D) Converters will substitute arbitrary, favorable readings for the measured device if the measurement is out of range, either too high or too low. The values will be forced to a high or low limit, respectively. This error condition is suppressed unless it occurs frequently enough…

7. Flow Measurements Adjusted/Substituted: The software takes an airflow measurement at power-up, and presumes this value is the "zero line" or baseline measurement for subsequent calculations. No quality check or reasonableness test is done on this measurement…

10. Error Detection Logic: The software design detects measurement errors, but ignores these errors unless they occur a consecutive total number of times. For example, in the airflow measuring logic, if a flow measurement is above the prescribed maximum value, it is called an error, but this error must occur 32 consecutive times for the error to be handled and displayed. This means that the error could occur 31 times, then appear within range once, then appear 31 times, etc., and never be reported…

Based upon a .08% reading from this machine, American citizens are accused of drunk driving and, in court, presumed by law to be guilty.