Compilando con banderas retpoline GCC

2

A partir de la versión 8 (posterior a la versión 7.3), GCC ha agregado el soporte de retpoline [ 0] . Aunque entiendo que está destinado a [citación necesaria] para su uso en parches del kernel para Spectre (es decir, [1] [2] ), eso no impide que los desarrolladores normales usen esas banderas.

Como tal, ¿debo usar los indicadores para retpoline ( -mindirect-branch , -mfunction-return y relacionados)?

Por ejemplo, he escrito un programa de generación de contraseñas criptográficamente seguro en C [3] . Cuando compilo usando -mindirect-branch=thunk -mfunction-return=thunk , el binario resultante es diferente de no usar esas banderas, presumiblemente desde el cambio entre llamada y salto para llamar y devolver el procesador. ¿Hay alguna razón para hacer esto, o algún beneficio desde una perspectiva de seguridad?

    
pregunta esote 21.05.2018 - 04:40
fuente

0 respuestas

Lea otras preguntas en las etiquetas