Программное обеспечение более уязвимо для вредоносного кода, чем аппаратное, по нескольким причинам:
- Возможность выполнения произвольных операций. 1 Аппаратная логика чаще всего реализует строго достаточную для выполнения предписанных задач функциональность без включения туда произвольных операций. 1 Программное обеспечение, напротив, как правило, имеет полнофункциональный механизм для выполнения чего-то, существенно отличающегося от запланированного функционала. 1
- Возможность изменения. 1 Оборудование является неизменным, в то время как прошивка и программное обеспечение могут сознательно изменяться определёнными компонентами системы либо подвергаться изменениям вследствие недостатков проектирования и реализации. 1
- Использование общих ресурсов. 2 Методы программного шифрования делят процессор и память с остальной частью системы, разделяя ресурсы с помощью небезопасных операций и открывая уязвимости. 2
- Необходимость регулярных обновлений. 3 Программные решения требуют регулярных обновлений и исправлений, в то время как вредоносное ПО постоянно развивается и эволюционирует. 3
При этом атаки на аппаратное обеспечение также опасны: если «взломают» «железо», то программные механизмы защиты станут неэффективными. 4