Patent Publication Number: US-2021185089-A1

Title: System and method for securing documents prior to transmission

Description:
PRIORITY CLAIM 
     This application claims priority as a continuation-in-part to U.S. patent application Ser. No. 15/380,695, filed on Dec. 15, 2016 and as a continuation to U.S. patent application Ser. No. 13/962,096 filed on Aug. 8, 2013 which claims priority as a non-provisional utility to U.S. Provisional App. No. 61/858,154 filed Jul. 25, 2013, all of which are hereby incorporated by reference in their entireties for all that they teach. 
    
    
     FIELD OF INVENTION 
     The present invention generally relates to the field of digital document management and security. More particularly, the present invention relates to methods and systems for determining whether the transmission of a document on a computer network would comply with security policies set by the system operator. 
     BACKGROUND 
     In the modern office workplace, documents are now embodied in digital data files. These files are readily transmitted over digital communications networks. The typical office is comprised of several computers that share a local network connection, where all of the computers on that local connection are part of one company or, from a security perspective, one locus. The typical office work involving transactions requires sharing documents between two companies, for example, that is, a document may have to be shared between two network loci. In this case, a document may be transmitted from the local network out across a wider network to some other loci associated with the other company. The security policy of the first company may require that each document be checked prior to such a transmission outside the secure locus. 
     The problem faced by most computers in the office context is that an email program or other communication program is used to transmit or cause the transmission of the document as a MIME attachment, in the case of email, or in some other way relying on FTP, HTTP or other network protocols. Email is typically insecure, and transmission outside the security locus may be impermissible anyway. Therefore the security policy for each document has to be checked for each such email or other transmission. In the prior art, the email program relies on external code modules to perform the security check. These modules are typically invoked when the email program is given the command to transmit the email message. The problem with this approach is that nothing ensures the order of execution of these external code modules. As a result, this approach is prone to error and therefore is a security vulnerability. In addition, document sharing using these systems has a similar problem where a document is composed on the system, and the document itself can have designated recipients associated with the document, such that the system will transmit the document to recipients either automatically or should the recipients request the. 
    
    
     
       DESCRIPTION OF THE FIGURES 
       The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the claimed invention. In the drawings, the same reference numbers and any acronyms identify elements or acts with the same or similar structure or functionality for ease of understanding and convenience. To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the Figure number in which that element is first introduced (e.g., element  104  is first introduced and discussed with respect to  FIG. 1 ). 
         FIG. 01 . Flow chart depicting the process of updating security policy rules. 
         FIG. 02 . Flowchart depicting the process of monitoring and checking an email message as it is composed. 
         FIG. 03 . Basic architecture diagram for the system with a secure locus connected to an external locus. 
         FIG. 04 . Basic architecture diagram for the system with the user computer operating with a public email server outside of a secure locus. 
     
    
    
     DETAILED DESCRIPTION 
     Various examples of the invention will now be described. The following description provides specific details for a thorough understanding and enabling description of these examples. One skilled in the relevant art will understand, however, that the invention may be practiced without many of these details. Likewise, one skilled in the relevant art will also understand that the invention can include many other features not described in detail herein. Additionally, some well-known structures or functions may not be shown or described in detail below, so as to avoid unnecessarily obscuring the relevant description. The terminology used below is to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the invention. Indeed, certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section. Where the specification recites an email program, other communication programs may equally apply. For example, various kinds of instant messaging programs also may be used to transmit documents using FTP or IRC protocols. 
     The method and system operates on one or more computers. In one embodiment, the user&#39;s computer is connected within the secure locus to a local server. The user computer operates the email client, and the server operates as an email server. When the user computer transmits an email it is sent to the server, which then routes the transmission out of the first secure locus to another locus. In another embodiment, the user computer may be a mobile device that may be operating outside the local network and sending emails using a publicly available email server. In this embodiment, if the mobile device ( 400 ) retrieves a document from the secure locus, by means of authenticating itself with a document management system that manages a document server ( 404 ). The mobile device may still introduce a security vulnerability if the document is attached to an email and transmitted further on to the recipient ( 402 ) using a public server ( 401 ). Or, the document may be designated in the document management system to be available to a person or a location destination for further transmission. In either case, the document has to be reliably checked before the user&#39;s email or other communication program attempts to transmit the message containing the document. 
     In the preferred embodiment, the server also contains a data structure stored within it that organizes logical rules that are referred to as “policies.” The policies dictate how a document that is attached to an email is to be treated. The user computer retains a local cache copy of the current policies. Referring to  FIG. 1 , when the email client operating on the user&#39;s computer  100  launches, it checks whether it is using the server policies  101 . If so, then it checks whether there are any updates to the server policies  102 . If so, the new policies are downloaded  103 , to the local cache  104 . By this process, the local email client operating on the user&#39;s computer has current security policies for the security locus that it operates in. Once the policies are in place in the local cache, the email client operating on the user computer can then access the policies, which are in the form of logical rules, to process email messages. 
     In one embodiment, the email program operating on the user&#39;s computer may be configured so that the documents that are attached to messages, referred to in  FIG. 2  as an “attachment”, can be transmitted in compliance with the security policies. When the user commands the program to compose an email message,  200 , this becomes an interactive process. If the user adds an attachment, the system then checks whether that attachment has an applicable policy  202 . If so, then it checks whether the email message, prior to transmission, has a recipient  203 . If so, then the system checks whether there is a security policy that applies to that recipient  205 . If so, then the system automatically executes a remedial action as indicated by the security policy  206 . As a result, the user interface of the user&#39;s computer will be modified in order to announce that this has been done  207 . Returning now to the email message, if no email recipient has been specified yet, then the email, including the attachment is scanned for security policy violations separate from ones based on recipient identity  204 . Returning to the composing of the email,  200 , if a recipient gets added to the message, then the system checks whether there is an attachment in the message. If so, then the checking process begins again at  202 . 
     The advantage of this approach is that the outgoing message is checked for adherence to security policies as it is being composed. While prior art approaches to email security execute security checks after the email is designated for sending, this introduces a risk of security failure. To the extent the additional code modules that execute the security checks are external to the email program itself, there is a risk of compatibility problems, where one code module that works with the email, for example, a document management plug-in, conflicts with the security check module. The present invention avoids this problem by running the security checks while the email is being composed. In addition, the email message can automatically be fixed in accordance with the security policies. 
     The system operates by hooking into the email client program. In one embodiment, the system hooks into the Outlook™ object model. The object oriented computing construct permits the system to respond to the cases when a document is added to a message being composes or when recipients are added. The system creates a temporary file when the email is first created, and then stores logical values representing the results of applying the security policy rules each time the Outlook object model alerts the system that the email message object has been changed, for example, by adding recipients or adding attachments. Each modification of the email message object, while it is being composed, will trigger the security system logic. The system can thereby execute the logic for applying the security policy rules to an email message prior to the message being sent. 
     In one embodiment, a policy can be expressed in logic that checks whether a destination of a recipient is external to the security locus. The rule may require in those cases that any documents be collapsed into flat images that cannot be modified. Or the rule may prohibit editable document formats from leaving the security locus. And further, the security policy may query a document management system using the filename or other indicia or metadata in the attachment to determine if the document management system has indicated that the document cannot leave the security locus. In that case, the attachment is removed from the email. 
     In one embodiment, the policy rule can be expressed as conditional logic statement. In the following example, the security rule check whether the email message is going outbound, and if so, whether there is an attachment, and if so, if it is a Word™ document, and if so, it automatically converts it to a PDF and makes that .pdf file the attachment: 
     If email.recipient.domain&lt; &gt;home_domain AND email.attachment=1 AND email.attachment.extension=“.doc” THEN email.attachment.filename=pdfconvert(email.attachment.filename); 
     In another embodiment, the rule checks the user&#39;s authority to transmit a document externally to the security locus, and if the security level doesn&#39;t match the security level of the document, then the attachment is removed from the message and a notification is transmitted to a data security officer: 
     If email.recipient.domain&lt; &gt;home_domain AND email.attachment=1 AND email.sender.security_level&lt; &gt;email.attachment.filename.security_level THEN (email.attachment=0; notify_security(email.user);) 
     These security policy rules can be stored in a data structure either on the server or on the user&#39;s computer. When the system detects a change in the email object, then the security rules can be checked and acted upon. 
     Another advantage of this approach is that different policies may apply to different recipients. In this embodiment, an email that has a Powerpoint™ file as an attachment may have a recipient within the security locus and a recipient external to that locus. The policy may indicate that any external transmissions of Powerpoint slide decks must be in PDF™ format. As a result, the system can call on additional modules to create a tandem email message to the external recipient that has the same file in the PDF™ format as the attachment, while the first email message for the internal recipients receive the Powerpoint file itself. Similarly, a security policy can call a module that for any external transmission of a document, inserts a confidentiality notice into the first page or footer of each page of the document automatically. 
     Other types of security policies for attachments can be established by means of establishing rule logic that can be executed by the user system. In one embodiment, the policy rule can apply to the user themselves: a user may not have permission to transmit a particular document, document file type or document department designation. In the case of a department designation, it may be that certain documents are tagged in the document management system as being associated with the human resources department, or the finance department or the research and development department. The policies may encode rules that prohibit certain users from transmitting certain department designated documents outside the security locus. In addition, a security policy may prohibit attaching any document from with particular department designations, for example, human resources or research and development. The security policy can also encode a rule that causes the system to transmit a message to a particular second user in the event a particular security policy is violated. For example, if a low-level user attempts to attach a sensitive research and development document to an email being transmitted to a recipient outside the security locus, this violation can be logged, including making a copy of the message and delivering the message or notice of such message to personnel responsible for data security. In yet another embodiment, the system can record what the user decides to do and thereby create a log that can be used to create a report. In one case, the log is associated with the user&#39;s activity, and in another, the log is associated with the document and reports its disposition. 
     In one embodiment, the sensitivity level of a document is stored in an XML file. In another embodiment, the sensitivity level may be stored in a data record of a database. Further, the sensitivity level may be stored in any kind of data structure that may be used to obtain information corresponding to the document by use of a reference to the document. The sensitivity of a document may also be determined by examining the content of the document itself. In this case, the rules may have actual text strings, or refer to text strings that are considered an item to filter on. For example, a new project called “Breakthrough”, may result in a rule that any document containing the word “breakthrough” cannot be emailed out of the security locus, unless the sender is of a certain seniority. More typically, if any document contains the word “confidential” in the header or footer, then the document is not transmitted. 
     An additional security policy rule can be that if a predetermined word or phrase comprised of words is detected, these are automatically redacted, either by deletion of the text (with regard to documents comprised of encoded characters) or by the modification of the actual image of the text in order to obscure the text (for example, but applying a black stripe to the portion of the image that contains the predetermined word or phrase). In this case, the text string is used as a key in the filtering process. A rule can select that the entire sentence containing the word is redacted, or the entire paragraph. Other rules can combine these parameters. For example, an isolated instance of the string may result in the sentence being redacted, but a paragraph containing more than some pre-determined number of instances would then be redacted in its entirety. 
     In yet another embodiment, the invention deals with what to do with a file that is blocked. In one embodiment, the file can be compressed, for example, in a secure zip file. In another, the file is encrypted. In a third, the file is redacted of the sensitive information and the sent on. In yet another embodiment, the system will upload the file to a secure server location, and then replace the attachment in the email with a hyperlink in the body of the email to that location. In this embodiment, the link can be to a secure portal that prevents the public from accessing the secure server. In addition, the system can associate security attributes to the link, for example, an expiration dates, shareable/non sharable permission code, downloadable or not downloadable permission code, password protected access or an IP address/domain lock. In yet another embodiment, the uploaded document is updated to a new version automatically if the original version is updated. In this case, a document management system will have metadata associated with the blocked document that it may use to determine that a document being saved is subject to a block and that a copy is residing on the secure server. When the document management system authorizes the saving of a new version, it can transmit a message or semaphore to the secure server that causes it to fetch the new version and to place the new version in the place of the older version. Alternatively, the system can transmit the document directly to the secure server. In the absence of a formal document management system, an owner of the updated document can upload the updated version. 
     In yet another embodiment, a document may be used to create a unique characteristic number by means of processing the encoded characters comprising the document through an algorithm so that the resulting characteristic number is unique to that version of that document. In this case, the characteristic number may be used as a key in a security rule. Alternatively, a code number may be embedded in a document in a manner that is not apparent or easily removed. This may be done using steganography. In this case, the invention may check a document that is attached to an email for this embedded code, or fingerprint, and then based on its value, determine an action to take. 
     Operating Environment: 
     The invention may be implemented by means of an algorithmic state machine. The simplest approach uses a two state machine:
 
00: Wait for a notification of change in the message, then go to State 01.
 
01: Apply the security rules and return to State 00.
 
     In one embodiment, the state machine may have three states, with three transition conditions: 
     00: Wait for a notification of change in the message, then go to State 01.
 
01: Determine what type of security situation is implicated, e.g. recipient, document, or body of the email, then go to State 02.
 
02: Apply the family of security rules for that type of security situation to the detected change, return to State 00.
 
     In one embodiment of the invention, an administrator can provide a user the privilege of selecting which rules to apply, or simply apply the rule regardless or a combination thereof. In this approach, there is a four state machine: 
     00: Wait for a notification of change in the message, then go to State 01.
 
01: Determine what type of security situation is implicated, e.g. recipient, document, or body of the email, display to the user a selection option, then go to State 02.
 
02: Wait on user input of a selection, then go to State 03.
 
03: Apply the family of security rules selected by the user the detected change, return to State 00.
 
     Those skilled in the relevant art will appreciate that the invention can be practiced with other communications, data processing, or computer system configurations, including: wireless devices, Internet appliances, hand-held devices (including personal digital assistants (PDAs)), wearable computers, all manner of cellular or mobile phones, multi-processor systems, microprocessor-based or programmable consumer electronics, set-top boxes, network PCs, minicomputers, mainframe computers, and the like. Indeed, the terms “computer,” “server,” and the like are used interchangeably herein, and may refer to any of the above devices and systems. In some instances, especially where the mobile computing device  104  is used to access web content through the network  110  (e.g., when a 3G or an LTE service of the phone  102  is used to connect to the network  110 ), the network  110  may be any type of cellular, IP-based or converged telecommunications network, including but not limited to Global System for Mobile Communications (GSM), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), Orthogonal Frequency Division Multiple Access (OFDM), General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), Advanced Mobile Phone System (AMPS), Worldwide Interoperability for Microwave Access (WiMAX), Universal Mobile Telecommunications System (UMTS), Evolution-Data Optimized (EVDO), Long Term Evolution (LTE), Ultra Mobile Broadband (UMB), Voice over Internet Protocol (VoIP), Unlicensed Mobile Access (UMA), etc. 
     The user&#39;s computer may be a laptop or desktop type of personal computer. It can also be a cell phone, smart phone or other handheld device, including a tablet. The precise form factor of the user&#39;s computer does not limit the claimed invention. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held, laptop or mobile computer or communications devices such as cell phones and PDA&#39;s, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. 
     The system and method described herein can be executed using a computer system, generally comprised of a central processing unit (CPU) that is operatively connected to a memory device, data input and output circuitry (I/O) and computer data network communication circuitry. A video display device may be operatively connected through the I/O circuitry to the CPU. Components that are operatively connected to the CPU using the I/O circuitry include microphones, for digitally recording sound, and video camera, for digitally recording images or video. Audio and video may be recorded simultaneously as an audio visual recording. The I/O circuitry can also be operatively connected to an audio loudspeaker in order to render digital audio data into audible sound. Audio and video may be rendered through the loudspeaker and display device separately or in combination. Computer code executed by the CPU can take data received by the data communication circuitry and store it in the memory device. In addition, the CPU can take data from the I/O circuitry and store it in the memory device. Further, the CPU can take data from a memory device and output it through the I/O circuitry or the data communication circuitry. The data stored in memory may be further recalled from the memory device, further processed or modified by the CPU in the manner described herein and restored in the same memory device or a different memory device operatively connected to the CPU including by means of the data network circuitry. The memory device can be any kind of data storage circuit or magnetic storage or optical device, including a hard disk, optical disk or solid state memory. 
     The computer can display on the display screen operatively connected to the I/O circuitry the appearance of a user interface. Various shapes, text and other graphical forms are displayed on the screen as a result of the computer generating data that causes the pixels comprising the display screen to take on various colors and shades. The user interface also displays a graphical object referred to in the art as a cursor. The object&#39;s location on the display indicates to the user a selection of another object on the screen. The cursor may be moved by the user by means of another device connected by I/O circuitry to the computer. This device detects certain physical motions of the user, for example, the position of the hand on a flat surface or the position of a finger on a flat surface. Such devices may be referred to in the art as a mouse or a track pad. In some embodiments, the display screen itself can act as a trackpad by sensing the presence and position of one or more fingers on the surface of the display screen. When the cursor is located over a graphical object that appears to be a button or switch, the user can actuate the button or switch by engaging a physical switch on the mouse or trackpad or computer device or tapping the trackpad or touch sensitive display. When the computer detects that the physical switch has been engaged (or that the tapping of the track pad or touch sensitive screen has occurred), it takes the apparent location of the cursor (or in the case of a touch sensitive screen, the detected position of the finger) on the screen and executes the process associated with that location. As an example, not intended to limit the breadth of the disclosed invention, a graphical object that appears to be a 2 dimensional box with the word “enter” within it may be displayed on the screen. If the computer detects that the switch has been engaged while the cursor location (or finger location for a touch sensitive screen) was within the boundaries of a graphical object, for example, the displayed box, the computer will execute the process associated with the “enter” command. In this way, graphical objects on the screen create a user interface that permits the user to control the processes operating on the computer. 
     The system may be comprised of a central server that is connected by a data network to a user&#39;s computer. The central server may be comprised of one or more computers connected to one or more mass storage devices. The precise architecture of the central server does not limit the claimed invention. In addition, the data network may operate with several levels, such that the user&#39;s computer is connected through a fire wall to one server, which routes communications to another server that executes the disclosed methods. The precise details of the data network architecture do not limit the claimed invention. 
     A server may be a computer comprised of a central processing unit with a mass storage device and a network connection. In addition a server can include multiple of such computers connected together with a data network or other data transfer connection, or, multiple computers on a network with network accessed storage, in a manner that provides such functionality as a group. Practitioners of ordinary skill will recognize that functions that are accomplished on one server may be partitioned and accomplished on multiple servers that are operatively connected by a computer network by means of appropriate inter process communication. In addition, the access of a website can be by means of an Internet browser accessing a secure or public page or by means of a client program running on a local computer that is connected over a computer network to the server. A data message and data upload or download can be delivered over the Internet using typical protocols, including TCP/IP, HTTP, SMTP, RPC, FTP or other kinds of data communication protocols that permit processes running on two remote computers to exchange information by means of digital network communication. As a result a data message can be a data packet transmitted from or received by a computer containing a destination network address, a destination process or application identifier, and data values that can be parsed at the destination computer located at the destination network address by the destination application in order that the relevant data values are extracted and used by the destination application. 
     The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices. Practitioners of ordinary skill will recognize that the invention may be executed on one or more computer processors that are linked using a data network, including, for example, the Internet. In another embodiment, different steps of the process can be executed by one or more computers and storage devices geographically separated by connected by a data network in a manner so that they operate together to execute the process steps. In one embodiment, a user&#39;s computer can run an application that causes the user&#39;s computer to transmit a stream of one or more data packets across a data network to a second computer, referred to here as a server. The server, in turn, may be connected to one or more mass data storage devices where the database is stored. The server can execute a program that receives the transmitted packet and interpret the transmitted data packets in order to extract database query information. The server can then execute the remaining steps of the invention by means of accessing the mass storage devices to derive the desired result of the query. Alternatively, the server can transmit the query information to another computer that is connected to the mass storage devices, and that computer can execute the invention to derive the desired result. The result can then be transmitted back to the user&#39;s computer by means of another stream of one or more data packets appropriately addressed to the user&#39;s computer. 
     Computer program logic implementing all or part of the functionality previously described herein may be embodied in various forms, including, but in no way limited to, a source code form, a computer executable form, and various intermediate forms (e.g., forms generated by an assembler, compiler, linker, or locator.) Source code may include a series of computer program instructions implemented in any of various programming languages (e.g., an object code, an assembly language, or a high-level language such as FORTRAN, C, C++, JAVA, or HTML or scripting languages that are executed by Internet web-browsers) for use with various operating systems or operating environments. The source code may define and use various data structures and communication messages. The source code may be in a computer executable form (e.g., via an interpreter), or the source code may be converted (e.g., via a translator, assembler, or compiler) into a computer executable form. 
     The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The computer program and data may be fixed in any form (e.g., source code form, computer executable form, or an intermediate form) either permanently or transitorily in a tangible storage medium, such as a semiconductor memory device (e.g., a RAM, ROM, PROM, EEPROM, or Flash-Programmable RAM), a magnetic memory device (e.g., a diskette or fixed hard disk), an optical memory device (e.g., a CD-ROM or DVD), a PC card (e.g., PCMCIA card), or other memory device. The computer program and data may be fixed in any form in a signal that is transmittable to a computer using any of various communication technologies, including, but in no way limited to, analog technologies, digital technologies, optical technologies, wireless technologies, networking technologies, and internetworking technologies. The computer program and data may be distributed in any form as a removable storage medium with accompanying printed or electronic documentation (e.g., shrink wrapped software or a magnetic tape), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over the communication system (e.g., the Internet or World Wide Web.) It is appreciated that any of the software components of the present invention may, if desired, be implemented in ROM (read-only memory) form. The software components may, generally, be implemented in hardware, if desired, using conventional techniques. 
     The described embodiments of the invention are intended to be exemplary and numerous variations and modifications will be apparent to those skilled in the art. All such variations and modifications are intended to be within the scope of the present invention as defined in the appended claims. Although the present invention has been described and illustrated in detail, it is to be clearly understood that the same is by way of illustration and example only, and is not to be taken by way of limitation. It is appreciated that various features of the invention which are, for clarity, described in the context of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable combination. It is appreciated that the particular embodiment described in the specification is intended only to provide an extremely detailed disclosure of the present invention and is not intended to be limiting. 
     It should be noted that the flow diagrams are used herein to demonstrate various aspects of the invention, and should not be construed to limit the present invention to any particular logic flow or logic implementation. The described logic may be partitioned into different logic blocks (e.g., programs, modules, functions, or subroutines) without changing the overall results or otherwise departing from the true scope of the invention. Oftentimes, logic elements may be added, modified, omitted, performed in a different order, or implemented using different logic constructs (e.g., logic gates, looping primitives, conditional logic, and other logic constructs) without changing the overall results or otherwise departing from the true scope of the invention. 
     Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times.