Один из самых известных хакеров в мире Дэн Камински признался, что два года назад пытался взломать Bitcoin, но не смог найти уязвимостей в системе. Несмотря на неудачу, Камински считает опыт весьма полезным, так что он с удовольствием провёл время. Дэн Камински в 2008 году описал уязвимость в глобальной системе DNS, которая делает возможной подмену данных на DNS-сервере путём заполнения кэша с постороннего источника. Эта атака получила название атака Каминского. Сам хакер стал знаменитым и с тех пор консультирует корпорации из списка Fortune 500 по вопросам безопасности.
Любую систему можно взломать. Если такой маститый хакер как Дэн Камински ищет уязвимости, он найдёт десятки потенциальных брешей практически в любой системе. Что же произошло в случае с Bitcoin?
«Как инженера и как хакера (поверьте, это две очень разные вещи), меня очень удивила система Bitcoin, — пишет Дэн Камински. — Это система со следующими свойствами:
Глобальное облако неограниченного размера, составленное из постоянно находящихся в онлайне машин, готовых к работе.
Коммуникации на собственном корявом маленьком сетевом протоколе.
Написана на C++, который обычно не самый безопасный язык при столкновении с обычным интернет-мусором.
Напрямую реализует функцию сказочного обогащения для любого хакера, который взломает систему.
По всем признакам, подобная технология должна бы обрушиться мгновенно, на каждом из уровней. Но ядро технологии реально работает, и продолжает работать в таком масштабе, который никто даже не предполагал. Что за чертовщина тут происходит?»
По мнению Дэна Камински, необычная устойчивость к взлому систему Bitcoin заключается в том, что эта система разрабатывалась совершенно не в том контексте, в каком обычно создаётся программное обеспечение. Если обычные программисты реализуют функциональность, не задумываясь о безопасности, то система Bitcoin изначально проектировалась с учётом всех вероятных атак. Даже выбор языка C++ в этом контексте выглядит правильно, потому что позволил создать логичную и безопасную архитектуру.
Дэн Камински с оптимизмом смотрит на этот эксперимент и пока не видит конкретных причин и сроков, когда инфраструктура Bitcoin даст сбой. Впрочем, «эксперимент ещё не закончен, нужно сделать ещё много интересных вещей, и пока не ясно, какое будущее у этой технологии», — говорит Камински.
Интересно, как в презентации двухлетней давности Камински сравнивает код Bitcoin с нормальным кодом.
Нормальный код
— выглядит нормально на первый взгляд;
— чуть копнуть, и всё становится плохо.
Код Bitcoin
— выглядит очень плохо на первый взгляд;
— чуть копнуть, и всё становится на удивление хорошо;
— мы не привыкли работать с системами с такими характеристиками;
— в коде есть признаки, что аудит проводили хакеры вроде нас.
Источник — xakep.ru/post/60452/default.asp