13.07.2015 Views

System Architecture Design

System Architecture Design

System Architecture Design

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

pSHIELD<strong>System</strong> <strong>Architecture</strong> <strong>Design</strong>PUAs mentioned previously, an embedded system must store information that enables it to identify andvalidate users that have access to the system. But, how does an embedded system store thisinformation? Embedded systems use several types of memory to store different types of data: (i) ROMEPROM to store programming data used to serve generic applications, (ii) RAM to store temporary data,and (iii) EEPROM and FLASH memories to store mobile downloadable code. In an embedded devicesuch as a PDA or a mobile phone several pieces of sensitive information like PINs, credit card numbers,personal data, keys and certificates for authorization purposes, may be permanently stored in secondarystorage media. The requirement to protect this information as well as the rapid growth of communicationscapabilities of embedded devices, which make embedded systems vulnerable to network attacks as well,lead to increasing demands for secure storage space. The use of hard cryptographic algorithms to ensuredata integrity and confidentiality is not feasible in most embedded systems, mainly due to their limitedcomputational resources.Significant attention has to be paid to protect against possible attacks through malicious downloadablesoftware, like viruses, Trojans, logic bombs, etc. The wide deployment of distributed embedded systemsand the Internet have resulted to the requirement for ability of portable embedded systems, e.g. mobilephones and PDAs, to download and execute various software applications. This ability may be new to theworld of portable, highly constrained embedded systems, but it is not new in the world of general–purposesystems, which have had the ability to download and execute files from the Internet or from other networkresources for a long time. One major problem in this service is that users cannot be certain about thecontent of the software that is downloaded and executed on their system(s), about who the creator is andwhat its origin is. An additional important consideration is the robustness of the downloadable code: oncethe mobile code is considered secure, downloaded and executed, it must not affect preinstalled systemsoftware.4.2.3 Cryptography and Embedded <strong>System</strong>sSecure embedded systems should support the basic security functions for (a) confidentiality, (b) integrity,and (c) authentication. Cryptography provides a mechanism that ensures that the previous threerequirements are met. However, implementation of cryptography in embedded systems can be achallenging task. The requirement of high performance has to be achieved in a resource-limitedenvironment; this task is even more challenging when low power constraints exist. Performance usuallydictates an increased cost, which is not always desirable or possible. Cryptography can protect digitalassets provided that the secret keys of the algorithms are stored and accessed in a secure manner. Forthis, the use of specialized hardware devices to store the secret keys and to implement cryptographicalgorithms is preferred over the use of general-purpose computers. However, this also increases theimplementation cost and results in reduced flexibility. On the other hand, flexibility is required, becausemodern cryptographic protocols do not rely on a specific cryptographic algorithm but rather allow use of awide range of algorithms for increased security and adaptability to advances on cryptanalysis. Forexample, both the SSL and IPSec network protocols support numerous cryptographic algorithms toperform the same function, such as encryption. The protocol enables negotiation of the algorithms to beused, in order to ensure that both parties use the desirable level of protection dictated by their securitypolicies.Apart from the performance issues, a correct cryptographic implementation requires expertise that is notalways available or affordable during the lifecycle of a system. Insecure implementations of theoreticallysecure algorithms have made their way to headline news quite often in the past. The cryptographiccommunity has focused on proving the theoretical security of various cryptographic algorithms and haspaid little attention to actual implementations on specific hardware platforms. In fact, many algorithms aredesigned with portability in mind and efficient implementation on a specific platform meeting specificrequirements can be quite tricky. This communication gap between vendors and cryptographersPUD2.3.2Issue 5 Page 55 of 122

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!