Из-за ошибок разрушаются многие криптосистемы. Некоторые системы, в целях защиты данных от потери, при сбое в системе, используют временные файлы или виртуальную память; данность увеличивает риск оставления открытого текста на винчестере. В редких случаях операционная система оставляет ключи на жестких дисках. На практике довелось иметь дело с одним из продуктов, где для ввода пароля использовалось всплывающее окно, которое было взломано через пользовательский интерфейс, не смотря на криптографию продукта.
Имело место быть продуктам, которые использовали шифрование одной и той же информации разными ключами (сильным и слабым); другие же использовали как главные, так и сеансовые ключи. Однако они легко были взломаны при помощи частичной информации о разных ключах. Встречались также продукты, где разработчики полагались по ошибке на надежность сеансовых ключей, однако и это не помогло. Было допущено множество ошибок, одна из которых, пожалуй, самая главная - это сокрытие любого возможного доступа к информации о ключах.
К примеру, в ЭК (электронной коммерции) чаще всего ставку делают на простоту использования, таким образом, прибегая к компромиссу в решении вопросов безопасности. Однако подобный компромисс может стоить много: например, ошибка разработчиков в тщательном продумывании нюансов безопасности, при том, что акцентируется внимание на простоте использования.
Скорее всего, проще проводить проверку счетов раз в сутки? А что может сотворить злоумышленник за несколько часов? Возможно ли сокрытие личности злоумышленника путем сокрытия механизмов контроля? Вопросов уйма.
В рабочих списках (hotlists) некоторых систем хранятся скомпрометированные ключи, что позволяет реализовывать эффективные атаки. Однако другие системы подвержены replay-атаками, то есть оказываются взломанными при повторном использовании старых сообщений в целях обмана механизмов.
Ещё одна возможность эффективной атаки реализована в криптосистемах, которые допускают возможность восстановления ключей в экстренных ситуациях. Естественно, что подобное необходимо, но в надежных криптосистемах «срок жизни» ключа сводится до минимума, но, по сути, восстановление ключей – снижение надежности, потому как ключ существует дольше, чем необходимо. Кроме того возможность восстановления базы данных ключей – источник уязвимости, который должен быть учтён при реализации предписаний безопасности.