WO2009141471A1 - Method for protecting computing platforms against repeated external attacks from mobile agents and protected computing platform system - Google Patents

Method for protecting computing platforms against repeated external attacks from mobile agents and protected computing platform system Download PDF

Info

Publication number
WO2009141471A1
WO2009141471A1 PCT/ES2009/000270 ES2009000270W WO2009141471A1 WO 2009141471 A1 WO2009141471 A1 WO 2009141471A1 ES 2009000270 W ES2009000270 W ES 2009000270W WO 2009141471 A1 WO2009141471 A1 WO 2009141471A1
Authority
WO
WIPO (PCT)
Prior art keywords
agent
node
marker
loop
mobile
Prior art date
Application number
PCT/ES2009/000270
Other languages
Spanish (es)
French (fr)
Inventor
Carlos Garrigues Olivella
Sergi ROBLES MARTÍNEZ
Joan Borrel Vlader
Original Assignee
Universidad Autonoma De Barcelona
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 Universidad Autonoma De Barcelona filed Critical Universidad Autonoma De Barcelona
Publication of WO2009141471A1 publication Critical patent/WO2009141471A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/55Detecting local intrusion or implementing counter-measures

Definitions

  • the present invention concerns, in a first aspect, a method for the protection of computing platforms against external repetitive attacks of mobile agents identified by path markers or agent identifiers, and in particular a method comprising using entities of authorization to generate new path markers that allow the mobile agent to migrate and be legally re-executed on the same platform a number of times dynamically determined at runtime.
  • a second aspect of the invention concerns a system of computer platforms protected against external attacks of repetition of mobile agents, and adapted to apply the proposed method.
  • Mobile agents can provide multiple benefits in the development of distributed applications, but their use also poses security threats. Different investigations in the field of mobile agent technology have identified and solved some of the security-related issues that one of these threats posed, but there are still many that remain unsolved, as indicated in the article by J. Zachary "Protecting Mobile Code in the WiId” Internet Computing, IEEE, vol. 7. No. 2, p. 78-82, 2003.
  • Agent repetition attacks can be classified into two different categories (see B. Yee's article. “Monotonicity and partial results protection for mobile agents," in “Proceedings of the 23rd Int. Conf. On Distributed Computing Systems. IEEE Computer Society ", 2003, pp. 582-591):
  • an HTTP exchange between a web browser and a server can include a session tab that identifies only the current interaction session.
  • the file is generally sent as an "cookie” http, and is calculated by applying a "hash” function to the session data, user preferences, etc.
  • Mobile agent systems are also exposed to traditional repeat attacks. Any communication between two agents, or two platforms, or an agent and a platform is exposed to this kind of attacks. To combat this kind of attacks, traditional mechanisms such as those mentioned previously (based on "nonces" or session cards) can be used.
  • Patent document EP1879323 proposes a method to protect the data and itinerary of a mobile agent sent from a first server through a network to which a plurality of servers are connected. It is proposed that the data and itinerary provided for each of the servers to which the mobile agent must visit following its scheduled itinerary, are encrypted together in a nested structure, with a number of elements equal to the number of servers to visit, of so that each of these servers can only access, by means of the corresponding decryption, the data provided for it and a section of the itinerary, respectively.
  • This document proposes, in order to avoid traditional repetition attacks, the use of "nonces", digital signatures, public and private keys, wrapping functions, such as "hash” functions, etc.
  • Agent repetition attacks are not based on repeating a message sent by the network, but on re-executing an agent that had previously been executed on a platform. In addition, these attacks are not carried out by external attackers, but by the agent platforms that are part of the agent's itinerary. As it has been In the above, agent repetition attacks can be divided into two classes: internal repetition attacks and external repetition attacks.
  • a path marker is an identifier of the agent that must be stored by the platforms, so that they can detect and prevent future re-execution attempts of the same agent.
  • the problem with these solutions is that they do not take into account the case where the agent's itinerary includes one or more platforms that must be visited more than once. As a result, a legal re-execution of the agent on the same platform can be misunderstood as a repeat attack.
  • Ametller JA Ortega-Ruiz, S. Robles, and J. Borrell, who proposed a solution based on the inclusion of counters within the agent's path marker.
  • a different counter is assigned to each platform, which indicates the maximum number of times an agent can be executed on a platform.
  • the platforms keep track of which agents have been executed, and the number of times they have been. Before starting the execution of an agent, the platforms verify that the number of times that the agent has been previously executed does not exceed the number of allowed executions recorded in the agent's path marker.
  • the present invention proposes a method and system based on the use of designated authorization entities to generate new identifiers for the agent, thus allowing it to migrate to the same platform any number of times. Therefore, the proposed invention allows programmers to develop applications based on mobile agents in a secure manner, without sacrificing their intrinsic flexibility.
  • the present invention concerns a method for the protection of computing platforms against external attacks of repetition of mobile agents, which comprises using a system of computing platforms connected to a network for the shared execution of distributed applications based in mobile agents, and comprising using path markers or agent identifiers to allow one or more mobile agents to be legally executed on a computing platform more than once, while preventing an illegal re-execution of said or said mobile agents, for considering it as an external attack of repetition.
  • the method proposed by the present invention comprises using one or more authorization entities to generate at least a new path marker or identifier to be used as authorization for the mobile agent, to allow it to be legally executed on said computing platform a number of times dynamically determined at runtime.
  • the method comprises using several authorization entities for the generation of new path markers for the mobile agent, in order to allow it to re-run on different computing platforms.
  • this refers to the execution of different tasks in different respective nodes or stages of the itinerary of the mobile agent, each of said nodes being different and representative of a visit to said computing platform at a different time than the rest of the nodes.
  • the aforementioned legal re-execution refers to the execution of the same task in different respective visits to said computing platform along the itinerary of the mobile agent, each of said visits being represented by the same node or stage.
  • each node is associated with a specific task and platform, and in the event that each visit to the same platform is to execute a different task, these visits will be represented by different nodes associated with the same platform, and for the In case the successive visits to the same platform are to execute the same task, said visits will be represented by the same node.
  • node is understood as a respective visit to a platform, either the same or another platform, in order to execute a task, either the same or a different one.
  • a node when reference is made to the execution of a node, it will imply the execution of the task associated with said node on the platform also associated with said node.
  • the method comprises generating and associating a different path marker or identifier to each of several mobile agents, even if they execute exactly the same tasks, and to each instance of the same mobile agent.
  • the method proposed by the first aspect of the invention is provided for the prevention of repeated attacks, instead of subsequent detection, since this subsequent detection is in many cases useless.
  • the method comprises storing in each computing platform a node identifier previously executed by each mobile agent in said computing platform, together with its respective path marker, in order to allow the agent to visit the same platform to execute different nodes , or re-execute the same node a certain number of times.
  • the method proposed by the first aspect of the invention comprises performing the following steps, which will be described later in greater detail for some examples of embodiment:
  • the method includes constructing it by performing the following actions:
  • each of said nodes being, as indicated above, associated with a specific task and a certain platform, and each of said nodes being associated with a corresponding authorization entity that is the only one responsible for generating new valid path markers used as authorizations for the execution of the task associated with said node;
  • the method comprises using each path marker as an authorization that allows the mobile agent to execute a specific set of tasks, each of which is associated with a node of said set of nodes.
  • the method comprises assigning the following information to each of the nodes that make up the set:
  • nodes For the application of the method proposed by the first aspect of the invention it is only necessary to classify the nodes into two types of node, in particular the following:
  • - a type of regular node, which refers to a node that is a stage of the itinerary where the mobile agent executes his task and jumps to the next computing platform of the itinerary;
  • loop node refers to a node that is a stage of the itinerary where the mobile agent determines whether or not to start an iteration of a certain number of nodes.
  • the method comprises defining said authorization node as an identifier of the node where the path marker of the mobile agent must be generated, either said initial path marker or one of said new route markers, and defining said authorization entity as the corresponding computing platform or the owner or programmer user who must generate and sign the route marker.
  • the method comprises assigning a respective authorization node to each node or not, depending on whether or not the node is located inside a loop of nodes.
  • the method comprises assigning as an authorization node to each node that is located inside a loop, the loop node located at the beginning of the loop (which in this memory is understood as not being inside the loop) and as its corresponding authorization entity the computing platform where the task of said initial loop node is executed, and to each node that It is not located inside a loop, assign any authorization node and as its corresponding authorization entity the owner of the mobile agent.
  • the method proposed by the first aspect of the invention comprises defining it by guaranteeing the following properties:
  • the method comprises using a unique agent identifier to uniquely link the itinerary nodes to the mobile agent.
  • agent identifier depending on the exemplary embodiment, it can be used from a temporary stamp attached to a random number formed by a large number of digits, or any other information that uniquely identifies each instance of the agent.
  • the method comprises generating each of the route markers of each mobile agent, either said initial route marker or one of said new route markers, with the following information:
  • agent identifier identical to said agent identifier included in the protected itinerary and used to link the itinerary nodes with the mobile agent, to ensure that any instance of mobile agent can be uniquely identified;
  • the generated route marker is said initial route marker it is generated by the owner or programmer user, once he has built the said protected itinerary.
  • the generated route marker is one of said new route markers, it is generated by the computing platform corresponding to the authorization entity assigned in the protected itinerary.
  • the method comprises signing it by the owner user or the authorization entity and placing it on top of a stack of agent route markers configured to store route markers previously used by the mobile agent during execution.
  • the battery will store at least part of the aforementioned path markers previously used by the mobile agent, always containing at its top the current path marker, that is, the one that is being used or has been arranged to be used in the next node.
  • the platform As indicated above once the platform has received a mobile agent protected according to the method of the present invention, it proceeds to extract some of its information.
  • said extraction of information carried out by the computing platform from the protected mobile agent received concerns:
  • the information stored in the computing platform used to compare it with that extracted from the mobile agent it is represented, for an example of embodiment, by a table, although for other examples of embodiment said information can be structured in another way that does not include the use of a table.
  • the method comprises First, use, by the receiving computing platform of the protected mobile agent, the type of the current node to determine if the agent is executing a regular type node or a loop type node.
  • the method includes carrying out, by the receiving computer platform of the protected mobile agent, part, or all, if necessary, of the following operations: a) verify the signature of the route marker to check if the route marker has been signed by the current authorization entity, and if such verification is not successful discard the execution of the agent, or if it is successful to perform the following operation; This verification is carried out, for an exemplary embodiment, by using a public key server to obtain the public key of the current authorization entity, and its use to verify the signature; b) verify that the current authorization node, which is included in the route marker is the same as that extracted from the protected itinerary, and if said verification fails to discard the execution of the agent, or if it is successful to perform the following operation; c) verify that the agent identifier included in the route marker is equal to that obtained from the protected itinerary, and if said verification fails to discard the execution of the agent, or if the following operation is successful; d) check the expiration date of the
  • Operations a) to f) are, in general, carried out on said computing platform receiving the protected mobile agent.
  • the method comprises performing, by the receiving computer platform of the protected mobile agent, part, or all, if necessary, of the following operations: i) verify the signature of the route marker to check if said route marker has been signed by the current authorization entity or by the current computing platform, and if both checks fail to discard the execution of the agent, or if at least one of both checks is successful to perform the next operation; ii) perform the following operation:
  • Operations i) to v) are, in general, carried out on said computing platform receiving the protected mobile agent.
  • Another difference is that concerning the verification of the signature of the route marker, which in i), unlike in the operation a), contemplates that if it has not been carried out by the current authorization entity, a checking if the signature of the current path marker has been performed by the platform current computing (for example using its own public key), which allows the agent to execute the current loop type node using a path marker generated by the same platform in a previous iteration.
  • the determination carried out in the operation vi) by the mobile agent it can be carried out in various ways, depending on the example of embodiment, the programmer having marked, in general, one or more conditions to be verified by the mobile agent, based on whose compliance it determines whether or not to exit the loop.
  • said conditions are simply that a variable reaches a value that is below a tolerance, said verification being carried out by means of the reading, by the agent, of said variable, and the repetition of said reading until it offer said value below the tolerance set by the programmer, in which case the agent determines to exit the loop.
  • a second aspect of the present invention concerns a system of computer platforms protected against external attacks of repetition of mobile agents, comprising a plurality of computer platforms connected to a network and adapted to run distributed applications based on mobile agents that include path markers or agent identifiers to allow one or more mobile agents to be legally executed on one or more of said computing platforms more than once, while preventing an illegal re-execution of said mobile agent or said agents, considered as a external repeat attack.
  • the system proposed by the second aspect of the invention comprises one or more authorization entities in connection with said network, intended to generate at least a new path marker or identifier to be used as authorization, for the agent mobile, for allow it to be legally executed on said or said computing platforms a number of times determined dynamically at runtime.
  • said authorization entity is one of said computing platforms, and for another embodiment it is a programmer or user owner of said mobile agent.
  • the system proposed by the second aspect of the present invention is adapted to apply the method proposed by the first aspect.
  • Fig. 1 illustrates schematically a series of nodes that form a simple itinerary where the same platform is visited twice according to the method proposed by the present invention for an embodiment
  • Fig. 2 schematically shows an itinerary of nodes that includes a loop formed by three computing platforms that can be visited repeatedly according to the method proposed by the first aspect of the present invention for a more complex embodiment example than that of Fig. 1;
  • Fig. 3 schematically illustrates another node itinerary that includes two loops, one inside the other, formed by computing platforms that can be visited repeatedly according to the method proposed by the first aspect of the present invention for another example of more realization;
  • Fig. 4 is a schematic representation of the components included inside a mobile agent protected against repeated attacks by applying the method proposed by the present invention
  • Figs. 5a and 5b show individual parts of the same flowchart, which represent the different operations to be carried out according to the method proposed by the first aspect of the invention, for the previously explained preferred embodiment, after checking if the node is of the regular type , in which case the operations a) to f) illustrated in Fig. 5a (all or in part depending on the path followed in the flow chart), or loop type, in which case the operations i) are performed a vi) illustrated in Fig. 5b (all or in part depending on the path followed).
  • the operations i) are performed a vi) illustrated in Fig. 5b (all or in part depending on the path followed).
  • Fig. 1 it can be seen the simplest case in terms of the itinerary to be traveled by a mobile agent, where said itinerary does not contain any loop of nodes.
  • the agent has to migrate to a certain platform several times, he will do it at different stages or nodes of his itinerary, which means that he will execute different tasks.
  • platform B is visited twice, a first visit in node 2 and a second visit in node 4.
  • repetition attacks are simple to prevent, by storing an identifier of the node or of the task executed, together with the path marker of the agent.
  • FIG. 1 is an example of an itinerary that can be protected against re-execution attacks using simpler protocols than those proposed by the present invention, some of which have been cited in the state of the art section.
  • Fig. 2 an itinerary of nodes representative of a more complex case is illustrated for which the mobile agent has to perform the same task on the same platform several times, a number of times which is dynamically determined by the method proposed by The present invention.
  • nodes 1, 3, 4 and 5 are of the regular type and node 2 is of the loop type, since I could decide whether to enter the loop or not, that is, if continue to node 5.
  • Fig. 3 illustrates an itinerary even more complicated than that of Fig. 2, since it incorporates two loops, one external formed by nodes 1, 2 and 3, and another internal formed by nodes 3 and 4.
  • nodes 1 and 3 are loop type
  • nodes 2, 4 and 5 are regular type.
  • the authorization entities, referred to as EA, and the authorization nodes, referred to as NA, assigned to each node according to the description made in the explanation section of the invention have been indicated.
  • nodes 1 and 5 which are not inside any loop, have no authorization node and its authorization entity is the owner or programmer of the mobile agent.
  • nodes 2 and 3 which are located inside the external loop, have as authorization entity the platform A and as authorization node node 1.
  • the authorization C has the C platform and the node 3.
  • an authorization node that is to say that for the itinerary illustrated by Fig. 3, there are three authorization entities: the owner of the agent, the A platform and Ia platform C.
  • the operations a) to f) are carried out when the nodes that receive the agent Protected mobile are nodes 2, 4 and 5, and stages i) to vi) when the receiving node is loop node 1 or 3, in its entirety, that is from i) to vi), as long as the execution of the agent as a result of some of these operations is not ruled out.
  • platform A For an exemplary embodiment based on Fig. 3, for which the agent requires performing a series of iterations of the external loop, platform A generates and signs a new path marker for each new iteration (step ii) and also verifies (operation i)) that the signature of the path marker of the agent receiving said platform A has been carried out by the owner (in case a previous iteration of the external loop has not been performed) or by itself (case in which has performed a previous iteration of the external loop, and therefore the agent carried a path marker generated and signed by platform A).
  • the mobile agent determines in operation vi) whether or not it exits the loop, for example in the case of the external loop said determination will take place on platform A, and if the determination is to exit the loop, this will imply a jump of the agent to the platform E to execute node 5, in which case the path marker disposed in the upper part of the stack, and which has allowed me to iterate the loop, is extracted from the agent stack, so that the path marker Original and generated and signed by the owner can be used again to continue the execution on platform E.
  • Platform C would act in a manner analogous to that described in the previous paragraph for platform A, to allow legal iterations of the internal loop that are not interpreted as re-execution attacks.
  • Fig. 4 the content of a protected mobile agent created according to the method proposed by the first aspect of the present invention has been schematically illustrated.
  • the protected itinerary created by the programmer can be seen, consisting of n nodes, the stack of path markers and, in detail, one of the path markers of the stack, signed by the corresponding authorization entity , being appreciated that it contains the elements described in the explanation section of the invention, that is to say an agent identifier, an authorization node, an expiration date and a loop counter.
  • each platform will only execute the current node of the agent's itinerary if the current path marker (the one located in the upper part of the stack) has been signed by the appropriate authorization entity.
  • Each itinerary node also contains an agent identifier, which is also included in the agent path marker, which prevents a given path marker from being reused in different agents, as this will be detected by the platforms computing when, applying the proposed method, compare the. agent identifier extracted from the current node with the one included in the path marker.
  • the method proposed by the present invention also includes protecting, for example by encryption, the itinerary of the agent so that no attacker can change the information associated with a given node. This protection also prevents the agent's task from being executed on a platform different from those initially established.
  • the proposed method does not require the agent to interact with external entities, and only assumes that the loop-type nodes will be executed on reliable platforms for the programmer, since it is not possible to prevent the platforms from manipulating the execution of the agent that reaches them.
  • the platforms prevent their route marker tables from being overfilled by eliminating entries that have expired.
  • another policy can be applied in order to enable the elimination of entries when no more route markers fit in a table (for example, eliminating the oldest ones.
  • This scenario corresponds to that of medical institutions in which an information management system based on mobile agents has been implemented.
  • the patient registration process is managed by an agent platform, which maintains a registry of the patients attended by the institution.
  • each of the departments of the medical institution has an agent platform that manages the history of the patients treated, and the services that have been performed.
  • mobile agents are used, among other tasks, to automate the process of recovering medical records distributed by different institutions.
  • an urgent surgical operation is required for a victim of an accident.
  • medical personnel Before beginning any operation in which there is contact with blood, medical personnel should know if the patient is carrying the HIV virus or Hepatitis B.
  • the performance of the relevant tests before the intervention is unfeasible, because they are needed days to get the results. It is also not possible to rely on patients to obtain this information, as they may be unconscious. For this reason, the recovery of this information is done through an application based on mobile agents.
  • the application is initiated by a medical professional who enters the patient's data and the identification of the results of the tests that must be obtained in a graphic interface.
  • the application From here, the application generates a mobile agent to which it introduces all the information collected previously.
  • the mobile agent first, consults a database with information about all the institutions that carry out the HIV and Hepatitis B tests, in this specific case. The agent thus obtains a list of all those institutions in which these tests are performed.
  • the agent conducts a remote consultation to each of these institutions to determine if the patient has ever been visited in that institution or not. If positive, the mobile agent travels to the relevant department of the medical institution to choose and extract the results that are needed. This process is repeated for each and every one of the institutions that carry out the tests corresponding to the HIV virus and Hepatitis B. As can be seen, the use of mobile agent technology makes it possible to greatly automate and speed up the recovery and extraction process of information.
  • said re-execution attack could also entail economic losses for the patient, in case the agent visited a private institution to carry out a paid service.
  • a paid service For example, an X-ray of the patient performed in a medical center could be transported by the agent for later analysis to a private institution.
  • the use of the mobile agent would allow the patient to avoid a trip to said institution.
  • the agent were forwarded by an attacker to the same institution repeatedly, the patient would end up paying multiple times for the same service.
  • the implementation of the protection method against re-execution attacks presented in the present invention is essential for the safe use of mobile agents in this distributed application scenario.
  • This scenario is a clear example of the need to use adequate mechanisms for the prevention of re-execution attacks.
  • the proposed method has been applied to a scenario related to medical institutions, but the method proposed by the present invention is applicable to many other scenarios related, for example, to financial institutions, travel agencies, or any other that involves the processing of confidential information or commercial transactions.

Abstract

The invention relates to a method for protecting computing platforms against repeated external attacks from mobile agents identified using path markers or agent identifiers. In particular, the invention relates to a method consisting of using authorisation entities in order to generate new path markers that enable the mobile agent to migrate and be executed legally on the same platform a dynamically determined number of times during the execution time. The invention also relates to a system of protected computing platforms that are protected against repeated external attacks from mobile agents, which system is designed to implement the aforementioned method.

Description

Método para Ia protección de plataformas de computación frente a ataques externos de repetición de agentes móviles v sistema de plataformas de computación protegidas Method for the protection of computer platforms against external attacks of repetition of mobile agents and system of protected computer platforms
Sector de Ia técnicaTechnical sector
La presente invención concierne, en un primer aspecto, a un método para Ia protección de plataformas de computación frente a ataques externos de repetición de agentes móviles identificados mediante marcadores de trayecto o identificadores de agente, y en particular a un método que comprende utilizar unas entidades de autorización para generar nuevos marcadores de trayecto que permiten que el agente móvil pueda migrar y ser re-ejecutado legalmente en una misma plataforma un número de veces determinado dinámicamente en tiempo de ejecución.The present invention concerns, in a first aspect, a method for the protection of computing platforms against external repetitive attacks of mobile agents identified by path markers or agent identifiers, and in particular a method comprising using entities of authorization to generate new path markers that allow the mobile agent to migrate and be legally re-executed on the same platform a number of times dynamically determined at runtime.
Un segundo aspecto de Ia invención concierne a un sistema de plataformas de computación protegidas frente a ataques externos de repetición de agentes móviles, y adaptado para aplicar el método propuesto.A second aspect of the invention concerns a system of computer platforms protected against external attacks of repetition of mobile agents, and adapted to apply the proposed method.
Estado de Ia técnica anteriorState of the prior art
Los agentes móviles pueden proporcionar múltiples beneficios en el desarrollo de aplicaciones distribuidas, pero su utilización también supone amenazas de seguridad. Diferentes investigaciones en el campo de Ia tecnología de agentes móviles han identificado y solucionado algunas de las cuestiones relacionadas con Ia seguridad que suponían una de dichas amenazas, pero aún existen muchas que permanecen sin resolver, tal como se indica en el artículo de J. Zachary "Protecting Mobile Code in the WiId" Internet Computing, IEEE, vol. 7. No. 2, págs. 78-82, 2003.Mobile agents can provide multiple benefits in the development of distributed applications, but their use also poses security threats. Different investigations in the field of mobile agent technology have identified and solved some of the security-related issues that one of these threats posed, but there are still many that remain unsolved, as indicated in the article by J. Zachary "Protecting Mobile Code in the WiId" Internet Computing, IEEE, vol. 7. No. 2, p. 78-82, 2003.
La mayor parte del trabajo de investigación llevado a cabo respecto a \a seguridad de los agentes móviles está concentrado en el problema que presentan las plataformas maliciosas, ya que las plataformas tienen un control completo sobre Ia ejecución del agente, y pueden por tanto hacer casi cualquier cosa con el código o datos del agente. Por ello se considera que conseguir una solución completa es una tarea imposible. Sin embargo, varios problemas pueden ser mitigados. Por ejemplo, aunque a pesar de que no puede evitarse que las plataformas manipulen los resultados generados por Ia ejecución actual del agente en las mismas, sí que puede evitarse que las plataformas manipulen de manera no autorizada los resultados generados por el agente en otras plataformas.Most of the research work carried out regarding the security of mobile agents is focused on the problem presented by malicious platforms, since the platforms have complete control over the execution of the agent, and can therefore do almost anything with the agent code or data. Therefore, it is considered that achieving a complete solution is an impossible task. However, several problems can be mitigated. For example, although in spite of the fact that platforms cannot be prevented from manipulating the results generated by the current execution of the agent in them, it can be avoided that the platforms manipulate the results generated by the agent in other platforms in an unauthorized manner.
La mayoría de soluciones propuestas en Ia protección de los agentes móviles frente a las plataformas maliciosas intentan proporcionar una solución genérica que cubra tantas amenazas de seguridad como sea posible, en general sin poner Ia solución en práctica en ninguna aplicación real. Por otra parte, Ia mayoría de aplicaciones reales basadas en agentes no tienen en cuenta Ia seguridad. Esta es probablemente Ia razón debido a Ia cual algunas propuestas en seguridad de agentes móviles han fallado a Ia hora de considerar algunos escenarios específicos donde sus soluciones pueden no ser válidas. Más específicamente, las soluciones presentadas para algunos ataques de repetición de agentes han fallado a Ia hora de considerar escenarios donde el agente tenga que recorrer un bucle que contenga un número determinado de plataformas un número de veces indeterminado (ver documento de Y. Y. Tsipenyuk, "Detecting External Agent Replay and State Modification Attacks," Master's thesis. University of California, 2004).The majority of solutions proposed in the protection of mobile agents against malicious platforms try to provide a generic solution that cover as many security threats as possible, in general without putting the solution into practice in any real application. On the other hand, most real agent-based applications do not take security into account. This is probably the reason why some proposals in security of mobile agents have failed to consider some specific scenarios where their solutions may not be valid. More specifically, the solutions presented for some agent repetition attacks have failed to consider scenarios where the agent has to go through a loop that contains a certain number of platforms an indeterminate number of times (see YY Tsipenyuk document, "Detecting External Agent Replay and State Modification Attacks, "Master's thesis. University of California, 2004).
Los ataques de repetición de agente pueden ser clasificados en dos categorías diferentes (ver el artículo de B. Yee. "Monotonicity and partial results protection for mobile agents," en "Proceedings of the 23rd Int. Conf. on Distributed Computing Systems. IEEE Computer Society", 2003, págs. 582-591):Agent repetition attacks can be classified into two different categories (see B. Yee's article. "Monotonicity and partial results protection for mobile agents," in "Proceedings of the 23rd Int. Conf. On Distributed Computing Systems. IEEE Computer Society ", 2003, pp. 582-591):
• Ataques de repetición internos: Estos ocurren cuando el agente es ejecutado en el interior de una sola plataforma utilizando diferentes entradas, con el fin de obtener diferentes respuestas y sacar conclusiones sobre su comportamiento.• Internal repetition attacks: These occur when the agent is executed inside a single platform using different inputs, in order to obtain different responses and draw conclusions about his behavior.
• Ataques de repetición externos: Estos son ejecutados por plataformas maliciosas mediante el reenvío del agente a otra plataforma, haciendo así que el agente reejecute parte de su itinerario.• External repeat attacks: These are executed by malicious platforms by forwarding the agent to another platform, thus causing the agent to re-execute part of his itinerary.
. Los ataques de repetición internos son imposibles de evitar porque la plataforma tiene un control total sobre Ia ejecución, y siempre puede reiniciar al agente a su estado de llegada. Los ataques externos, al contrario, pueden ser evitados si las plataformas mantienen un registro de los agentes ejecutados previamente.. Internal repetition attacks are impossible to avoid because the platform has full control over the execution, and can always reset the agent to its arrival state. External attacks, on the contrary, can be avoided if the platforms keep a record of previously executed agents.
El problema de las soluciones actuales contra los ataques externos de repetición (las cuales se describirán posteriormente) es que éstas no permiten que un agente sea ejecutado n veces en Ia misma plataforma, especialmente si n es determinado en tiempo de ejecución. Sin embargo, el itinerario del agente a menudo contiene recorridos de ida y vuelta que requieren que Ia misma plataforma sea visitada varias veces. Así, las soluciones actuales fuerzan a los programadores a sacrificar parte de Ia flexibilidad inherente a los itinerarios de los agentes móviles.The problem with current solutions against external repetition attacks (which will be described later) is that they do not allow an agent to be executed n times on the same platform, especially if n is determined at runtime. However, the agent's itinerary often contains round trips that require the same platform to be visited several times. Thus, current solutions force programmers to sacrifice part of the flexibility inherent in the itineraries of mobile agents.
Los ataques de repetición han sido considerados tradicionalmente como una forma de ataques de red (ver artículo de J. Zachary "Protecting Mobile Code in the WiId" Internet Computing, IEEE, vol. 7. No. 2, págs. 78-82, 2003). Estos están basados en Ia captura de algunos de los mensajes intercambiados entre dos entidades y su reenvío posterior. Estos ataques son llevados a cabo en general durante procesos de autorización o de ejecución de protocolos de intercambio de claves, con el fin realizar, por ejemplo, ataques de suplantación de identidad.Repeat attacks have traditionally been considered as a form of network attacks (see article by J. Zachary "Protecting Mobile Code in the WiId" Internet Computing, IEEE, vol. 7. No. 2, pp. 78-82, 2003 ). These are based on the capture of some of the messages exchanged between two entities and their forwarding later. These attacks are generally carried out during authorization processes or the execution of key exchange protocols, in order to carry out, for example, phishing attacks.
Los mecanismos tradicionales utilizados para prevenir los ataques de repetición están basados en Ia utilización de "nonces" (números utilizados una sola vez), sellos de tiempo, fichas (tokens) de sesión o cualquier otra clase de información que permita a las entidades vincular sus mensajes a Ia ejecución del protocolo actual (T. Aura, "Strategies against Replay Attacks" in Proceedings of the Computer Security Foundations Workshop. IEEE Computer Society, 1997, págs. 59-68).The traditional mechanisms used to prevent repetition attacks are based on the use of "nonces" (numbers used only once), time stamps, session tokens or any other kind of information that allows entities to link their messages to the execution of the current protocol (T. Aura, "Strategies against Replay Attacks" in Proceedings of the Computer Security Foundations Workshop. IEEE Computer Society, 1997, pp. 59-68).
Por ejemplo, un intercambio HTTP entre un explorador web y un servidor puede incluir una ficha de sesión que identifique únicamente Ia sesión de interacción actual. La ficha es enviada en general como una "cookie" http, y es calculada aplicando una función "hash" a los datos de Ia sesión, a las preferencias del usuario, etc.For example, an HTTP exchange between a web browser and a server can include a session tab that identifies only the current interaction session. The file is generally sent as an "cookie" http, and is calculated by applying a "hash" function to the session data, user preferences, etc.
Los sistemas de agentes móviles también están expuestos a ataques de repetición tradicionales. Cualquier comunicación entre dos agentes, o dos plataformas, o un agente y una plataforma está expuesta a esta clase de ataques. Para combatir esta clase de ataques, mecanismos tradicionales como los mencionados previamente (basados en "nonces" o fichas de sesión) pueden ser utilizados.Mobile agent systems are also exposed to traditional repeat attacks. Any communication between two agents, or two platforms, or an agent and a platform is exposed to this kind of attacks. To combat this kind of attacks, traditional mechanisms such as those mentioned previously (based on "nonces" or session cards) can be used.
El documento de patente EP1879323 propone un método para proteger los datos y el itinerario de un agente móvil enviado desde un primer servidor a través de una red a Ia que están conectados una pluralidad de servidores. Se propone que los datos y el itinerario previstos para cada uno de los servidores a los cuales el agente móviles debe visitar siguiendo su itinerario programado, se encripten juntos en una estructura anidada, con un número de elementos igual al número de servidores a visitar, de manera que cada uno de dichos servidores pueda acceder únicamente, mediante Ia desencriptación correspondiente, a los datos previstos para él y a una sección del itinerario, respectivamente. En dicho documento se propone, con el fin de evitar ataques de repetición tradicionales, Ia utilización de "nonces", firmas digitales, claves públicas y privadas, funciones envoltorios, tales como funciones "hash", etc.Patent document EP1879323 proposes a method to protect the data and itinerary of a mobile agent sent from a first server through a network to which a plurality of servers are connected. It is proposed that the data and itinerary provided for each of the servers to which the mobile agent must visit following its scheduled itinerary, are encrypted together in a nested structure, with a number of elements equal to the number of servers to visit, of so that each of these servers can only access, by means of the corresponding decryption, the data provided for it and a section of the itinerary, respectively. This document proposes, in order to avoid traditional repetition attacks, the use of "nonces", digital signatures, public and private keys, wrapping functions, such as "hash" functions, etc.
Los sistemas de agentes móviles están también expuestos, además de a los ataques de repetición tradicionales, a ataques de repetición de agente. Los ataques de repetición de agente no están basados en repetir un mensaje enviado por Ia red, sino en reejecutar un agente que ya había sido ejecutado previamente en una plataforma. Además, estos ataques no son realizados por atacantes externos, sino por las plataformas de agente que forman parte del itinerario del agente. Tal y como se ha dicho anteriormente los ataques de repetición de agente pueden ser divididos en dos clases: ataques de repetición internos y ataques de repetición externos.Mobile agent systems are also exposed, in addition to traditional repeat attacks, to agent repeat attacks. Agent repetition attacks are not based on repeating a message sent by the network, but on re-executing an agent that had previously been executed on a platform. In addition, these attacks are not carried out by external attackers, but by the agent platforms that are part of the agent's itinerary. As it has been In the above, agent repetition attacks can be divided into two classes: internal repetition attacks and external repetition attacks.
Los ataques de repetición internos ocurren cuando una plataforma deshonesta ejecuta repetidamente un agente aplicándole las mismas o diferentes entradas cada vez. Una plataforma puede ejecutar un agente múltiples veces con el fin de entender su comportamiento, o hasta que Ia salida deseada sea obtenida. Esta clase de ataques es también conocido como "blackbox testing" (F. Hohl, "Time Limited Blackbox Security: Protecting Mobile Agents From Malicious Hosts," in Mobile Agents and Security, ser. Lecture Notes in Computer Science. Springer Verlag, 1998, vol. 1419, p. 92), y en general es llevado a cabo cuando el código del agente ha sido protegido utilizando alguna técnica de ofuscación.Internal repetition attacks occur when a dishonest platform repeatedly executes an agent by applying the same or different inputs each time. A platform can execute an agent multiple times in order to understand its behavior, or until the desired output is obtained. This kind of attacks is also known as "blackbox testing" (F. Hohl, "Time Limited Blackbox Security: Protecting Mobile Agents From Malicious Hosts," in Mobile Agents and Security, ser. Lecture Notes in Computer Science. Springer Verlag, 1998, vol. 1419, p. 92), and is generally carried out when the agent code has been protected using some obfuscation technique.
Esta clase de ataques se llevan a cabo en el interior de una sola plataforma, y no pueden ser observados externamente por ninguna otra entidad. Incluso si el agente intentase registrar todas sus acciones en un servicio de monitorización externo, el entorno de ejecución podría todavía interferir con estas comunicaciones externas, y dirigir los mensajes hacia un receptor incorrecto, o alterar los contenidos de los mensajes, etc. Además, los intentos del agente de almacenar su información de estado en una entidad externa segura podrían ser fácilmente evitados por parte de plataformas maliciosas mediante Ia alteración de Ia ejecución del agente. En Ia práctica, los ataques de repetición internos son imposibles de prevenir o detectar (B. Yee. "Monotonicity and partía! results protection for mobile agents," en "Proceedings of the 23rd Int. Conf. on Distributed Computing Systems. IEEE Computer Society", 2003, págs. 582-591).These kinds of attacks are carried out inside a single platform, and cannot be observed externally by any other entity. Even if the agent tried to register all his actions in an external monitoring service, the execution environment could still interfere with these external communications, and direct the messages towards an incorrect receiver, or alter the contents of the messages, etc. In addition, the agent's attempts to store his status information in a secure external entity could easily be avoided by malicious platforms by altering the agent's execution. In practice, internal repetition attacks are impossible to prevent or detect (B. Yee. "Monotonicity and partía! Results protection for mobile agents," in "Proceedings of the 23rd Int. Conf. On Distributed Computing Systems. IEEE Computer Society ", 2003, pp. 582-591).
Los ataques de repetición externos ocurren cuando una plataforma deshonesta hace migrar a un agente hacia una plataforma remota, sin que esta migración esté definida en el itinerario del agente. Esta clase de ataque es especialmente difícil de combatir, ya que es difícil distinguir entre una migración legal del agente hasta su siguiente destino y una migración repetida que el agente no tenía intención de llevar a cabo. Por ejemplo, suponiendo que el itinerario del agente incluya una migración desde una plataforma A a una B, entonces Ia plataforma A está autorizada a enviar agentes a Ia plataforma B, y el agente también está autorizado a ser ejecutado en Ia plataforma B. Como resultado, ningún mecanismo de autenticación puede ser utilizado para prevenir que Ia plataforma A reenvíe maliciosamente al agente a Ia plataforma B múltiples veces.External repeat attacks occur when a dishonest platform migrates an agent to a remote platform, without this migration being defined in the agent's itinerary. This kind of attack is especially difficult to combat, since it is difficult to distinguish between a legal migration of the agent to his next destination and a repeated migration that the agent did not intend to carry out. For example, assuming that the agent's itinerary includes a migration from a platform A to a B, then platform A is authorized to send agents to platform B, and the agent is also authorized to be executed on platform B. As a result , no authentication mechanism can be used to prevent platform A from maliciously forwarding the agent to platform B multiple times.
Con el fin de proporcionar una solución a este problema, Yee ("Monotonicity and partial results protection for mobile agents" en "Proceedings of the 23rd Int. Conf. on Distributed Computing Systems. IEEE Computer Society", 2003, págs. 582-591) sugiere considerar un ataque de repetición como una transición de estado ilegal. Cada plataforma dentro del itinerario implementa un algoritmo de detección de inconsistencias en transiciones de estado (STID), el cual es capaz de determinar cuándo una migración desde una plataforma hasta otra es una transición ilegal. El problema de este enfoque es que las plataformas deben ser conscientes de cuales son las transiciones de estado ¡legales de cada agente ejecutado. Además, las transiciones de estado ¡legales pueden ser identificadas erróneamente si el agente está ejecutando un bucle en el que Ia misma plataforma es visitada repetidamente.In order to provide a solution to this problem, Yee ("Monotonicity and partial results protection for mobile agents" in "Proceedings of the 23rd Int. Conf. On Distributed Computing Systems. IEEE Computer Society", 2003, pp. 582-591 ) suggests considering a repeat attack as an illegal state transition. Every platform within the itinerary implements an algorithm for detecting inconsistencies in state transitions (STID), which is able to determine when a migration from one platform to another is an illegal transition. The problem with this approach is that platforms must be aware of the legal status transitions of each agent executed. In addition, legal status transitions can be mistakenly identified if the agent is executing a loop in which the same platform is repeatedly accessed.
Otros trabajos referentes a Ia protección de agentes móviles contra plataformas maliciosas sugieren Ia utilización de marcadores de trayecto para prevenir ataques de repetición. Algunos de tales trabajos son los expuestos en los siguientes documentos:Other works concerning the protection of mobile agents against malicious platforms suggest the use of path markers to prevent repetition attacks. Some of such works are those set out in the following documents:
- "Methods for Protecting a Mobile Agent's Route," en "Proceedings of the 2nd Int. Information Security Workshop (ISW '99), ser. Lecture Notes in Computer Science", vol. 1729. Springer-Verlag, 1999, págs. 57-71 , de los autores D. Wcsthoff, M. Schneider, C. Unger, y F. Kaderali;- "Methods for Protecting a Mobile Agent's Route," in "Proceedings of the 2nd Int. Information Security Workshop (ISW '99), ser. Lecture Notes in Computer Science", vol. 1729. Springer-Verlag, 1999, p. 57-71, by the authors D. Wcsthoff, M. Schneider, C. Unger, and F. Kaderali;
- "On the problem of trust in mobile agent systems," en "Proceedings of the Symposium on Network and Distributed System Security". Internet Society. 1998, de U. G. Wilhelm, S. Staamann, y L. Buttyan;- "On the problem of trust in mobile agent systems," in "Proceedings of the Symposium on Network and Distributed System Security". Internet Society 1998, by U. G. Wilhelm, S. Staamann, and L. Buttyan;
- "A Secure Route Structure for Information Gathering Agent" en "Proceedings of the 3rd Pacific Rim Int. Workshop on Multi-Agents: Design and Applications of Intelligent Agents, ser. Lecture Notes in Artificial Intelligence", vol. 1881. Springer-Verlag, 2000, pp. 101-114, de T. Li, C. Y. Seng y K. Y. Lam;- "A Secure Route Structure for Information Gathering Agent" in "Proceedings of the 3rd Pacific Rim Int. Workshop on Multi-Agents: Design and Applications of Intelligent Agents, ser. Lecture Notes in Artificial Intelligence", vol. 1881. Springer-Verlag, 2000, pp. 101-114, by T. Li, C. Y. Seng and K. Y. Lam;
- "Mobile Agent Protection With Data Encapsulation And Execution Tracing," Ph. D. dissertation. The Florida State University. 2003, de A. Suen;- "Mobile Agent Protection With Data Encapsulation And Execution Tracing," Ph. D. dissertation. The Florida State University. 2003, by A. Suen;
- "Protecting Mobile Agent Itineraries," en "Mobile Agents for Telecommunication Applications (MATA), ser. Lecture Notes in Computer Science", vol. 2881. Springer Verlag, 2003, pp. 275-285, de J. Mir and J. Borrell; y- "Protecting Mobile Agent Itineraries," in "Mobile Agents for Telecommunication Applications (MATA), ser. Lecture Notes in Computer Science", vol. 2881. Springer Verlag, 2003, pp. 275-285, by J. Mir and J. Borrell; Y
- "A Novel Solution of Mobile Agent Security: Task-Description-Based Mobile Agent," "IJCSNS International Journal of Computer Science and Network Security", vol. 6, no. 2B, pp. 121-125, 2006, de los autores H. Che, D. Li, J. Sun. and H. Yu.- "A Novel Solution of Mobile Agent Security: Task-Description-Based Mobile Agent," "IJCSNS International Journal of Computer Science and Network Security", vol. 6, no. 2B, pp. 121-125, 2006, by the authors H. Che, D. Li, J. Sun. and H. Yu.
Un marcador de trayecto es un identificador del agente que debe ser almacenado por las plataformas, de manera que así puedan detectar e impedir futuros intentos de reejecución del mismo agente. De nuevo, el problema de estas soluciones es que no tienen en cuenta el caso donde el itinerario del agente incluya una o más plataformas que deban ser visitadas más de una vez. Como resultado, una reejecución legal del agente en Ia misma plataforma puede ser malinterpretada como un ataque de repetición. Estos aspectos fueron identificados en el artículo "Protecting Mobile Agent Loops," en "Mobility Aware Technologies and Applications, ser. Lecture Notes in Computer Science", vol. 3744. Springer-Verlag, 2005, págs. 74-83, por J. Cucurull, J. Ametller, J. A. Ortega-Ruiz, S. Robles, y J. Borrell, los cuales propusieron una solución basada en Ia inclusión de contadores dentro del marcador de trayecto del agente. A cada plataforma Ie es asignado un contador diferente, el cual indica el número máximo de veces que un agente puede ser ejecutado en una plataforma. Las plataformas mantienen un registro de qué agentes han sido ejecutados, y el número de veces que Io han sido. Antes de iniciar Ia ejecución de un agente, las plataformas verifican que el número de veces que el agente ha sido previamente ejecutado no exceda el número de ejecuciones permitidas registrado en el marcador de trayecto del agente.A path marker is an identifier of the agent that must be stored by the platforms, so that they can detect and prevent future re-execution attempts of the same agent. Again, the problem with these solutions is that they do not take into account the case where the agent's itinerary includes one or more platforms that must be visited more than once. As a result, a legal re-execution of the agent on the same platform can be misunderstood as a repeat attack. These aspects were identified in the article "Protecting Mobile Agent Loops," in "Mobility Aware Technologies and Applications, ser. Lecture Notes in Computer Science", vol. 3744. Springer-Verlag, 2005, p. 74-83, by J. Cucurull, J. Ametller, JA Ortega-Ruiz, S. Robles, and J. Borrell, who proposed a solution based on the inclusion of counters within the agent's path marker. A different counter is assigned to each platform, which indicates the maximum number of times an agent can be executed on a platform. The platforms keep track of which agents have been executed, and the number of times they have been. Before starting the execution of an agent, the platforms verify that the number of times that the agent has been previously executed does not exceed the number of allowed executions recorded in the agent's path marker.
El problema de esta propuesta, sin embargo, es que el número de veces que una plataforma dada puede ser visitada debe ser conocido de antemano, cuando se crea el itinerario del agente, de manera que esta información pueda ser introducida dentro del marcador de trayecto del agente. En consecuencia, esta propuesta no permite que el agente decida dinámicamente cuantas veces será visitada una plataforma dada.The problem with this proposal, however, is that the number of times a given platform can be visited must be known in advance, when the agent's itinerary is created, so that this information can be entered into the path marker of the agent. Consequently, this proposal does not allow the agent to dynamically decide how many times a given platform will be visited.
Algunos de los trabajos propuestos para evitar que el agente sea ejecutado en más de una ocasión se han basado en preservar Ia denominada "propiedad de ejecución única" ("exactly-once execution property"). En general esta propiedad se tiene en consideración cuando se diseñan mecanismos de tolerancia a fallos para agentes móviles. Asegurar dicha propiedad implica que, cuando el agente se ha enviado a realizar una tarea determinada: en primer lugar, Ia tarea será finalmente ejecutada, independientemente de posibles fallos en Ia plataforma o en sus comunicaciones; y en segundo lugar que Ia tarea no será realizada más de una vez.Some of the proposed works to prevent the agent from being executed on more than one occasion have been based on preserving the so-called "unique execution property" ("exactly-once execution property"). In general this property is taken into account when designing fault tolerance mechanisms for mobile agents. Securing said property implies that, when the agent has been sent to perform a specific task: first, the task will be finally executed, regardless of possible failures in the platform or in its communications; and secondly that the task will not be performed more than once.
Las soluciones presentadas para asegurar Ia propiedad de ejecución única están basadas en Ia utilización de entidades externas que monitorizan Ia ejecución del agente. Cuando un fallo impide que el agente continúe su itinerario, otro agente es enviado para reanudar Ia ejecución en el punto que el agente original Ia dejó. El problema de estas soluciones es que las comunicaciones entre el agente y el sistema de monitorización producen una cantidad considerable de tráfico de red. Además, estos protocolos reducen severamente Ia autonomía del agente, debido a que el agente tiene que interactuar constantemente con Ia entidad de monitorización. Así, sacrifican una de las mayores ventajas asociadas con el uso de tecnología de agentes móviles.The solutions presented to ensure the single execution property are based on the use of external entities that monitor the execution of the agent. When a failure prevents the agent from continuing his itinerary, another agent is sent to resume execution at the point that the original agent left. The problem with these solutions is that communications between the agent and the monitoring system produce a considerable amount of network traffic. In addition, these protocols severely reduce the autonomy of the agent, because the agent has to constantly interact with the monitoring entity. Thus, they sacrifice one of the greatest advantages associated with the use of mobile agent technology.
En resumen, no se conoce ninguna solución presentada hasta ahora contra los ataques de repetición que permita que un agente sea ejecutado en una plataforma un número de veces determinado dinámicamente. Considerando que uno de los grandes atractivos de los agentes móviles es su dinamismo y flexibilidad, fijar de antemano en el código del agente el número de posibles migraciones a una plataforma puede ser un serio impedimento a Ia hora de implementar aplicaciones reales.In summary, there is no known solution presented so far against repeat attacks that allows an agent to be executed on a platform. dynamically determined number of times. Considering that one of the great attractions of mobile agents is their dynamism and flexibility, fixing in advance in the agent code the number of possible migrations to a platform can be a serious impediment when implementing real applications.
Explicación de Ia invenciónExplanation of the invention
Es necesario ofrecer una alternativa al estado de Ia técnica que permita realmente a un agente móvil ser reejecutado legalmente en una misma plataforma de computación, a Ia vez que impedir los ataques externos de repetición de agentes móviles descritos en el apartado anterior, mejorando Ia seguridad sin sacrificar Ia flexibilidad intrínseca a los agentes móviles.It is necessary to offer an alternative to the state of the art that actually allows a mobile agent to be legally re-executed in the same computing platform, while preventing the external attacks of repetition of mobile agents described in the previous section, improving security without sacrifice the intrinsic flexibility to mobile agents.
Para ello Ia presente invención propone un método y un sistema basados en Ia utilización de entidades de autorización designadas para generar nuevos identificadores para el agente, permitiéndole así migrar a una misma plataforma cualquier número de veces. Por consiguiente, Ia invención propuesta permite a los programadores desarrollar aplicaciones basadas en agentes móviles de manera segura, sin renunciar a su flexibilidad intrínseca.For this, the present invention proposes a method and system based on the use of designated authorization entities to generate new identifiers for the agent, thus allowing it to migrate to the same platform any number of times. Therefore, the proposed invention allows programmers to develop applications based on mobile agents in a secure manner, without sacrificing their intrinsic flexibility.
En un primer aspecto, Ia presente invención concierne a un método para Ia protección de plataformas de computación frente a ataques externos de repetición de agentes móviles, que comprende utilizar un sistema de plataformas de computación conectadas a una red para Ia ejecución compartida de aplicaciones distribuidas basadas en agentes móviles, y que comprende utilizar marcadores de trayecto o identificadores de agente para permitir a uno o más agentes móviles ser legalmente ejecutados en una plataforma de computación más de una vez, a Ia vez que evitar una re-ejecución ilegal de dicho o dichos agentes móviles, por considerarla como un ataque externo de repetición.In a first aspect, the present invention concerns a method for the protection of computing platforms against external attacks of repetition of mobile agents, which comprises using a system of computing platforms connected to a network for the shared execution of distributed applications based in mobile agents, and comprising using path markers or agent identifiers to allow one or more mobile agents to be legally executed on a computing platform more than once, while preventing an illegal re-execution of said or said mobile agents, for considering it as an external attack of repetition.
A diferencia de las propuestas citadas en el apartado anterior que sugieren Ia utilización de marcadores de trayecto para prevenir ataques de repetición, el método propuesto por Ia presente invención comprende utilizar una o más entidades de autorización para generar como mínimo un nuevo marcador de trayecto o identificador a ser utilizado como autorización para el agente móvil, para permitirle ser ejecutado legalmente en dicha plataforma de computación un número de veces determinado dinámicamente en tiempo de ejecución.Unlike the proposals mentioned in the previous section that suggest the use of path markers to prevent repetition attacks, the method proposed by the present invention comprises using one or more authorization entities to generate at least a new path marker or identifier to be used as authorization for the mobile agent, to allow it to be legally executed on said computing platform a number of times dynamically determined at runtime.
Para un ejemplo de realización preferido el método comprende utilizar varias entidades de autorización para Ia generación de nuevos marcadores de trayecto para el agente móvil, con el fin de permitirle re-ejecutarse en diferentes plataformas de computación.For a preferred embodiment, the method comprises using several authorization entities for the generation of new path markers for the mobile agent, in order to allow it to re-run on different computing platforms.
Por lo que se refiere a Ia mencionada re-ejecución legal, para un ejemplo de realización ésta hace referencia a Ia ejecución de diferentes tareas en diferentes respectivos nodos o etapas del itinerario del agente móvil, siendo cada uno de dichos nodos diferente y representativo de una visita a dicha plataforma de computación en un momento distinto al del resto de los nodos.With regard to the aforementioned legal re-execution, for an example of realization this refers to the execution of different tasks in different respective nodes or stages of the itinerary of the mobile agent, each of said nodes being different and representative of a visit to said computing platform at a different time than the rest of the nodes.
Para otro ejemplo de realización Ia mencionada re-ejecución legal hace referencia a Ia ejecución de una misma tarea en diferentes visitas respectivas a dicha plataforma de computación a Io largo del itinerario del agente móvil, siendo cada una de dichas visitas representada por un mismo nodo o etapa.For another example of realization, the aforementioned legal re-execution refers to the execution of the same task in different respective visits to said computing platform along the itinerary of the mobile agent, each of said visits being represented by the same node or stage.
Es decir que cada nodo está asociado con una tarea y una plataforma concretas, y en el caso de que cada visita a una misma plataforma sea para ejecutar una tarea distinta, dichas visitas serán representadas por nodos diferentes asociados a una misma plataforma, y para el caso en que las sucesivas visitas a una misma plataforma son para ejecutar Ia misma tarea, dichas visitas serán representadas por un mismo nodo.In other words, each node is associated with a specific task and platform, and in the event that each visit to the same platform is to execute a different task, these visits will be represented by different nodes associated with the same platform, and for the In case the successive visits to the same platform are to execute the same task, said visits will be represented by the same node.
En cualquier caso en Ia presente memoria el término nodo se entiende como una respectiva visita a una plataforma, ya sea Ia misma u otra plataforma, con el fin de ejecutar una tarea, ya sea Ia misma o una diferente. En Io siguiente cuando se haga referencia a Ia ejecución de un nodo, ésta implicará Ia ejecución de Ia tarea asociada a dicho nodo en Ia plataforma también asociada a dicho nodo.In any case in this report the term node is understood as a respective visit to a platform, either the same or another platform, in order to execute a task, either the same or a different one. In the following, when reference is made to the execution of a node, it will imply the execution of the task associated with said node on the platform also associated with said node.
El método comprende generar y asociar un marcador de trayecto o identificador diferente a cada uno de varios agentes móviles, incluso si ejecutan exactamente las mismas tareas, y a cada instancia del mismo agente móvil.The method comprises generating and associating a different path marker or identifier to each of several mobile agents, even if they execute exactly the same tasks, and to each instance of the same mobile agent.
Asimismo el método propuesto por el primer aspecto de Ia invención está previsto para Ia prevención de ataques de repetición, en lugar de en su detección posterior, ya que esta detección a posteriori es en muchos casos inútil.Likewise, the method proposed by the first aspect of the invention is provided for the prevention of repeated attacks, instead of subsequent detection, since this subsequent detection is in many cases useless.
El método comprende almacenar en cada plataforma de computación un identificador del nodo ejecutado previamente por cada agente móvil en dicha plataforma de computación, junto con su respectivo marcador de trayecto, con el fin de permitir que el agente pueda visitar una misma plataforma para ejecutar distintos nodos, o re- ejecutar el mismo nodo un número de veces determinado.The method comprises storing in each computing platform a node identifier previously executed by each mobile agent in said computing platform, together with its respective path marker, in order to allow the agent to visit the same platform to execute different nodes , or re-execute the same node a certain number of times.
Al almacenarse en cada plataforma de computación los marcadores de trayecto de los agentes móviles que Ia han visitado previamente, se consigue que ningún agente pueda reejecutar el mismo nodo utilizando un marcador de trayecto que ya haya sido utilizado anteriormente.By storing in each computing platform the path markers of the mobile agents that have previously visited it, it is achieved that no agent You can re-execute the same node using a path marker that has been previously used.
Mediante Ia aplicación del método propuesto por Ia invención, con el fin de ofrecer una solución más eficaz a Ia hora de prevenir los ataques de repetición, no se produce una interacción del agente móvil con entidades externas, Io que permite que el agente se ejecute de manera autónoma, sin depender del control o interacción con ningún servicio de monitorización.By means of the application of the method proposed by the invention, in order to offer a more effective solution in preventing repetition attacks, there is no interaction of the mobile agent with external entities, which allows the agent to run from autonomously, without relying on control or interaction with any monitoring service.
El método propuesto por el primer aspecto de Ia invención comprende Ia realización de las siguientes etapas, las cuales serán posteriormente descritas con mayor detalle para unos ejemplos de realización:The method proposed by the first aspect of the invention comprises performing the following steps, which will be described later in greater detail for some examples of embodiment:
- crear en un primer momento, por parte de un usuario propietario o programador, un agente móvil protegido frente a ataques de repetición, incluyendo como mínimo un marcador de trayecto inicial o identificador, un itinerario protegido y el agente móvil propiamente dicho, con los datos incluidos en el mismo,- initially create, by a proprietary user or programmer, a mobile agent protected against repeated attacks, including at least an initial route marker or identifier, a protected itinerary and the mobile agent itself, with the data included in it,
- enviar dicho agente móvil protegido a una plataforma de computación,- send said protected mobile agent to a computing platform,
- recibir dicho agente móvil protegido en dicha plataforma de computación,- receive said protected mobile agent on said computing platform,
- extraer, por parte de dicha plataforma de computación, como mínimo parte de Ia información incluida en dicho agente móvil protegido y utilizarla para comprobar si dicho agente móvil protegido ya ha sido re-ejecutado anteriormente, mediante Ia comparación de parte o toda Ia información extraída con información almacenada en Ia plataforma de computación, incluyendo dicha información almacenada como mínimo los marcadores de trayecto de agentes ejecutados previamente, junto con unos respectivos identificadores de nodo representativos de las tareas de nodo ejecutadas por dichos agentes.- extract, by said computing platform, at least part of the information included in said protected mobile agent and use it to check if said protected mobile agent has already been re-executed previously, by comparing part or all of the information extracted with information stored in the computing platform, including said information stored at least the path markers of previously executed agents, together with respective node identifiers representative of the node tasks executed by said agents.
Respecto al mencionado itinerario protegido, el método comprende construirlo mediante Ia realización de las siguientes acciones:Regarding the aforementioned protected itinerary, the method includes constructing it by performing the following actions:
- definir un conjunto de nodos o etapas que conforman dicho itinerario de agente móvil, siendo cada uno de dichos nodos, tal y como se ha indicado anteriormente, asociado a una determinada tarea y a una determinada plataforma, y estando cada uno de dichos nodos asociado a una entidad de autorización correspondiente que es Ia única encargada de generar nuevos marcadores de trayecto válidos utilizados como autorizaciones para Ia ejecución de Ia tarea asociada con dicho nodo;- define a set of nodes or stages that make up said mobile agent itinerary, each of said nodes being, as indicated above, associated with a specific task and a certain platform, and each of said nodes being associated with a corresponding authorization entity that is the only one responsible for generating new valid path markers used as authorizations for the execution of the task associated with said node;
- proteger dicho itinerario de agente utilizando un protocolo de protección.- protect said agent itinerary using a protection protocol.
Por motivos de claridad, en diferentes partes de Ia presente memoria se está describiendo el método haciendo referencia a una plataforma receptora de un agente móvil protegido, pero obviamente dicha descripción es aplicable a todas las plataformas de computación conectadas a Ia red del mencionado sistema que se encuentren en dicha situación, es decir que reciban un agente móvil protegido de Ia manera descrita.For reasons of clarity, the method is being described in different parts of this report by referring to a receiving platform of a protected mobile agent, but obviously said description is applicable to all platforms of computing connected to the network of said system that are in said situation, that is to say that they receive a mobile agent protected in the manner described.
El método comprende utilizar cada marcador de trayecto como una autorización que permite al agente móvil ejecutar un conjunto determinado de tareas, cada una de las cuales está asociada a un nodo de dicho conjunto de nodos.The method comprises using each path marker as an authorization that allows the mobile agent to execute a specific set of tasks, each of which is associated with a node of said set of nodes.
Con el fin de definir dicho conjunto de nodos, el método comprende asignar Ia siguiente información a cada uno de los nodos que conforman el conjunto:In order to define said set of nodes, the method comprises assigning the following information to each of the nodes that make up the set:
- un identificador de nodo;- a node identifier;
- una plataforma de computación donde será ejecutado;- a computing platform where it will be executed;
- una tarea;- A homework;
- un tipo de nodo;- a type of node;
- plataforma siguiente;- next platform;
- una entidad de autorización;- an authorization entity;
- un nodo de autorización;- an authorization node;
- un identificador de agente.- an agent identifier.
Para la aplicación del método propuesto por el primer aspecto de Ia invención solamente es necesario clasificar los nodos en dos tipos de nodo, en concreto los siguientes:For the application of the method proposed by the first aspect of the invention it is only necessary to classify the nodes into two types of node, in particular the following:
- un tipo de nodo regular, el cual se refiere a un nodo que es una etapa del itinerario donde el agente móvil ejecuta su tarea y salta a Ia siguiente plataforma de computación del itinerario;- a type of regular node, which refers to a node that is a stage of the itinerary where the mobile agent executes his task and jumps to the next computing platform of the itinerary;
- un tipo de nodo bucle, el cual hace referencia a un nodo que es una etapa del itinerario donde el agente móvil determina si inicia o no una iteración de un número determinado de nodos.- a type of loop node, which refers to a node that is a stage of the itinerary where the mobile agent determines whether or not to start an iteration of a certain number of nodes.
Siguiendo con el resto de información asignada a cada nodo del conjunto de nodos, en particular el método comprende definir dicho nodo de autorización como un identificador del nodo donde el marcador de trayecto del agente móvil debe ser generado, ya sea dicho marcador de trayecto inicial o uno de dichos nuevos marcadores de trayecto, y definir dicha entidad de autorización como Ia plataforma de computación correspondiente o el usuario propietario o programador que debe generar y firmar el marcador de trayecto.Continuing with the rest of the information assigned to each node of the set of nodes, in particular the method comprises defining said authorization node as an identifier of the node where the path marker of the mobile agent must be generated, either said initial path marker or one of said new route markers, and defining said authorization entity as the corresponding computing platform or the owner or programmer user who must generate and sign the route marker.
El método comprende asignar o no un respectivo nodo de autorización a cada nodo, dependiendo de si el nodo se encuentra ubicado o no en el interior de un bucle de nodos.The method comprises assigning a respective authorization node to each node or not, depending on whether or not the node is located inside a loop of nodes.
En concreto el método comprende asignar como nodo de autorización a cada nodo que se encuentra ubicado en el interior de un bucle, el nodo de bucle ubicado al inicio del bucle (el cual en Ia presente memoria se entiende como que no se encuentra en el interior del bucle) y como su correspondiente entidad de autorización Ia plataforma de computación donde Ia tarea de dicho nodo inicial de bucle es ejecutada, y a cada nodo que no se encuentra ubicado en el interior de un bucle, asignarle ningún nodo de autorización y como su correspondiente entidad de autorización el propietario del agente móvil.Specifically, the method comprises assigning as an authorization node to each node that is located inside a loop, the loop node located at the beginning of the loop (which in this memory is understood as not being inside the loop) and as its corresponding authorization entity the computing platform where the task of said initial loop node is executed, and to each node that It is not located inside a loop, assign any authorization node and as its corresponding authorization entity the owner of the mobile agent.
Por Io que se refiere al protocolo de protección utilizado para Ia protección del itinerario del agente móvil, el método propuesto por el primer aspecto de Ia invención comprende definirlo garantizando las siguientes propiedades:As regards the protection protocol used for the protection of the itinerary of the mobile agent, the method proposed by the first aspect of the invention comprises defining it by guaranteeing the following properties:
- impedir a las plataformas de computación acceder o modificar cualquier parte del itinerario que está previsto para otras plataformas de computación;- prevent computing platforms from accessing or modifying any part of the itinerary that is planned for other computing platforms;
- imposibilitar recorrer los nodos del itinerario en un orden diferente al del inicialmente establecido; y- make it impossible to travel the itinerary nodes in a different order from the one initially established; Y
- vincular de manera única cada nodo del itinerario con el agente móvil al cual pertenece, para imposibilitar Ia reutilización de cualquier parte del itinerario del agente móvil en un agente móvil diferente.- uniquely link each node of the itinerary with the mobile agent to which it belongs, to prevent the reuse of any part of the itinerary of the mobile agent in a different mobile agent.
Para Ia definición de dicho protocolo el método comprende utilizar un identificador de agente único para vincular de manera unívoca los nodos de itinerario al agente móvil. Como identificador de agente puede utilizarse, en función del ejemplo de realización, desde un sello temporal unido a un número aleatorio formado por una gran cantidad de dígitos, o cualquier otra información que identifique de manera unívoca cada instancia del agente.For the definition of said protocol, the method comprises using a unique agent identifier to uniquely link the itinerary nodes to the mobile agent. As an agent identifier, depending on the exemplary embodiment, it can be used from a temporary stamp attached to a random number formed by a large number of digits, or any other information that uniquely identifies each instance of the agent.
El método comprende generar cada uno de los marcadores de trayecto de cada agente móvil, ya sea dicho marcador de trayecto inicial o uno de dichos nuevos marcadores de trayecto, con Ia siguiente información:The method comprises generating each of the route markers of each mobile agent, either said initial route marker or one of said new route markers, with the following information:
- un identificador dé agente idéntico a dicho identificador de agente incluido en el itinerario protegido y utilizado para vincular a los nodos de itinerario con el agente móvil, para asegurar que cualquier instancia de agente móvil pueda ser identificada de manera única;- an agent identifier identical to said agent identifier included in the protected itinerary and used to link the itinerary nodes with the mobile agent, to ensure that any instance of mobile agent can be uniquely identified;
- un nodo de autorización como un identificador del nodo donde el marcador de trayecto es generado;- an authorization node as an identifier of the node where the path marker is generated;
- una fecha de caducidad tras Ia cual el marcador de trayecto no puede ser utilizado más; y- an expiration date after which the route marker can no longer be used; Y
- un contador de bucle incrementado en una unidad cada vez que el agente móvil tiene que iniciar una nueva iteración de un bucle. Cuando el marcador de trayecto generado es dicho marcador de trayecto inicial éste es generado por parte del usuario propietario o programador, una vez éste ha construido el mencionado itinerario protegido.- a loop counter increased by one unit each time the mobile agent has to start a new iteration of a loop. When the generated route marker is said initial route marker it is generated by the owner or programmer user, once he has built the said protected itinerary.
En cambio cuando el marcador de trayecto generado es uno de dichos nuevos marcadores de trayecto éste es generado por parte de Ia plataforma de computación correspondiente a Ia entidad de autorización asignada en el itinerario protegido.On the other hand, when the generated route marker is one of said new route markers, it is generated by the computing platform corresponding to the authorization entity assigned in the protected itinerary.
Una vez el marcador de trayecto ha sido generado, el método comprende firmarlo por parte del usuario propietario o de Ia entidad de autorización y colocarlo en Ia parte superior de una pila de marcadores de trayecto del agente configurada para almacenar marcadores de trayecto previamente utilizados por el agente móvil durante su ejecución.Once the route marker has been generated, the method comprises signing it by the owner user or the authorization entity and placing it on top of a stack of agent route markers configured to store route markers previously used by the mobile agent during execution.
A excepción de en un estado inicial donde dicha pila se encuentra vacía antes de depositar en Ia misma el mencionado marcador de trayecto inicial, en el resto de casos Ia pila almacenará como mínimo parte de los mencionados marcadores de trayecto previamente utilizados por el agente móvil, conteniendo siempre en su parte superior el marcador de trayecto actual, es decir el que está siendo utilizado o se ha dispuesto para ser utilizado en el siguiente nodo.Except in an initial state where said battery is empty before depositing said initial path marker therein, in the other cases the battery will store at least part of the aforementioned path markers previously used by the mobile agent, always containing at its top the current path marker, that is, the one that is being used or has been arranged to be used in the next node.
Tal y como se ha indicado anteriormente una vez la plataforma ha recibido a un agente móvil protegido según el método de Ia presente invención, ésta procede a extraer parte de su información. Para un ejemplo de realización preferido dicha extracción de información llevada a cabo por Ia plataforma de computación desde el agente móvil protegido recibido concierne a:As indicated above once the platform has received a mobile agent protected according to the method of the present invention, it proceeds to extract some of its information. For a preferred embodiment, said extraction of information carried out by the computing platform from the protected mobile agent received concerns:
- extraer Ia información del nodo actual del itinerario protegido para obtener el identificador de nodo, identificador de agente, tarea, tipo de nodo, plataforma siguiente, entidad de autorización y nodo de autorización; y- extract the information from the current node of the protected itinerary to obtain the node identifier, agent identifier, task, type of node, next platform, authorization entity and authorization node; Y
- recuperar el marcador de trayecto del agente de Ia parte superior de Ia pila de marcadores de trayecto del agente y extraer del marcador de trayecto recuperado el identificador de agente, el nodo de autorización, Ia fecha de caducidad y el contador de bucle.- recover the agent path marker from the top of the agent path marker stack and extract the agent identifier, the authorization node, the expiration date and the loop counter from the recovered path marker.
Por Io que se refiere a Ia información almacenada en Ia plataforma de computación utilizada para compararla con Ia extraída del agente móvil, ésta se encuentra representada, para un ejemplo de realización, por una tabla, aunque para otros ejemplos de realización dicha información puede estructurarse de otra manera que no incluya Ia utilización de una tabla.As regards the information stored in the computing platform used to compare it with that extracted from the mobile agent, it is represented, for an example of embodiment, by a table, although for other examples of embodiment said information can be structured in another way that does not include the use of a table.
A continuación se describen un ejemplo de realización preferido del método propuesto por el primer aspecto de Ia invención, para el cual el método comprende en primer lugar utilizar, por parte de Ia plataforma de computación receptora del agente móvil protegido, el tipo del nodo actual para determinar si el agente está ejecutando un nodo tipo regular o un nodo tipo bucle.Next, a preferred embodiment example of the method proposed by the first aspect of the invention is described, for which the method comprises First, use, by the receiving computing platform of the protected mobile agent, the type of the current node to determine if the agent is executing a regular type node or a loop type node.
Una vez determinado el tipo de nodo, si éste es de tipo regular el método comprende realizar, por parte de Ia plataforma de computación receptora del agente móvil protegido, parte, o Ia totalidad si es necesario, de las siguientes operaciones: a) verificar Ia firma del marcador de trayecto para comprobar si el marcador de trayecto ha sido firmado por Ia entidad de autorización actual, y si dicha verificación no resulta exitosa descartar Ia ejecución del agente, o si resulta exitosa realizar Ia siguiente operación; esta verificación se lleva a cabo, para un ejemplo de realización, mediante el uso de un servidor de claves públicas para obtener Ia clave pública de Ia entidad de autorización actual, y su utilización para verificar Ia firma; b) comprobar que el nodo de autorización actual, que está incluido en el marcador de trayecto es el mismo que el extraído del itinerario protegido, y si dicha comprobación falla descartar Ia ejecución del agente, o si es exitosa realizar Ia siguiente operación; c) comprobar que el identificador de agente incluido en el marcador de trayecto es igual al obtenido del itinerario protegido, y si dicha comprobación falla descartar Ia ejecución del agente, o si es exitosa realizar Ia siguiente operación; d) comprobar Ia fecha de caducidad del marcador de trayecto, y si el marcador de trayecto ha caducado descartar Ia ejecución del agente, o si no ha caducado realizar Ia siguiente operación; e) utilizar el identificador de agente para buscar un marcador de trayecto previo del mismo agente en dicha información almacenada en dicha tabla (u otra estructura de datos) almacenada en Ia plataforma de computación, y: e1) si no hay ningún marcador de trayecto con el mismo identificador de agente en dicha tabla, almacenar el nuevo marcador de trayecto junto con el identificador del nodo actual en dicha tabla; e2) si existe un marcador de trayecto previo con el mismo identificador de agente en dicha tabla, Io que significa que el mismo agente ya había sido ejecutado con anterioridad en esta plataforma de computación, comprobar si el identificador del nodo actual del agente es igual al de Ia ejecución previa, mediante Ia consulta de dicha tabla; y e2a) si el identificador del nodo actual del agente es diferente al de Ia ejecución previa, Io que significa que el agente va a ejecutar una tarea diferente correspondiente a un nodo del itinerario distinto, almacenar el marcador de trayecto junto con el nuevo identificador del nodo actual en dicha tabla; e2b) si el identificador del nodo actual del agente es igual al de Ia ejecución previa, Io que significa que Ia tarea de este nodo del itinerario había sido ejecutada en Ia ejecución previa, comparar el contador de bucle actual con el incluido en el marcador de trayecto previo, y: e2b1) si el contador de bucle actual es mayor que el previo, Io que significa que el agente está realizando una nueva iteración de un bucle, reemplazar, en dicha tabla, el marcador de trayecto previo con el actual; e2b2) si el contador de trayecto actual no es mayor que el previo, Io que significa que el marcador de trayecto ya ha sido utilizado, descartar Ia ejecución del agente; f) si Ia ejecución del agente no ha sido descartada en ninguna de las operaciones previas, ejecutar Ia tarea correspondiente al nodo actual.Once the type of node has been determined, if it is of a regular type, the method includes carrying out, by the receiving computer platform of the protected mobile agent, part, or all, if necessary, of the following operations: a) verify the signature of the route marker to check if the route marker has been signed by the current authorization entity, and if such verification is not successful discard the execution of the agent, or if it is successful to perform the following operation; This verification is carried out, for an exemplary embodiment, by using a public key server to obtain the public key of the current authorization entity, and its use to verify the signature; b) verify that the current authorization node, which is included in the route marker is the same as that extracted from the protected itinerary, and if said verification fails to discard the execution of the agent, or if it is successful to perform the following operation; c) verify that the agent identifier included in the route marker is equal to that obtained from the protected itinerary, and if said verification fails to discard the execution of the agent, or if the following operation is successful; d) check the expiration date of the route marker, and if the route marker has expired, discard the execution of the agent, or if the following operation has not expired; e) use the agent identifier to search for a previous path marker of the same agent in said information stored in said table (or other data structure) stored in the computing platform, and: e1) if there is no path marker with the same agent identifier in said table, storing the new path marker together with the identifier of the current node in said table; e2) If there is a previous path marker with the same agent identifier in that table, which means that the same agent had already been previously executed on this computing platform, check if the identifier of the current agent node is equal to of the previous execution, by means of the consultation of said table; and e2a) if the identifier of the current node of the agent is different from that of the previous execution, which means that the agent will execute a different task corresponding to a node of the different itinerary, storing the path marker along with the new identifier of the current node in said table; e2b) if the identifier of the current node of the agent is equal to that of the previous execution, which means that the task of this node of the itinerary had been executed in the previous execution, compare the current loop counter with the one included in the marker of previous path, and: e2b1) if the current loop counter is greater than the previous one, which means that the agent is performing a new iteration of a loop, replace, in said table, the previous path marker with the current one; e2b2) if the current route counter is not greater than the previous one, which means that the route marker has already been used, discard the execution of the agent; f) if the execution of the agent has not been discarded in any of the previous operations, execute the task corresponding to the current node.
Las operaciones a) a f) son, en general, llevadas a cabo en dicha plataforma de computación receptora del agente móvil protegido.Operations a) to f) are, in general, carried out on said computing platform receiving the protected mobile agent.
Si se ha determinado que el nodo actual es de tipo bucle el método comprende realizar, por parte de Ia plataforma de computación receptora del agente móvil protegido, parte, o Ia totalidad si es necesario, de las siguientes operaciones: i) verificar Ia firma del marcador de trayecto para comprobar si dicho marcador de trayecto ha sido firmado por Ia entidad de autorización actual o por Ia plataforma de computación actual, y si ambas comprobaciones fallan descartar Ia ejecución del agente, o si al menos una de ambas comprobaciones es exitosa realizar Ia siguiente operación; ii) realizar Ia siguiente operación:If it has been determined that the current node is of the loop type, the method comprises performing, by the receiving computer platform of the protected mobile agent, part, or all, if necessary, of the following operations: i) verify the signature of the route marker to check if said route marker has been signed by the current authorization entity or by the current computing platform, and if both checks fail to discard the execution of the agent, or if at least one of both checks is successful to perform the next operation; ii) perform the following operation:
-comprobar que el nodo de autorización actual, que está incluido en el marcador de trayecto, es el mismo que el extraído del itinerario protegido o coincide con el nodo actual y si ambas comprobaciones fallan descartar Ia ejecución del agente, o si al menos una es exitosa realizar dichas operaciones c) a e); iii) generar y firmar un nuevo marcador de trayecto conteniendo Ia misma información que el marcador de trayecto previo, a excepción del nodo de autorización, siendo asignado como nodo de autorización el nodo actual, y a excepción también del contador de bucle, el cual es incrementado en una unidad; iv) comprobar si el agente está visitando el nodo de tipo bucle por primera vez, Io que significa que el agente todavía no ha realizado ninguna iteración previa del bucle iniciado en el nodo tipo bucle, y: iva) si el agente está visitando el nodo bucle por primera vez, añadir el nuevo marcador de trayecto a Ia pila de marcadores de trayecto del agente, colocándolo en Ia parte superior de Ia misma; ivb) si el agente ya ha realizado alguna iteración del bucle anteriormente, reemplazar el marcador de trayecto actual, el cual estaba dispuesto en Ia parte superior de Ia pila de marcadores de trayecto del agente, con el nuevo marcador de trayecto; v) realizar dicha operación f); vi) determinar, por parte del agente, si debe realizar una iteración del bucle; y: via) si una iteración debe ser llevada a cabo, hacer saltar el agente móvil protegido a Ia siguiente plataforma del interior del bucle actual, comprobar el tipo de nodo y en función del tipo de nodo realizar las operaciones a) a f) o i) a vi); vib) si no se requiere Ia realización de una iteración del bucle, extraer, por parte del agente, el marcador de trayecto de la parte superior de Ia pila, saltar el agente móvil protegido a Ia siguiente plataforma fuera del bucle actual, comprobar el tipo de nodo y en función del tipo de nodo realizar las operaciones a) a f) o i) a vi).-Check that the current authorization node, which is included in the route marker, is the same as the one extracted from the protected itinerary or coincides with the current node and if both checks fail to discard the execution of the agent, or if at least one is successfully perform these operations c) ae); iii) generate and sign a new path marker containing the same information as the previous path marker, with the exception of the authorization node, the current node being assigned as the authorization node, and also with the exception of the loop counter, which is incremented in a unit; iv) check if the agent is visiting the loop-type node for the first time, which means that the agent has not yet performed any previous iteration of the loop started on the loop-type node, and: vat) if the agent is visiting the node loop for the first time, add the new path marker to the agent path marker stack, placing it on top of it; ivb) if the agent has already performed some iteration of the loop previously, replace the current path marker, which was arranged at the top of the agent path marker stack, with the new path marker; v) perform said operation f); vi) determine, by the agent, whether to iterate the loop; and: via) if an iteration must be carried out, make the protected mobile agent jump to the next platform inside the current loop, check the type of node and, depending on the type of node, carry out operations a) to f) or i) to vi); vib) if an iteration of the loop is not required, extract, by the agent, the path marker from the top of the stack, skip the protected mobile agent to the next platform outside the current loop, check the type Node and depending on the type of node perform the operations a) to f) or i) to vi).
Las operaciones i) a v) son, en general, llevadas a cabo en dicha plataforma de computación receptora del agente móvil protegido.Operations i) to v) are, in general, carried out on said computing platform receiving the protected mobile agent.
Comparando las operaciones a realizar cuando el nodo es de tipo bucle con las anteriormente descritas para un nodo de tipo regular, puede verse cómo una de las diferencias principales entre ellas es Ia comprobación que para el nodo de tipo regular, se hace en Ia operación b), que, para el nodo de tipo bucle, se hace en ¡i), y que se diferencia de Ia operación b) en que Ia comparación del nodo de autorización actual incluido en el marcador de trayecto, se hace no solamente con el extraído del itinerario protegido, sino también con el nodo actual, Io que permite al agente ejecutar el nodo tipo bucle actual utilizando un marcador de trayecto generado por Ia misma plataforma en una iteración anterior.Comparing the operations to be performed when the node is of the loop type with those previously described for a regular type node, it can be seen how one of the main differences between them is the verification that for the regular type node, it is done in the operation b ), which, for the loop type node, is done in i), and that differs from the operation b) in that the comparison of the current authorization node included in the path marker, is made not only with the one extracted of the protected itinerary, but also with the current node, which allows the agent to execute the current loop type node using a path marker generated by the same platform in a previous iteration.
Otra diferencia es Ia referente a Ia verificación de Ia firma del marcador de trayecto, que en i), a diferencia de en Ia operación a), contempla que si ésta no ha sido llevada a cabo por Ia entidad de autorización actual, se realice una comprobación de si Ia firma del marcador de trayecto actual ha sido realizada por Ia plataforma de computación actual (por ejemplo utilizando su propia clave pública), Io que permite al agente ejecutar el nodo tipo bucle actual utilizando un marcador de trayecto generado por Ia misma plataforma en una iteración anterior.Another difference is that concerning the verification of the signature of the route marker, which in i), unlike in the operation a), contemplates that if it has not been carried out by the current authorization entity, a checking if the signature of the current path marker has been performed by the platform current computing (for example using its own public key), which allows the agent to execute the current loop type node using a path marker generated by the same platform in a previous iteration.
Finalmente mediante las operación iii) de generación y forma de un nuevo marcador de trayecto para el agente móvil, se posibilita una nueva ejecución de todos los nodos incluidos en el bucle iniciado en el nodo actual tipo bucle. Al disponer el nuevo marcador de trayecto en Ia parte superior de Ia pila del agente (operación iva) ó ivb)), se permite que éste recupere el marcador de trayecto utilizado antes de entrar en el bucle (operación vib)), Io cual es una característica esencial para el presente ejemplo de realización, ya que el nuevo marcador de trayecto por Ia plataforma actual no será válido cuando el agente salga del bucle.Finally, through the operation iii) of generating and forming a new path marker for the mobile agent, a new execution of all nodes included in the loop initiated in the current loop type node is made possible. By arranging the new path marker in the upper part of the agent stack (iva operation) or ivb)), it is allowed for it to recover the path marker used before entering the loop (vib operation), which is an essential feature for the present embodiment, since the new path marker for the current platform will not be valid when the agent leaves the loop.
Por Io que se refiere a Ia determinación llevada a cabo en Ia operación vi) por parte del agente móvil, ésta puede llevarse a cabo de diversas maneras, en función del ejemplo de realización, habiendo marcado el programador, en general, una o más condiciones a verificar por el agente móvil, en función de cuyo cumplimiento éste determina si salir o no del bucle.As regards the determination carried out in the operation vi) by the mobile agent, it can be carried out in various ways, depending on the example of embodiment, the programmer having marked, in general, one or more conditions to be verified by the mobile agent, based on whose compliance it determines whether or not to exit the loop.
Para un ejemplo de realización dichas condiciones son simplemente que una variable alcance un valor que esté por debajo de una tolerancia, llevándose a cabo dicha verificación mediante Ia lectura, por parte del agente, de dicha variable, y Ia repetición de dicha lectura hasta que ésta ofrezca dicho valor por debajo de Ia tolerancia marcada por el programador, en cuyo caso el agente determina salir del bucle.For an exemplary embodiment, said conditions are simply that a variable reaches a value that is below a tolerance, said verification being carried out by means of the reading, by the agent, of said variable, and the repetition of said reading until it offer said value below the tolerance set by the programmer, in which case the agent determines to exit the loop.
Un segundo aspecto de Ia presente invención concierne a un sistema de plataformas de computación protegidas frente a ataques externos de repetición de agentes móviles, que comprende una pluralidad de plataformas de computación conectadas a una red y adaptadas para ejecutar aplicaciones distribuidas basadas en agentes móviles que incluyen marcadores de trayecto o identificadores de agente para permitir a uno o más agentes móviles ser legalmente ejecutados en una o más de dichas plataformas de computación más de una vez, a Ia vez que evitar una reejecución ilegal de dicho o dichos agentes móviles, considerada como un ataque externo de repetición.A second aspect of the present invention concerns a system of computer platforms protected against external attacks of repetition of mobile agents, comprising a plurality of computer platforms connected to a network and adapted to run distributed applications based on mobile agents that include path markers or agent identifiers to allow one or more mobile agents to be legally executed on one or more of said computing platforms more than once, while preventing an illegal re-execution of said mobile agent or said agents, considered as a external repeat attack.
A diferencia de las propuestas convencionales el sistema propuesto por el segundo aspecto de Ia invención comprende una o más entidades de autorización en conexión con dicha red, previstas para generar como mínimo un nuevo marcador de trayecto o identificador a ser utilizado como autorización, para el agente móvil, para permitirle ser ejecutado legalmente en dicha o dichas plataformas de computación un número de veces determinado dinámicamente en tiempo de ejecución.Unlike the conventional proposals, the system proposed by the second aspect of the invention comprises one or more authorization entities in connection with said network, intended to generate at least a new path marker or identifier to be used as authorization, for the agent mobile, for allow it to be legally executed on said or said computing platforms a number of times determined dynamically at runtime.
Para un ejemplo de realización del sistema propuesto, dicha entidad de autorización es una de dichas plataformas de computación, y para otro ejemplo de realización es un programador o usuario propietario de dicho agente móvil.For an example of realization of the proposed system, said authorization entity is one of said computing platforms, and for another embodiment it is a programmer or user owner of said mobile agent.
El sistema propuesto por el segundo aspecto de Ia presente invención está adaptado para aplicar el método propuesto por el primer aspecto.The system proposed by the second aspect of the present invention is adapted to apply the method proposed by the first aspect.
Breve descripción de los dibujosBrief description of the drawings
Las anteriores y otras ventajas y características se comprenderán más plenamente a partir de Ia siguiente descripción detallada de unos ejemplos de realización con referencia a los dibujos adjuntos, que deben tomarse a título ilustrativo y no limitativo, en los que: la Fig. 1 ilustra de manera esquemática una serie de nodos que forman un itinerario simple donde una misma plataforma es visitada dos veces según el método propuesto por Ia presente invención para un ejemplo de realización;The foregoing and other advantages and features will be more fully understood from the following detailed description of some embodiments with reference to the attached drawings, which should be taken by way of illustration and not limitation, in which: Fig. 1 illustrates schematically a series of nodes that form a simple itinerary where the same platform is visited twice according to the method proposed by the present invention for an embodiment;
Ia Fig. 2 muestra de manera esquemática un itinerario de nodos que incluye a un bucle formado por tres plataformas de computación que pueden ser visitadas repetidamente según el método propuesto por el primer aspecto de Ia presente invención para un ejemplo de realización más complejo que el de la Fig. 1 ;Fig. 2 schematically shows an itinerary of nodes that includes a loop formed by three computing platforms that can be visited repeatedly according to the method proposed by the first aspect of the present invention for a more complex embodiment example than that of Fig. 1;
Ia Fig. 3 ilustra de manera esquemática otro itinerario de nodos que incluye a dos bucles, uno dentro del otro, formado por unas plataformas de computación que pueden ser visitadas repetidamente según el método propuesto por el primer aspecto de Ia presente invención para otro ejemplo de realización más;Fig. 3 schematically illustrates another node itinerary that includes two loops, one inside the other, formed by computing platforms that can be visited repeatedly according to the method proposed by the first aspect of the present invention for another example of more realization;
Ia Fig. 4 es una representación esquemática de los componentes incluidos en el interior de un agente móvil protegido contra ataques de repetición mediante Ia aplicación del método propuesto por Ia presente invención; y las Figs. 5a y 5b muestran sendas partes de un mismo diagrama de flujo, que representan las distintas operaciones a realizar según el método propuesto por el primer aspecto de Ia invención, para el anteriormente explicado ejemplo de realización preferido, tras comprobar si el nodo es de tipo regular, en cuyo caso se realizan las operaciones a) a f) ilustradas en Ia Fig. 5a (todas o en parte en función del camino seguido en el diagrama de flujo), o de tipo bucle, en cuyo caso se realizan las operaciones i) a vi) ilustradas en Ia Fig. 5b (todas o en parte en función del camino seguido). Descripción detallada de unos ejemplos de realizaciónFig. 4 is a schematic representation of the components included inside a mobile agent protected against repeated attacks by applying the method proposed by the present invention; and Figs. 5a and 5b show individual parts of the same flowchart, which represent the different operations to be carried out according to the method proposed by the first aspect of the invention, for the previously explained preferred embodiment, after checking if the node is of the regular type , in which case the operations a) to f) illustrated in Fig. 5a (all or in part depending on the path followed in the flow chart), or loop type, in which case the operations i) are performed a vi) illustrated in Fig. 5b (all or in part depending on the path followed). Detailed description of some embodiments
Haciendo en primer lugar referencia a Ia Fig. 1 , en ella puede apreciarse el caso más sencillo en cuanto al itinerario a recorrer por un agente móvil, donde dicho itinerario no contiene ningún bucle de nodos. En este caso cuando el agente tenga que migrar a una plataforma determinada varias veces, Io hará en diferentes etapas o nodos de su itinerario, Io que significa que ejecutará diferentes tareas. En concreto en dicha Fig. 1 Ia plataforma B es visitada dos veces, una primera visita en el nodo 2 y una segunda visita en el nodo 4.Referring firstly to Fig. 1, it can be seen the simplest case in terms of the itinerary to be traveled by a mobile agent, where said itinerary does not contain any loop of nodes. In this case, when the agent has to migrate to a certain platform several times, he will do it at different stages or nodes of his itinerary, which means that he will execute different tasks. Specifically in said Fig. 1 platform B is visited twice, a first visit in node 2 and a second visit in node 4.
Para este caso los ataques de repetición son sencillos de prevenir, mediante el almacenamiento de un identificador del nodo o de Ia tarea ejecutada, junto con el marcador de trayecto del agente.In this case, repetition attacks are simple to prevent, by storing an identifier of the node or of the task executed, together with the path marker of the agent.
Dicha Fig. 1 es un ejemplo de itinerario que puede protegerse contra ataques de re-ejecución utilizando protocolos más simples que los propuestos por Ia presente invención, alguno de los cuales se han citado en el apartado de estado de Ia técnica.Said Fig. 1 is an example of an itinerary that can be protected against re-execution attacks using simpler protocols than those proposed by the present invention, some of which have been cited in the state of the art section.
En Ia Fig. 2 se ilustra un itinerario de nodos representativo de un caso más complejo para el que el agente móvil tiene que ejecutar una misma tarea en Ia misma plataforma varias veces, un número de veces el cual es determinado dinámicamente mediante el método propuesto por Ia presente invención.In Fig. 2 an itinerary of nodes representative of a more complex case is illustrated for which the mobile agent has to perform the same task on the same platform several times, a number of times which is dynamically determined by the method proposed by The present invention.
En particular en dicha Fig. 2 se ilustra un itinerario formado por cinco nodos, con un bucle iniciado en el nodo 2, que se ejecuta en Ia plataforma B, y que incluye a los nodos 3 y 4. En este caso y haciendo referencia a Ia clasificación de tipo de nodos descrita en un apartado anterior, los nodos 1 , 3, 4 y 5 son de tipo regular y el nodo 2 es de tipo bucle, ya que pude decidir si entrar en el bucle o no, es decir, si seguir hacia el nodo 5.In particular, in said Fig. 2 an itinerary formed by five nodes is illustrated, with a loop initiated in node 2, which runs on platform B, and which includes nodes 3 and 4. In this case and referring to The type classification of nodes described in a previous section, nodes 1, 3, 4 and 5 are of the regular type and node 2 is of the loop type, since I could decide whether to enter the loop or not, that is, if continue to node 5.
En este caso la detección de ataques de repetición de agente es más complicada, ya que por ejemplo cuando Ia plataforma C reenvía al agente a Ia plataforma D, ésta última debe averiguar si una nueva ejecución es un ataque de repetición o una nueva iteración del bucle, Io cual no se podría llevar a cabo con las propuestas convencionales, pero sí mediante Ia aplicación del método propuesto por Ia presente invención, en concreto mediante Ia realización de las operaciones a) a f) para los nodos 1 , 3, 4 y 5, y las operaciones i) a vi) para el nodo 2.In this case the detection of agent repetition attacks is more complicated, since for example when the platform C forwards the agent to the platform D, the latter must find out if a new execution is a repeat attack or a new iteration of the loop , Which could not be carried out with conventional proposals, but by means of the application of the method proposed by the present invention, specifically by performing operations a) to f) for nodes 1, 3, 4 and 5, and operations i) to vi) for node 2.
La Fig. 3 ilustra un itinerario aún más complicado que el de Ia Fig. 2, ya que incorpora dos bucles, uno externo formado por los nodos 1 , 2 y 3, y otro interno formado por los nodos 3 y 4. En este caso los nodos 1 y 3 son de tipo bucle, y los nodos 2, 4 y 5 son de tipo regular. En dicha Fig. 3 se han indicado las entidades de autorización, referidas como EA, y los nodos de autorización, referidos como NA, asignados a cada nodo según Ia descripción hecha en el apartado de explicación de Ia invención. En concreto los nodos 1 y 5, que no se encuentran en el interior de ningún bucle, no tienen ningún nodo de autorización y su entidad de autorización es el propietario o programador del agente móvil. Por su parte los nodos 2 y 3, que se encuentran en el interior del bucle externo, tienen como entidad de autorización Ia plataforma A y como nodo de autorización el nodo 1. Por último, el nodo 4, que se encuentra ubicado en el interior de bucle interno, tiene como entidad de autorización Ia plataforma C y como nodo de autorización el nodo 3. Es decir que para el itinerario ilustrado por Ia Fig. 3, existen tres entidades de autorización: el propietario del agente, Ia plataforma A y Ia plataforma C.Fig. 3 illustrates an itinerary even more complicated than that of Fig. 2, since it incorporates two loops, one external formed by nodes 1, 2 and 3, and another internal formed by nodes 3 and 4. In this case nodes 1 and 3 are loop type, and nodes 2, 4 and 5 are regular type. In said Fig. 3 the authorization entities, referred to as EA, and the authorization nodes, referred to as NA, assigned to each node according to the description made in the explanation section of the invention have been indicated. Specifically, nodes 1 and 5, which are not inside any loop, have no authorization node and its authorization entity is the owner or programmer of the mobile agent. On the other hand, nodes 2 and 3, which are located inside the external loop, have as authorization entity the platform A and as authorization node node 1. Finally, node 4, which is located inside with an internal loop, the authorization C has the C platform and the node 3. As an authorization node, that is to say that for the itinerary illustrated by Fig. 3, there are three authorization entities: the owner of the agent, the A platform and Ia platform C.
Según Ia Fig. 3, para un ejemplo de realización preferido las operaciones a) a f) (todas ellas siempre y cuando no se descarte Ia ejecución del agente como resultado de alguna de las mismas) se llevan a cabo cuando los nodos que reciben al agente móvil protegido son los nodos 2, 4 y 5, y las etapas i) a vi) cuando el nodo receptor es el nodo de tipo bucle 1 o el 3, en su totalidad, es decir desde i) hasta vi), siempre y cuando no se descarte Ia ejecución del agente como resultado de algunas de dichas operaciones.According to Fig. 3, for a preferred embodiment the operations a) to f) (all of them as long as the execution of the agent as a result of any of them is not ruled out) are carried out when the nodes that receive the agent Protected mobile are nodes 2, 4 and 5, and stages i) to vi) when the receiving node is loop node 1 or 3, in its entirety, that is from i) to vi), as long as the execution of the agent as a result of some of these operations is not ruled out.
Para un ejemplo de realización basado en Ia Fig. 3, para el que el agente requiera realizar una serie de iteraciones del bucle externo, Ia plataforma A genera y firma un nuevo marcador de trayecto para cada nueva iteración (etapa ¡ii)) y también verifica (operación i)) que Ia firma del marcador de trayecto del agente que recibe dicha plataforma A haya sido realizada por el propietario (caso en que no se haya realizado una iteración previa del bucle externo) o por ella misma (caso en que se haya realizado una iteración previa del bucle externo, y que por tanto el agente portase un marcador de trayecto generado y firmado por Ia plataforma A). El agente móvil determina en Ia operación vi) si sale o no del bucle, por ejemplo en el caso del bucle extemo dicha determinación se producirá en Ia plataforma A, y si Ia determinación es salir del bucle, ésta implicará un salto del agente hasta Ia plataforma E para ejecutar el nodo 5, en cuyo caso el marcador de trayecto dispuesto en Ia parte superior de Ia pila, y que Ie ha permitido realizar una iteración del bucle, es extraído de Ia pila del agente, de manera que el marcador de trayecto original y generado y firmado por el propietario puede ser utilizado de nuevo para continuar Ia ejecución en la plataforma E.For an exemplary embodiment based on Fig. 3, for which the agent requires performing a series of iterations of the external loop, platform A generates and signs a new path marker for each new iteration (step ii) and also verifies (operation i)) that the signature of the path marker of the agent receiving said platform A has been carried out by the owner (in case a previous iteration of the external loop has not been performed) or by itself (case in which has performed a previous iteration of the external loop, and therefore the agent carried a path marker generated and signed by platform A). The mobile agent determines in operation vi) whether or not it exits the loop, for example in the case of the external loop said determination will take place on platform A, and if the determination is to exit the loop, this will imply a jump of the agent to the platform E to execute node 5, in which case the path marker disposed in the upper part of the stack, and which has allowed me to iterate the loop, is extracted from the agent stack, so that the path marker Original and generated and signed by the owner can be used again to continue the execution on platform E.
La plataforma C actuaría de manera análoga a Ia descrita en el párrafo anterior para Ia plataforma A, para permitir realizar iteraciones legales del bucle interno que no sean interpretadas como ataques de reejecución. En Ia Fig. 4 se ha ¡lustrado de manera esquemática el contenido de un agente móvil protegido creado según el método propuesto por el primer aspecto de Ia presente invención.Platform C would act in a manner analogous to that described in the previous paragraph for platform A, to allow legal iterations of the internal loop that are not interpreted as re-execution attacks. In Fig. 4 the content of a protected mobile agent created according to the method proposed by the first aspect of the present invention has been schematically illustrated.
En concreto en dicha Fig. 4 puede verse el itinerario protegido creado por el programador, formado por n nodos, Ia pila de marcadores de trayecto y, en detalle, uno de los marcadores de trayecto de Ia pila, firmado por Ia entidad de autorización correspondiente, apreciándose que contiene los elementos descritos en el apartado de explicación de Ia invención, es decir un identificador de agente, un nodo de autorización, una fecha de caducidad y un contador de bucle.Specifically in said Fig. 4, the protected itinerary created by the programmer can be seen, consisting of n nodes, the stack of path markers and, in detail, one of the path markers of the stack, signed by the corresponding authorization entity , being appreciated that it contains the elements described in the explanation section of the invention, that is to say an agent identifier, an authorization node, an expiration date and a loop counter.
En dicha Fig. 4 también se aprecia, a Ia derecha, Ia información que contiene cada uno de los nodos del conjunto de nodos que conforman el itinerario protegido incluido en el agente móvil protegido, es decir un identificador de nodo, uno de agente, una entidad y un nodo de autorización, el tipo de nodo y Ia tarea a realizar en dicho nodo, así como Ia plataforma de computación donde será ejecutado y Ia plataforma siguiente.In said Fig. 4, on the right, the information contained in each of the nodes of the set of nodes that make up the protected itinerary included in the protected mobile agent, that is to say a node identifier, an agent identifier, a entity and an authorization node, the type of node and the task to be performed on said node, as well as the computing platform where it will be executed and the next platform.
La utilización de dicha información por parte de una plataforma que reciba al agente móvil protegido ya ha sido convenientemente explicada con anterioridad.The use of such information by a platform that receives the protected mobile agent has already been conveniently explained before.
Mediante el método propuesto por Ia invención cada plataforma solamente ejecutará el nodo actual del itinerario del agente si el marcador de trayecto actual (el que se encuentra en Ia parte superior de Ia pila) ha sido firmado por Ia entidad de autorización apropiada.Through the method proposed by the invention, each platform will only execute the current node of the agent's itinerary if the current path marker (the one located in the upper part of the stack) has been signed by the appropriate authorization entity.
Al asociar cada nodo del itinerario a ambos, una entidad y un nodo de autorización se impide Ia posibilidad de que un atacante intentase efectuar un ataque de repetición con un agente, reutilizando un marcador de trayecto firmado por Ia entidad de autorización apropiada pero no generado en el nodo del itinerario apropiado, es decir en el nodo de autorización. Este ataque será detectado por las plataformas cuando verifiquen si el marcador de trayecto ha sido generado y firmado en el nodo apropiado, es decir el de autorización.By associating each node of the itinerary with both an entity and an authorization node, the possibility of an attacker attempting a repeat attack with an agent is prevented, reusing a path marker signed by the appropriate authorization entity but not generated in the appropriate itinerary node, that is, in the authorization node. This attack will be detected by the platforms when they verify if the path marker has been generated and signed on the appropriate node, that is, the authorization one.
Cada nodo del itinerario contiene asimismo un identificador de agente, el cual también está incluido en el marcador de trayecto del agente, con Io cual se evita que un marcador de trayecto dado sea reutilizado en diferentes agentes, ya que esto será detectado por las plataformas de computación cuando, aplicando el método propuesto, comparen el. identificador de agente extraído del nodo actual con el incluido en el marcador de trayecto.Each itinerary node also contains an agent identifier, which is also included in the agent path marker, which prevents a given path marker from being reused in different agents, as this will be detected by the platforms computing when, applying the proposed method, compare the. agent identifier extracted from the current node with the one included in the path marker.
Tal y como se ha explicado anteriormente, el método propuesto por Ia presente invención también comprende proteger, por ejemplo mediante encriptación, el itinerario del agente con el fin de que ningún atacante pueda cambiar Ia información asociada con un nodo dado. Esta protección también evita que Ia tarea del agente sea ejecutada en una plataforma diferente de las establecidas inicialmente.As explained above, the method proposed by the present invention also includes protecting, for example by encryption, the itinerary of the agent so that no attacker can change the information associated with a given node. This protection also prevents the agent's task from being executed on a platform different from those initially established.
El método propuesto no requiere que el agente interactúe con entidades externas, y solamente asume que los nodos tipo bucle serán ejecutados en plataformas fiables para el programador, ya que no es posible evitar que las plataformas manipulen Ia ejecución del agente que llega a las mismas.The proposed method does not require the agent to interact with external entities, and only assumes that the loop-type nodes will be executed on reliable platforms for the programmer, since it is not possible to prevent the platforms from manipulating the execution of the agent that reaches them.
Para un ejemplo de realización, las plataformas impiden que sus tablas de marcadores de trayecto se llenen en exceso eliminando las entradas que hayan caducado. Adicionalmente se puede aplicar otra política con el fin de posibilitar Ia eliminación de entradas cuando no quepan más marcadores de trayecto en una tabla (por ejemplo eliminando los más antiguos.For an exemplary embodiment, the platforms prevent their route marker tables from being overfilled by eliminating entries that have expired. Additionally, another policy can be applied in order to enable the elimination of entries when no more route markers fit in a table (for example, eliminating the oldest ones.
Con el fin de demostrar Ia viabilidad del método propuesto por Ia presente invención, a continuación se describe un ejemplo de implementación del mismo aplicando el método propuesto a un escenario como el que se describe en "Secure integration of distributed medical data using mobile agents", de "IEEE Intelligent Systems 2006"; 21(6):47-54, por los autores Vieira-Marques P, Robles S, Cucurull J, Cruz-Correia R, Navarro G, Martí R.In order to demonstrate the feasibility of the method proposed by the present invention, an example of its implementation is described below by applying the proposed method to a scenario such as that described in "Secure integration of distributed medical data using mobile agents", from "IEEE Intelligent Systems 2006"; 21 (6): 47-54, by the authors Vieira-Marques P, Robles S, Cucurull J, Cruz-Correia R, Navarro G, Martí R.
Este escenario corresponde al de instituciones médicas en las que se ha implantado un sistema de gestión de información basado en agentes móviles. En estos escenarios, el proceso de registro de pacientes está gestionado por una plataforma de agentes, Ia cual mantiene un registro de los pacientes atendidos por Ia institución. Además, cada uno de los departamentos de Ia institución médica posee una plataforma de agentes que gestiona el historial de los pacientes atendidos, y los servicios que se les han realizado.This scenario corresponds to that of medical institutions in which an information management system based on mobile agents has been implemented. In these scenarios, the patient registration process is managed by an agent platform, which maintains a registry of the patients attended by the institution. In addition, each of the departments of the medical institution has an agent platform that manages the history of the patients treated, and the services that have been performed.
En estos escenarios, los agentes móviles se utilizan, entre otras tareas, para automatizar el proceso de recuperación de historiales clínicos distribuidos por diferentes instituciones. Supongamos que se requiere realizar una operación quirúrgica urgente a una víctima de un accidente. Antes de empezar cualquier operación en Ia que haya contacto con sangre, el personal médico debe saber si el paciente es portador del virus del VIH o la Hepatitis B. La realización de las pruebas pertinentes antes de Ia intervención es inviable, debido a que se necesitan días para obtener los resultados. Tampoco es posible confiar en los pacientes para obtener esta información, ya que pueden estar inconscientes. Por este motivo, Ia recuperación de esta información se realiza mediante una aplicación basada en agentes móviles. La aplicación es iniciada por un profesional médico que introduce los datos del paciente y Ia identificación de los resultados de las pruebas que se deben obtener en un interfaz gráfico. A partir de aquí, Ia aplicación genera un agente móvil al cual introduce toda Ia información recopilada anteriormente. El agente móvil, en primer lugar, consulta una base de datos con información acerca de todas las instituciones que realizan las pruebas del VIH y Ia Hepatitis B, en este caso concreto. El agente obtiene así una lista de todas aquellas instituciones en las que se realizan estas pruebas.In these scenarios, mobile agents are used, among other tasks, to automate the process of recovering medical records distributed by different institutions. Suppose an urgent surgical operation is required for a victim of an accident. Before beginning any operation in which there is contact with blood, medical personnel should know if the patient is carrying the HIV virus or Hepatitis B. The performance of the relevant tests before the intervention is unfeasible, because they are needed days to get the results. It is also not possible to rely on patients to obtain this information, as they may be unconscious. For this reason, the recovery of this information is done through an application based on mobile agents. The application is initiated by a medical professional who enters the patient's data and the identification of the results of the tests that must be obtained in a graphic interface. From here, the application generates a mobile agent to which it introduces all the information collected previously. The mobile agent, first, consults a database with information about all the institutions that carry out the HIV and Hepatitis B tests, in this specific case. The agent thus obtains a list of all those institutions in which these tests are performed.
A continuación, el agente lleva a cabo una consulta remota a cada una de estas instituciones para determinar si el paciente ha sido visitado alguna vez en dicha institución o no. En caso positivo, el agente móvil se desplaza al departamento pertinente de Ia institución médica para elegir y extraer los resultados que se necesitan. Este proceso se repite para todas y cada una de las instituciones que realizan las pruebas correspondientes al virus del VIH y de Ia Hepatitis B. Como puede observarse, el uso de Ia tecnología de agentes móviles permite automatizar y agilizar enormemente el proceso de recuperación y extracción de información.Next, the agent conducts a remote consultation to each of these institutions to determine if the patient has ever been visited in that institution or not. If positive, the mobile agent travels to the relevant department of the medical institution to choose and extract the results that are needed. This process is repeated for each and every one of the institutions that carry out the tests corresponding to the HIV virus and Hepatitis B. As can be seen, the use of mobile agent technology makes it possible to greatly automate and speed up the recovery and extraction process of information.
Sin embargo, el uso de agentes móviles puede conllevar problemas de robo de información privada de los pacientes si no se utilizan las medidas de seguridad adecuadas. Un atacante podría capturar el agente y reejecutarlo más adelante para obtener información privada de un paciente. Por ejemplo, un agente podría ser capturado y reenviado a Ia misma institución más adelante para obtener resultados de pruebas posteriores realizadas al paciente.However, the use of mobile agents can lead to problems of theft of private information from patients if the appropriate security measures are not used. An attacker could capture the agent and re-execute it later to obtain private information from a patient. For example, an agent could be captured and forwarded to the same institution later to obtain results of subsequent tests performed on the patient.
Además, dicho ataque de reejecución podría suponer también pérdidas económicas para el paciente, en caso de que el agente visitara una institución privada para llevar a cabo un servicio de pago. Por ejemplo, una radiografía del paciente realizada en un centro médico podría ser transportada por el agente para su posterior análisis a una institución privada. La utilización del agente móvil permitiría al paciente evitarse un desplazamiento a dicha institución. Sin embargo, si el agente fuese reenviado por un atacante a Ia misma institución en repetidas ocasiones, el paciente acabaría pagando múltiples veces por el mismo servicio.In addition, said re-execution attack could also entail economic losses for the patient, in case the agent visited a private institution to carry out a paid service. For example, an X-ray of the patient performed in a medical center could be transported by the agent for later analysis to a private institution. The use of the mobile agent would allow the patient to avoid a trip to said institution. However, if the agent were forwarded by an attacker to the same institution repeatedly, the patient would end up paying multiple times for the same service.
Por Io tanto, Ia implementación del método de de protección contra ataques de reejecución presentado en Ia presente invención es imprescindible para Ia utilización segura de agentes móviles en este escenario de aplicación distribuida. Este escenario es un ejemplo claro de necesidad de utilización de mecanismos adecuados para Ia prevención de los ataques de reejecución. En esta ¡mplementación, se ha aplicado el método propuesto a un escenario relacionado con instituciones médicas, pero el método propuesto por Ia presente invención es aplicable a muchos otros escenarios relacionados, por ejemplo, con instituciones financieras, agencias de viaje, o cualquier otro que conlleve tratamiento de información confidencial o transacciones comerciales.Therefore, the implementation of the protection method against re-execution attacks presented in the present invention is essential for the safe use of mobile agents in this distributed application scenario. This scenario is a clear example of the need to use adequate mechanisms for the prevention of re-execution attacks. In this implementation, the proposed method has been applied to a scenario related to medical institutions, but the method proposed by the present invention is applicable to many other scenarios related, for example, to financial institutions, travel agencies, or any other that involves the processing of confidential information or commercial transactions.
Un experto en Ia materia podría introducir cambios y modificaciones en los ejemplos de realización descritos sin salirse del alcance de Ia invención según está definido en las reivindicaciones adjuntas. A person skilled in the art could introduce changes and modifications in the described embodiments without departing from the scope of the invention as defined in the appended claims.

Claims

Reivindicaciones Claims
1.- Método para Ia protección de plataformas de computación frente a ataques externos de repetición de agentes móviles, del tipo que comprende utilizar un sistema de plataformas de computación conectadas a una red para Ia ejecución compartida de aplicaciones distribuidas basadas en agentes móviles, y que comprende utilizar marcadores de trayecto o identificadores de agente para permitir a al menos un agente móvil ser legalmente ejecutado en una plataforma de computación más de una vez, a Ia vez que evitar una re-ejecución ilegal de dicho agente móvil, considerada como un ataque externo de repetición, caracterizado porque comprende:1.- Method for the protection of computing platforms against external attacks of repetition of mobile agents, of the type that comprises using a system of computing platforms connected to a network for the shared execution of distributed applications based on mobile agents, and that it includes using path markers or agent identifiers to allow at least one mobile agent to be legally executed on a computing platform more than once, while avoiding an illegal re-execution of said mobile agent, considered as an external attack of repetition, characterized in that it comprises:
- crear un agente móvil protegido frente a ataques de reejecución, incluyendo al menos un marcador de trayecto inicial o identificador, un itinerario protegido y dicho agente móvil propiamente dicho, que es al menos uno,- create a mobile agent protected against re-execution attacks, including at least one initial path marker or identifier, a protected itinerary and said mobile agent itself, which is at least one,
- generar al menos un nuevo marcador de trayecto o identificador, para dicho agente móvil protegido, que es al menos uno, utilizando al menos una entidad de autorización;- generate at least one new path marker or identifier, for said protected mobile agent, which is at least one, using at least one authorization entity;
- enviar dicho agente móvil protegido a dicha plataforma de computación,- send said protected mobile agent to said computing platform,
- recibir dicho agente móvil protegido en dicha plataforma de computación, y- receive said protected mobile agent on said computing platform, and
- utilizar, por parte de dicha plataforma de computación, dicho nuevo marcador de trayecto o identificador del agente móvil recibido como una autorización para permitir a dicho agente móvil ser ejecutado legalmente en al menos dicha plataforma de computación un número de veces determinado dinámicamente en tiempo de ejecución, donde para llevar a cabo dicha etapa de utilización de dicho nuevo marcador de trayecto, o identificador del agente móvil recibido, como una autorización, el método comprende extraer, por parte de dicha plataforma de computación, al menos parte de Ia información incluida en dicho agente móvil protegido y utilizarla para comprobar si dicho agente móvil protegido ya ha sido ejecutado anteriormente, mediante al menos Ia comparación de al menos parte de dicha información extraída con información almacenada en dicha plataforma de computación, incluyendo dicha información almacenada al menos marcadores de trayecto de agentes ejecutados previamente, junto con unos respectivos identificadores de nodo representativos de las tareas de nodo ejecutadas por dichos agentes.- using, by said computing platform, said new path marker or identifier of the mobile agent received as an authorization to allow said mobile agent to be legally executed on at least said computing platform a number of times dynamically determined in time of execution, where to carry out said step of using said new path marker, or identifier of the mobile agent received, as an authorization, the method comprises extracting, by said computing platform, at least part of the information included in said protected mobile agent and use it to check if said protected mobile agent has already been executed previously, by at least comparing at least part of said extracted information with information stored on said computing platform, including said information stored at least path markers of previously executed agents, together with respective node identifiers representative of the node tasks executed by said agents.
2.- Método según Ia reivindicación 1 , caracterizado porque comprende almacenar en dicha plataforma de computación un identificador de Ia tarea ejecutada por dicho agente móvil protegido en dicha plataforma de computación, junto con su respectivo marcador de trayecto, con el fin de permitir que sea re-ejecutada un número de veces determinado.2. Method according to claim 1, characterized in that it comprises storing in said computing platform an identifier of the task executed by said protected mobile agent in said computing platform, together with its respective path marker, in order to allow a certain number of times to be re-executed.
3.- Método según Ia reivindicación 2, caracterizado porque dicha re-ejecución legal hace referencia a Ia ejecución de diferentes tareas en diferentes respectivos nodos o etapas del itinerario del agente móvil, siendo cada uno de dichos nodos diferente y representativo de una visita a dicha plataforma de computación en un momento distinto al del resto de los nodos, estando cada nodo asociado con una tarea y una plataforma concretas.3. Method according to claim 2, characterized in that said legal re-execution refers to the execution of different tasks in different respective nodes or stages of the itinerary of the mobile agent, each of said nodes being different and representative of a visit to said computing platform at a different time than the rest of the nodes, each node being associated with a specific task and platform.
4.- Método según Ia reivindicación 2, caracterizado porque dicha re-ejecución legal hace referencia a Ia ejecución de una misma tarea en diferentes visitas respectivas a dicha plataforma de computación a Io largo del itinerario del agente móvil, siendo cada una de dichas visitas representada por un mismo nodo, o etapa, asociado con una tarea y una plataforma concretas.4. Method according to claim 2, characterized in that said legal re-execution refers to the execution of the same task in different respective visits to said computing platform along the itinerary of the mobile agent, each of said visits being represented by the same node, or stage, associated with a specific task and platform.
5.- Método según Ia reivindicación 2, caracterizado porque comprende generar y asociar un marcador de trayecto o identificador diferente a cada uno de varios agentes móviles, incluso si ejecutan exactamente las mismas tareas, y a cada instancia del mismo agente móvil.5. Method according to claim 2, characterized in that it comprises generating and associating a different path marker or identifier to each of several mobile agents, even if they perform exactly the same tasks, and to each instance of the same mobile agent.
6.- Método según Ia reivindicación 5, caracterizado porque comprende llevar a cabo dicha creación de dicho agente móvil protegido por parte de un usuario propietario o programador.6. Method according to claim 5, characterized in that it comprises carrying out said creation of said protected mobile agent by a proprietary user or programmer.
7.- Método según Ia reivindicación 6, caracterizado porque comprende construir dicho itinerario protegido mediante Ia realización de las siguientes acciones:7. Method according to claim 6, characterized in that it comprises constructing said protected itinerary by performing the following actions:
- definir un conjunto de nodos o etapas que conforman dicho itinerario de agente móvil, siendo cada uno de dichos nodos representativo de una respectiva visita a dicha plataforma de computación en un momento distinto para ejecutar una tarea correspondiente, y estando cada uno de dichos nodos asociado a una entidad de autorización correspondiente que es Ia única encargada de generar nuevos marcadores de trayecto válidos utilizados como autorizaciones para Ia ejecución de Ia tarea asociada con dicho nodo;- defining a set of nodes or stages that make up said mobile agent itinerary, each of said nodes being representative of a respective visit to said computing platform at a different time to execute a corresponding task, and each of said nodes being associated to a corresponding authorization entity that is solely responsible for generating new valid path markers used as authorizations for the execution of the task associated with said node;
- proteger dicho itinerario de agente utilizando un protocolo de protección.- protect said agent itinerary using a protection protocol.
8.- Método según Ia reivindicación 7, caracterizado porque, con el fin de definir dicho conjunto de nodos, el método comprende asignar Ia siguiente información a cada uno de los nodos que conforman el conjunto:8. Method according to claim 7, characterized in that, in order to define said set of nodes, the method comprises assigning the following information to each of the nodes that make up the set:
- un identificador de nodo;- a node identifier;
- una plataforma de computación donde será ejecutado;- a computing platform where it will be executed;
- una tarea; - un tipo de nodo;- A homework; - a type of node;
- plataforma siguiente;- next platform;
- una entidad de autorización;- an authorization entity;
- un nodo de autorización;- an authorization node;
- un identificador de agente.- an agent identifier.
9.- Método según Ia reivindicación 8, caracterizado porque comprende, con el fin de definir dicho tipo de nodo, establecer los siguientes dos tipos de nodo:9. Method according to claim 8, characterized in that, in order to define said type of node, establish the following two types of node:
- un tipo de nodo regular, el cual se refiere a un nodo que es una etapa del itinerario donde el agente móvil ejecuta su tarea y salta a Ia siguiente plataforma de computación del itinerario;- a type of regular node, which refers to a node that is a stage of the itinerary where the mobile agent executes his task and jumps to the next computing platform of the itinerary;
- un tipo de nodo bucle, el cual hace referencia a un nodo que es una etapa del itinerario donde el agente móvil determina si inicia o no una iteración de un número determinado de nodos.- a type of loop node, which refers to a node that is a stage of the itinerary where the mobile agent determines whether or not to start an iteration of a certain number of nodes.
10.- Método según Ia reivindicación 9, caracterizado porque comprende definir dicho nodo de autorización como un identificador del nodo donde el marcador de trayecto del agente móvil debe ser generado, ya sea dicho marcador de trayecto inicial o uno de dichos nuevos marcadores de trayecto, y definir dicha entidad de autorización como Ia plataforma de computación correspondiente o el usuario propietario o programador que debe generar y firmar el marcador de trayecto.10. Method according to claim 9, characterized in that it comprises defining said authorization node as an identifier of the node where the path marker of the mobile agent must be generated, either said initial path marker or one of said new path markers, and defining said authorization entity as the corresponding computing platform or the owner or programmer user who must generate and sign the route marker.
11.- Método según Ia reivindicación 10, caracterizado porque comprende asignar o no un respectivo nodo de autorización a cada nodo, dependiendo de si el nodo se encuentra ubicado o no en el interior de un bucle.11. Method according to claim 10, characterized in that it comprises assigning or not assigning a respective authorization node to each node, depending on whether or not the node is located inside a loop.
12.- Método según Ia reivindicación 11 , caracterizado porque comprende asignar como nodo de autorización, a cada nodo que se encuentra ubicado en el interior de un bucle, el nodo de bucle ubicado al inicio del bucle y como su correspondiente entidad de autorización Ia plataforma de computación donde Ia tarea de dicho nodo inicial de bucle es ejecutada, y a cada nodo que no se encuentra en el interior de un bucle, ningún nodo de autorización y como su correspondiente entidad de autorización a dicho usuario propietario del agente móvil.12. Method according to claim 11, characterized in that it comprises assigning as an authorization node, to each node that is located inside a loop, the loop node located at the beginning of the loop and as its corresponding authorization entity the platform computing where the task of said initial loop node is executed, and to each node that is not inside a loop, no authorization node and as its corresponding authorization entity to said user owner of the mobile agent.
13.- Método según Ia reivindicación 12, caracterizado porque comprende utilizar un identificador de agente para vincular los nodos de itinerario al agente móvil.13. Method according to claim 12, characterized in that it comprises using an agent identifier to link the itinerary nodes to the mobile agent.
14.- Método según Ia reivindicación 12, caracterizado porque comprende generar dicho marcador de trayecto para el agente móvil, ya sea dicho marcador de trayecto inicial o uno de dichos nuevos marcadores de trayecto, con Ia siguiente información: - un ¡dentificador de agente idéntico a dicho identificador de agente incluido en el itinerario protegido y utilizado para vincular a los nodos de itinerario con el agente móvil, para asegurar que cualquier instancia de agente móvil pueda ser identificada de manera única;14. Method according to claim 12, characterized in that it comprises generating said path marker for the mobile agent, either said initial path marker or one of said new path markers, with the following information: - an agent dentifier identical to said agent identifier included in the protected itinerary and used to link the itinerary nodes with the mobile agent, to ensure that any instance of mobile agent can be uniquely identified;
- un nodo de autorización como un identificador del nodo donde dicho marcador de trayecto es generado;- an authorization node as an identifier of the node where said path marker is generated;
- una fecha de caducidad tras Ia cual el marcador de trayecto no puede ser utilizado más; y- an expiration date after which the route marker can no longer be used; Y
- un contador de bucle incrementado en una unidad cada vez que el agente móvil tiene que iniciar una nueva iteración de un bucle.- a loop counter increased by one unit each time the mobile agent has to start a new iteration of a loop.
15.- Método según Ia reivindicación 14, caracterizado porque cuando dicho marcador de trayecto generado es dicho marcador de trayecto inicial éste es generado por parte de dicho usuario propietario o programador, y cuando es uno de dichos nuevos marcadores de trayecto éste es generado por parte de Ia plataforma de computación correspondiente a Ia entidad de autorización asignada en dicho itinerario protegido.15. Method according to claim 14, characterized in that when said path marker generated is said initial path marker it is generated by said owner or programmer user, and when it is one of said new path markers it is generated by of the computing platform corresponding to the authorization entity assigned in said protected itinerary.
16.- Método según Ia reivindicación 15, caracterizado porque comprende firmar dicho marcador de trayecto generado por dicho usuario propietario o dicha entidad de autorización y colocarlo en Ia parte superior de una pila de marcadores de trayecto del agente configurada para almacenar marcadores de trayecto previamente utilizados por el agente móvil durante su ejecución.16. Method according to claim 15, characterized in that it comprises signing said route marker generated by said owner user or said authorization entity and placing it on top of a stack of agent route markers configured to store previously used route markers. by the mobile agent during its execution.
17.- Método según Ia reivindicación 16, caracterizado porque dicha extracción de información llevada a cabo por dicha plataforma de computación desde dicho agente móvil protegido recibido concierne a:17. Method according to claim 16, characterized in that said extraction of information carried out by said computing platform from said protected mobile agent received concerns:
- extraer Ia información del nodo actual de dicho itinerario protegido para obtener dicho identificador de nodo, identificador de agente, tarea, tipo de nodo, plataforma siguiente, entidad de autorización y nodo de autorización; y- extract the information from the current node of said protected itinerary to obtain said node identifier, agent identifier, task, type of node, next platform, authorization entity and authorization node; Y
- recuperar el marcador de trayecto del agente de Ia parte superior de Ia pila de marcadores de trayecto del agente y extraer del marcador de trayecto recuperado el identificador de agente, el nodo de autorización, Ia fecha de caducidad y el contador de bucle.- recover the agent path marker from the top of the agent path marker stack and extract the agent identifier, the authorization node, the expiration date and the loop counter from the recovered path marker.
18.- Método según Ia reivindicación 17, caracterizado porque comprende en primer lugar utilizar, por parte de dicha plataforma de computación receptora del agente móvil protegido, el tipo del nodo actual para determinar si el agente está ejecutando un nodo tipo regular o un nodo tipo bucle. 18. Method according to claim 17, characterized in that it first comprises using, by said receiving computing platform of the protected mobile agent, the type of the current node to determine if the agent is executing a regular type node or a type node loop.
19.- Método según Ia reivindicación 18, caracterizado porque comprende realizar, por parte de dicha plataforma de computación receptora del agente móvil protegido, al menos parte de las siguientes operaciones si dicho nodo actual es un nodo de tipo regular: a) verificar Ia firma del marcador de trayecto para comprobar si el marcador de trayecto ha sido firmado por Ia entidad de autorización actual, y si dicha verificación no resulta exitosa descartar Ia ejecución del agente, o si resulta exitosa realizar Ia siguiente operación; b) comprobar que el nodo de autorización actual, que está incluido en el marcador de trayecto, es el mismo que el extraído del itinerario protegido y si dicha comprobación falla descartar Ia ejecución del agente, o si es exitosa realizar Ia siguiente operación; c) comprobar que el identificador de agente incluido en el marcador de trayecto es igual al obtenido del itinerario protegido, y si dicha comprobación falla descartar Ia ejecución del agente, o si es exitosa realizar Ia siguiente operación; d) comprobar Ia fecha de caducidad del marcador de trayecto, y si el marcador de trayecto ha caducado descartar Ia ejecución del agente, o si no ha caducado realizar Ia siguiente operación; e) utilizar el identificador de agente para buscar un marcador de trayecto previo del mismo agente en dicha información almacenada en Ia plataforma de computación que incluye marcadores de trayecto de agentes ejecutados previamente junto con los respectivos identificadores de nodo representativos de las tareas ejecutadas por dichos agentes, siendo dicha información almacenada representada por una tabla, y: e1) si no hay ningún marcador de trayecto con el mismo identificador de agente en dicha tabla, almacenar el nuevo marcador de trayecto junto con el identificador del nodo actual en dicha tabla; e2) si existe un marcador de trayecto previo con el mismo identificador de agente en dicha tabla, Io que significa que el mismo agente ya había sido ejecutado con anterioridad en esta plataforma de computación, comprobar si el identificador del nodo actual del agente es igual al de Ia ejecución previa, mediante Ia consulta de dicha tabla; y e2a) si el identificador del nodo actual del agente es diferente al de Ia ejecución previa, Io que significa que el agente va a ejecutar una tarea diferente correspondiente a un nodo del itinerario distinto, almacenar el marcador de trayecto junto con el nuevo identificador del nodo actual en dicha tabla; e2b) si el identificador del nodo actual del agente es igual al de Ia ejecución previa, Io que significa que Ia tarea de este nodo del itinerario había sido ejecutada en Ia ejecución previa, comparar el contador de bucle actual con el incluido en el marcador de trayecto previo, y: e2b1) si el contador de bucle actual es mayor que el previo, Io que significa que el agente está realizando una nueva iteración de un bucle, reemplazar, en dicha tabla, el marcador de trayecto previo con el actual; e2b2) si el contador de trayecto actual no es mayor que el previo, Io que significa que el marcador de trayecto ya ha sido utilizado, descartar Ia ejecución del agente; f) si Ia ejecución del agente no ha sido descartada en ninguna de las operaciones previas, ejecutar Ia tarea correspondiente al nodo actual.19. Method according to claim 18, characterized in that it comprises performing, by said computing platform receiving the protected mobile agent, at least part of the following operations if said current node is a regular type node: a) verify the signature of the route marker to check if the route marker has been signed by the current authorization entity, and if said verification is not successful discarding the execution of the agent, or if it is successful to perform the following operation; b) verify that the current authorization node, which is included in the route marker, is the same as the one extracted from the protected itinerary and if said verification fails to discard the execution of the agent, or if it is successful to perform the following operation; c) verify that the agent identifier included in the route marker is equal to that obtained from the protected itinerary, and if said verification fails to discard the execution of the agent, or if the following operation is successful; d) check the expiration date of the route marker, and if the route marker has expired, discard the execution of the agent, or if the following operation has not expired; e) use the agent identifier to search for a previous path marker of the same agent in said information stored in the computing platform that includes path markers of agents previously executed together with the respective node identifiers representative of the tasks executed by said agents , said stored information being represented by a table, and: e1) if there is no path marker with the same agent identifier in said table, store the new path marker together with the identifier of the current node in said table; e2) If there is a previous path marker with the same agent identifier in that table, which means that the same agent had already been previously executed on this computing platform, check if the identifier of the current agent node is equal to of the previous execution, by means of the consultation of said table; and e2a) if the identifier of the current node of the agent is different from that of the previous execution, which means that the agent will execute a different task corresponding to a node of the different itinerary, store the path marker along with the new identifier of the current node in said table; e2b) if the identifier of the current node of the agent is equal to that of the previous execution, which means that the task of this node of the itinerary had been executed in the previous execution, compare the current loop counter with the one included in the marker of previous path, and: e2b1) if the current loop counter is greater than the previous one, which means that the agent is performing a new iteration of a loop, replace, in said table, the previous path marker with the current one; e2b2) if the current route counter is not greater than the previous one, which means that the route marker has already been used, discard the execution of the agent; f) if the execution of the agent has not been discarded in any of the previous operations, execute the task corresponding to the current node.
20.- Método según Ia reivindicación 19, caracterizado porque comprende realizar, por parte de dicha plataforma de computación receptora del agente móvil protegido, al menos parte de las siguientes operaciones si dicho nodo actual es un nodo de tipo bucle: i) verificar Ia firma del marcador de trayecto para comprobar si dicho marcador de trayecto ha sido firmado por Ia entidad de autorización actual o por Ia plataforma de computación actual, y si ambas comprobaciones fallan descartar Ia ejecución del agente, o si al menos una de ambas comprobaciones es exitosa realizar Ia siguiente operación; ii) realizar Ia siguiente operación:20. Method according to claim 19, characterized in that it comprises performing, by said receiving computing platform of the protected mobile agent, at least part of the following operations if said current node is a loop type node: i) verify the signature of the route marker to check if said route marker has been signed by the current authorization entity or by the current computing platform, and if both checks fail to discard the execution of the agent, or if at least one of both checks is successful. The next operation; ii) perform the following operation:
-comprobar que el nodo de autorización actual, que está incluido en el marcador de trayecto, es el mismo que el extraído del itinerario protegido o coincide con el nodo actual y si ambas comprobaciones fallan descartar Ia ejecución del agente, o si al menos una es exitosa realizar dichas operaciones c) a e); iii) generar y firmar un nuevo marcador de trayecto conteniendo Ia misma información que el marcador de trayecto previo, a excepción del nodo de autorización, siendo asignado como nodo de autorización el nodo actual, y a excepción también del contador de bucle, el cual es incrementado en una unidad;-Check that the current authorization node, which is included in the route marker, is the same as the one extracted from the protected itinerary or coincides with the current node and if both checks fail to discard the execution of the agent, or if at least one is successfully perform these operations c) ae); iii) generate and sign a new path marker containing the same information as the previous path marker, with the exception of the authorization node, the current node being assigned as the authorization node, and also with the exception of the loop counter, which is incremented in a unit;
¡v) comprobar si el agente está visitando el nodo de tipo bucle por primera vez, Io que significa que el agente todavía no ha realizado ninguna iteración previa del bucle iniciado en el nodo tipo bucle, y: iva) si el agente está visitando el nodo bucle por primera vez, añadir el nuevo marcador de trayecto a Ia pila de marcadores de trayecto del agente, colocándolo en Ia parte superior de Ia misma; ivb) si el agente ya ha realizado alguna iteración del bucle anteriormente, reemplazar el marcador de trayecto actual, el cual estaba dispuesto en Ia parte superior de Ia pila de marcadores de trayecto del agente, con el nuevo marcador de trayecto; v) realizar dicha operación f); vi) determinar, por parte del agente, si debe realizar una iteración del bucle; y: via) si una iteración debe ser llevada a cabo, hacer saltar el agente móvil protegido a Ia siguiente plataforma del interior del bucle actual, comprobar el tipo de nodo y en función del tipo de nodo realizar las operaciones a) a f) o i) a vi); vib) si no se requiere Ia realización de una iteración del bucle, extraer, por parte del agente, el marcador de trayecto de Ia parte superior de Ia pila, saltar el agente móvil protegido a Ia siguiente plataforma fuera del bucle actual, comprobar el tipo de nodo y en función del tipo de nodo realizar las operaciones a) a f) o i) a vi).V) check if the agent is visiting the loop type node for the first time, which means that the agent has not yet performed any previous iteration of the loop started on the loop type node, and: vat) if the agent is visiting the loop node for the first time, add the new path marker to the agent path marker stack, placing it on top of it; ivb) if the agent has already performed some iteration of the loop previously, replace the current path marker, which was arranged at the top of the agent path marker stack, with the new path marker; v) perform said operation f); vi) determine, by the agent, whether to iterate the loop; and: via) if an iteration must be carried out, make the protected mobile agent jump to the next platform inside the current loop, check the type of node and, depending on the type of node, carry out operations a) to f) or i) to vi); vib) if it is not necessary to perform an iteration of the loop, extract, by the agent, the path marker of the upper part of the stack, skip the protected mobile agent to the next platform outside the current loop, check the type Node and depending on the type of node perform the operations a) to f) or i) to vi).
21.- Método según Ia reivindicación 19, caracterizado porque dichas operaciones a) a f) son llevadas a cabo en dicha plataforma de computación.21. Method according to claim 19, characterized in that said operations a) to f) are carried out on said computing platform.
22.- Método según Ia reivindicación 20, caracterizado porque dichas operaciones i) a v) son llevadas a cabo en dicha plataforma de computación.22. Method according to claim 20, characterized in that said operations i) to v) are carried out in said computing platform.
23.- Sistema de plataformas de computación protegidas frente a ataques externos de repetición de agentes móviles, del tipo que comprende una pluralidad de plataformas de computación conectadas a una red y adaptadas para ejecutar aplicaciones distribuidas basadas en agentes móviles que incluyen marcadores de trayecto o ¡dentificadores de agente para permitir a al menos un agente móvil ser legalmente ejecutado en al menos una de dichas plataformas de computación más de una vez, a Ia vez que evitar una re-ejecución ilegal de dicho agente móvil, considerada como un ataque extemo de repetición, caracterizado porque comprende al menos una entidad de autorización en conexión con dicha red, prevista para generar al menos un nuevo marcador de trayecto o identificador a ser utilizado como autorización, para dicho agente móvil, que es al menos uno, para permitirle ser ejecutado legalmente en al menos dicha plataforma de computación un número de veces determinado dinámicamente en tiempo de ejecución. 23.- System of computer platforms protected against external attacks of repetition of mobile agents, of the type comprising a plurality of computer platforms connected to a network and adapted to execute distributed applications based on mobile agents that include path markers or ¡ agent dentifiers to allow at least one mobile agent to be legally executed on at least one of said computing platforms more than once, while avoiding an illegal re-execution of said mobile agent, considered as an external repeat attack , characterized in that it comprises at least one authorization entity in connection with said network, intended to generate at least one new path marker or identifier to be used as authorization, for said mobile agent, which is at least one, to allow it to be legally executed in at least said computing platform a dynamically determined number of times and n runtime.
24.- Sistema según Ia reivindicación 23, caracterizado porque dicha entidad de autorización es una de dichas plataformas de computación.24.- System according to claim 23, characterized in that said authorization entity is one of said computing platforms.
25.- Sistema según Ia reivindicación 23, caracterizado porque dicha entidad de autorización es un programador o usuario propietario de dicho agente móvil.25.- System according to claim 23, characterized in that said authorization entity is a programmer or user owner of said mobile agent.
26.- Sistema según Ia reivindicación 23, 24 ó 25, caracterizado porque está adaptado para aplicar el método según una cualquiera de las reivindicaciones 1 a 22. 26.- System according to claim 23, 24 or 25, characterized in that it is adapted to apply the method according to any one of claims 1 to 22.
PCT/ES2009/000270 2008-05-19 2009-05-19 Method for protecting computing platforms against repeated external attacks from mobile agents and protected computing platform system WO2009141471A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ESP200801492 2008-05-19
ES200801492A ES2327310B1 (en) 2008-05-19 2008-05-19 METHOD FOR THE PROTECTION OF COMPUTER PLATFORMS AGAINST EXTERNAL ATTACKS OF REPETITION OF MOBILE AGENTS AND SYSTEM OF PROTECTED COMPUTATION PLATFORMS.

Publications (1)

Publication Number Publication Date
WO2009141471A1 true WO2009141471A1 (en) 2009-11-26

Family

ID=41165272

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2009/000270 WO2009141471A1 (en) 2008-05-19 2009-05-19 Method for protecting computing platforms against repeated external attacks from mobile agents and protected computing platform system

Country Status (2)

Country Link
ES (1) ES2327310B1 (en)
WO (1) WO2009141471A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055562A (en) * 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
EP1067457A1 (en) * 1999-07-05 2001-01-10 Sony International (Europe) GmbH Management of a communication network and the migragtion of mobile agents
US20040037423A1 (en) * 2000-10-17 2004-02-26 Robert Ghanea-Hercock Mobile programs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055562A (en) * 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
EP1067457A1 (en) * 1999-07-05 2001-01-10 Sony International (Europe) GmbH Management of a communication network and the migragtion of mobile agents
US20040037423A1 (en) * 2000-10-17 2004-02-26 Robert Ghanea-Hercock Mobile programs

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CARLES GARRIGUES ET AL.: "A Securing dynamic itineraries for mobile agent applications.", JOURNAL OF NETWORK AND COMPUTER APPLICATIONS, vol. 31, no. ISS.4, November 2008 (2008-11-01), pages 487 - 508 *

Also Published As

Publication number Publication date
ES2327310B1 (en) 2010-07-21
ES2327310A1 (en) 2009-10-27

Similar Documents

Publication Publication Date Title
Thaduri et al. Cybersecurity for eMaintenance in railway infrastructure: risks and consequences
CN108399329A (en) A method of improving trusted application safety
EP2859691B1 (en) Method and system for maintaining data in a substantiated state
Sepúlveda et al. Efficient and flexible NoC-based group communication for secure MPSoCs
Das et al. Lightweight and efficient privacy‐preserving mutual authentication scheme to secure Internet of Things‐based smart healthcare
Srivastava et al. Analyzing the prospects of blockchain in healthcare industry
Preethi et al. Security and privacy issues in blockchain technology
Kumar et al. Post Pandemic Cyber Attacks Impacts and Countermeasures: A Systematic Review
Coble et al. Secure software attestation for military telesurgical robot systems
Jalbani et al. Poor coding leads to dos attack and security issues in web applications for sensors
ES2327310B1 (en) METHOD FOR THE PROTECTION OF COMPUTER PLATFORMS AGAINST EXTERNAL ATTACKS OF REPETITION OF MOBILE AGENTS AND SYSTEM OF PROTECTED COMPUTATION PLATFORMS.
Garrigues et al. Protecting mobile agents from external replay attacks
Kähler et al. Constraint solving for contract-signing protocols
Jayasinghe et al. Blockchain-based Secure Environment for Electronic Health Records
Williams Security for service oriented architectures
Odoom et al. COVID‐19 and future pandemics: A blockchain‐based privacy‐aware secure borderless travel solution from electronic health records
Makina et al. Survey on security and privacy in Internet of Things‐based eHealth applications: Challenges, architectures, and future directions
Sharma et al. Privacy and Security Challenges in the Era of the COVID-19 Pandemic
Paintsil A model for privacy and security risks analysis
Boussard et al. A process for generating concrete architectures
Ma et al. Security modeling and analysis of mobile agent systems
Rashmi et al. A Blockchain Based Secure And Efficient Validation System For Digital Certificates
Nasr A proposed paradigm for tracing the effect of security threats in various mobile agent systems
Bai et al. Blockchain Solutions for Security and Privacy Issues in Smart Health Care
Alodaynan et al. A survey of cybersecurity vulnerabilities in healthcare systems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09749955

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09749955

Country of ref document: EP

Kind code of ref document: A1