Информация об изменениях

Сообщение Re[3]: Единое адрессное пространство от 21.08.2019 23:11

Изменено 21.08.2019 23:13 IID

Re[3]: Единое адрессное пространство
Здравствуйте, Bill Baklushi, Вы писали:

BB>Первый раз такое слышу. Это что за подписанные указатели? Можно подробнее?


Pointer Authentification Code (PAC).
Подписывается значение указателя и контекст (например его адрес в памяти). Ключ лежат в спец.регистрах процессора (уникальны для каждого процесса, кода и данных).

Если подпись нарушена — указатель не принимается (в АРМ пороится старший бит чтобц вызвать исключение). Все подписи и их проверки выполняются аппаратно. Упрощенный перебор невозможен, например на основании знания значений других подписанных указателей — гарантируется криптостойкость.

Заметь, даже если "украсть" указатель на какую-нить важную функцию, например с помощью уязвимости раскрытия данных, то использовать такой указатель будет все равно невозможно.

Нпример, мы хотим с помощью уязвимости заменить безобидный обрботчик какой-то структуры на опасный. И... даже зная их адреса — не можем этого сделать. Т.к.опасный указатель никогда не подписывался для этого адреса памяти.
Re[3]: Единое адрессное пространство
Здравствуйте, Bill Baklushi, Вы писали:

BB>Первый раз такое слышу. Это что за подписанные указатели? Можно подробнее?


Pointer Authentification Code (PAC).
Подписывается значение указателя и контекст (например его адрес в памяти). Ключи лежат в спец.регистрах процессора (уникальны для каждого процесса, кода и данных).

Если подпись нарушена — указатель не принимается (в АРМ портится старший бит чтобы вызвать исключение). Все подписи и их проверки выполняются аппаратно. Упрощенный перебор невозможен (например на основании знания значений других подписанных указателей), гарантируется криптостойкость.

Заметь, даже если "украсть" указатель на какую-нить важную функцию, например с помощью уязвимости раскрытия данных, то использовать такой указатель будет всё равно невозможно.

Нпример, мы хотим с помощью уязвимости заменить безобидный обрботчик какой-то структуры на опасный. И... даже зная их адреса — не можем этого сделать. Т.к.опасный указатель никогда не подписывался для этого адреса памяти.