Сообщение Re[3]: Единое адрессное пространство от 21.08.2019 23:11
Изменено 21.08.2019 23:13 IID
Re[3]: Единое адрессное пространство
Здравствуйте, Bill Baklushi, Вы писали:
BB>Первый раз такое слышу. Это что за подписанные указатели? Можно подробнее?
Pointer Authentification Code (PAC).
Подписывается значение указателя и контекст (например его адрес в памяти). Ключ лежат в спец.регистрах процессора (уникальны для каждого процесса, кода и данных).
Если подпись нарушена — указатель не принимается (в АРМ пороится старший бит чтобц вызвать исключение). Все подписи и их проверки выполняются аппаратно. Упрощенный перебор невозможен, например на основании знания значений других подписанных указателей — гарантируется криптостойкость.
Заметь, даже если "украсть" указатель на какую-нить важную функцию, например с помощью уязвимости раскрытия данных, то использовать такой указатель будет все равно невозможно.
Нпример, мы хотим с помощью уязвимости заменить безобидный обрботчик какой-то структуры на опасный. И... даже зная их адреса — не можем этого сделать. Т.к.опасный указатель никогда не подписывался для этого адреса памяти.
BB>Первый раз такое слышу. Это что за подписанные указатели? Можно подробнее?
Pointer Authentification Code (PAC).
Подписывается значение указателя и контекст (например его адрес в памяти). Ключ лежат в спец.регистрах процессора (уникальны для каждого процесса, кода и данных).
Если подпись нарушена — указатель не принимается (в АРМ пороится старший бит чтобц вызвать исключение). Все подписи и их проверки выполняются аппаратно. Упрощенный перебор невозможен, например на основании знания значений других подписанных указателей — гарантируется криптостойкость.
Заметь, даже если "украсть" указатель на какую-нить важную функцию, например с помощью уязвимости раскрытия данных, то использовать такой указатель будет все равно невозможно.
Нпример, мы хотим с помощью уязвимости заменить безобидный обрботчик какой-то структуры на опасный. И... даже зная их адреса — не можем этого сделать. Т.к.опасный указатель никогда не подписывался для этого адреса памяти.
Re[3]: Единое адрессное пространство
Здравствуйте, Bill Baklushi, Вы писали:
BB>Первый раз такое слышу. Это что за подписанные указатели? Можно подробнее?
Pointer Authentification Code (PAC).
Подписывается значение указателя и контекст (например его адрес в памяти). Ключи лежат в спец.регистрах процессора (уникальны для каждого процесса, кода и данных).
Если подпись нарушена — указатель не принимается (в АРМ портится старший бит чтобы вызвать исключение). Все подписи и их проверки выполняются аппаратно. Упрощенный перебор невозможен (например на основании знания значений других подписанных указателей), гарантируется криптостойкость.
Заметь, даже если "украсть" указатель на какую-нить важную функцию, например с помощью уязвимости раскрытия данных, то использовать такой указатель будет всё равно невозможно.
Нпример, мы хотим с помощью уязвимости заменить безобидный обрботчик какой-то структуры на опасный. И... даже зная их адреса — не можем этого сделать. Т.к.опасный указатель никогда не подписывался для этого адреса памяти.
BB>Первый раз такое слышу. Это что за подписанные указатели? Можно подробнее?
Pointer Authentification Code (PAC).
Подписывается значение указателя и контекст (например его адрес в памяти). Ключи лежат в спец.регистрах процессора (уникальны для каждого процесса, кода и данных).
Если подпись нарушена — указатель не принимается (в АРМ портится старший бит чтобы вызвать исключение). Все подписи и их проверки выполняются аппаратно. Упрощенный перебор невозможен (например на основании знания значений других подписанных указателей), гарантируется криптостойкость.
Заметь, даже если "украсть" указатель на какую-нить важную функцию, например с помощью уязвимости раскрытия данных, то использовать такой указатель будет всё равно невозможно.
Нпример, мы хотим с помощью уязвимости заменить безобидный обрботчик какой-то структуры на опасный. И... даже зная их адреса — не можем этого сделать. Т.к.опасный указатель никогда не подписывался для этого адреса памяти.