FPGA Security: 5 Things You Should Know
Field Programmable Gate Arrays (FPGAs) have grown in complexity and capacity since their inception in late 1980’s. Nowadays, FPGAs include millions of logic gates, megabytes of memory, high-speed transceivers, analog interfaces, and multicore processors. FPGA applications include digital communication, databases, industrial control systems, and high-performance signal processing. These applications process large volumes of sensitive data. Therefore, it’s important that FPGA vendors and engineers protect these applications. This article reviews the different aspects of FPGA security.
What Is an FPGA?
An FPGA is an Integrated Circuit (IC) silicon chip that consists of arrays of programmable logic gates, memory, or other elements. You can create your own digital circuits by programming these FPGA arrays. In addition, you can overwrite the existing configurations with new desired functionality or application requirements. The programming can be a single logic gate like an OR or AND function. It can also include multiple complex functions that resemble a comprehensive multi-core processor.
You can use FPGAs for all kinds of applications. This includes consumer electronics, like cameras, smartphones, autonomous vehicles, image and video processing and security systems. There are also many commercial uses of FPGA, such as servers, and different verticals like aerospace, medical electronics and military systems.
1. Unique Aspects of FPGA Security
FPGA programming is the process of loading a bitstream file into the FPGA. A bitstream file contains the binary sequence for the FPGA design. Bitstreams are usually vulnerable to the same security threats as regular software including malware, unauthorized copy and Intellectual Property (IP) theft. Cyber criminals can duplicate or reverse engineer FPGA applications by reading the internal memory, intercepting the bitstream, or removing the protective cover of the chip.
On the bright side, application developers do not reveal their design to FPGA vendors or suppliers. As a result, attackers cannot discover any application-related information by attacking the FPGA vendor. In addition, FPGA manufacturers do not use metallization for programming. Thus, reverse engineering techniques where attackers identify the silicon mask layer by decapping the chip do not work.
2. Environment and the Cost of Security
FPGA security design assumes that the attacker has physical access to the device and may execute any physical, electrical or replay attacks. If the attacker does not have physical access, the containing system can ensure security by controlling all FPGA access points. In this situation, internal FPGA security is not necessary.
Unfortunately, this approach is not practical in commercial systems since hackers typically have an economic motive, such as IP theft. In the commercial domain the cost of security is balanced against the value of the information being protected. Therefore, FPGA security designers must make the cost of a security breach greater than the expected economic gain of the attacker.
3. FPGA Security Threats
FPGA security attacks can lead to IP theft, damages to FPGA based systems, and substantial data loss. Each attack requires different security features. The major FPGA attacks can be separated into the following categories.
Cloning and Overbuilding
In cloning, attackers copy the FPGA programming. Then they use the bitstream in an identical device and sell it as their own. Cloning may apply to an entire design or to a subset of the design. For example, purchased cores that may be restricted by the seller.
In overbuilding, the attacker is usually a legitimate contract manufacturer that uses an existing bitstream to build their own systems. Then they sell those systems without the designer’s approval. In both cases, the attacker does not require detailed knowledge of the design.
Reverse Engineering
A cyber criminal can reverse engineer the bitstream to recover the circuit design that it implements. Reverse engineering attacks are used to duplicate and understand the functionality of that application. Moreover, reverse engineering may be used to damage the application by inserting malware.
Reverse engineering attacks of FPGA bitstreams are complicated because FPGA vendors do not have a standardized bitstream. As a result, every new FPGA device requires a new bitstream reverse engineering effort.
Spoofing
In spoofing, the attacker replaces the original FPGA bitstream with their own. That bitstream can include components from cloning or reverse engineering. A spoofed application may compromise any FPGA based system.
Tampering
In tampering, the attacker modifies the application design. By using tampering the attacker can add logic that leaks information from an application or disable parts of the application. Tampering may also be require reverse engineering since it requires set values in the bitstream.
4. Information Security
The basic aspects of information security are data loss prevention, integrity, confidentiality, and authentication. The main focus of FPGA security is on confidentiality, integrity, and authentication.
Confidentiality
Large FPGA designs can contain valuable IPs. Bitstream and IP encryption prevent a competitor from stealing that information. Encryption can also provide trust assurance by requesting a proper key to get access to the FPGA designs.
Integrity
Bitstream data integrity is the ability to ensure a design has not been accidentally modified. A badly programmed FPGA may enable a connection of two large internal drivers. This design flaw can damage the chip by causing it to generate excessive heat and current. As a result, FPGA bitstreams use data integrity checks to detect mistakes during loading. Cyclic Redundancy Check (CRC), a familiar data integrity technique is implemented in several FPGAs. While CRC can detect accidental data corruption, it is ineffective against malicious data modification like tampering encrypted bitstream.
Authentication
Data transfer from the bitstream file to the FPGA is a one-way communication channel. That is why FGPAs rely on one-way message authentication. Strong authentication requires a Message Authentication Code (MAC), a cryptographic hash function calculated over the entire message. The hash function must be impossible to compute without knowing the plaintext of the message.
Authentication brings trust in the running application, since the process verifies that the application has not been accidentally or intentionally modified. That trust enables an application developer to guarantee protection of cryptographic services and the handling of sensitive data.
5. Preconfiguration
FPGAs allow developers to decide if they want to encrypt the bitstream or not. This is useful during the testing or integration stages. But you have to enable encryption when the system is deployed. The option to disable encryption subjects the device to a variety of attacks like Trojan insertion.
An attacker may attempt to load a partial configuration that spies on the resident application if the bitstream is decrypted. In addition, the attacker can shut down the security features in the FPGA by connecting to internal components. They can also preload a Trojan design and interrupt the secure loading of the protected application.
Conclusion
As FPGAs grow in capacity, the applications grow in value, driving the need for stronger security. Since the FPGA application design is incorporated in a design file, FPGA developers must apply information security aspects like encryption in their design. Given that FPGAs are deployed in hostile environments, you have to improve protocols and implement secure designs. These include not only encrypting configuration files but also developing fault tolerant design methodologies.
Hopefully, this article helped you better understand the security concern surrounding FPGAs. After applying this knowledge to your systems, you should be able to rest a little easier, knowing your system is more secure.
Good information, Can I contact you for more details and some questions about this article?