Yesterday the five-member panel appointed by the President to review “Intelligence and Communications Technologies” issued its report. The report is serious and substantial, and makes 46 specific recommendations for change. I expect to have a lot to say about the report and its aftermath, but for today I want to focus on one small aspect: what the report says about the possibility that the NSA inserted backdoors into software products.
Here’s what the report says (p. 217):
Upon review, however, we are unaware of any vulnerability created by the US Government in generally available commercial software that puts users at risk of criminal hackers or foreign governments decrypting their data. Moreover, it appears that in the vast majority of generally used, commercially available encryption software, there is no vulnerability , or “backdoor,” that makes it possible for the US Government or anyone else to achieve unauthorized access.
[Footnote: Any cryptographic algorithm can become exploitable if implemented incorrectly or used improperly.]
Obviously, the panel had neither the time nor the expertise to look at primary evidence on this point, so it must have relied on what the NSA told it. What is not clear is whether this text was wordsmithed by the panelists themselves, or whether it is based more directly on text provided by the NSA (for example, in NSA written responses to questions from the panel). It matters whether this precise text is the panel’s or the NSA’s. From the panel, I would expect a good faith effort to speak clearly. From the NSA, well, we have seen the word games they sometimes try to play.
Turning to the text, the most interesting feature is the difference between the first and second sentences, which have parallel structure but use different language. Here’s a chart laying out the differences:
|First sentence||Second sentence|
|unaware of any vulnerability||in vast majority … no vulnerability|
|vulnerability created by USG||[any vulnerability]|
|generally available commercial software||generally used, commercially available … software|
|[any software]||encryption software|
|puts users at risk of [non-USG exploit]||[exploitable by USG] or anyone else|
|decrypting data||unauthorized access|
This structure leaves open the possibility that there are vulnerabilities known to and exploitable by the US Government (USG). These might fall into several categories:
- vulnerabilities created by the USG that are exploitable only with the knowledge of a cryptographic key known only to the USG. An example would be the widely suspected backdoor in the NIST pseudorandom number generator standard.
- vulnerabilities created by the USG that allow access to data by means other than decryption, for example by allowing remote access to data at rest, or by causing copies of data to be sent to NSA collection points.
- vulnerabilities in software that is not generally available, such as internally developed software used by large companies to manage their data centers.
- vulnerabilities that are in non-encryption software and were not created by the USG. These would be outside the scope of both sentences.
One also wonders about the limitations based on commercial status: “generally available commercial software” in the first sentence, and “generally used, commercially available … software” in the second sentence. One wonders how the people who chose those phrases would classify critical open source software such as Linux or OpenSSL. Are these “commercial software”? Even if not “commercial software”, are they “commercially available”? I can see two possibilities here. Perhaps this is imprecise drafting by the panel who might have intended to cover all of the relevant software but, being less familiar with the technical community, might have missed this nuance. Or perhaps this is one of the NSA’s word games, meant to leave a loophole.
Finally, I am intrigued by the first part of the footnote (“… if implemented incorrectly”), which seems to miss the distinction between a cryptographic algorithm and cryptographic software. The implication is that a “cryptographic algorithm … implemented incorrectly” is somehow an exception to a statement about “encryption software”. As above, either the panel is missing a technical nuance, or something is hidden here. And if something is hidden, it is probably in the gap between the main text’s “encryption” and the footnote’s “cryptographic”. (The two terms are often used synonymously, although “cryptographic” has a broader technical meaning. For example, a digital signature is “cryptographic” but arguably it is not technically “encryption”.)
The good news here is that the panel’s Recommendation 29 would broadly prevent the US Government from undermining crypto standards or the security of popular software—assuming that the recommendation is adopted by Congress or the President.