MXPA05013801A - Sistemas y metodos para validar integridad de archivo ejecutable utilizando criptografias de imagen parciales. - Google Patents

Sistemas y metodos para validar integridad de archivo ejecutable utilizando criptografias de imagen parciales.

Info

Publication number
MXPA05013801A
MXPA05013801A MXPA05013801A MXPA05013801A MXPA05013801A MX PA05013801 A MXPA05013801 A MX PA05013801A MX PA05013801 A MXPA05013801 A MX PA05013801A MX PA05013801 A MXPA05013801 A MX PA05013801A MX PA05013801 A MXPA05013801 A MX PA05013801A
Authority
MX
Mexico
Prior art keywords
cryptography
executable file
memory
response
partial image
Prior art date
Application number
MXPA05013801A
Other languages
English (en)
Inventor
Jonathan D Schwartz
Philip Joseph Hallin
Yu Lin Sie
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA05013801A publication Critical patent/MXPA05013801A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

Se describen sistemas y metodos para validar la integridad de un archivo ejecutable. En un aspecto, se generan multiples criptografias de imagen parciales, la combinacion de las cuales representa un compendio de un archivo ejecutable completo. Despues de cargar el archivo ejecutable en un dispositivo de computo, se intercepta una solicitud para compaginar una porcion del archivo ejecutable en memoria para la ejecucion. En repuesta a interceptar la solicitud, y antes de compaginar la porcion en memoria para ejecucion, se calcula una criptografia de validacion de la porcion. La criptografia de validacion es comparada con una criptografia parcial de las multiples criptografias de imagen parciales para determinar integridad de codigo de la porcion. La criptografia parcial representa un mismo segmento de codigo que la porcion.

Description

SISTEMAS Y MÉTODOS PARA VALIDAR INTEGRIDAD DE ARCHIVO EJECUTABLE UTILIZANDO CRIPTOGRAFÍAS DE IMAGEN PARCIALES CAMPO TÉCNICO Esta descripción se refiere a autentificación o verificación de datos.
ANTECEDENTES Un archivo ejecutable que corre una computadora de usuario puede contener un virus o un caballo de Troya. Un archivo ejecutable para también es llamado una imagen binaria e incluye, por ejemplo, cualquier objeto ejecutable tal como ejecutables portátiles (PEs), macros, escritos como escrito Básico Visual (VBS), etc. Un virus es un programa o pieza de código que modifica una imagen binaria en disco, típicamente contra los deseos del usuario y sin conocimiento del usuario. Los virus también pueden replicarse ellos mismos. Un virus simple que puede hacer una copia de él mismo una y otra vez es relativamente fácil de producir. Incluso tales virus simples son peligrosos debido a que pueden utilizar rápidamente toda la memoria disponible y detener un sistema. Otros tipos peligrosos de virus son capaces de transmitirse a ellos mismos a través de redes y sobrepasar los sistemas de seguridad. Diferente a los virus, lo caballos de Troya no se duplican ellos mismos pero también pueden ser destructivos, frecuentemente disfrazándose como siendo aplicaciones. Por ejemplo, un caballo de Troyano puede ser independientemente lanzado como un usuario no sospechoso. Un tipo insidioso de caballo Troyano es un programa que dice que liberará a su computadora del virus pero en vez de eso introduce virus en su computadora. De esa forma, los archivos ejecutables pueden tener riesgo de correr en una computadora. Un aspecto para identificar código ejecutable que ha sido corrompido, por ejemplo, con un virus o un caballo de Troya, involucra el uso de criptografías criptográficas confiadas en donde instalar y descargar un ejecutable en un dispositivo de cómputo. Una criptografía criptográfica, o simplemente una "criptografía", recopila un ejecutable en una forma resumida, o compendio. Una criptografía confiable es una conocida para ser buena, o representa código no corrompido, en el momento de la creación de criptografía. Para generar criptografía confiables para un archivo ejecutable (es decir, una imagen binaria, código ejecutable, escritos, macros, etc.), un compendio de mensaje o cálculo de revisión es realizado en el ejecutable, incluyendo recursos asociados tal como datos, para obtener un primer resultado antes de transferir el ejecutable desde una ubicación a otra. El mismo cálculo es hecho en el ejecutable transferido para obtener un segundo resultado. El primer resultado es comparado al segundo resultado para determinar si el ejecutable recibido en los mismos datos que fueron originalmente enviados. Por ejemplo, si antes y después los resultados de cálculo concuerdan, entonces los datos definidos son más probablemente precisos. De otra forma, el ejecutable recibido ha sido corrompido. De esta forma, utilizar una criptografía de imagen binaria completa reduce efectivamente el riesgo de descargar o instalar una imagen binaria corrompida.
COMPENDIO DE LA INVENCIÓN Se describen sistemas y métodos para validar la integridad de un archivo ejecutable que utiliza criptografía de imagen parcial. En un aspecto, múltiples criptografías de imagen parciales son generadas, la combinación que representa un compendio de una imagen binaria completa. Subsecuente a descargar la imagen binaria en un dispositivo de cómputo, una solicitud para compaginar una porción de la imagen binaria en memoria para ejecución es interceptada. En respuesta a interceptar la solicitud, ni antes de compaginar la porción en la memoria para ejecución, se calcula una criptografía de validación de la porción. La criptografía de validación es comparada con una criptografía parcial de las múltiples criptografías de imagen parciales para determinar integridad de código de la porción. La criptografía parcial representa un mismo segmento de código como la porción.
BREVE DESCRIPCIÓN DE LOS DIBUJOS En la Figuras, el dígito más a la izquierda del número de referencia del componente identifica la figura particular en la que aparece el primer componente. La Figura 1 ilustra un sistema ilustrativo para validar la integridad de archivo ejecutable que utiliza criptografías parciales. La Figura 2 muestra un procedimiento ilustrativo para validar la integridad de archivo ejecutable que utiliza criptografías parciales. La Figura 3 muestra un ejemplo de un ambiente de cómputo adecuado en el que los sistemas y métodos para validar integridad de archivo ejecutable que utilizan criptografías parciales pueden ser completa o parcialmente implementados.
DESCRIPCIÓN DETALLADA V ista Ge n eral Delinear solo una porción de código ejecutable en memoria en cualquier momento antes de ejecutar el código es comúnmente realizado para eficazmente utilizar el procedimiento y recursos de memoria. Por ejemplo, compaginar es una técnica utilizada por sistemas operativos de memoria virtual para cargar/delinear, en cualquier momento, solo un cierto número de bytes de un archivo ejecutable (por ejemplo, un archivo de PE) de un dispositivo de almacenamiento en memoria como código. Por ejemplo, cuando un programa de computadora necesita una compaginación que no está en la memoria principal, el sistema operativo copia la página requerida en la memoria. En otro ejemplo, en una máquina de escrito tal como una máquina de escrito VB pueden delinear una porción de escrito (la porción siendo independiente de cualquier página o concepto de tamaño de página) de un dispositivo de almacenamiento en memoria como código. En vista de las diferentes técnicas utilizadas para cargar diferentes tipos y cantidades de código ejecutable en memoria para ejecución, y para propósitos de discusión, la frase "una porción" aquí indica un número arbitrario de bytes, en donde el número de bytes es apropiado para la operación de carga de código a memoria particular siendo realizada. Por ejemplo, para operaciones de compaginación, la frase "una porción", o "porción" se refiere a un número de bytes delineado por un límite de página (una o más páginas). En otro ejemplo, y con respecto a operaciones de no compaginación (por ejemplo, operaciones de carga de memoria de código ejecutable realizadas por una máquina de escrito), la frase "una porción", o "porción" se refiere a un número de bytes apropiado para la impiementación particular utilizada para mover código/escrito en memoria para ejecución subsecuente. Sin importar de que técnica es utilizada para cargar código ejecutable en la memoria para ejecución, el número de bytes en tal porción es arbitrario y generalmente un número menor de bytes que el número de bytes en el archivo ejecutable completo, típicamente siendo una función de la arquitectura de carga de código ejecutable particular siendo implementada. Una razón de porque el tamaño de byte de una porción de código ejecutable para cargarse en la memoria es típicamente menos que el tamaño de archivo ejecutable completo es debido a las cantidades prohibitivas de memoria y recursos de procesamiento que generalmente deberían ser requeridos para cargar el archivo ejecutable completo en la memoria, especialmente cuando solo una porción pequeña (por ejemplo, una o más páginas) del archivo ejecutable está programado para ejecución. Por ejemplo, después de que un archivo ejecutable es instalado en un dispositivo de almacenamiento de datos, si una criptografía individual de la imagen completa (archivo ejecutable) será a ser validado inmediatamente antes de cargar la primera porción de esa imagen en la memoria para ejecución, los recursos de memoria y procesador no serían eficientemente utilizados. Esto es debido a que calcular la criptografía de imagen completa requeriría compaginar el archivo ejecutable completo en la memoria. Tal procedimiento requiere compaginarse en piezas de código, datos, y/o recursos que, bajo circunstancias de operación de compaginación normal, no serían compaginados en ese tiempo particular, si alguna vez lo fueron. Una vez más, tales operaciones de carga de porción sería sustancialmente prohibitivas en términos de recurso y costos de desempeño. Por estas razones, utilizar una criptografía de imagen completa no es práctico se delinea una porción de código en la memoria para ejecución para determinar si el código si está asociado con la porción ha sido corrompido. Por consiguiente, las arquitecturas de carga de código ejecutable típicamente cargan muchas menos que un archivo ejecutable completo a una memoria para ejecución. Esto asegura que la memoria y los recursos de procesamiento son eficientemente utilizados. En vista de lo anterior, cuando una porción de un archivo ejecutable está siendo compaginado en memoria, si la porción fue corrompida desde que se hizo la última revisión de integridad de criptografía de archivo ejecutable completo, los sistemas existentes no detectarán el código corrompido hasta después de que se ejecuta el código corrompido, si lo hace del todo. Para ese entonces, el código corrompido ha comprometido probablemente la integridad de una o más partes del sistema. En otras palabras, cualquier sistema existente que implementa revisiones de integridad de imagen completa puede tener problemas si la página es corrompida después de la revisión. Por estas razones, los archivos ejecutables aún son muy riesgosos para correr. En contraste con las infraestructuras de integridad de código convencionales, los siguientes sistemas y métodos descritos para validar integridad de archivo ejecutable se utilizan criptografías parciales para detectar cualquier código que ha sido corrompido después de que se instaló en el sistema inmediatamente antes de mover (compaginar, etc.) el código en la memoria para ejecución.
Los sistemas y métodos realizan esto sin confiar en la infraestructura de criptografía de imagen completa de sistemas convencionales. Hasta este punto, los sistemas y métodos general múltiples criptografías para cada archivo ejecutable. Cada criptografía individual representa una porción respectiva del archivo ejecutable, para que cada criptografía sea un compendio de menos de todos los bytes del archivo ejecutable. En esta implementación, por ejemplo, cada criptografía es un compendio de una página respectiva del archivo ejecutable, es decir, una criptografía por página (el número de bytes en una página es arbitrario y una función de la arquitectura de compaginación implementada particular). En otra implementación, cada criptografía no es una criptografía por página, pero representa un compendio de menos de una página o más de una página del archivo ejecutable. Mientras los sistemas y métodos cargan una porción (por ejemplo, una página o algo similar) del archivo ejecutable en memoria de un dispositivo de almacenamiento, los sistemas y métodos revisan la integridad de solo esa porción. Estos resultados en poca forma dan recursos o realizan impacto, ya que la porción es validada sin cargar ninguna de las porciones adicionales/externas del archivo ejecutable (por ejemplo, el archivo ejecutable completo).
Cuando los sistemas y métodos para validar integridad de archivo ejecutable utilizan criptografías parciales que identifican una porción corrupta de un ejecutable siendo cargado en la memoria, por ejemplo, como parte de una operación en página, la porción corrupta no es delineada en la memoria para ejecución. En una implementación cuando una porción corrupta de un ejecutable es identificada durante operaciones de compaginación, se falla con la operación en página correspondiente, que en algunas implementaciones causará que se lance una infección. De esta manera, los sistemas y métodos detectan páginas corruptas de código antes de que el código sea ejecutado. Esto sustancialmente reduce el riesgo de ejecutar un archivo ejecutable, y por lo tanto proporciona recepción adicional contra virus, ataques Troyanos y/o similares, que involucran archivos ejecutables. Estos y otros aspectos de los sistemas y métodos para validar integridad de archivo ejecutable que utilizan criptografías parciales ahora son descritos en mayor detalle.
Un Sistema Ilustrativo Aunque no se requiere, los sistemas y métodos para validar integridad de archivo ejecutable que utilizan criptografías parciales son descritos en el contexto general de instrucciones ejecutables por computadora (módulos de programa) siendo ejecutadas por un dispositivo de cómputo tal como una computadora personal. Los módulos de programa generalmente incluyen propinas, programas, objetos, componentes, estructuras de datos, etc., que realizan tareas particulares o implementas tipos de datos abstractos particulares. Mientras los sistemas y métodos son descritos en el contexto anterior, los actos y operaciones descritas aquí también pueden implementados en hardware. La Figura 1 ilustra un sistema ilustrativo 100 para validar integridad de archivo ejecutable que utiliza criptografías parciales. En esta implementación, el sistema 100 incluye dispositivo de cómputo de cliente 102. El dispositivo de cómputo 102 es cualquier tipo de dispositivo de cómputo tal como una computadora personal, una computadora portátil (laptop), un servidor, dispositivo de cómputo móvil de factor de forma pequeña (por ejemplo, un teléfono celular, asistente digital personal, o computadora portátil), etc. El dispositivo de cómputo 102 incluye módulos de programa 104 y datos de programa 106. Los módulos de programa 102 incluyen, por ejemplo, uno o más módulos de programa de computadora para general múltiples criptografías criptográficas (es decir, criptografías de imagen parciales 108) para porciones respectivas de un archivo ejecutable, y módulos de programa para validar el archivo ejecutable con los respectivos de las múltiples criptografías criptográficas durante operaciones de compaginación de código (o carga de porción). Por ejemplo, el módulo de criptografía de archivo ejecutable por porción 110 genera criptografía de imagen parciales 108 para porciones respectivas de un archivo ejecutable. El módulo de validación de integridad de porción de imagen 112, que en esta implementación es un conector de sistema de archivo (por ejemplo, un controlador de filtro), valida el archivo ejecutable utilizando criptografía criptográfica generada durante operaciones de compaginación de código. Para propósitos de ilustración, el archivo(s) ejecutable para criptografía criptográfica para generar criptografía de imagen parciales 108 son mostrados como una parte respectiva de "otros datos" 114. Para propósitos de discusión e ilustración, el módulo de criptografía de archivo ejecutable por porción 110 y el módulo de validación de integridad de porción de imagen 112 son mostrados como siendo implementados en un dispositivo de cómputo individual 102. Sin embargo, estos módulos de programa pueden ser implementados en diferentes dispositivos de cómputo con todos a un subgrupo de los módulos de programa 104 y los datos de programa 106 del dispositivo de cómputo 102. Por ejemplo, en una implementación, un primer dispositivo de cómputo implementa el módulo de criptografía de archivo ejecutable 110 para generar un paquete que comprende un archivo ejecutable y criptografías de imagen parciales correspondientes 108 para instalación y/o descargar en un segundo dispositivo de cómputo. Un segundo dispositivo de cómputo implementa módulos de validación de integridad de porción de imagen 112 para validar el archivo ejecutable con los respectivos de las múltiples criptografías criptográficas durante las operaciones de compaginación de código (o carga de porción). Ahora describimos las operaciones del sistema 100 en mayor detalle al describir primero operaciones ilustrativas de módulo de criptografía de archivo ejecutable por porción 110 y después describir operaciones ilustrativo de módulo de validación de integridad de porción de imagen 112.
Criptografía Criptográfica de Archivo Ejecutable por Porción Ilustrativo Como se indicó anteriormente, el módulo de criptografía de archivo ejecutable por porción 110 genera criptografía de imagen parciales 108 para porciones respectivas de un archivo ejecutable. Cada criptografía parcial 108 de las criptografías de imagen parciales 108 representa una criptografía de una porción respectiva de un archivo ejecutable, para que cada criptografía 108 sea un compendio de menos de todos los bytes del archivo ejecutable (a menos de que el tamaño del ejecutable completo sea menor o igual al tamaño de porción). En una implementación, por ejemplo, cada criptografía 108 no es una criptografía por página, pero representa un compendio de menos de una página, o más de una página, del archivo ejecutable (es decir, un compendio que no está basado en un límite de tamaño de página). En esta implementación, y para propósitos de discusión, cada criptografía 108 es un compendio de una página respectiva del archivo ejecutable, es decir, una criptografía por página. (El número de bytes en una página es arbitrario y una función de la arquitectura de compaginación implementada particular). El algoritmo(s) de criptografía particular implementado por módulo de criptografía de archivo ejecutable por porción 110 para crear las múltiples criptografías parciales 108 es arbitrario y puede ser cualquier algoritmo utilizado para generar una criptografía de código binario. Los ejemplos de tales algoritmos incluye, por ejemplo, SHA-1 y MD5. El sistema 100 puede asociar un archivo ejecutable con sus criptografías de imagen parciales correspondientes 108 en muchas formas diferentes. En una implementación, por ejemplo, el sistema 100 utiliza una aplicación de catálogo de sistema para hacer o actualizar (ver, "otros módulos de programa" 118) para empacar un archivo ejecutable con sus criptografías de imagen parciales correspondientes 108 en un catálogo de sistema 120. Tal empacamiento puede ser realizado como parte de las operaciones de creación del catálogo de sistema 120, o como parte de un procedimiento de actualización de catálogo de sistema 120. En una implementación, el catálogo de sistema 120 está basado en una estructura de archivo de cadena que también incluye criptografías de imagen parciales 108. Aunque el uso de catálogo de sistema es común, un catálogo de sistema convencional no incluye criptografía de imagen parciales 108 de cualquier archivo ejecutable. Más que eso, si un catálogo de sistema convencional incluye cualquier tipo de criptografía de archivo ejecutable, la criptografía de archivo ejecutable será una criptografía de archivo ejecutable individual para el archivo ejecutable completo. En una implementación, el catálogo de sistema 120 incluye criptografías de imagen parciales 108 y una criptografía de archivo ejecutable completa; la criptografía de archivo ejecutable completa siendo para compatibilidad hacia atrás con infraestructura de integridad de código convencional.
En otra implementación, el sistema 100 utiliza una aplicación de marca criptográfica (ver, "otros módulos de programa" 118) para empacar un archivo ejecutable con sus criptografías de imagen parciales correspondientes 108 en un archivo auto-marcado 122. En esta implementación el archivo auto-marcado es un formato de datos PKCS#7, que permite a un usuario final trazar una firma asociada y certificado de X.509 para una autoridad de certificado final. En una implementación, el archivo auto-marcado 122 incluye criptografía de imagen parciales 108 y una criptografía de archivo ejecutable completa; la criptografía de archivo ejecutable completa siendo para compartir y mirar hacia atrás con infraestructura de integridad de código convencional.
Validación de Integridad de Archivo Ejecutable Ilustrativa Sin importar cómo el sistema 100 asocia las criptografías de imagen parciales 108 con un archivo ejecutable correspondiente (por ejemplo, asociando un archivo ejecutable con sus criptografías de imagen parciales 108 en el catálogo de sistema 120 o un archivo auto-marcado 122), tal asociación permite al módulo de validación de integridad de porción de imagen 112 realizar validación de archivo ejecutable durante operaciones de carga de código con recurso mínimo e impacto de desempeño. Esto es debido a, mientras para porciones individuales del archivo ejecutable son copiadas desde un dispositivo de almacenamiento en la memoria durante las operaciones de compaginación (o carga de porción) para ejecución subsecuente, las respectivas de las criptografías de imagen parciales 108 asociadas con porciones individuales son utilizadas para validar porciones individuales. (RAM, ilustrativa, ROM, y dispositivo de almacenamiento tal como una unidad de disco, CD-ROM, DVD, etc., son mostradas y descritas más adelante en referencia a la Figura 3). Como se describe más adelante, esto es realizado de forma independiente a cualquier necesidad para extraer código y recursos externos/adicionales (por ejemplo, páginas o escritos) en memoria. El sistema de archivo 116, administrador de memoria 124, y módulos de validación de integridad de porción de imagen 112 cooperan durante las operaciones de compaginación (o carga de porción) del sistema operativo (OS) para validar porciones de un archivo ejecutable que están siendo extraídas en la memoria para ejecución (en una implementación, el administrador de memoria y el sistema de archivo son implementados como partes respectivas de un sistema operativo). Hasta estos puntos, cuando el código de ejecución (ver, "otros módulos de programa" 118) desea cargar una porción de un archivo ejecutable que está almacenada en un dispositivo de almacenamiento para ejecución subsecuente, el administrador de memoria 124 envía una solicitud de apertura al sistema de archivo 116 para abrir el archivo ejecutable como parte de un procedimiento de creación de sección. Subsecuentemente, el administrador de memoria comunica una o más solicitudes en página (o en porción) al sistema de archivo 116 para compaginar o delinear una o más páginas en un archivo ejecutable en memoria para ejecución. Para propósitos de discusión, durante las operaciones de compaginación, una "solicitud en porción" es una solicitud en página. En otra implementación, una "solicitud en porción" es una solicitud para algún otro número de byte no delineado por un límite de página, pero más que delineado por la arquitectura de carga de código siendo implementada (por ejemplo, arquitectura de carga de máquina de escrito, etc.). Para empezar, solicitudes en página, y solicitudes en porción son mostradas como porciones respectivas de "otros datos" 114. Para verificar la integridad de esa una o más porciones de código antes de ejecución del código, el módulo de validación de integridad de porción de archivo ejecutable 112 intercepta tales solicitudes. En respuesta a recibir un archivo de apertura (por ejemplo, una solicitud de creación), el módulo de validación de integridad de porción de archivo ejecutable 112 evalúa la fuente de los datos (objetivo) identificado por la solicitud de apertura para determinar si el objetivo son datos o códigos. Los datos típicamente no son delineados como código, y viceversa. Si el objeto va a ser delineado como código, el módulo de validación de integridad de porción de archivo ejecutable 112 localiza las criptografías de imagen parciales 108 asociadas con el objetivo, y delinear cada una de las criptografías en memoria. En una implementación, esto es realizado al determinar si las criptografías de imagen parciales son empacadas en catálogo de sistema 120, o en un archivo auto- marcado 122. Para realizar esto, el módulo de validación de integridad de porción de archivo ejecutable 112 primero calcula una criptografía del encabezado del archivo ejecutable utilizando el mismo algoritmo utilizado por módulo de criptografía de archivo ejecutable por porción 110 para crear las criptografías de imagen parciales 108. La criptografía calculada es del mismo tamaño de byte configurable que cada una de las criptografías de imagen parciales 108. Para propósito de ilustración, esta criptografía calculada es mostrada como una respectiva de "criptografías calculadas para verificación" en "otros datos" 114. El módulo de validación de integridad de porción de archivo ejecutable 112 compara la criptografía calculada con respectivos de criptografías de imagen parciales 108 almacenadas en el catálogo de sistema 120 para buscar un archivo ejecutable con una criptografía de imagen parcial asociada 108 que concuerda con todos los bytes de la criptografía calculada. Si tal criptografía de concordancia 108 es encontrada, el archivo ejecutable de interés es "marcado por catálogo", o representado en el catálogo de sistema 120. En este caso, el módulo de validación de integridad de porción de archivo ejecutable 112 lee cada una de las criptografías de imagen parciales 108 asociadas con el archivo ejecutable en RAM. Se debe notar que esta operación de copiado no es una operación de compaginación revisada por integridad (u otra carga de porción de código) como la lista de criptografía son los datos de un archivo de datos no ejecutables y ninguna información siendo leída/compaginada desde un binario ejecutable. Si el archivo ejecutable de interés (el objetivo) no es marcado por catálogo, entonces el módulo de validación de integridad de porción de archivo ejecutable 112 determina si el archivo ejecutable de interés es auto-marcado, por ejemplo con contenido marcado de PKS#7. Si es así, el filtro de validación 112 lee los datos de certificado, valida el certificado que finalmente puede ser trazado a uno de un grupo de raíces de certificado bien conocidas/confiadas, y después copia la lista fija de criptografías por página 108 (localizadas en la marca del objetivo) en la memoria. En una implementación, el archivo auto-marcado incluye una criptografía completa del ejecutable, para realizar revisiones de integridad de código convencionales. En respuesta a interceptar, a través del módulo de validación entendida de porción de archivo ejecutable 122, una solicitud "en porción" comunicada a través del administrador de memoria 124 a) sistema de archivo 116 para una o más porciones de un archivo ejecutable, en donde el archivo ejecutable fue el sujeto de una solicitud de archivo de apertura previa, el módulo de validación de integridad de porción de archivo ejecutable 112 valida la integridad de cada porción de una más porciones solicitadas. Más particularmente, el módulo de validación de integridad de porción archivo ejecutable 112 calcula una criptografía para cada página/porción identificada por la solicitud en página/en porción y compara cada criptografía respectiva con la criptografía de imagen parcial previamente calculada y correspondiente 108 de esta porción. (Las criptografías de imagen parciales 108 fueron copiadas a la memoria en respuesta a una solicitud de archivo de apertura, como se describió anteriormente). Si las criptografías calculadas y almacenadas concuerdan, el módulo de validación de integridad de porción de archivo ejecutable 112 permite a la operación en página/en porción completarse, resultando en la porción solicitada siendo delineada para memoria para ejecución. Si la criptografía calculada y la criptografía de imagen parcial correspondiente 108 no concuerda, el módulo de validación de integridad de porción de archivo ejecutable 112 falla con la solicitud en página/en porción y el código modificado/corrompido/alterado no es extraído en la memoria como código, y por lo tanto, no es subsecuentemente ejecutado.
En vista de lo anterior, mientras el sistema 100 implementa la compaginación y otras operaciones de carga de código de memoria para extraer una porción (por ejemplo, una página) de un archivo ejecutable en memoria desde un dispositivo de almacenamiento, el sistema 100 revisa la integridad solo de esa porción de código siendo extraída. Esto resulta en muy poco recurso o impacto de desempeño, ya que solo porción es validada sin cargar ninguna de las porciones adicionales/extremas del archivo ejecutable (por ejemplo, el archivo ejecutable completo).
Un Procedimiento Ilustrativo La Figura 2 muestra un procedimiento ilustrativo 200 para validar integridad de archivo ejecutable que utiliza criptografías parciales. Para propósitos de discusión e ilustración, las operaciones del procedimiento son descritas con respecto a componentes de la Figura 1. El dígito más a la izquierda de un número de referencia de componente identifica la figura particular en la que aparece primero en componente. En el bloque 202, el módulo de criptografía de archivo ejecutable por porción 110 (Figura 1) genera criptografías de imagen parciales 108 para un archivo ejecutable. En el bloque 204, las criptografías de imagen parciales 108 están asociadas con el archivo ejecutable. En una implementación, esto es realizado para encapsular el archivo ejecutable y las criptografías de imagen parciales 108 en un catálogo de sistema 120. En otra implementación, esto es realizado al encapsular el archivo ejecutable y las criptografías de imagen parciales 108 en un archivo de auto-marcado 122. El catálogo de sistema 120 y/o el archivo auto-marcado 122 pueden ser instalados o descargados en un dispositivo de cómputo diferente. En el bloque 206, el módulo de validación de integridad de porción de imagen 112 (Figura 1) intercepta una solicitud de apertura de archivo (sección de creación) desde el administrado de memoria 124 para el sistema de archivo 116. En el bloque 208, y en respuesta a recibir la solicitud de apertura de archivo, el módulo de validación de integridad de porción de imagen 112 evalúa la fuente de datos de objetivo de la solicitud para determinar si es código (un archivo ejecutable) o datos (no un archivo ejecutable). Si el objetivo es un archivo ejecutable, el módulo de validación de integridad de porción de imagen 112 localiza cada criptografía de imagen parcial 108 asociada con el objetivo y la copia en la memoria para acceso rápido (por ejemplo, acceso cuando una solicitud de página es recibida asociada con una o más de las criptografías de imagen parciales 108). En el bloque 210, la respuesta a interceptar una solicitud en página o en porción dirigida por el administrador de memoria 124 al sistema de archivo 116, el módulo de validación de integridad de porción de imagen 112 calcula una criptografía (criptografía calculada para validación) para esa porción de código con objetivo por la solicitud interceptada. La porción de código fue extraída de una ubicación de almacenamiento de datos por el sistema de archivo al extraerse en la memoria para ejecución, si la porción es subsecuentemente validada como no siendo corrupta. Hasta este punto, y en el bloque 212, el módulo de validación de integridad de porción de imagen 112 compara la criptografía calculada a la criptografía de imagen parcial correspondiente 108 para verificar la integridad de la porción del código solicitado a través de la solicitud interceptada (bloque 210). En el bloque 214, si la porción del código es determinada para no ser corrupta (es decir, la criptografía calculada concuerda con la criptografía de imagen parcial correspondiente 108), el módulo de validación de integridad de porción de imagen 112 permite a la porción del código ser delineada en la memoria durante las operaciones de compaginación para ejecución subsecuente. De otra forma, en el bloque 216, si la porción de código es determinada para ser corrompida (es decir, la criptografía calculada no concuerda con la criptografía de imagen parcial correspondiente 108), el módulo de validación de integridad de porción de imagen 112 falla con la solicitud interceptada para que esa porción del código no sea delineada en la memoria para ejecución.
Un Ambiente Operativo Ilustrativo La Figura 3 ilustra un ejemplo de un ambiente de cómputo adecuado 300 en el cual los sistemas y métodos para validar integridad de archivo ejecutable que utilizan criptografías parciales pueden ser completa o parcialmente implementados. El ambiente de cómputo ilustrativo 300 es solo un ejemplo de un ambiente de cómputo adecuado para el sistema ilustrativo de la Figura 1 y las operaciones ilustrativas de la Figura 2, y no pretende sugerir ninguna limitación al alcance de uso o funcionalidad de sistemas y métodos que se describen aquí. El ambiente de cómputo 300 tampoco debe ser interpretado como teniendo ninguna dependencia o requerimiento que se relacionan a cualquier o combinación de los componentes ilustrados en el ambiente de cómputo 300. Los métodos y sistemas descritos aquí son operacionales con numerosos otros sistemas de cómputo de propósito general o propósito especial, ambientes o configuraciones. Ejemplos de sistema de cómputo bien conocidos, ambientes, y/o configuraciones que pueden ser adecuados para usos incluyen, pero no se limitan a, computadoras personales, computadora portátil (laptop), dispositivo de cómputo móvil de factor de forma pequeño (por ejemplo, un teléfono celular, asistente digital personal, o computadora portátil), computadores de servidor, sistemas de multiprocesador, sistemas a base de microprocesador, PCs de red, minicomputadoras, macrocomputadoras, ambientes de cómputo distribuidos que incluyen cualquiera de los sistemas o dispositivos anteriores, y así sucesivamente. Las versiones compactas o de subgrupos de la estructura de trabajo también pueden ser implementadas en clientes de recursos limitados, tal como computadoras portátiles, u otros dispositivos de cómputo. La invención es practicada en un ambiente de cómputo distribuido en donde las tareas son realizadas por dispositivos de procesamiento remoto que están conectados a través de una red de comunicaciones. En un ambiente de cómputo distribuido, los módulos de programa pueden estar localizados tanto en dispositivos de almacenamiento de memoria locales como remotos. Con referencia a la Figura 3, un sistema ilustrativo 300 ilustra un ejemplo de un ambiente de cómputo adecuado en el que los sistemas y métodos para validar integridad de archivo ejecutable que utilizan criptografías parciales pueden ser completa o parcialmente ¡mplementados. El sistema 300 incluye un dispositivo de cómputo de propósito general en la forma de una computadora 310 que implementa, por ejemplo, la computadora de cliente 102 de la Figura 1. Los componentes de la computadora 310 pueden incluir, pero no se limitan a, una unidad(es) de procesamiento 320, una memoria de sistema 330, y un conductor común de sistema 321 que acopla varios componentes del sistema, incluyendo la memoria de sistema a la unidad de procesamiento 320. El conductor común de sistema 321 puede ser cualquiera de los varios tipos de estructuras de conductor común incluyendo un conductor común de memoria o controlador de memoria, un conductor común periférico, y un conductor común local utilizando cualquiera de una variedad de arquitecturas de conductor común. A manera de ejemplo, y no de limitación, dichas arquitecturas incluyen el conductor común de Arquitectura Estándar de la Industria (ISA), conductor común de Arquitectura de Microcanal (MCA), conductor común de ISA mejorado (EISA), conductor común local de Asociación de Estándares de Video Electrónica (VESA), y conductor común de Interconexión de Componente Periférico (PCI) también conocido como conductor común de mezanine. La computadora 310 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora pueden ser cualesquiera medios disponibles que puedan ser accedidos por la computadora 310 e incluyen medios tanto volátiles como no volátiles, medios removibles como no removibles. A manera de ejemplo, y no de limitación, los medios legibles por computadora pueden comprenden medios de almacenamiento de computadora y medios de comunicación. Los medios de almacenamiento de computadora incluyen medios tanto volátiles como no volátiles, removibles como no removibles, implementados en cualquier método o tecnología para almacenar información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento de computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria instantánea u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento de disco óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda ser utilizado para almacenar la información deseada y que pueda ser accedido por la computadora 310. Los medios de comunicación típicamente modalizan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluyen cualquiera medio de suministro de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características fijadas o cambiadas de tal manera que codifica la información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios mediante cables, tales como una red con cables o una conexión de cable directo, y medios inalámbricos tales como medios acústicos, RF, infrarrojos y otros medios inalámbricos. También se deben incluir dentro del alcance de medios legibles por computadora, combinaciones de cualquiera de los anteriores. La memoria de sistema 330 incluye medios de almacenamiento de computadora en la forma de memoria volátil y/o no volátil tal como memoria de solo lectura (ROM) 331 y memoria de acceso aleatorio (RAM) 332. Un sistema de entrada/salida básico 333 (BIOS), conteniendo las rutinas básicas que ayudan a transferir información entre elementos dentro de la computadora 310, tal como durante el arranque, típicamente está almacenado en la ROM 331. La RAM 332 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles a y/o en realidad son operados a través de la unidad de procesamiento 320. A manera de ejemplo, y no de limitación, la Figura 1 ilustra un sistema operativo 334, programas de aplicación 335, otros módulos de programa 336 y datos de programa 337. La computadora 310 también puede incluir otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles. A manera de ejemplo solamente, la Figura 1 ilustra una unidad de disco duro 341 que lee o escribe a medios magnéticos no removíbles, no volátiles, una unidad de disco magnético 351 que lee de o escribe a un disco magnético removible, no volátil 352, y una unidad de disco óptico 355 que lee de o escribe a un disco óptico removible, no volátil 356, tal como un CD-ROM u otros medios ópticos. Otros medios de almacenamiento por computadora removibles/no removibles, volátiles/no volátiles que pueden ser utilizados en el entorno operativo ilustrativo incluyen, pero no se limitan a, casetes de cinta magnética, tarjetas de memoria instantánea, discos versátiles digitales, vídeo cinta digital, RAM de estado sólido, ROM de estado sólido, y similares. La unidad de disco duro 341 típicamente está conectada al conductor común de sistema 321 a través de una interfase de memoria no removible, tal como la interfase 340, y la unidad de disco magnético 351 y la unidad de disco óptico 355 típicamente están conectadas al conductor común de sistema 321 a través de una interfase de memoria removible, tal como la interfase 350. Las unidades y sus medios de almacenamiento de computadora asociados discutidos anteriormente e ilustrados en la Figura 3, proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa, y otros datos para la computadora 310. En la Figura 3, por ejemplo, la unidad de disco duro 341 se ilustra almacenando el sistema operativo 344, programas de aplicación 345, otros módulos de programa 346, y datos de programa 347. Observar que estos componentes pueden ser ya sea iguales a o diferentes del sistema operativo 334, programas de aplicación 335, otros módulos de programa 336, y datos de programa 337. Los programas de aplicación 335 incluyen, por ejemplo, módulos de programa 104 de la Figura 1. Los datos de programa 337 incluyen por ejemplo, datos de programa 106 de la Figura 1. El sistema operativo 344, programas de aplicación 345, otros módulos de programa 346, y datos de programa 347 se les proporcionan diferentes números aquí para ilustrar que, a un mínimo, son copias diferentes. Un usuario puede introducir comandos e información a la computadora 310 a través de dispositivos de entrada, tales como un teclado 362, y un dispositivo de señalamiento 361, comúnmente denominado como un ratón, seguibola, o almohadilla sensible al tacto. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, palanca de mandos, almohadilla de juegos, antena parabólica, escáner, o similares. Estos y otros dispositivos de entrada por lo regular están conectados a la unidad de procesamiento 320 a través de una interfase de entrada de usuario 360 que está acoplada al conductor común de sistema 321, pero pueden ser conectados a través de otra interfase y estructuras de conductor común, tal como un puerto paralelo, puerto de juegos, o un conductor común en serie universal (USB). Un monitor 391 u otro tipo de dispositivo de presentación también está conectado al conductor común de sistema 321 a través de una interfase, tal como una interfase de vídeo 390. Además del monitor, las computadoras también pueden incluir otros dispositivos de salida periféricos tales impresoras 396 y dispositivo de audio 397, los cuales pueden ser conectados a través de una interfase periférica de salida 395. La computadora 310 puede operar en un ambiente en red utilizando conexiones lógicas a una o más computadoras remotas, tal como una computadora remota 380. En una implementación, computadora remota 380 representa un dispositivo de cómputo que instala o descarga un archivo ejecutable y criptografía de imagen parciales 108 de la Figura 1 para la porción de archivo pre-ejecutable subsecuente a través de una implementación local del módulo de validación de integridad de porción de imagen 112 durante las operaciones de compaginación de código. La computadora remota 380 puede ser una computadora personal, un servidor, un enrutador, una PC de red, un dispositivo par u otro nodo de red común, y como una función de su implementación particular, puede incluir muchos o todos los elementos (por ejemplo, módulo(s) de programa 104 y datos de programa 106, etc.) descritos anteriormente relativos a la computadora 102, aunque solo un dispositivo de almacenamiento de memoria 381 así ilustrado en la Figura 3. Las conexiones lógicas ilustradas en la Figura 3 incluyen una red de área local (LAN) 371 y una red de área amplia (WAN) 373, pero también puede incluir otras redes. Tales ambientes en red son lugares comunes en oficinas, redes de computadora entre empresas, intranets e Internet. Cuando se utiliza en un ambiente de en red de LAN, la computadora 310 está conectada a la LAN 371 a través de una interfase de red o adaptador 370. Cuando se utiliza en un ambiente en red de WAN, la computadora 310 típicamente incluye un módem 372 u otros medios para establecer comunicaciones a través de la WAN 373, tal como el Internet. El módem 372, el cual puede ser interno o externo, puede ser conectado al conductor común de sistema 321 a través de la interfase de entrada de usuario 360, u otro mecanismo apropiado. En un entorno en red, los módulos de programa ilustrados con relación a la computadora 310, o sus porciones, pueden ser almacenados en el dispositivo de almacenamiento de memoria remoto. A manera de ejemplo, y no de limitación, la Figura 3 ilustra programas de aplicación remotos 385 que residen en la computadora remota 381. Se apreciará que las conexiones de red mostradas son ilustrativas y se pueden utilizar otros medios para establecer un enlace de comunicaciones entre las computadoras.
Conclusión Aunque los sistemas y métodos para validar la integridad de archivo ejecutable que utiliza criptografías parciales han sido descritas en el lenguaje específico para características estructurales y/o operaciones metodologías o acciones, se debe entender que las implementaciones definidas en las reivindicaciones anexas no están necesariamente limitadas a las características o acciones específicas descritas. Por ejemplo, aunque el módulo de validación integridad de porción de imagen 112 es mostrado como siendo incorporado como un conductor en el sistema de archivo 116, el módulo de programa 112 también puede ser un conector, o de otra forma incorporado, en un módulo de programa diferente al sistema de archivo. Por ejemplo, en una implementación, las operaciones de módulo de validación de integridad de porción de imagen 112 son directamente accedidas (como un conector o similar) por el administrador de memoria 124. Por consiguiente, las características y operaciones específicas son descritas como formas ilustrativas para implementar el asunto sujeto reclamado.

Claims (20)

REIVINDICACIONES
1.- Un método implementado por computadora que comprende: generar múltiples criptografías de imagen parciales que representan un archivo ejecutable, cada criptografía parcial de múltiples criptografías de imagen parciales representan menos de todos los bytes del archivo ejecutable; después de cargar el archivo ejecutable en un dispositivo de cómputo, interceptar una solicitud para compaginar una porción del archivo ejecutable en la memoria para ejecución; y en respuesta a interceptar la solicitud, y antes de compaginar la porción en memoria para ejecución: calcular una criptografía de validación de la porción; y comparar la criptografía de validación con una criptografía parcial de múltiples criptografías de imagen parciales para determinar la integridad de código de la porción, la criptografía parcial que representa un mismo segmento de código que la porción.
2.- Un método de acuerdo con la reivindicación 1, en donde las múltiples criptografía de imagen parciales son calculadas antes de cargar el archivo ejecutable en el dispositivo de cómputo.
3.- Un método de acuerdo con la reivindicación 1, en donde las múltiples criptografías de imagen parciales son almacenadas en un catálogo de sistema o un archivo criptográfico auto-marcado.
4.- Un método de acuerdo con la reivindicación 1, y que además comprende: determinar que la criptografía de validación concuerda con la criptografía parcial; y en respuesta a determinar, compaginar la porción en la memoria para ejecución.
5.- Un método de acuerdo con la reivindicación 1, que además comprende: determinar que la criptografía de validación no concuerda con la criptografía parcial; y en respuesta a determinar, fallar la solicitud para compaginar la porción en memoria para ejecución.
6.- Un método de acuerdo con la reivindicación 1, y que además comprende: después de cargar el archivo ejecutable en un dispositivo de cómputo, interceptar una solicitud abierta para crear un segmento de código para el archivo ejecutable; y en respuesta a interceptar la solicitud de apertura: calcular una mezcla de identificación de un encabezado del archivo ejecutable; comparar la criptografía de identificación a los respectivos de una pluralidad de criptografías de archivo ejecutables parciales almacenadas en un catálogo de sistema para identificar una criptografía de la pluralidad de criptografías binarias parciales que concuerdan con el encabezado, la criptografía siendo una primera criptografía de las múltiples criptografías de imagen parciales; y en respuesta a localizar la criptografía, copiar las múltiples criptografías de imagen parciales del archivo ejecutable fuera del catálogo de sistema en memoria para operaciones de validación de integridad de código de criptografía de imagen parcial subsecuentes en respuesta a compaginar una o más partes del archivo ejecutable en memoria para ejecución.
7.- Un método de acuerdo con la reivindicación 1, que además comprende: después de cargar el archivo ejecutable en un dispositivo de cómputo interceptar una solicitud de apertura para crear un segmento de código para el archivo ejecutable; y en respuesta a interceptar la solicitud de apertura, y en respuesta a determinar que el archivo ejecutable es un archivo criptográfico auto-marcado, copiar las criptografías de imagen parciales múltiples fuera del archivo criptográfico auto-marcado en la memoria para operaciones de validación de integridad de código de criptografía de imagen parcial subsecuentes en respuesta a compaginar una o más partes del archivo ejecutable en memoria para ejecución.
8.- Un método legible por computadora que comprende instrucciones de programa de computadora ejecutables por un procesador para: generar múltiples criptografías de imagen parciales que representan un compendio de un archivo ejecutable, cada criptografía parcial de múltiples criptografías de imagen parciales que representan menos de todos los bytes del archivo ejecutable; después de cargar el archivo ejecutable en un dispositivo de cómputo, interceptar una solicitud para compaginar una porción del archivo ejecutable en la memoria para ejecución; y en respuesta a interceptar la solicitud, y antes de compaginar la porción en memoria para ejecución: calcular una criptografía de validación de la porción; y comparar la criptografía de validación con una criptografía parcial de múltiples criptografías de imagen parciales para determinar la integridad de código de la porción, la criptografía parcial que representa un mismo segmento de código que la porción.
9.- Un medio legible por computadora de acuerdo con la reivindicación 8, en donde las múltiples criptografía de imagen parciales son calculadas antes de cargar el archivo ejecutable en el dispositivo de cómputo.
10.- Un medio legible por computadora de acuerdo con la reivindicación 8, en donde las múltiples criptografías de imagen parciales son almacenadas en un catálogo de sistema o un archivo criptográfico auto-marcado.
11.- Un medio legible por computadora de acuerdo con la reivindicación 8, en donde las instrucciones de programa de computadora además comprenden instrucciones para: determinar que la criptografía de validación concuerda con la criptografía parcial; y en respuesta a determinar, compaginar la porción en la memoria para ejecución.
12.- Un medio legible por computadora de acuerdo con la reivindicación 8, en donde las instrucciones de programa de computadora además comprenden instrucciones para: determinar que la criptografía de validación no concuerda con la criptografía parcial; y en respuesta a determinar, fallar la solicitud para compaginar la porción en memoria para ejecución.
13.- Un medio legible por computadora de acuerdo con la reivindicación 8, en donde las instrucciones de programa de computadora además comprenden instrucciones para: después de cargar del archivo ejecutable en un dispositivo de cómputo, interceptar una solicitud abierta para crear un segmento de código para el archivo ejecutable; y en respuesta a interceptar la solicitud de apertura: calcular una criptografía de identificación de un encabezado del archivo ejecutable; comparar la criptografía de identificación a los respectivos de una pluralidad de criptografías de archivo ejecutables parciales almacenadas en un catálogo de sistema para identificar una criptografía de la pluralidad de criptografías binarias parciales que concuerdan con el encabezado, la criptografía siendo una primera criptografía de las múltiples criptografías de imagen parciales; y en respuesta a localizar la criptografía, copiar las múltiples criptografías de imagen parciales del archivo ejecutable fuera del catálogo de sistema en memoria para operaciones de validación de integridad de código de criptografía de imagen parcial subsecuentes en respuesta a compaginar una o más partes del archivo ejecutable en memoria para ejecución.
14.- Un medio legible por computadora de acuerdo con la reivindicación 8, en donde las instrucciones de programa de computadora además comprenden instrucciones para: después de cargar el archivo ejecutable en un dispositivo de cómputo, interceptar una solicitud de apertura para crear un segmento de código para el archivo ejecutable; y en respuesta a interceptar la solicitud de apertura, y en respuesta a determinar que el archivo ejecutable es un archivo criptográfico auto-marcado, copiar las criptografías de imagen parciales múltiples fuera del archivo criptográfico auto-marcado en la memoria para operaciones de validación de integridad de código de criptografía de imagen parcial subsecuentes en respuesta a compaginar una o más partes del archivo ejecutable en memoria para ejecución.
15.- Un dispositivo de cómputo que comprende: un procesador; y una memoria acoplada al procesador, la memoria comprende instrucciones de programa de computadora ejecutables por el procesador para: generar múltiples criptografías de imagen parciales que representan un compendio y un archivo ejecutable, cada criptografía parcial de las múltiples criptografías de imagen parciales representa menos de todos los bytes del archivo ejecutable; después de cargar del archivo ejecutable en un dispositivo de cómputo, interceptar una solicitud para compaginar una porción del archivo ejecutable en memoria para ejecución; y en respuesta a interceptar la solicitud, y antes de compaginar la porción en memoria para ejecución: calcular una criptografía de validación de la porción; y comparar la criptografía de validación con la criptografía parcial de las múltiples criptografías de imagen parciales para determinar integridad de código de la porción, la criptografía parcial representa el mismo segmento de código que la porción.
16.- Un dispositivo de cómputo de acuerdo con la reivindicación 15, en donde las múltiples criptografías de imagen parciales son almacenadas en un catálogo de sistema, o un archivo criptográfico auto-marcado.
17.- Un dispositivo de cómputo de acuerdo con la reivindicación 15, en donde las instrucciones de programa de computadora además comprende instrucciones para: determinar que la criptografía de validación concuerda con la criptografía parcial; y en respuesta a determinar, compaginar la porción en la memoria para ejecución.
18.- Un dispositivo de cómputo de acuerdo con la reivindicación 15, en donde las instrucciones de programa de computadora además comprenden instrucciones para: determinar que la criptografía de validación no concuerda con la criptografía parcial; y en respuesta a determinar, fallar la solicitud para compaginar la porción en memoria para ejecución.
19.- Un dispositivo de cómputo de acuerdo con la reivindicación 15, en donde las instrucciones de programa de computadora además comprenden instrucciones para: después de cargar del archivo ejecutable en un dispositivo de cómputo, interceptar una solicitud abierta para crear un segmento de código para el archivo ejecutable; y en respuesta a interceptar la solicitud de apertura: calcular una criptografía de identificación de un encabezado del archivo ejecutable; comparar la criptografía de identificación a los respectivos de una pluralidad de criptografía de archivo ejecutables parciales almacenadas en un catálogo de sistema para identificar una criptografía de la pluralidad de criptografías binarias parciales que concuerdan con el encabezado, la criptografía siendo una primera criptografía de las múltiples criptografías de imagen parciales; y en respuesta a localizar la criptografía, copiar las múltiples criptografías de imagen parciales del archivo ejecutable fuera del catálogo de sistema en memoria para operaciones de validación de integridad de código de criptografía de imagen parcial subsecuentes en respuesta a compaginar una o más partes del archivo ejecutable en memoria para ejecución.
20.- Un dispositivo de cómputo de acuerdo con la reivindicación 15, en donde las instrucciones de programa de computadora además comprenden instrucciones para: después de cargar el archivo ejecutable en un dispositivo de cómputo, interceptar una solicitud de apertura para crear un segmento de código para el archivo ejecutable; y en respuesta a interceptar la solicitud de apertura, y en respuesta a determinar que el archivo ejecutable es un archivo criptográfico auto-marcado, copiar las criptografías de imagen parciales múltiples fuera del archivo criptográfico auto-marcado en la memoria para operaciones de validación de integridad de código de criptografía de imagen parcial subsecuentes en respuesta a compaginar una o más partes del archivo ejecutable en memoria para ejecución.
MXPA05013801A 2005-01-18 2005-12-16 Sistemas y metodos para validar integridad de archivo ejecutable utilizando criptografias de imagen parciales. MXPA05013801A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/037,566 US7577848B2 (en) 2005-01-18 2005-01-18 Systems and methods for validating executable file integrity using partial image hashes

Publications (1)

Publication Number Publication Date
MXPA05013801A true MXPA05013801A (es) 2007-11-14

Family

ID=36293551

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA05013801A MXPA05013801A (es) 2005-01-18 2005-12-16 Sistemas y metodos para validar integridad de archivo ejecutable utilizando criptografias de imagen parciales.

Country Status (10)

Country Link
US (1) US7577848B2 (es)
EP (1) EP1681609A1 (es)
JP (1) JP2006202270A (es)
KR (1) KR20060083850A (es)
CN (1) CN1808326A (es)
AU (1) AU2005234683A1 (es)
BR (1) BRPI0506192A (es)
CA (1) CA2530099A1 (es)
MX (1) MXPA05013801A (es)
RU (1) RU2005140018A (es)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627761B2 (en) * 2002-07-22 2009-12-01 Xerox Corporation System for authentication of JPEG image data
US7552342B1 (en) * 2005-02-16 2009-06-23 Rennie Glen Software, Llc Method and system for increasing the tamper resistance of a software application
US7490352B2 (en) 2005-04-07 2009-02-10 Microsoft Corporation Systems and methods for verifying trust of executable files
US8060860B2 (en) * 2005-04-22 2011-11-15 Apple Inc. Security methods and systems
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
WO2007027427A2 (en) * 2005-08-29 2007-03-08 Wms Gaming Inc. On-the-fly encryption on a gaming machine
JP2007066271A (ja) * 2005-09-02 2007-03-15 Canon Inc 情報処理装置及びその制御方法、データ処理装置、並びにプログラム
JP4527640B2 (ja) * 2005-09-15 2010-08-18 株式会社ソニー・コンピュータエンタテインメント データ読出装置
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US8701091B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Method and system for providing a generic console interface for a graphics application
US20070157321A1 (en) * 2006-01-04 2007-07-05 Stephen Errico Method to improve the integrity of internet programs, websites and software
US7891012B1 (en) 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US7594136B2 (en) * 2006-04-19 2009-09-22 Microsoft Corporation Paging-triggered corrupted file recovery
US7730302B2 (en) * 2006-05-05 2010-06-01 Microsoft Corporation Secure and modifiable configuration files used for remote sessions
US7778800B2 (en) * 2006-08-01 2010-08-17 Nvidia Corporation Method and system for calculating performance parameters for a processor
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
US8963932B1 (en) 2006-08-01 2015-02-24 Nvidia Corporation Method and apparatus for visualizing component workloads in a unified shader GPU architecture
US8436870B1 (en) 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US8976008B2 (en) 2006-08-24 2015-03-10 Privacydatasystems, Llc Cross-domain collaborative systems and methods
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
JP5049288B2 (ja) * 2006-11-09 2012-10-17 パナソニック株式会社 改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体、集積回路、認証情報生成装置及び改竄検出装置
GB0623933D0 (en) * 2006-11-29 2007-01-10 Ibm Apparatus and method for synchronizing controller firmware download
US8495383B2 (en) 2006-12-14 2013-07-23 Nokia Corporation Method for the secure storing of program state data in an electronic device
US20080163212A1 (en) * 2006-12-29 2008-07-03 Zimmer Vincent J Paralleled management mode integrity checks
US8375458B2 (en) * 2007-01-05 2013-02-12 Apple Inc. System and method for authenticating code executing on computer system
US8701187B2 (en) * 2007-03-29 2014-04-15 Intel Corporation Runtime integrity chain verification
US9092629B2 (en) * 2007-04-16 2015-07-28 The Directv Group, Inc. Method and apparatus for authenticating a code image upon starting a device
US8296738B1 (en) 2007-08-13 2012-10-23 Nvidia Corporation Methods and systems for in-place shader debugging and performance tuning
US9035957B1 (en) 2007-08-15 2015-05-19 Nvidia Corporation Pipeline debug statistics system and method
US8311058B2 (en) 2008-05-10 2012-11-13 Vantrix Corporation Modular transcoding pipeline
US8677241B2 (en) * 2007-09-10 2014-03-18 Vantrix Corporation Method and system for multimedia messaging service (MMS) to video adaptation
US8220051B2 (en) * 2007-09-28 2012-07-10 Vantrix Corporation Generation and delivery of multimedia content-adaptation notifications
US9424266B2 (en) 2007-10-01 2016-08-23 Microsoft Technology Licensing, Llc Efficient file hash identifier computation
GB0719250D0 (en) * 2007-10-02 2007-11-14 Iti Scotland Ltd Anti-hack method
US8375219B2 (en) * 2007-10-24 2013-02-12 Microsoft Corporation Program and operation verification
US20090113166A1 (en) * 2007-10-31 2009-04-30 Agere Systems Inc. Hashing method for nand flash memory
US7765500B2 (en) * 2007-11-08 2010-07-27 Nvidia Corporation Automated generation of theoretical performance analysis based upon workload and design configuration
US8171167B2 (en) * 2007-11-13 2012-05-01 Vantrix Corporation Intelligent caching of media files
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US8601285B2 (en) 2007-11-23 2013-12-03 Nokia Corporation Method for secure program code execution in an electronic device
US20090193211A1 (en) * 2008-01-24 2009-07-30 Broadcom Corporation Software authentication for computer systems
JP4944812B2 (ja) * 2008-02-20 2012-06-06 株式会社リコー 情報処理システムと情報処理方法とプログラム
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
US9081962B2 (en) 2008-04-30 2015-07-14 Graeme Harkness Anti-tamper techniques
US8087086B1 (en) * 2008-06-30 2011-12-27 Symantec Corporation Method for mitigating false positive generation in antivirus software
US8108686B2 (en) * 2008-09-18 2012-01-31 Oracle America, Inc. Method and system for detecting modified pages
JP5255991B2 (ja) * 2008-10-24 2013-08-07 株式会社日立製作所 情報処理装置、及びコンピュータプログラム
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
CN101859330B (zh) * 2009-04-09 2012-11-21 辉达公司 验证集成电路效能模型的方法
US8839458B2 (en) * 2009-05-12 2014-09-16 Nokia Corporation Method, apparatus, and computer program for providing application security
US20110107325A1 (en) * 2009-11-03 2011-05-05 Jack Matthew Early Detection of Errors in a Software Installation
WO2011066644A1 (en) 2009-12-01 2011-06-09 Vantrix Corporation System and methods for efficient media delivery using cache
US10114678B2 (en) * 2010-03-19 2018-10-30 Micro Focus Software Inc. Techniques for managing service definitions in an intelligent workload management system
CN101901323B (zh) * 2010-07-22 2015-04-22 湖北盛天网络技术股份有限公司 一种监控程序模块加载活动的系统过滤方法
US8745750B2 (en) 2011-04-21 2014-06-03 Microsoft Corporation Origination verification using execution transparent marker context
KR101320680B1 (ko) * 2011-10-26 2013-11-21 (주)유성글로벌 소프트웨어의 무결성 검사 장치 및 방법
US8584235B2 (en) 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods
EP2626804B1 (en) * 2012-02-09 2017-09-13 Inside Secure Method for managing memory space in a secure non-volatile memory of a secure element
US8687902B2 (en) * 2012-03-29 2014-04-01 Intel Corporation System, method, and computer program product for decompression of block compressed images
US8973124B2 (en) 2012-04-30 2015-03-03 General Electric Company Systems and methods for secure operation of an industrial controller
US9046886B2 (en) 2012-04-30 2015-06-02 General Electric Company System and method for logging security events for an industrial control system
US8964973B2 (en) 2012-04-30 2015-02-24 General Electric Company Systems and methods for controlling file execution for industrial control systems
US8959362B2 (en) * 2012-04-30 2015-02-17 General Electric Company Systems and methods for controlling file execution for industrial control systems
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
US9112922B2 (en) 2012-08-28 2015-08-18 Vantrix Corporation Method and system for self-tuning cache management
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules
US9519568B2 (en) 2012-12-31 2016-12-13 Nvidia Corporation System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application
EP2793160A1 (en) 2013-04-19 2014-10-22 Thomson Licensing Method and device for verification of an application
US9792436B1 (en) * 2013-04-29 2017-10-17 Symantec Corporation Techniques for remediating an infected file
US9471456B2 (en) 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
US9270467B1 (en) * 2013-05-16 2016-02-23 Symantec Corporation Systems and methods for trust propagation of signed files across devices
US9852290B1 (en) * 2013-07-12 2017-12-26 The Boeing Company Systems and methods of analyzing a software component
EP2840492A1 (en) * 2013-08-23 2015-02-25 British Telecommunications public limited company Method and apparatus for modifying a computer program in a trusted manner
JP6244759B2 (ja) * 2013-09-10 2017-12-13 株式会社ソシオネクスト セキュアブート方法、半導体装置、及び、セキュアブートプログラム
US9479521B2 (en) 2013-09-30 2016-10-25 The Boeing Company Software network behavior analysis and identification system
JP6162652B2 (ja) 2014-06-20 2017-07-12 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6181004B2 (ja) * 2014-06-20 2017-08-16 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6584823B2 (ja) 2014-06-20 2019-10-02 株式会社東芝 メモリ管理装置、プログラム、及び方法
US9836604B2 (en) 2015-01-30 2017-12-05 International Business Machines Corporation File integrity preservation
US9965639B2 (en) 2015-07-17 2018-05-08 International Business Machines Corporation Source authentication of a software product
US10922418B2 (en) 2015-10-01 2021-02-16 Twistlock, Ltd. Runtime detection and mitigation of vulnerabilities in application software containers
US10599833B2 (en) 2015-10-01 2020-03-24 Twistlock, Ltd. Networking-based profiling of containers and security enforcement
US10706145B2 (en) 2015-10-01 2020-07-07 Twistlock, Ltd. Runtime detection of vulnerabilities in software containers
US10586042B2 (en) 2015-10-01 2020-03-10 Twistlock, Ltd. Profiling of container images and enforcing security policies respective thereof
US10693899B2 (en) 2015-10-01 2020-06-23 Twistlock, Ltd. Traffic enforcement in containerized environments
US10943014B2 (en) 2015-10-01 2021-03-09 Twistlock, Ltd Profiling of spawned processes in container images and enforcing security policies respective thereof
US10664590B2 (en) 2015-10-01 2020-05-26 Twistlock, Ltd. Filesystem action profiling of containers and security enforcement
US10223534B2 (en) * 2015-10-15 2019-03-05 Twistlock, Ltd. Static detection of vulnerabilities in base images of software containers
US10567411B2 (en) 2015-10-01 2020-02-18 Twistlock, Ltd. Dynamically adapted traffic inspection and filtering in containerized environments
US10778446B2 (en) 2015-10-15 2020-09-15 Twistlock, Ltd. Detection of vulnerable root certificates in software containers
GB2545409B (en) * 2015-12-10 2020-01-08 Advanced Risc Mach Ltd Wear levelling in non-volatile memories
US10474823B2 (en) * 2016-02-16 2019-11-12 Atmel Corporation Controlled secure code authentication
US10616197B2 (en) 2016-04-18 2020-04-07 Atmel Corporation Message authentication with secure code verification
US11294991B2 (en) * 2016-05-13 2022-04-05 nChain Holdings Limited Method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger
KR20180002349A (ko) * 2016-06-29 2018-01-08 에스프린팅솔루션 주식회사 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치
KR102538096B1 (ko) * 2016-09-13 2023-05-31 삼성전자주식회사 어플리케이션을 검증하는 디바이스 및 방법
JP6766598B2 (ja) * 2016-10-31 2020-10-14 セイコーエプソン株式会社 画像処理装置、画像処理方法および制御プログラム
US10567399B2 (en) 2017-03-28 2020-02-18 Cisco Technology, Inc. Fragmented malware hash lookup in cloud repository
GB2562079B (en) * 2017-05-04 2021-02-10 Arm Ip Ltd Continuous hash verification
CN109710315B (zh) * 2017-10-25 2022-05-10 阿里巴巴集团控股有限公司 Bios刷写方法及bios镜像文件的处理方法
US11190357B2 (en) * 2018-05-18 2021-11-30 Avive Solutions, Inc. Framework for ensuring software components are not corrupted
WO2019241069A1 (en) * 2018-06-12 2019-12-19 Sylabs Inc. System and method for providing a container environment in a single file
CN110955916B (zh) * 2018-09-26 2023-09-05 深信服科技股份有限公司 一种数据完整性保护方法、系统及相关设备
CN111310172B (zh) * 2018-12-12 2022-03-11 北京忆芯科技有限公司 通过反汇编验证处理器执行轨迹的方法及控制部件
WO2020178812A1 (en) * 2019-03-04 2020-09-10 Saferide Technologies Ltd. Executable memory page validation system and method
TWI772648B (zh) * 2019-06-03 2022-08-01 銓鴻資訊有限公司 基於集體驗證的部分資料驗證方法
KR102415005B1 (ko) * 2019-08-21 2022-07-01 한국전자통신연구원 실행코드를 검증하는 하드웨어 보안모듈 및 그것을 갖는 디바이스 및 그것의 동작 방법
US11263109B2 (en) 2020-04-16 2022-03-01 Bank Of America Corporation Virtual environment system for validating executable data using accelerated time-based process execution
US11481484B2 (en) 2020-04-16 2022-10-25 Bank Of America Corporation Virtual environment system for secure execution of program code using cryptographic hashes
US11423160B2 (en) * 2020-04-16 2022-08-23 Bank Of America Corporation System for analysis and authorization for use of executable environment data in a computing system using hash outputs
US11528276B2 (en) 2020-04-16 2022-12-13 Bank Of America Corporation System for prevention of unauthorized access using authorized environment hash outputs
US11372982B2 (en) 2020-07-02 2022-06-28 Bank Of America Corporation Centralized network environment for processing validated executable data based on authorized hash outputs
US11895129B2 (en) * 2021-06-29 2024-02-06 Juniper Networks, Inc. Detecting and blocking a malicious file early in transit on a network
US20230125593A1 (en) * 2021-10-27 2023-04-27 Dell Products L.P. Securing data storage by slicing swapped data portions into data fragments and applying a shuffle index
US20230179607A1 (en) * 2021-12-03 2023-06-08 Juniper Networks, Inc. Blocking or allowing a file stream associated with a file based on an initial portion of the file
CN114567496B (zh) * 2022-03-03 2024-02-20 浪潮云信息技术股份公司 一种进行云服务器镜像完整性校验的方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625693A (en) 1995-07-07 1997-04-29 Thomson Consumer Electronics, Inc. Apparatus and method for authenticating transmitting applications in an interactive TV system
US5892904A (en) 1996-12-06 1999-04-06 Microsoft Corporation Code certification for network transmission
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US7620811B2 (en) * 2002-04-23 2009-11-17 Panasonic Corporation Server device and program management system
US7784044B2 (en) * 2002-12-02 2010-08-24 Microsoft Corporation Patching of in-use functions on a running computer system
US8332464B2 (en) * 2002-12-13 2012-12-11 Anxebusiness Corp. System and method for remote network access
US7565551B2 (en) 2003-02-19 2009-07-21 Microsoft Corporation Enhancing software integrity through installation and verification
US6961852B2 (en) * 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US20050188214A1 (en) * 2004-02-23 2005-08-25 Worley John S. Authenticatable software modules
US7461259B2 (en) * 2004-06-30 2008-12-02 Nokia Corporation Method and apparatus to provide secure mobile file system
US7805765B2 (en) * 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data
US7490352B2 (en) * 2005-04-07 2009-02-10 Microsoft Corporation Systems and methods for verifying trust of executable files

Also Published As

Publication number Publication date
AU2005234683A1 (en) 2006-08-03
BRPI0506192A (pt) 2006-09-19
US20060161761A1 (en) 2006-07-20
EP1681609A1 (en) 2006-07-19
KR20060083850A (ko) 2006-07-21
CA2530099A1 (en) 2006-07-18
RU2005140018A (ru) 2007-07-20
CN1808326A (zh) 2006-07-26
US7577848B2 (en) 2009-08-18
JP2006202270A (ja) 2006-08-03

Similar Documents

Publication Publication Date Title
MXPA05013801A (es) Sistemas y metodos para validar integridad de archivo ejecutable utilizando criptografias de imagen parciales.
EP1399808B1 (en) Binding by hash
Matrosov et al. Stuxnet under the microscope
US7546587B2 (en) Run-time call stack verification
AU2006235153B2 (en) Systems and methods for verifying trust of executable files
US7496757B2 (en) Software verification system, method and computer program element
US7165076B2 (en) Security system with methodology for computing unique security signature for executable file employed across different machines
US6922782B1 (en) Apparatus and method for ensuring data integrity of unauthenticated code
US20080282354A1 (en) Access control based on program properties
US20060236122A1 (en) Secure boot
US7739516B2 (en) Import address table verification
MXPA05003944A (es) Parchado eficiente.
MXPA05003943A (es) Parchado eficiente.
US20130227692A1 (en) System and method for optimization of antivirus processing of disk files
WO2022078366A1 (zh) 应用保护方法、装置、设备及介质
US20040139342A1 (en) Method and apparatus for protecting external call references
JP4680562B2 (ja) 信頼判定エンティティに対する実行可能ファイルの安全な識別
US11687656B2 (en) Secure application development using distributed ledgers
US8370950B2 (en) Securing mixed-mode applications
Mellberg Secure Updating of Configurations in a System of Devices
CN113971297A (zh) 基于Linux的ELF文件数据完整性保护方法
CN115795485A (zh) 可信云环境下安全交付软件方法、系统、设备及存储介质
CN111338664A (zh) 映像文件打包方法及映像文件打包系统

Legal Events

Date Code Title Description
FA Abandonment or withdrawal