Просмотров: 1595219-01-2012, 19:52
Почти два месяца назад я заявил, что есть большой прогресс в работе. Мы, команда из 10 человек, не тратили время попусту и работали иногда аж по 15 часов в день, каждый день, чтобы вернуть возможность установки Homebrew на PS3 с версиями 3.56+. Существуют три основные цели создания HEN: Во-первых получить возможность установки PKG на PS3. Эта часть сделана, проверена, отлажена и т.д. Во-вторых получить возможность запускать установленные PKG - над этим все еще ведутся работы. В-третьих я не буду вам рассказывать что будет в третьих, т.к. я хочу чтобы это был сюрприз :) Но работа над этим выполнена на 60-70%. Скажу сразу, что это не делает ничего с peek&poke или Backup Manager'ами или с чем-то подобным, это все еще свободный от пиратства метод. По-прежнему запуск Hombrew на PS3 остается самым большим испытанием, над которым мы работали последние два месяца. И как многие из вас знают, если вы следите за моим твиттером, то я нуждаюсь в расшифровках npdrm алгоритмов, для запуска приложений, и мы очень надеялись что Mathieulh даст нам их, но он по прежнему отказывается и ведет себя как шлюха, чтобы люди лизали ему ноги (или что-то еще), чтобы он чувствовал себя хорошо. Но в конце концов он сказал что отказывается дать нам npdrm алгоритмы, чтобы заставить работать Hombrew... И то, что я по началу думал, что "Через неделю все будет готово", на самом деле займет намного больше времени, и мы все еще очень далекого от того, чтобы сделать это. Mathieulh продолжает "кидать" нам загадки, которые как он думает, "полезны для тех у кого есть мозги"... в общем он сказал нам, что решение этой проблемы нужно смотреть в appldr 3.56 прошивки... и что-то, что lv1 посылает appldr, который дает статус для "проверки хэша" проверено или нет. Так мы потратили месяц, пролили много пота, и после того как наш мозг стал отмирать из-за истощения, мы поняли, что это на самом деле фигня, и что никаких алгоритмов в прошивке 3.56 нет, не смотря на то что он нам говорил. Он сказал, что хэш - AES OMAC, но после проверки OMAC мы выяснили что он не был использован в "хэше".. после чего он сказал "а не. я перепутал, это HMAC", после проверки которого мы установили, что appldr вообще никакой роли не играет, на что он ответил "Ах нет. Это в lv1"... Вы также можете посмотреть, что он решил написать тут Это произошло после огромного числа споров в твиттере, которые у нас были с ним из-за того, что его высокомерная задница заявляла, что он "поделился " со мной чем-то(кстати говоря, код которым он поделился не был его, он просто забыл удалить имя оригинального разработчика из одного из файлов, но я не могу показать вам свидетельства, того что он дал мне, т.к. не смотря на все наши ссоры, я дал ему слово что не буду выкладывать, то что он скинул мне и я держу свое слово.) И это все было совершенно бесполезным, что заставило меня в пустую потратить несколько дней, на чтение недокументированного кода. Но почему же он все равно заставляет нас использовать его "советы" и многочисленные загадки? Да для того чтобы саботировать нас и заставить потерять месяцы этой работы!! Но в любом случае, мы поняли, что все что нам дал Мэтью - полное дерьмо(мы знали это и раньше, но мы дали ему презумпцию невиновности) и продолжали работать не смотря на его многочисленные загадки. Так что мы пытались найти exploit, дешифровать 3.60+ прошивки, чтобы получить алгоритм. Теперь, после нескольких недель работы, мы наконец то полностью поняли нужный нам кусок в npdrm алгоритме, и это огромное счастье для всех, но с одним объяснением: Игры на PS3 представляют собой исполняемый файл, формата ".self" (вроде как .exe на windows) эти файлы криптографически подписаны и зашифрованы. Для PSN игр(тех которые не работают с Blu-ray диска) должен быть еще один уровень защиты -"npdrm". Таким образом "npdrm self" файл - основной исполняемый файл на PS3. На прошивке 3.55 мы могли подписывать наши собственные файлы так, что PS3 думала, что это файл от Sony, и без проблем запускала их. Тем не менее это не было на самом деле оригинальным файлом... NPDRM алгоритм, имеет некоторую дополнительную информацию, которую PS3 успешно игнорирует. Она просто не проверяет эту информацию, таким образом мы могли засунуть туда что угодно. Но с прошивки 3.60 PS3 стала использовать эту информацию, в связи с чем она легко может отличить оригинальный файл Sony от созданного нами Homebrew. Это и есть "npdrm алгоритм хэширования" что мы и пытались выяснить, потому что если мы сможем дублировать эту информацию, то рано или поздно мы сможем подписывать ей файлы и запускать Hombrew. Еще один важный момент, который нужно объяснить. Я сказал несколько раз, что файл "подписан".. Это означает, что существуют "ECDSA подписи" в файле, которые может проверить PS3. Подписью ECDSA является то, что позволяет проверить PS3, был изменен файл или нет. Легко проверить подпись, но невозможно создать ее без оригинальных ключей.(думаю, что это как реальные подписи. Т.е. вы можете узнать подпись вашего отца, но вы не можете подделать ее, ровно так же, как вы можете узнать подпись, подделанную вашим братом). Так каким же образом мы могли проходить проверку подлинности на 3.55? Все благодаря ECDSA подписи. На самом деле это все просто очень сложные математические уравнение(после понимания которых, у меня болит голова, но если что я могу попытаться описать это простыми словами в моем блоге, если люди заинтересуются конечно). И одной самой важной частью этого математического уравнения, является то, что вам нужно использовать случайные числа для генерации подписи, но Sony не удалось использовать тот же номер каждый раз. Делая это, легко можно было найти закрытый ключ(что позволяет сформировать нужную подпись), делая некоторые математические уравнения на нем. Итак, подведем итоги. "подписанный файл", это файл который имеет цифровую подпись "ECDSA", которая не может быть подделана, если у вас нет ключа от нее, как правило который невозможно получить, но мы смогли сделать это, потому что Sony не удалось реализовать все это должным образом. Теперь вернемся к нашей теме. Так что же это за отсутствующая часть npdrm алгоритма, которая нам так нужна? А оказывается, что "npdrm self" имеет вторую подпись, так что это "зашифрованный и подписанный self файл" с дополнительным уровнем безопасности(NPDRM уровень), который повторно шифрует его и повторного подписывает его. Все это не проверялось в 3.55 и теперь проверяется в 3.60. Одна важная вещь, следует отметить, что Sony не сделали ту же ошибку с этой подпись, они всегда используют случайные числа, так что получается технически очень сложно понять ключ от него. Чтобы быть более точным, то это такой же случай как .pkg которые вы устанавливаете на свою PS3, для чего нужен патч прошивки(что как раз и делает CFW), так что те .pkg файлы могут быть установлены, и это из-за того, что они подписаны ECDSA для которых никто не смог получить секретный ключ. Именно поэтому мы называем их "неподписаные пакеты" NPDRM self подпись использует ту же самую кривую ECDSA и тот же ключ, который используется в PS3 pkg файлах, так что ни у кого нет( и не может быть) ключа от него. Так что теперь мы знаем, как NPDRM устроен, но мы не можем дублировать его. Поэтому мы в пустую потратили 2 месяца на это, потому что Мэтью солгал, сказав, что он может сделать это... Помню, когда 4.0 вышла и я сказал: "Я могу подтвердить, что мой метод до сих пор работает", то он также подтвердил,что его npdrm алгоритм хэширования до сих пор работает тоже, а он не сделал ничего, чтобы подтвердить это, он просто лгал об этом, потому что нет никакого способа, которым он мог бы проверить это, потому что у него нет ключа. Я сказал, что у меня есть доказательства лжи Мэтью, так вот они: Он сказал, что в 3.56, что было ложью. Он сказал что AES OMAC, что тоже было ложью, он сказал, что это HMAC, что тоже было ложью. Он сказал что в appldr, что тоже являлось ложью. Он сказал в lv1, это тоже было ложью. Он сказал, что "вам нужен один час, если у вас есть мозги, чтобы понять это". Он сказал, что когда мы узнаем алгоритм, то мы сможем дублировать его, это тоже ложь. Он продолжал называть его "хэш", в чем был не прав. Доказательства? Подписи ECDSA это не хэш(две очень разные сроки для различных вещей), было проверено vsh.self, это было не в lv2 или lv1 или appldr, поэтому нет способа, которым он мог бы построить свои файлы самостоятельно. Теперь вы знаете реальную причину, почему он отказался "делится". Это потому что у него всего этого не было....(тут я просто поломал свой мозг, поэтому прошу прощения за правленый гугл) Так почему же он делает все это? Потому что, его высокомерие не позволяет признать, не зная что-то? или это потому что он хотел заставить нас потерять это время? Для меня это выглядит как чистый саботаж, он вводит в заблуждение информации, чтобы направить нас в сторону от реальной части коды, которая содержит решение. Это конечно, если мы достаточно любезны, чтобы предположить, что он знал что или где смотреть в первую очередь. В конце концов, он не был достаточно умен, чтобы лгать только о вещах, которые мы не смогли проверить... Теперь мы знаем(мы всегда знали, но теперь у нас есть доказательства, чтобы подтвердить это), что он лжец, и я не думаю, что кто-то будет верить ему дальше. Хватит уже говорить о балаболах. Вернемся к HEN 4.0. Ну и что дальше? Хорошо. Мы теперь знаем, что мы не можем подписать файл, так что мы не можем запускать наши приложения на 3.60+. То что мы будем делать, это искать другим путем, совершенно новую уязвимость, которая позволила бы установить файлы на PS3. Мы так же будем проверять возможность "столкновения подписи" и для этого мы нуждаемся в помощи сообщества. Мы надеемся, есть столкновения(то есть тот же самый код используется дважды), которая позволит нам вычислить ключ, и если это произойдет, тогда мы можем приблизиться к релизу. Так когда же этот джейлбрейк выйдет? Если бы я знал, я бы вам сказал, но я не знаю. Я сказал в ноября прошлого года, что декабрь, перед рождеством, подом перед новым годом и т.д., но как вы можете видеть, это невозможно предсказать. Мы могли бы стать счастливчиками и сделать его за пару дней. или мы сможем сделать его только через пару месяцев. Все что вам нужно делать, это: быть терпеливым(и пожалуйста, прекратите меня спрашивать меня о дате релиза!) Я хотел бы поблагодорить команду, которая помогала мне с решением этой задачи все это время, и кто никогда не унывал, и я хотел бы поблагодорить Анонимного жертвователя, который недавно присоеденился к нам и который сыграл важную роль в выяснении всего этого. Мы все верим, что свобода начинается с познания, и эти знания должны быть открытыми и доступными для всех, поэтому мы делимся этой информацией с миром. Мы получили подтверждение вчера, и поскольку совместное использование этой информации не поможет Sonу в любом случае, чтобы блокировать наши усилия в следующих прошивках, мы решили поделиться им с вами. Мы верим в прозрачность, мы верим в открытость, мы верим в свободный мир, и мы хотим, чтобы вы были его частью. Если вы хотите узнать больше об этом алгоритме подписи ECDSA, прочитайте эту интересную статью, которая объясняет в деталях, и вы также можете посмотреть презентацию команды CCC Fail0verflow которые первыми объяснили ошибку Sony в их осуществлении, который сделал кастом возможным. Источник новости - http://kakaroto.homelinux.net/
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем. Информация Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации. |