Злом TLS з грошовим призом

Розробники TLS-імплементації мовою OCaml оголосили конкурс BTC Piñata, щоб довести надійність свого захисту. Відомо, що конкурси не можуть бути справжнім доказом, але цей дуже забавний, та ще й з невеликим грошовим призом.

Отже, ці двоє хакерів відкрили демо-сервер ownme.ipredator.se.

На сервері лежить ключ від биткоин-адреси 183XuXTTgnfYfKcHbJ4sZeF46a49Fnihdh. Сервер віддасть нам ключ, якщо ми висунемо сертифікат.

Організатори передбачили механізм MiTM для нас. Ми можемо пропускати через себе трафік між віртуальними машинами BTC Piñata (TLS-сервер і TLS-клієнт). Як зрозуміло, в цьому трафік є потрібний сертифікат, потрібно його тільки витягти якимось чином.

Інтерфейс TLS-сервера знаходиться на порту 10000, TLS-клієнт на порту 10002, а порт 10001 використовується для форвардингу трафіку до нас на 40001.

Значить, ініціюємо спілкування сервера з клієнтом і слухаємо порт 40001.

Наприклад, на Node.js це робиться таким скриптом:

var net = require("net");
var server = net.connect({ host: 'ownme.ipredator.se', port: 10002 });
var client = net.connect({ host: 'ownme.ipredator.se', port: 10000 });
server.on('data', console.log.bind(console, 'server'));
client.on('data', console.log.bind(console, 'system'));
client.pipe(server).pipe(client);

Тепер записуємо і аналізуємо трафік.

Самі ж організатора конкурсу визнають, що немає жодних додаткових умов. За ідеєю, можна спробувати виманити у них ключ іншим способом: фішинг, соціальна інженерія, ректальний криптоаналіз (в переносному сенсі) або ще якийсь хитрий прийом.



Код бібліотеки BTC Piñata відкриті.
Список встановленого на демо-сервері.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.