{"id":2379,"date":"2016-05-20T10:41:00","date_gmt":"2016-05-20T09:41:00","guid":{"rendered":"http:\/\/salesianosatocha.es\/informatica\/?guid=3768bd5b8907a2e5f7caf6e2ac30da89"},"modified":"2016-05-20T10:41:00","modified_gmt":"2016-05-20T09:41:00","slug":"dos-enfoques-al-cifrado-de-memoria-en-x86","status":"publish","type":"post","link":"https:\/\/salesianosatocha.es\/informatica\/2016\/05\/20\/dos-enfoques-al-cifrado-de-memoria-en-x86\/","title":{"rendered":"Dos enfoques al cifrado de memoria en x86"},"content":{"rendered":"<p>Leo en lwn:Las t&#233;cnicas para aumentar la seguridad de los sistemas se est&#225;n centrando en el acceso a la memoria. Un atacante que pueda leer o escribir en regiones arbitrarias de memoria ser&#225; capaz de controlar el sistema competo y tambi&#233;n el acceso a peque&#241;as regiones de memoria puede ser explotado. Una posible t&#233;cnica defensiva podr&#237;a ser cifrar el contenido de la memoria de modo que el atacante no pudiese hacer nada &#250;til aunque tuviese acceso a ella. Este tipo de cifrado requiere soporte de hardware y tanto Intel como AMD lo est&#225;n introduciendo en sus procesadores y ya han enviado parches para su soporte en el kernel linux. El enfoque de Intel,Intel Secure Guard Extensions (SGX), trata de definir enclaves de memoria, que consisten en rangos de memoria, que pueden contener tanto datos como c&#243;digo y que s&#243;lo puede ser accedido por c&#243;digo dentro del enclave. El c&#243;digo puede ser llamado desde fuera, pero s&#243;lo a trav&#233;s de puntos de entrada que se definen cuando se configura el enclave. En el parche para linux se observa como se puede configurar un enclave v&#237;a ioctl. El &#250;ltimo paso requiere un hash de los datos del enclave y una firma apropiada. Esta forma apropiada es el mayor escollo para su inclusi&#243;n dado que requiere la aprobaci&#243;n de Intel, lo que, seg&#250;n Ingo Molnar, \u00abs&#243;lo permite la ejecuci&#243;n de blobs binarios est&#225;ticos bendecidos externamente\u00bb. Por este motivo el parche esta a la espera de, como m&#237;nimo, tener soporte para enclaves firmados por entidades cualesquiera. El enfoque de AMD se llama Secure Memory Encryption (SME) (descripci&#243;n por parte de AMD, en pdf). Este mecanismo es bastante m&#225;s simple: permite marcar rangos de memoria o la memoria completa para su cifrado de modo que ser&#225; el controlador de memoria el que cifrar&#225; los datos usando una clave generada en el encendido del chip. Esa clave no es accesible fuera del procesador y tienen un peque&#241;o impacto en el rendimiento. No obstante, el mecanismo SME no protege de un atacante que ha comprometido el kernel; servir&#237;a para evitar ataques de arranque en fr&#237;o, accesos al bus de memoria o la revelaci&#243;n de datos transitorios guardados en memoria persistente. SME adem&#225;s podr&#225; ser usado como base para otra caracter&#237;stica llamada Secure Encrypted Virtualization (SEV) en la cual cada m&#225;quina virtual posee su propia clave, protegi&#233;ndose as&#237; de accesos externos a la memoria, incluso del propio supervisor. El parche actual s&#243;lo incluye soporte para SME y a&#250;n est&#225; en fase de revisi&#243;n. &#191;Crees que se acabar&#225;n incluidos en el kernel? &#191;Ves &#250;tiles los esfuerzos de los fabricantes de microprocesadores por cifrar la memoria?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Leo en lwn:Las t&eacute;cnicas para aumentar la seguridad de los sistemas se est&aacute;n centrando en el acceso a la memoria. Un atacante que pueda leer o escribir en regiones arbitrarias de memoria ser&aacute; capaz de controlar el sistema competo y tambi&eacute;n el acceso a peque&ntilde;as regiones de memoria puede ser explotado. Una posible t&eacute;cnica defensiva podr&iacute;a ser cifrar el contenido de la memoria de modo que el atacante no pudiese hacer nada &uacute;til aunque tuviese acceso a ella. Este tipo de cifrado requiere soporte de hardware y tanto Intel como AMD lo est&aacute;n introduciendo en sus procesadores y ya han enviado parches para su soporte en el kernel linux. El enfoque de Intel,Intel Secure Guard Extensions (SGX), trata de definir enclaves de memoria, que consisten en rangos de memoria, que pueden contener tanto datos como c&oacute;digo y que s&oacute;lo puede ser accedido por c&oacute;digo dentro del enclave. El c&oacute;digo puede ser llamado desde fuera, pero s&oacute;lo a trav&eacute;s de puntos de entrada que se definen cuando se configura el enclave. En el parche para linux se observa como se puede configurar un enclave v&iacute;a ioctl. El &uacute;ltimo paso requiere un hash de los datos del enclave y una firma apropiada. Esta forma apropiada es el mayor escollo para su inclusi&oacute;n dado que requiere la aprobaci&oacute;n de Intel, lo que, seg&uacute;n Ingo Molnar, \u00abs&oacute;lo permite la ejecuci&oacute;n de blobs binarios est&aacute;ticos bendecidos externamente\u00bb. Por este motivo el parche esta a la espera de, como m&iacute;nimo, tener soporte para enclaves firmados por entidades cualesquiera. El enfoque de AMD se llama Secure Memory Encryption (SME) (descripci&oacute;n por parte de AMD, en pdf). Este mecanismo es bastante m&aacute;s simple: permite marcar rangos de memoria o la memoria completa para su cifrado de modo que ser&aacute; el controlador de memoria el que cifrar&aacute; los datos usando una clave generada en el encendido del chip. Esa clave no es accesible fuera del procesador y tienen un peque&ntilde;o impacto en el rendimiento. No obstante, el mecanismo SME no protege de un atacante que ha comprometido el kernel; servir&iacute;a para evitar ataques de arranque en fr&iacute;o, accesos al bus de memoria o la revelaci&oacute;n de datos transitorios guardados en memoria persistente. SME adem&aacute;s podr&aacute; ser usado como base para otra caracter&iacute;stica llamada Secure Encrypted Virtualization (SEV) en la cual cada m&aacute;quina virtual posee su propia clave, protegi&eacute;ndose as&iacute; de accesos externos a la memoria, incluso del propio supervisor. El parche actual s&oacute;lo incluye soporte para SME y a&uacute;n est&aacute; en fase de revisi&oacute;n. &iquest;Crees que se acabar&aacute;n incluidos en el kernel? &iquest;Ves &uacute;tiles los esfuerzos de los fabricantes de microprocesadores por cifrar la memoria?<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","ngg_post_thumbnail":0,"footnotes":""},"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/posts\/2379"}],"collection":[{"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/comments?post=2379"}],"version-history":[{"count":1,"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/posts\/2379\/revisions"}],"predecessor-version":[{"id":2382,"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/posts\/2379\/revisions\/2382"}],"wp:attachment":[{"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/media?parent=2379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/categories?post=2379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/salesianosatocha.es\/informatica\/wp-json\/wp\/v2\/tags?post=2379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}