BR112017005696B1 - METHOD AND SYSTEM IMPLEMENTED ON A COMPUTER TO ENABLE DATA CLASSIFICATION AND/OR THE IMPOSITION OF INFORMATION RIGHTS MANAGEMENT POLICIES AND/OR ENCRYPTION ON DATA ITEM IN AN APPLICATION - Google Patents

METHOD AND SYSTEM IMPLEMENTED ON A COMPUTER TO ENABLE DATA CLASSIFICATION AND/OR THE IMPOSITION OF INFORMATION RIGHTS MANAGEMENT POLICIES AND/OR ENCRYPTION ON DATA ITEM IN AN APPLICATION Download PDF

Info

Publication number
BR112017005696B1
BR112017005696B1 BR112017005696-8A BR112017005696A BR112017005696B1 BR 112017005696 B1 BR112017005696 B1 BR 112017005696B1 BR 112017005696 A BR112017005696 A BR 112017005696A BR 112017005696 B1 BR112017005696 B1 BR 112017005696B1
Authority
BR
Brazil
Prior art keywords
application
irm
file
data item
agent
Prior art date
Application number
BR112017005696-8A
Other languages
Portuguese (pt)
Other versions
BR112017005696A8 (en
BR112017005696A2 (en
Inventor
Yuval Eldar
Roee Oz
Slava Reznitsky
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Priority claimed from PCT/IL2015/051023 external-priority patent/WO2016063276A1/en
Publication of BR112017005696A2 publication Critical patent/BR112017005696A2/en
Publication of BR112017005696A8 publication Critical patent/BR112017005696A8/en
Publication of BR112017005696B1 publication Critical patent/BR112017005696B1/en

Links

Abstract

ATIVAÇÃO DE CLASSIFICAÇÃO E IRM EM APLICAÇÕES DE SOFTWARE. A presente invenção se refere a um método para ativar a classificação dos dados e/ou a imposição das capacidades de gerenciamento dos direitos de informação (IRM) e/ou criptografia em uma aplicação de software de acordo com o qual um agente é instalado em cada dispositivo de terminal que executa a aplicação e um módulo de gerenciamento central que inclui o IRM, a criptografia e a diretriz de classificação a ser imposta, se comunica com agentes que estão instalados em cada dispositivo de terminal. O módulo de gerenciamento central distribui o IRM apropriado e/ou a diretriz de classificação para cada agente e aplica a diretriz em qualquer aplicação que funcione no dispositivo de terminal.ENABLING CLASSIFICATION AND IRM IN SOFTWARE APPLICATIONS. The present invention relates to a method for enabling data classification and/or enforcement of information rights management (IRM) and/or encryption capabilities in a software application pursuant to which an agent is installed on each terminal device that runs the application, and a central management module that includes the IRM, encryption, and classification policy to be enforced, communicates with agents that are installed on each terminal device. The central management module distributes the appropriate IRM and/or classification policy to each agent and applies the policy to any application running on the endpoint device.

Description

CAMPO DA INVENÇÃOFIELD OF INVENTION

[001] A presente invenção refere-se ao campo da tecnologia de informação. Mais particularmente, a invenção refere-se a um método para ativar a classificação de dados e a imposição das capacidades de gerenciamento dos direitos de informação (IRM) em aplicações de software, executadas por uma rede de computador em um ambiente incorporado.[001] The present invention relates to the field of information technology. More particularly, the invention relates to a method for enabling data classification and enforcement of information rights management (IRM) capabilities in software applications running over a computer network in an embedded environment.

ANTECEDENTES DA INVENÇÃOBACKGROUND OF THE INVENTION

[002] O gerenciamento dos direitos de informação (IRM) é usado em muitas organizações para proteger informação sensível corporativa (tais como dados financeiros, propriedade intelectual e comunicações executivas) do acesso e uso desautorizados. O IRM inclui principalmente uma imposição dos direitos de acesso e uso, de modo a determinar qual usuário será capaz de executar ações nos dados, tais como as operações de copiar, arrastar/soltar, imprimir, imprimir a tela, salvar como, salvar e ver. De modo a ser ativada no IRM, cada aplicação que consome dados criptografados deve ser capaz de receber uma chave de decriptografia, decriptografar os dados e renderizar os dados de- criptografados para permitir acesso para o usuário. Para essa finalidade, todas as capacidades dos direitos de uso devem ser integradas na aplicação incluindo criptografia/decriptografia e troca de dados com o gerenciamento da chave, tal que o conjunto de permissões de cada item de dados será analisado, de modo a ativar ou desativar funcionalidades dentro da aplicação e impor os direitos de uso. Isso leva a uma situação onde a implementação do IRM depende fortemente do tipo de aplicação e, portanto, varia de aplicação para aplicação.[002] Information rights management (IRM) is used in many organizations to protect sensitive corporate information (such as financial data, intellectual property and executive communications) from unauthorized access and use. IRM mainly includes an enforcement of access and usage rights in order to determine which user will be able to perform actions on the data, such as copy, drag/drop, print, screen print, save as, save and view operations. . In order to be enabled in IRM, each application that consumes encrypted data must be able to receive a decryption key, decrypt the data, and render the decrypted data to allow access to the user. For this purpose, all usage rights capabilities must be integrated into the application including encryption/decryption and data exchange with key management, such that the permission set of each data item will be analyzed in order to enable or disable functionalities within the application and enforce usage rights. This leads to a situation where IRM implementation strongly depends on the type of application and therefore varies from application to application.

[003] Uma das soluções existentes para implementar o IRM em uma aplicação é usar um conjunto de desenvolvimento de software (SDK - que é uma ferramenta de desenvolvimento de software que permite a criação de aplicações para uma determinada plataforma de desenvolvimento de software) do IRM que é geralmente proporcionada pelo fornecedor do IRM. Por fazer isso, o código para o IRM é desenvolvido como parte do código inerente da aplicação. Entretanto, essa solução é incômoda e onerosa, desde que ela exige modificações no código inerente de cada aplicação, especialmente em empreendimentos que usam muitas aplicações de muito fornecedores de software, a maior parte das aplicações comuns. Nesse caso, essa solução exige a cooperação desses muitos fornecedores de aplicação diferentes. Também, algumas vezes a relação entre os fornecedores da aplicação e os fornecedores do IRM torna a implementação do IRM pelo fornecedor de terceiros impossível. Além disso, nem todos os fornecedores do IRM provêm um SDK usável utilizável em todas as tecnologias de desenvolvimento, e nem todos os fornecedores das aplicações integrarão tal SDK, enquanto as modificações de terceiros da sua fonte ou binários são proibidas pelo licenciamento do fornecedor da aplicação.[003] One of the existing solutions to implement IRM in an application is to use an IRM software development suite (SDK - which is a software development tool that allows the creation of applications for a given software development platform). which is generally provided by the IRM vendor. By doing this, the code for the IRM is developed as part of the application's inherent code. However, this solution is cumbersome and costly, since it requires modifications to the inherent code of each application, especially in enterprises that use many applications from many software vendors, most of them common applications. In this case, this solution requires the cooperation of these many different application vendors. Also, sometimes the relationship between the application vendors and the IRM vendors makes IRM implementation by the third-party vendor impossible. Furthermore, not all IRM vendors provide a usable SDK usable across all development technologies, and not all application vendors will integrate such an SDK, while third-party modifications of its source or binaries are prohibited by the application vendor's licensing. .

[004] Um problema similar surge quando é necessário exibir, adi cionar e modificar a classificação dos itens de dados pelo usuário via a aplicação que renderiza os dados. Algumas vezes, a classificação dos dados é obrigatória, devido a razões de segurança. Por exemplo, se os dados contêm conteúdo suscetível (por exemplo, números de cartão de crédito), eles precisam ser classificados.[004] A similar problem arises when it is necessary to display, add and modify the classification of data items by the user via the application that renders the data. Sometimes data classification is mandatory due to security reasons. For example, if the data contains susceptible content (e.g. credit card numbers), it needs to be classified.

[005] Uma das dificuldades principais é o fato que cada aplicação tem uma UI diferente, leiaute diferentes de UIs e tecnologia diferente, o que impõe problemas de usabilidade. Um dos problemas é que é desejado prover para cada usuário de uma aplicação uma experiência de usabilidade uniforme, mesmo embora o leiaute da UI seja diferente de aplicação para aplicação. Uma das soluções convencionais para o problema de uniformidade é usar o SDK para implementar as capacidades de classificação, por exemplo, usando uma barra de ferramentas. Entretanto, isso exige modificar o leiaute da UI em cada aplicação para obter tal uniformidade. Outra solução é usar um complemento (um pedaço de software que realça outra aplicação de software), mas isso também exige integrar um complemento diferente em cada aplicação.[005] One of the main difficulties is the fact that each application has a different UI, different UI layout and different technology, which imposes usability problems. One of the problems is that it is desired to provide each user of an application with a uniform usability experience, even though the UI layout differs from application to application. One of the conventional solutions to the uniformity problem is to use the SDK to implement sorting capabilities, for example, using a toolbar. However, this requires modifying the UI layout in each application to achieve such uniformity. Another solution is to use an add-on (a piece of software that enhances another software application), but this also requires integrating a different add-on into each application.

[006] Outra maneira para integrar a capacidade da classificação é usar uma localização genérica, tal como a barra de título (um elemento de controle gráfico que é uma parte da decoração da janela - normalmente localizada no topo da janela como uma barra horizontal). Entretanto, existem algumas aplicações sem barra de título e em qualquer caso, usar uma barra de título no meio para obter a capacidade de classificação interrompe o fluxo de trabalho natural do usuário (isto é, a sequência natural que o usuário executa enquanto usando quase qualquer aplicação). Por exemplo, de modo a salvar um item de dados criado, o usuário precisará usar a barra de título. Uma interrupção similar aparece enquanto usando instantâneos (que são externos à aplicação) para prover a capacidade de classificação. Também é possível usar o clique no lado direito através de um explorador de arquivos (tal como Windows Explorer) para oferecer a capacidade de classificação, mas isso também interrompe o fluxo de trabalho natural do usuário, já que o usuário deve fechar a aplicação e usar uma ferramenta diferente.[006] Another way to integrate the sorting capability is to use a generic location, such as the title bar (a graphical control element that is a part of the window decoration - typically located at the top of the window as a horizontal bar). However, there are some applications without a title bar and in any case, using a title bar in the middle to achieve sorting capability interrupts the user's natural workflow (that is, the natural sequence that the user performs while using almost any application). For example, in order to save a created data item, the user will need to use the title bar. A similar outage appears while using snapshots (which are external to the application) to provide sorting capability. It is also possible to use right-click through a file explorer (such as Windows Explorer) to provide sorting capability, but this also interrupts the user's natural workflow, as the user must close the application and use a different tool.

[007] É um objetivo da presente invenção apresentar um método para ativar a classificação de dados e a imposição da capacidade do gerenciamento dos direitos de informação (IRM) em aplicações de software, que não interrompe o fluxo de trabalho natural do usuário.[007] It is an object of the present invention to present a method for enabling data classification and enforcement of information rights management (IRM) capability in software applications, which does not interrupt the user's natural workflow.

[008] É outro objetivo da presente invenção apresentar um méto do para ativar a classificação dos dados e a imposição das capacida- des de gerenciamento dos direitos de informação (IRM) em aplicações de software, que será genérico para todas as aplicações.[008] It is another objective of the present invention to present a method for enabling data classification and imposing information rights management (IRM) capabilities in software applications, which will be generic for all applications.

[009] É um objetivo adicional da presente invenção apresentar um método para ativar a classificação de dados e a imposição da capacidade de gerenciamento dos direitos de informação (IRM) em aplicações de software, que não exige a integração com a aplicação específica e não exige qualquer esforço de desenvolvimento, adequado para a aplicação almejada.[009] It is a further object of the present invention to present a method for enabling data classification and enforcement of information rights management (IRM) capability in software applications, which does not require integration with the specific application and does not require any development effort, suitable for the intended application.

[0010] É um objetivo adicional da presente invenção apresentar um método para possibilitar que um usuário ative a classificação e o IRM dentro do seu ecossistema sem a exigência de atualizar ou modificar as suas aplicações existentes (binárias).[0010] It is a further objective of the present invention to present a method for enabling a user to activate classification and IRM within their ecosystem without the requirement to update or modify their existing (binary) applications.

[0011] Outros objetivos e vantagens da invenção se tornarão evi dentes, à medida que a descrição prossegue.[0011] Other objectives and advantages of the invention will become evident as the description proceeds.

SUMÁRIO DA INVENÇÃOSUMMARY OF THE INVENTION

[0012] A presente invenção é direcionada para um método para ativar a classificação dos dados e/ou a imposição das capacidades de gerenciamento dos direitos de informação (IRM) e/ou criptografia em uma aplicação de software. De acordo com o método proposto, um agente é instalado em cada dispositivo terminal que executa a aplicação e um módulo de gerenciamento central que inclui o IRM, a criptografia e a política de classificação a ser imposta, se comunica com agentes que estão instalados em cada dispositivo terminal. O módulo de gerenciamento central distribui o IRM apropriado e/ou a política de classificação para cada agente e aplica a política em qualquer aplicação que funcione no dispositivo terminal.[0012] The present invention is directed to a method for enabling data classification and/or enforcement of information rights management (IRM) and/or encryption capabilities in a software application. According to the proposed method, an agent is installed on each terminal device that runs the application and a central management module that includes the IRM, encryption and classification policy to be enforced communicates with agents that are installed on each terminal device. The central management module distributes the appropriate IRM and/or classification policy to each agent and applies the policy to any application running on the endpoint device.

[0013] O agente pode ser usado para impor os direitos de uso no dispositivo terminal que executa a aplicação por: a) ao receber um item de dados ou um arquivo pela aplicação, usar o agente para identificar a aplicação e para extrair a infor- mação sobre os direitos do IRM original do arquivo, b) injetar pelo agente, uma unidade de código do tempo de execução dedicada, que não interrompe a operação natural da aplicação, no código inerente da aplicação, para interceptar as chamadas para operações na API da aplicação ou na API do sistema operacional com relação às atividades que são indicativas das operações que o usuário pode executar ao acessar o arquivo, c) antes de executar a operação exigida, intensificar o processo de funcionamento para se comunicar com o agente para receber as permissões para o item de dados acessado com relação ao usuário do acesso e d) ativar somente as operações que estão de acordo com as permissões do IRM do conteúdo renderizado.[0013] The agent can be used to enforce usage rights on the terminal device running the application by: a) upon receiving a data item or a file by the application, using the agent to identify the application and to extract the information. mation over the file's original IRM rights, b) inject by the agent, a dedicated runtime code unit, which does not interrupt the natural operation of the application, into the application's inherent code, to intercept calls to operations on the application's API. application or operating system API with respect to activities that are indicative of the operations that the user can perform when accessing the file, c) before performing the required operation, intensify the operating process to communicate with the agent to receive the permissions for the accessed data item with respect to the access user and d) enable only those operations that are in accordance with the IRM permissions of the rendered content.

[0014] Sempre que uma aplicação abre vários arquivos em janelas separadas em paralelo, o agente pode executar a correlação entre a janela e o seu arquivo correspondente e o IRM, de modo a determinar como renderizá-la, enquanto calculando direitos de acordo com a característica da janela (que pode incluir o título da janela ou o conteúdo da janela).[0014] Whenever an application opens multiple files in separate windows in parallel, the agent can perform correlation between the window and its corresponding file and the IRM, in order to determine how to render it, while calculating rights according to the window characteristic (which may include the window title or window contents).

[0015] O agente pode ser adaptado para impor a classificação dos dados no dispositivo terminal que executa a aplicação com a identificação que o usuário disparou uma operação de "salvar" ou "salvar como", clicando em um botão de "salvar como" ou usando um atalho do teclado, permitindo que o agente intervenha ao nível do sistema operacional para exibir uma janela "salvar" modificada (que pode ser criada, por exemplo, usando controles de subclasse) com a classificação e o conteúdo relacionado com o IRM.[0015] The agent may be adapted to enforce data classification on the terminal device running the application upon identification that the user has triggered a "save" or "save as" operation by clicking a "save as" button or using a keyboard shortcut, allowing the agent to intervene at the operating system level to display a modified "save" window (which can be created, for example, using subclass controls) with the classification and IRM-related content.

[0016] A classificação pode ser executada automaticamente de acordo com a política corporativa predeterminada ou determinada pelo usuário que cria, edita ou consome os dados.[0016] Classification can be performed automatically according to predetermined corporate policy or determined by the user who creates, edits or consumes the data.

[0017] A janela modificada pode ser adaptada para fornecer reco mendações para o usuário com relação à classificação exigida dos dados.[0017] The modified window can be adapted to provide recommendations to the user regarding the required classification of the data.

[0018] A classificação de um arquivo pode ser herdada toda vez quando salvando o arquivo com ou sem a mudança do formato ou do nome do arquivo.[0018] The classification of a file can be inherited every time when saving the file with or without changing the format or file name.

[0019] A janela modificada pode ser criada adicionando uma barra lateral com todas as características de classificação adicionais na janela padrão ou adicionando um botão "próximo" que precede o botão "salvar" e convida o usuário a definir a classificação apropriada.[0019] The modified window can be created by adding a sidebar with all additional sorting features to the standard window or by adding a "next" button that precedes the "save" button and invites the user to set the appropriate sort.

[0020] Ao receber um resultado não conclusivo da correlação, o IRM pode ser aplicado com o padrão mais alto para todos os arquivos que estão abertos pela aplicação. Direitos do IRM podem ser aplicados usando funcionalidades ao nível do sistema operacional padrão de fixação e substituição e APIs (tais como uma API de janela padrão disparada por um botão ao nível da aplicação ou uma API da área de transferência padrão).[0020] Upon receiving an inconclusive correlation result, the IRM can be applied with the highest standard for all files that are open by the application. IRM rights can be enforced using standard operating system-level fix-and-replace features and APIs (such as a standard window API triggered by an application-level button or a standard clipboard API).

[0021] O aumento pode ser mantido persistente dentro dos itens de dados e os aumentos podem ser herdados para versões copiadas ou editadas dos itens de dados aumentados, por: a) anular um diálogo padrão fornecido pelo sistema operacional e b) usar um módulo de núcleo para manter a aplicação operando com uma versão não aumentada do arquivo.[0021] Augmentation can be kept persistent within data items and augmentations can be inherited to copied or edited versions of the augmented data items by: a) overriding a standard dialog provided by the operating system and b) using a kernel module to keep the application operating with an unaugmented version of the file.

[0022] Um módulo ao nível do núcleo Windows pode ser usado para identificar uma transformação de um arquivo aumentado pela similaridade do conteúdo e substituir o arquivo por uma versão incluindo os aumentos do original ou adicionar os aumentos no arquivo alvo.[0022] A Windows kernel-level module can be used to identify a transformation of a file augmented by content similarity and replace the file with a version including the augmentations of the original or add the augmentations to the target file.

[0023] A presente invenção é também direcionada a um sistema implementado em computador com classificação de dados e/ou imposi- ção das capacidades de gerenciamento dos direitos de informação (IRM) e/ou criptografia em uma aplicação de software, que compreende: a) uma pluralidade de dispositivos terminais que executam a aplicação, na qual um agente está instalado, b) um computador executando um módulo de gerenciamento central que inclui o IRM, a criptografia e a política de classificação a ser imposta e se comunica com os agentes que estão instalados em cada dispositivo terminal, o módulo de gerenciamento central é adaptado para: b.1) distribuir o IRM apropriado e/ou a política de classificação para cada agente e b.2) aplicar a política em qualquer aplicação que funciona no dispositivo terminal.[0023] The present invention is also directed to a computer-implemented system with data classification and/or enforcement of information rights management (IRM) and/or encryption capabilities in a software application, which comprises: ) a plurality of terminal devices running the application, on which an agent is installed, b) a computer running a central management module that includes the IRM, encryption and classification policy to be enforced and communicates with the agents that are installed on each endpoint device, the central management module is adapted to: b.1) distribute the appropriate IRM and/or classification policy to each agent and b.2) apply the policy to any application running on the endpoint device .

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0024] Nos desenhos:[0024] In the drawings:

[0025] A figura 1 mostra um exemplo de uma interface de "salvar", com uma janela de "salvar" modificada com botões relacionados com a classificação.[0025] Figure 1 shows an example of a "save" interface, with a modified "save" window with classification-related buttons.

DESCRIÇÃO DETALHADA DAS MODALIDADES PREFERIDASDETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0026] O método para ativar a classificação de dados e a imposi ção das capacidades de gerenciamento dos direitos de informação (IRM) em aplicações de software incluídas de duas partes. A primeira parte é aumentar o item de dados com características adicionais. Tais características podem incluir criptografia do conteúdo original, adicionando políticas do IRM, adicionando classificações e qualquer outro realce de funcionalidade. Por fazer isso, uma cópia realçada do arquivo é criada, que mantém características adicionais dentro dos seus dados. Na segunda parte, no caso em que esses aumentos não são suportados pela aplicação de consumo (como quando a aplicação não tem suporte para a criptografia ou esquemas do IRM usados para au- mentar o arquivo). Desde que os aumentos devem ficar escondidos da aplicação, a presente invenção propõe um método para ativar esses aumentos para ainda ficarem ativos e preservados com as ações da aplicação.[0026] The method for enabling data classification and enforcement of information rights management (IRM) capabilities in two-part included software applications. The first part is to augment the data item with additional characteristics. Such features may include encryption of original content, adding IRM policies, adding ratings, and any other functionality enhancements. By doing this, a highlighted copy of the file is created, which maintains additional characteristics within its data. In the second part, in the case where these augmentations are not supported by the consuming application (such as when the application does not support the encryption or IRM schemes used to augment the file). Since the augmentations must be hidden from the application, the present invention proposes a method for activating these augmentations to still be active and preserved with the actions of the application.

[0027] US 2010/0146600 revela um sistema e método para prote ção automática dos dados em uma rede de computador organizacional, de acordo com o qual múltiplos perfis de informação para classificar o item de dados são definidos, bem como regras para proteger o item de dados pertencente a um perfil de informação específico. Os itens de dados são classificados de acordo com os perfis definidos da informação e um método de proteção é aplicado aos itens de dados em resposta a sua classificação e um conjunto definido de regras de políticas. A classificação do item de dados pode ser automaticamente atualizada em resposta a uma mudança no conteúdo ou localização do item de dados e o método de proteção aplicado é automaticamente preservado e adaptado, por todo o ciclo de vida do item de dados, em resposta a uma mudança na classificação ou na localização do item de dados, de acordo com as regras definidas. Portanto, o método proposto pela presente invenção pode ser usado para estender o método de proteção de dados de US 2010/0146600, de modo a integrar e implementar políticas do IRM no conjunto adicional de aplicações, formatos dos itens de dados e transformações dos itens de dados.[0027] US 2010/0146600 discloses a system and method for automatically protecting data in an organizational computer network, according to which multiple information profiles for classifying the data item are defined, as well as rules for protecting the item of data belonging to a specific information profile. Data items are classified according to defined information profiles and a protection method is applied to the data items in response to their classification and a defined set of policy rules. The classification of the data item can be automatically updated in response to a change in the content or location of the data item and the applied protection method is automatically preserved and adapted, throughout the lifecycle of the data item, in response to a change in classification or location of the data item, according to defined rules. Therefore, the method proposed by the present invention can be used to extend the data protection method of US 2010/0146600, so as to integrate and implement IRM policies in the additional set of applications, data item formats and data item transformations. data.

[0028] O método proposto pela presente invenção sugere aumen tar as aplicações embutindo capacidades na aplicação, tal que a aplicação será capaz de acessar, editar, criar e influenciar tal arquivo aumentado. Um exemplo é renderizar um item de dados criptografado por um software de terceiro não ciente do IRM, enquanto aplicando o direito de uso do IRM sobre esse software de terceiro. Além disso, a interface de aplicação do usuário é aumentada com meios para editar e adicionar aumentos no conteúdo. Tudo isso é feito sem modificar o código inerente da aplicação. Por fazer isso, a capacidade do usuário de ver, definir ou modificar a classificação dos dados e a imposição dos direitos de uso dos dados será ativada sem exigir cooperação dos fornecedores. No lugar disso, tais características são adicionadas na aplicação no tempo de execução e os binários da aplicação são mantidos como se eles tivessem sido originalmente criados.[0028] The method proposed by the present invention suggests increasing applications by embedding capabilities in the application, such that the application will be able to access, edit, create and influence such an increased file. One example is rendering an encrypted data item by non-IRM-aware third-party software while enforcing IRM's right to use that third-party software. Furthermore, the application user interface is augmented with means to edit and add augmentations to the content. All of this is done without modifying the application's inherent code. By doing so, the user's ability to view, set, or modify data classification and enforcement of data use rights will be enabled without requiring cooperation from vendors. Instead, such features are added to the application at runtime and the application binaries are maintained as if they were originally created.

[0029] A arquitetura usada inclui um módulo de gerenciamento central que inclui o IRM e políticas de classificação e se comunica com agentes que estão instalados em cada dispositivo terminal. O módulo de gerenciamento central distribui o IRM apropriado ou as políticas de classificação para cada agente, que por sua vez aplica a política a qualquer aplicação definida que funciona no dispositivo terminal.[0029] The architecture used includes a central management module that includes the IRM and classification policies and communicates with agents that are installed on each terminal device. The central management module distributes the appropriate IRM or classification policies to each agent, which in turn applies the policy to any defined application running on the endpoint device.

ATIVAÇÃO DAS CAPACIDADES DO IRM EM APLICAÇÕES EM EXECUÇÃOACTIVATION OF IRM CAPABILITIES IN RUNNING APPLICATIONS

[0030] Um aumento sugerido da invenção é adicionar capacidades do IRM a qualquer formato e aplicação. A imposição do IRM (ou direitos de uso) em um dispositivo terminal é feita por um agente implementando a invenção. Ao receber um item de dados, tal como um arquivo (que é protegido por IRM) pela aplicação, o agente identifica a aplicação (por exemplo, de acordo com o processo que é criado pela aplicação em execução ou de acordo com a sua assinatura digital) e extrai informação sobre a criptografia original do arquivo. Uma unidade de código de tempo de execução dedicada (que não interrompe a operação natural da aplicação) é injetada pelo agente no código inerente da aplicação, de modo a executar o enganchamento para interceptar as chamadas para operações padrões na API da aplicação ou no sistema operacional, tal como atividades da área de transferência (de modo a identificar tentativas de cópia), atividades de enrolamento da impressora (de modo a identificar tentativas de impressão) e outras atividades predeterminadas que são indicativas das operações que o usuário pode executar ao acessar o arquivo. Antes de executar a operação exigida, o processo de funcionamento se comunica com o agente para obter as permissões para o item de dados acessado com relação ao usuário do acesso e possibilita somente operações que estão de acordo com as permissões do IRM do conteúdo renderizado. As permissões e a política do IRM estão embutidas dentro do arquivo que é protegido pelo IRM. Por exemplo, é possível que o usuário "A" que acessa um arquivo seja capaz de vê-lo no seu dispositivo terminal, mas não tenha permissão de imprimir o seu conteúdo, enquanto outro usuário "B" que acessa o mesmo arquivo via o seu dispositivo terminal será capaz de ver e imprimir o conteúdo.[0030] A suggested enhancement of the invention is to add IRM capabilities to any format and application. The imposition of IRM (or usage rights) on a terminal device is done by an agent implementing the invention. Upon receiving a data item, such as a file (which is IRM protected) by the application, the agent identifies the application (for example, according to the process that is created by the running application or according to its digital signature ) and extracts information about the file's original encryption. A dedicated runtime code unit (which does not interrupt the natural operation of the application) is injected by the agent into the application's inherent code in order to perform hooking to intercept calls to standard operations in the application's API or operating system , such as clipboard activities (to identify copy attempts), printer winding activities (to identify print attempts), and other predetermined activities that are indicative of the operations the user can perform when accessing the file . Before performing the required operation, the health process communicates with the agent to obtain the permissions for the accessed data item with respect to the access user and allows only operations that are in accordance with the IRM permissions of the rendered content. IRM permissions and policy are embedded within the file that is protected by IRM. For example, it is possible that user "A" who accesses a file is able to view it on his terminal device, but is not allowed to print its contents, while another user "B" who accesses the same file via his terminal device will be able to view and print the content.

[0031] Algumas aplicações (tal como Adobe Acrobat Reader) são capazes de renderizar vários documentos dentro de um único processo simultaneamente, enquanto apresentando cada documento em uma janela separada. Nesse caso, o agente executará a correlação entre os arquivos acessados e sua política de IRM correspondente e a janela específica mostrando o documento, de modo a determinar como aplicar os direitos de uso nessa janela. Isso considera as propriedades da janela, como título, conteúdo, janelas pai e filho, tempo de criação e assim por diante. No caso em que o agente não pode igualar positivamente a janela do documento com um item único de dados, o IRM com o padrão mais alto será usado para a janela de todos os documentos identificados como possíveis igualdades para o conteúdo da janela.[0031] Some applications (such as Adobe Acrobat Reader) are capable of rendering multiple documents within a single process simultaneously, while presenting each document in a separate window. In this case, the agent will perform correlation between the accessed files and their corresponding IRM policy and the specific window showing the document in order to determine how to apply the usage rights in that window. This considers window properties such as title, content, parent and child windows, creation time, and so on. In the case where the agent cannot positively match the document window with a single data item, the IRM with the highest default will be used for the window of all documents identified as possible matches for the window contents.

[0032] Por exemplo, ao acessar um arquivo de texto (que foi modi ficado para ser criptografado, atribuído com direitos do IRM ou aplicado com outros aumentos externos ao conteúdo do arquivo) pela aplicação de edição de texto Notepad da Microsoft, o agente no dispositivo terminal identifica o arquivo como contendo tais aumentos. Isso pode ser feito por um acionador de filtro do sistema de arquivos que é uma parte do agente. Se o arquivo é acessado por uma aplicação que deve ter acesso de texto claro ao arquivo (isto é, "de confiança"), ele então para a operação aberta das aplicações (IRM_MJ_Create no Windows) e supre a referência do arquivo para o agente. O agente então limpa o arquivo dos aumentos que não são suportados pela aplicação e, no caso da criptografia, o agente usa a identidade do usuário para recuperar a chave apropriada, de modo a permitir a decriptografia do arquivo. A réplica limpa é armazenada em uma maneira segura, tal que somente o processo especificado pode acessá-la. Depois que essa operação é feita, o acionador analisa novamente a chamada do OS feita pelo Notepad para abrir o arquivo, silenciosamente redirecionando a chamada para a réplica decriptografada. Como tal, a aplicação está realmente acessando o arquivo limpo e é capaz de usar o seu conteúdo. Se esse usuário tem permissões que somente permitem que ele veja os dados, porém bloqueia a impressão ou a cópia, por exemplo, o Notepad é ainda capaz de renderizar o conteúdo da cópia segura decriptografada, então o usuário será capaz de ver o conteúdo. Entretanto, o código injetado no Notepad não permitirá que ele imprima o arquivo ou copie o conteúdo. Se esse usuário não tem permissões que proporcionem qualquer nível de acesso aos dados, o Notepad não terá permissão para exibir o conteúdo (já que o agente não o decriptografará para ele), mesmo se o usuário clicar duas vezes sobre ele. Os métodos para interceptar o item de dados podem variar. Ele pode suportar acesso ao arquivo por outros meios, tal como um navegador da rede ou outros meios de armazenamento e rede.[0032] For example, when accessing a text file (which has been modified to be encrypted, assigned with IRM rights, or applied other external augmentations to the file contents) by Microsoft's Notepad text editing application, the agent in the terminal device identifies the file as containing such augmentations. This can be done by a file system filter trigger that is a part of the agent. If the file is accessed by an application that must have clear text access to the file (i.e., "trusted"), it then stops the applications open operation (IRM_MJ_Create on Windows) and supplies the file reference to the agent. The agent then cleans the file of augmentations that are not supported by the application, and in the case of encryption, the agent uses the user's identity to retrieve the appropriate key to allow decryption of the file. The clean replica is stored in a secure manner such that only the specified process can access it. After this operation is done, the trigger reparses the OS call made by Notepad to open the file, silently redirecting the call to the decrypted replica. As such, the application is actually accessing the clean file and is able to use its contents. If that user has permissions that only allow them to see the data but block printing or copying, for example, Notepad is still able to render the contents of the decrypted secure copy, then the user will be able to see the contents. However, the code injected into Notepad will not allow it to print the file or copy the contents. If that user does not have permissions that provide any level of access to the data, Notepad will not have permission to display the content (since the agent will not decrypt it for them), even if the user double-clicks it. The methods for intercepting the data item may vary. It may support access to the file by other means, such as a web browser or other storage and networking media.

[0033] De modo a não ser dependente da aplicação e não inter romper o fluxo de trabalho natural do usuário, o método proposto pela presente invenção usa funcionalidades ao nível do sistema operacional padrão de fixação e substituição e APIs (ao invés do que ao nível da aplicação). Por exemplo, uma API de impressão unificada é proporcionada pelo sistema operacional Windows. Essa chamada da API po- de ser anulada pelo código injetado pelo agente em uma aplicação de terceiros, de modo a aplicar direitos do IRM e impedir a impressão de-sautorizada do conteúdo a partir dessa aplicação. Outro exemplo é a janela padrão "salvar como" que é fornecida pelo sistema operacional Windows via a API do Windows padrão, geralmente disparada por botões "salvar"/"salvar como" ao nível da aplicação. Essa API pode ser anulada de modo a prover a interface do usuário para salvamento, além de acompanhar o formato ou a transformação de localização do conteúdo. Pelo acompanhamento de tal transformação, o aumento do arquivo pode ser preservado nas operações de salvar como.[0033] In order to not be application dependent and not interrupt the user's natural workflow, the method proposed by the present invention uses features at the standard operating system level of fixing and replacing and APIs (rather than at the level application). For example, a unified printing API is provided by the Windows operating system. This API call can be overridden by code injected by the agent into a third-party application to enforce IRM rights and prevent unauthorized printing of content from that application. Another example is the standard "save as" window that is provided by the Windows operating system via the standard Windows API, usually triggered by "save"/"save as" buttons at the application level. This API can be overridden to provide the user interface for saving, as well as tracking the format or location transformation of the content. By tracking such a transformation, file growth can be preserved in save as operations.

[0034] Outro exemplo é uma API da área de transferência padrão, como a fornecida por Windows, que pode ser anulada para impor um direito do IRM não admitindo a cópia de conteúdo de um documento seguro via os serviços do sistema, tais como área de transferência e arrastar e soltar.[0034] Another example is a standard clipboard API, such as that provided by Windows, which can be overridden to enforce an IRM right by disallowing copying of content from a secure document via system services, such as clipboard. transfer and drag and drop.

[0035] Quando uma aplicação abre um arquivo protegido pelo IRM, os direitos de uso do arquivo são recuperados. Quando uma ação que é coberta por um direito do IRM ocorre, os detalhes do evento são inspecionados como a aplicação na qual o evento aconteceu, o título da janela ou uma janela predecessora na qual o evento ocorreu, o ID do processo, incluindo o ID do processo pai e filho que disparou ou relacionado com o evento. Esses detalhes são usados para deduzir o arquivo original que mantém os dados que o evento exige. Depois, os direitos associados com o arquivo são avaliados para verificar se o evento deve ser ativado ou bloqueado.[0035] When an application opens an IRM-protected file, the file's usage rights are recovered. When an action that is covered by an IRM right occurs, details of the event are inspected such as the application in which the event occurred, the title of the window or a predecessor window in which the event occurred, the process ID, including the of the parent and child process that triggered or related to the event. These details are used to deduce the original file that holds the data that the event requires. Then, the rights associated with the file are evaluated to see whether the event should be enabled or blocked.

[0036] Além das imposições dos direitos do IRM, a invenção apre senta métodos para manter o aumento persistente dentro dos itens de dados e para herdar aumentos em versões copiadas ou editadas dos itens de dados aumentados, incluindo "cópias lógicas" mantendo os mesmos dados, porém diferindo no seu formato binário. Isso se torna possível, por exemplo, anulando o diálogo padrão de salvar como provido pelo sistema operacional. Por isso, o sistema pode identificar para onde, e em qual formato, uma cópia do item de dados é salva e copiar os aumentos do arquivo fonte na sua cópia. Tal herança dos aumentos pode ser feita sem interromper o fluxo normal do usuário, enquanto um módulo de núcleo pode ser usado para manter sempre a aplicação funcionando com uma versão não aumentada do arquivo.[0036] In addition to impositions of IRM rights, the invention features methods for maintaining persistent augmentation within data items and for inheriting augmentations in copied or edited versions of the augmented data items, including "logical copies" maintaining the same data , but differing in their binary format. This becomes possible, for example, by overriding the default save dialog as provided by the operating system. Therefore, the system can identify where, and in what format, a copy of the data item is saved and copy the augments from the source file into its copy. Such inheritance of augmentations can be done without interrupting the normal user flow, while a core module can be used to always keep the application running with a non-augmented version of the file.

[0037] Além disso, isso pode ser combinado com um módulo ao nível de núcleo do Windows, identificando uma transformação de um arquivo aumentado pela similaridade do conteúdo e substituindo o arquivo por uma versão incluindo os aumentos do original ou adicionando os aumentos no alvo salvar como.[0037] Additionally, this can be combined with a Windows kernel-level module identifying a transformation of a file augmented by content similarity and replacing the file with a version including the augmentations from the original or adding the augmentations to the target save. as.

EXEMPLO DA AVALIAÇÃO DOS DIREITOSEXAMPLE OF RIGHTS ASSESSMENT

[0038] Assumindo que nós temos uma aplicação de terceiros que abre um arquivo de conteúdo para o qual o aumento do IRM impedindo que o usuário final copie o conteúdo desse arquivo foi adicionado. Nesse caso, quando uma operação de cópia é tentada pela aplicação, como uma resposta para a entrada do usuário ou, de forma programática, as APIs do sistema operacional padrão serão chamadas para armazenar o conteúdo dentro de uma "área de transferência" proporcionada pelo sistema operacional. Tais chamadas da API são interceptadas por um módulo de código do tempo de execução injetado pela invenção na aplicação do terceiro. É então decidido se permitir essa ação ou bloqueá-la, tudo isso depende do direito de princípio.[0038] Assume we have a third-party application that opens a content file to which the IRM increase preventing the end user from copying the content of that file has been added. In this case, when a copy operation is attempted by the application, either as a response to user input or programmatically, standard operating system APIs will be called to store the content within a system-provided "clipboard." operational. Such API calls are intercepted by a runtime code module injected by the invention into the third-party application. It is then decided whether to allow this action or block it, it all depends on the law in principle.

[0039] De modo a decidir isso, a informação dos processos da aplicação é usada, bem como os dados da janela de aplicação e/ou os títulos da janela. Esses são usados para deduzir o arquivo original do qual os dados são copiados e de modo a avaliar se o direito de ‘cópia’ é permitido para esse usuário pela política dos direitos do IRM que aumentam o arquivo. Por exemplo, na aplicação de edição de texto Notepad da Microsoft, o título das janelas mantém o nome do arquivo renderizado pelo Notepad. O título da janela, em combinação com o acompanhamento dos arquivos sendo acessados pelo Notepad, nos permite determinar qual arquivo o Notepad atualmente renderiza. Depois que o arquivo é deduzido, os seus aumentos, como os direitos do IRM, podem ser aplicados na instância em execução do Notepad. Por isso, as operações de aplicação controladas pelos direitos do IRM e executadas pelo Notepad como imprimir, arrastar, impressão de tela, salvar como e salvar podem ser impostas de acordo com os aumentos encontrados dentro dos arquivos de dados consumidos pelo Notepad.[0039] In order to decide this, application process information is used, as well as application window data and/or window titles. These are used to deduce the original file from which the data is copied and in order to assess whether the right to 'copy' is permitted for that user by the IRM rights policy that augments the file. For example, in Microsoft's Notepad text editing application, the title of windows retains the name of the file rendered by Notepad. The window title, in combination with tracking the files being accessed by Notepad, allows us to determine which file Notepad currently renders. Once the file is deducted, its increases, such as IRM entitlements, can be applied to the running instance of Notepad. Therefore, application operations controlled by IRM rights and performed by Notepad such as print, drag, screen print, save as, and save can be enforced according to the increments found within the data files consumed by Notepad.

[0040] Em alguns casos, existe somente informação parcial sobre a localização do arquivo original do evento, como um nome de arquivo, mas não a trajetória completa do arquivo. Se, além disso, a aplicação abre vários arquivos que têm o mesmo nome de arquivo, porém direitos diferentes, vários arquivos possíveis podem ser candidatos dos quais ler os aumentos. Isso pode acontecer, por exemplo, quando impondo os direitos do IRM na aplicação do Adobe Reader. O Adobe Reader renderiza o título do documento dentro do seu título de janela. Embora isso possa nos permitir deduzir o arquivo renderizado pelo Adobe Reader, a partir do conjunto de arquivos acessados pelo Adobe Reader, pela interpretação dos seus títulos respectivos, podem existir mais do que um candidato de arquivos correspondentes. Nesse caso, os direitos de todos os candidatos de arquivos possíveis são avaliados e o conjunto mais restritivo de direitos é usado.[0040] In some cases, there is only partial information about the location of the original event file, such as a file name, but not the complete trajectory of the file. If, in addition, the application opens several files that have the same file name but different rights, several possible files may be candidates from which to read increases. This can happen, for example, when enforcing IRM rights in the Adobe Reader application. Adobe Reader renders the document title within its window title. Although this may allow us to deduce the file rendered by Adobe Reader from the set of files accessed by Adobe Reader, by interpreting their respective titles, there may be more than one candidate matching file. In this case, the rights of all possible file candidates are evaluated and the most restrictive set of rights is used.

ATIVAÇÃO DAS CAPACIDADES DE CLASSIFICAÇÃOACTIVATION OF CLASSIFICATION CAPABILITIES

[0041] Similarmente, as capacidades de classificação podem ser ativadas e usadas para impor o IRM (ou direitos de uso) em um dispositivo terminal pelo agente ou alternativamente opera somente sem a imposição do IRM adicional. Um método de ativação da classificação é pela identificação (pelo código de enganchamento injetado pelo agente para anular uma API de salvar do sistema operacional padrão) que uma aplicação está mostrando uma interface de salvar, o agente exibirá uma janela "salvar" modificada com botões relacionados com a classificação, como mostrado na figura 1.[0041] Similarly, the classification capabilities may be activated and used to enforce IRM (or usage rights) on a terminal device by the agent or alternatively operate only without imposing additional IRM. One method of enabling sorting is by identifying (by hooking code injected by the agent to override a standard operating system save API) that an application is showing a save interface, the agent will display a modified "save" window with related buttons with the classification, as shown in figure 1.

[0042] Um exemplo da implementação é injetando uma unidade de código (um DLL e/ou um encadeamento) no espaço de memória da aplicação. Isso permite obter acesso ao espaço do endereço da aplicação. No caso em que o código dedicado é injetado na aplicação, é possível continuar anulando qualquer função dinamicamente vinculada (por exemplo, função da API do Windows) com nossas funções. Isso proporciona a capacidade de substituir ou modificar o comportamento de uma aplicação e inserir o código dedicado além de ou no lugar da própria aplicação. Por exemplo, o enganchamento da API do Windows pode ser usado para interceptar a criação de instâncias da caixa de diálogo salvar como padrão proporcionada pelo Windows.[0042] An example of the implementation is injecting a unit of code (a DLL and/or a thread) into the application's memory space. This allows you to gain access to the application's address space. In the case where dedicated code is injected into the application, it is possible to continue overriding any dynamically linked function (e.g. Windows API function) with our functions. This provides the ability to replace or modify the behavior of an application and insert dedicated code in addition to or in place of the application itself. For example, Windows API hooking can be used to intercept the instantiation of the default save as dialog box provided by Windows.

[0043] Geralmente, janelas padrões proporcionadas pelo sistema operacional terão APIs padrões, de modo a permitir adicionar elementos (novas UIs) na janela. Esse é o caso, por exemplo, na caixa de diálogo "salvar como" padrão do Windows. No caso quando tal interface (para customizar o controle não é fornecida) ou quando ela é muito limitada para o uso desejado, a subclasse da janela pode ser usada para mudar ou adicionar características na janela da subclasse. Dessa maneira, é possível forçar a aplicação em execução a chamar uma janela substituta, que pode ser remodelada para incluir todas as novas características de classificação.[0043] Generally, standard windows provided by the operating system will have standard APIs, in order to allow adding elements (new UIs) to the window. This is the case, for example, in the standard Windows "save as" dialog box. In the case when such an interface (for customizing the control is not provided) or when it is too limited for the desired use, the window subclass can be used to change or add features to the subclassed window. This way, you can force the running application to call a replacement window, which can be reshaped to include all the new sorting features.

[0044] A classificação pode ser automática (predeterminada de acordo com a política corporativa) usando a análise de conteúdo, a análise de contexto (tais como a identidade do usuário, a fonte da aplicação, metadados, IP ou quaisquer outros metadados que possam ser analisados a partir do evento de acesso dos dados ou do ambiente de computador) ou determinada pelo usuário que, na maior parte dos casos, edita ou consome os dados. O sistema pode também usar a janela modificada para fornecer recomendações para o usuário quanto à classificação exigida (tais como "confidencial", "interna", "dados dos recursos humanos", "secreta" ou "supersecreta").[0044] Classification can be automatic (predetermined according to corporate policy) using content analysis, context analysis (such as user identity, application source, metadata, IP or any other metadata that may be analyzed based on the data access event or computer environment) or determined by the user who, in most cases, edits or consumes the data. The system can also use the modified window to provide recommendations to the user regarding the required classification (such as "confidential", "internal", "human resources data", "secret" or "top secret").

[0045] Com a conclusão da criação do conteúdo, o usuário nor malmente o salva pressionando o botão "salvar". Nesse caso, a janela modificada exibirá a classificação automática para o usuário ou o convidará a definir ou selecionar a classificação a partir de uma lista. Se a classificação não foi automaticamente definida, e é exigida pela política da organização, o usuário pode ser impedido de salvar o item de dados, até a seleção de uma classificação apropriada. Dessa maneira, as aplicações podem ser aumentadas pela capacidade de classificar os dados, editar a classificação dos dados e apresentá-los para os usuários finais em um método completamente inerente.[0045] Upon completion of content creation, the user normally saves it by pressing the "save" button. In this case, the modified window will display the automatic sorting to the user or invite the user to set or select the sorting from a list. If the classification has not been automatically set, and is required by organization policy, the user may be prevented from saving the data item until an appropriate classification is selected. In this way, applications can be augmented by the ability to classify data, edit data classification, and present it to end users in a completely inherent method.

[0046] Outra maneira para modificar uma janela da aplicação é adicionar uma barra lateral a ela, que ficará localizada e ajustada como se ela fosse uma extensão gráfica natural da janela. Nesse caso, todas as características de classificação adicionais serão exibidas na barra lateral, sem modificar os elementos da UI original.[0046] Another way to modify an application window is to add a sidebar to it, which will be located and adjusted as if it were a natural graphical extension of the window. In this case, all additional sorting features will be displayed in the sidebar without modifying the original UI elements.

[0047] Outra maneira para adicionar a capacidade de classificação a uma janela da aplicação é substituir o botão "salvar" por um botão "próximo", que convida o usuário a definir a classificação apropriada. Nesse caso, o botão "salvar" será exibido somente a seguir, para permitir que o usuário complete o salvamento do arquivo.[0047] Another way to add sorting capability to an application window is to replace the "save" button with a "next" button, which invites the user to set the appropriate sort. In this case, the "save" button will only be displayed next, to allow the user to complete saving the file.

PERSISTÊNCIA DOS AUMENTOS DO ARQUIVOPERSISTENCE OF FILE INCREASES

[0048] Enquanto trabalhando com um item de dados aumentado, o item pode ser modificado (salvo) pela aplicação de consumo. De acordo com a invenção, é importante preservar todos os aumentos, incluindo o nível de criptografia e os direitos de uso (derivados das permis- sões do IRM), classificação de um arquivo (ou outro item de dados) ou outros metadados, toda vez quando salvando o arquivo usando a operação "salvar". Isso é necessário desde que um pouco ou todos os aumentos do item de dados foram retirados antes de fornecer acesso para a aplicação ao item de dados e pode ser perdido com o salvamento. Isso pode ser feito pela identificação, por exemplo, da trajetória na qual um arquivo é salvo e reaplicando os aumentos.[0048] While working with an augmented data item, the item may be modified (saved) by the consuming application. According to the invention, it is important to preserve all enhancements, including the encryption level and usage rights (derived from IRM permissions), classification of a file (or other data item), or other metadata, every time when saving the file using the "save" operation. This is necessary since some or all of the data item's augmentations were stripped before providing the application access to the data item and may be lost upon saving. This can be done by identifying, for example, the trajectory in which a file is saved and reapplying the augmentations.

[0049] Também, em alguns casos, o item de dados pode ser salvo por uma aplicação sob nomes diferentes, em localizações diferentes e/ou em formatos de arquivos diferentes. Isso é geralmente feito usando uma interface de "salvar como". Quando tal operação ocorre, é necessário preservar os aumentos do arquivo original. A identificação de tais instâncias transformadas do item de dados é difícil, desde que o item de dados pode mudar o seu formato ou representação interna com a execução da transformação ("salvar como") e assim ele não pode ser simplesmente identificado por seu conteúdo binário ou por sua localização (trajetória).[0049] Also, in some cases, the data item may be saved by an application under different names, in different locations and/or in different file formats. This is usually done using a "save as" interface. When such an operation occurs, it is necessary to preserve the increases of the original file. Identification of such transformed instances of the data item is difficult, since the data item may change its format or internal representation upon execution of the transformation ("save as") and thus it cannot simply be identified by its binary content. or by its location (trajectory).

[0050] Uma implementação possível de tal processo de herança usa a integração com a caixa de diálogo "salvar como" comum do sistema operacional, de modo a identificar uma operação de "salvar como" do item de dados em um novo nome, localização e/ou formato.[0050] One possible implementation of such an inheritance process uses integration with the operating system's common "save as" dialog box so as to identify a "save as" operation of the data item in a new name, location, and /or format.

[0051] Um exemplo do processo é quando um usuário abre primei ro um arquivo PDF protegido pelo IRM e classificado pelo Adobe Reader e depois executa uma operação de "salvar como" para salvar o arquivo como um arquivo de texto simples, sob um nome diferente e em uma localização diferente do que o arquivo original. A integração no diálogo "salvar como" permite a identificação de tal operação "salvar como" e a aplicação da classificação e dados do IRM no arquivo de texto simples salvo como.[0051] An example of the process is when a user first opens an IRM-protected PDF file classified by Adobe Reader and then performs a "save as" operation to save the file as a plain text file under a different name. and in a different location than the original file. Integration into the "save as" dialog allows identification of such a "save as" operation and the application of IRM classification and data to the saved as plain text file.

[0052] Embora algumas modalidades da invenção tenham sido descritas por meio de ilustração, será evidente que a invenção pode ser executada com muitas modificações, variações e adaptações e com o uso de numerosos equivalentes ou soluções alternativas que estão dentro do escopo dos versados na técnica, sem exceder o escopo das reivindicações.[0052] Although some embodiments of the invention have been described by way of illustration, it will be evident that the invention can be carried out with many modifications, variations and adaptations and with the use of numerous equivalents or alternative solutions that are within the scope of those skilled in the art , without exceeding the scope of the claims.

Claims (17)

1. Método para ativar classificação de dados e/ou imposição de uma ou mais políticas de gerenciamento de direitos de informação (IRM) e/ou criptografia em um item de dados em uma aplicação, caracterizado pelo fato de que compreende: a) instalar um agente em cada dispositivo terminal que executa a aplicação; b) proporcionar um módulo de gerenciamento central que inclui a uma ou mais políticas de IRM e/ou criptografia a ser imposta, e se comunica com o agente que está instalado em cada dispositivo terminal, c) distribuir, pelo módulo de gerenciamento central, a uma ou mais políticas de IRM e/ou criptografia para cada agente; e em resposta a uma indicação de seleção de pelo menos uma de uma ou mais políticas de IRM e/ou criptografia d) aplicar a pelo menos uma política selecionada ao item de dados na aplicação que é executado no dispositivo terminal e acessa o item de dados, em que a aplicação da pelo menos uma política selecionada compreende: injetar uma unidade de código de tempo de execução cor-respondente à pelo menos uma política selecionada no código de tempo de execução inerente da aplicação; substituir uma parte do código de tempo de execução inerente pela unidade de código de tempo de execução injetada durante o tempo de execução da aplicação; modificar uma interface de usuário "salvar", para salvar o item de dados no dispositivo terminal, para incluir um elemento que indica a selecionada pelo menos uma de uma ou mais políticas de IRM e/ou criptografia; e quando o item de dados é salvo no dispositivo terminal, aumentando o item de dados com base na política selecionada pelo menos pelo código de tempo de execução injetado durante o tempo de execução da aplicação, de modo que um fluxo de trabalho natural da aplicação não seja interrompido.1. Method for enabling data classification and/or imposing one or more information rights management (IRM) policies and/or encryption on a data item in an application, characterized by the fact that it comprises: a) installing a agent on each terminal device that runs the application; b) provide a central management module that includes the one or more IRM and/or encryption policies to be enforced, and communicates with the agent that is installed on each terminal device, c) distribute, through the central management module, the one or more IRM and/or encryption policies for each agent; and in response to an indication of selecting at least one of one or more IRM and/or encryption policies d) applying the at least one selected policy to the data item in the application that runs on the terminal device and accesses the data item , wherein applying the at least one selected policy comprises: injecting a unit of runtime code corresponding to the at least one selected policy into the inherent runtime code of the application; replacing a portion of the inherent runtime code with the runtime code unit injected during application runtime; modifying a "save" user interface, for saving the data item to the terminal device, to include an element indicating the selected at least one of one or more IRM and/or encryption policies; and when the data item is saved on the terminal device, augmenting the data item based on the selected policy at least by runtime code injected during application runtime, so that a natural application workflow does not be interrupted. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o agente impõe direitos de uso no dispositivo terminal que executa a aplicação por: a) mediante recepção de um item de dados ou um arquivo pela aplicação, usar o agente para identificar a aplicação e para extrair a informação sobre as políticas de IRM e/ou criptografia; b) injetar pelo agente, uma unidade de código de tempo de execução dedicada, que não interrompe a operação natural da aplicação, no código inerente da aplicação, para interceptar chamadas para operações na API de aplicação ou na API de sistema operacional com relação às atividades que são indicativas de operações que o usuário pode realizar mediante acesso ao arquivo; c) antes de realizar uma operação exigida, intensificar o processo de funcionamento para se comunicar com o agente para receber as permissões para o item de dados acessado com relação ao usuário do acesso; e d) ativar somente operações que estão de acordo com as permissões de IRM do item de dados.2. Method according to claim 1, characterized by the fact that the agent imposes usage rights on the terminal device running the application by: a) upon receipt of a data item or a file by the application, using the agent to identify the application and to extract information about IRM and/or encryption policies; b) inject by the agent, a dedicated runtime code unit, which does not interrupt the natural operation of the application, into the application's inherent code, to intercept calls to operations in the application API or operating system API with respect to the activities which are indicative of operations that the user can perform upon accessing the file; c) before performing a required operation, intensify the operating process to communicate with the agent to receive permissions for the accessed data item with respect to the access user; and d) enable only operations that comply with the data item's IRM permissions. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que sempre que uma aplicação abre vários arquivos em janelas separadas em paralelo, permitindo que o agente realize correlação entre a janela e o seu arquivo correspondente e IRM, a fim a determinar como renderizá-la, enquanto calcula direitos de acordo com a característica da janela correspondente.3. Method, according to claim 1, characterized by the fact that whenever an application opens several files in separate windows in parallel, allowing the agent to perform correlation between the window and its corresponding file and IRM, in order to determine how to render it, while calculating rights according to the characteristic of the corresponding window. 4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o agente impõe classificação de dados no dispositivo terminal que executa a aplicação mediante identificação de que o usu- ário disparou uma operação de "salvar" ou "salvar como", clicando em um botão de "salvar como" ou usando um atalho de teclado, permitindo que o agente intervenha no nível de sistema operacional para exibir uma janela "Salvar" modificada com classificação e conteúdo relacionado com IRM.4. Method, according to claim 1, characterized by the fact that the agent imposes data classification on the terminal device that executes the application upon identification that the user has triggered a "save" or "save as" operation, by clicking a "save as" button or using a keyboard shortcut, allowing the agent to intervene at the operating system level to display a modified "Save" window with classification and IRM-related content. 5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a janela modificada é criada usando Controles de Subclasse.5. Method according to claim 4, characterized by the fact that the modified window is created using Subclass Controls. 6. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a classificação é realizada automaticamente de acordo com a política corporativa predeterminada ou determinada pelo usuário que cria, edita ou consome os dados.6. Method, according to claim 4, characterized by the fact that the classification is performed automatically in accordance with the predetermined corporate policy or determined by the user who creates, edits or consumes the data. 7. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a janela modificada proporciona recomendações para o usuário com relação à classificação do item de dados.7. Method according to claim 4, characterized by the fact that the modified window provides recommendations to the user regarding the classification of the data item. 8. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a classificação de um arquivo é herdada toda vez quando salva o arquivo com ou sem mudar o formato ou o nome do arquivo.8. Method according to claim 4, characterized by the fact that the classification of a file is inherited every time when saving the file with or without changing the file format or name. 9. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a janela modificada é criada adicionando uma barra lateral com todas as características de classificação adicionais na janela padrão.9. The method of claim 4, wherein the modified window is created by adding a sidebar with all additional sorting features to the default window. 10. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que a janela modificada é criada adicionando um botão "Próximo" que precede o botão "Salvar" e convida o usuário a definir a classificação apropriada.10. The method of claim 4, wherein the modified window is created by adding a "Next" button that precedes the "Save" button and invites the user to set the appropriate classification. 11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a característica de uma janela inclui um título da janela ou o conteúdo da janela.11. The method of claim 1, wherein the feature of a window includes a window title or window content. 12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende mediante recepção de um resultado não conclusivo da correlação, aplicar o IRM com o padrão mais alto para todos os arquivos que estão abertos pela aplicação.12. Method, according to claim 1, characterized by the fact that it further comprises upon receipt of an inconclusive correlation result, applying the IRM with the highest standard to all files that are opened by the application. 13. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que direitos de IRM são aplicados usando funcionalidades de nível de sistema operacional padrão de fixação e substituição e APIs.13. The method of claim 1, wherein IRM rights are enforced using standard fix-and-replace operating system-level functionality and APIs. 14. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que a API é uma API de Windows padrão, disparada por um botão no nível da aplicação ou uma API da área de transferência padrão.14. The method of claim 13, wherein the API is a standard Windows API triggered by an application-level button or a standard clipboard API. 15. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que ainda compreende manter aumento persistente dentro de itens de dados, e herdar aumentos em versões copiadas ou editadas de itens de dados aumentados, por: a) anular um diálogo padrão proporcionado pelo sistema operacional; e b) usar um módulo de núcleo para manter a aplicação operando com uma versão não aumentada do arquivo.15. The method of claim 13, further comprising maintaining persistent augmentation within data items, and inheriting augmentations in copied or edited versions of augmented data items, by: a) overriding a standard dialog provided by the operating system; and b) use a kernel module to keep the application operating with an unaugmented version of the file. 16. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que ainda compreende: a) usar um módulo ao nível de Núcleo de Windows, para identificar uma transformação de um arquivo aumentado pela similaridade de conteúdo; e b) substituir o arquivo por uma versão incluindo os aumentos do original ou adicionar os aumentos no arquivo alvo.16. Method, according to claim 15, characterized by the fact that it further comprises: a) using a module at the Windows Kernel level, to identify a transformation of a file increased by content similarity; and b) replace the file with a version including the augmentations of the original or add the augmentations to the target file. 17. Sistema implementado em computador com classificação de dados e/ou imposição de um ou mais políticas de gerenciamento de direitos de informação (IRM) e/ou criptografia em um item de da- dos em uma aplicação, caracterizado pelo fato de que compreende: a) uma pluralidade de dispositivos terminais que executam a dita aplicação, na qual um agente está instalado; b) um computador executando um módulo de gerenciamento central que inclui uma ou mais políticas de IRM e/ou criptografia a ser imposta, e se comunica com agentes que estão instalados em cada dispositivo terminal, o módulo de gerenciamento central é adaptado para: b.1) distribuir um ou mais políticas de IRM e/ou criptografia para cada agente; e em resposta a uma indicação de seleção de pelo menos uma de uma ou mais políticas de IRM e/ou criptografia, b.2) aplicar a pelo menos política selecionada ao item de dados na aplicação que é executado no dispositivo terminal e acessa o item de dados, em que a aplicação da política selecionada compreende: injetar uma unidade de código de tempo de execução cor-respondente à pelo menos uma política selecionada no código de tempo de execução inerente da aplicação; substituir uma parte do código de tempo de execução inerente pela unidade de código de tempo de execução injetada durante o tempo de execução da aplicação; modificar uma interface de usuário "salvar", para salvar o item de dados no dispositivo terminal, para incluir um elemento que indica o selecionado pelo menos uma de uma ou mais políticas de IRM e/ou criptografia; e quando o item de dados é salvo no dispositivo terminal, aumentando o item de dados com base na pelo menos uma política selecionada pelo código de tempo de execução injetado durante o tempo de execução da aplicação, de modo que um fluxo de trabalho natural da aplicação não seja interrompido.17. Computer-implemented system with data classification and/or imposition of one or more information rights management (IRM) policies and/or encryption on a data item in an application, characterized by the fact that it comprises: a) a plurality of terminal devices executing said application, in which an agent is installed; b) a computer running a central management module that includes one or more IRM and/or encryption policies to be enforced, and communicates with agents that are installed on each terminal device, the central management module is adapted to: b. 1) distribute one or more IRM and/or encryption policies to each agent; and in response to an indication of selecting at least one of one or more IRM and/or encryption policies, b.2) applying the at least selected policy to the data item in the application that runs on the terminal device and accesses the item data, wherein applying the selected policy comprises: injecting a unit of runtime code corresponding to at least one selected policy into the inherent runtime code of the application; replacing a portion of the inherent runtime code with the runtime code unit injected during application runtime; modifying a "save" user interface, for saving the data item on the terminal device, to include an element indicating the selected at least one of one or more IRM and/or encryption policies; and when the data item is saved on the terminal device, augmenting the data item based on at least one policy selected by runtime code injected during application runtime, so that a natural workflow of the application don't be interrupted.
BR112017005696-8A 2014-10-22 2015-10-14 METHOD AND SYSTEM IMPLEMENTED ON A COMPUTER TO ENABLE DATA CLASSIFICATION AND/OR THE IMPOSITION OF INFORMATION RIGHTS MANAGEMENT POLICIES AND/OR ENCRYPTION ON DATA ITEM IN AN APPLICATION BR112017005696B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462066995P 2014-10-22 2014-10-22
US62/066,995 2014-10-22
PCT/IL2015/051023 WO2016063276A1 (en) 2014-10-22 2015-10-14 Enabling classification and irm in software applications

Publications (3)

Publication Number Publication Date
BR112017005696A2 BR112017005696A2 (en) 2017-12-12
BR112017005696A8 BR112017005696A8 (en) 2018-06-12
BR112017005696B1 true BR112017005696B1 (en) 2023-08-08

Family

ID=

Similar Documents

Publication Publication Date Title
US20190171476A1 (en) System and Method for Self-Protecting Data
US9038168B2 (en) Controlling resource access based on resource properties
US8281410B1 (en) Methods and systems for providing resource-access information
JP4931255B2 (en) Virtualized file system
US7908640B2 (en) Data handling apparatus and methods
US10579805B2 (en) Enabling classification and IRM in software applications
US20060259487A1 (en) Creating secure process objects
US8452740B2 (en) Method and system for security of file input and output of application programs
US8955150B2 (en) Apparatus and method for managing digital rights using virtualization technique
KR101806499B1 (en) Method for managing files and apparatus using the same
US20090119772A1 (en) Secure file access
US20210286767A1 (en) Architecture, method and apparatus for enforcing collection and display of computer file metadata
CN105447397A (en) File security level identification method based on kernel module
JP4516598B2 (en) How to control document copying
CN102663313B (en) Method for realizing information security of computer system
Robles et al. MetAcsl: specification and verification of high-level properties
KR20220085786A (en) Ransomware Protection
BR112017005696B1 (en) METHOD AND SYSTEM IMPLEMENTED ON A COMPUTER TO ENABLE DATA CLASSIFICATION AND/OR THE IMPOSITION OF INFORMATION RIGHTS MANAGEMENT POLICIES AND/OR ENCRYPTION ON DATA ITEM IN AN APPLICATION
JP2006216038A (en) Security critical data container
CN100465980C (en) Method for improving operation system safety through incompatiblity of process behavour
KR20100132930A (en) System and method for preventing collision between different digital documents protection system
JP2011248665A (en) Spreadsheet program add-in and spreadsheet program add-in system
US20220207157A1 (en) Method and system for tracking path of electronic document
Chou An RBAC-based access control model for object-oriented systems offering dynamic aspect features
CN115758330A (en) Configuration method of sandbox application authority control strategy and access authority control method