Conceptually, a computing system (e.g., a computing device, a personal computer, a laptop, a Smartphone, a mobile phone) can accept information (content or data) and manipulate it to obtain or determine a result based on a sequence of instructions (or a computer program) that effectively describes how to process the information. Typically, the information used by a computing system is stored in a in a computer readable memory using a digital or binary form. More complex computing systems can store content including the computer program itself. A computer program may be invariable and/or built into, for example a computer (or computing) device as logic circuitry provided on microprocessors or computer chips. Today, general purpose computers can have both kinds of programming. A computing system can also have a support system which, among other things, manages various resources (e.g., memory, peripheral devices) and services (e.g., basic functions such as opening files) and allows the resources to be shared among multiple programs. One such support system is generally known and an Operating System (OS) which provides programmers with an interface used to access these resources and services.
Today, numerous types of computing devices are available. These computing devices widely range with respect to size, cost, amount of storage and processing power. The computing devices that are available today include: expensive and powerful servers, relatively cheaper Personal Computers (PC's) and laptops and yet less expensive microprocessors (or computer chips) provided in storage devices, automobiles, and household electronic appliances.
In recent years, computing systems have become more portable and mobile. As a result, various mobile and handheld devices have been made available. By way of example, wireless phones, media players, Personal Digital Assistants (PDA's) are widely used today. Generally, a mobile or a handheld device (also known as handheld computer or simply handheld) can be a pocket-sized computing device, typically utilizing a small visual display screen for user output and a miniaturized keyboard for user input. In the case of a Personal Digital Assistant (PDA), the input and output can be combined into a touch-screen interface.
In particular, mobile communication devices (e.g., mobile phones) have become extremely popular. Some mobile communication devices (e.g., Smartphones) offer computing environments that are similar to that provided by a Personal Computer (PC). As such, a Smartphone can effectively provide a complete operating system as a standardized interface and platform for application developers. Given the popularity of mobile communication devices, telecommunication is discussed in greater detail below.
Generally, telecommunication refers to assisted transmission of signals over a distance for the purpose of communication. In earlier times, this may have involved the use of smoke signals, drums, semaphore or heliograph. In modern times, telecommunication typically involves the use of electronic transmitters such as the telephone, television, radio or computer. Early inventors in the field of telecommunication include Alexander Graham Bell, Guglielmo Marconi and John Logie Baird. Telecommunication is an important part of the world economy and the telecommunication industry's revenue is placed at just under 3 percent of the gross world product.
Conventional telephones have been in use for many years. The first telephones had no network but were in private use, wired together in pairs. Users who wanted to talk to different people had as many telephones as necessary for the purpose. Typically, a person who wished to speak, whistled into the transmitter until the other party heard. Shortly thereafter, a bell was added for signaling, and then a switch hook, and telephones took advantage of the exchange principle already employed in telegraph networks. Each telephone was wired to a local telephone exchange, and the exchanges were wired together with trunks. Networks were connected together in a hierarchical manner until they spanned cities, countries, continents and oceans. This can be considered the beginning of the public switched telephone network (PSTN) though the term was unknown for many decades.
Public switched telephone network (PSTN) is the network of the world's public circuit-switched telephone networks, in much the same way that the Internet is the network of the world's public IP-based packet-switched networks. Originally a network of fixed-line analog telephone systems, the PSTN is now almost entirely digital, and now includes mobile as well as fixed telephones. The PSTN is largely governed by technical standards created by the ITU-T, and uses E.163/E.164 addresses (known more commonly as telephone numbers) for addressing.
More recently, wireless networks have been developed. While the term wireless network may technically be used to refer to any type of network that is wireless, the term is often commonly used to refer to a telecommunications network whose interconnections between nodes is implemented without the use of wires, such as a computer network (which is a type of communications network). Wireless telecommunications networks can, for example, be implemented with some type of remote information transmission system that uses electromagnetic waves, such as radio waves, for the carrier and this implementation usually takes place at the physical level or “layer” of the network (e.g., the Physical Layer of the OSI Model). One type of wireless network is a WLAN or Wireless Local Area Network. Similar to other wireless devices, it uses radio instead of wires to transmit data back and forth between computers on the same network. Wi-Fi is a commonly used wireless network in computer systems which enable connection to the internet or other machines that have Wi-Fi functionalities. Wi-Fi networks broadcast radio waves that can be picked up by Wi-Fi receivers that are attached to different computers or mobile phones. Fixed wireless data is a type of wireless data network that can be used to connect two or more buildings together in order to extend or share the network bandwidth without physically wiring the buildings together. Wireless MAN is another type of wireless network that connects several Wireless LANs.
Today, several mobile networks are in use. One example is the Global System for Mobile Communications (GSM) which is divided into three major systems which are the switching system, the base station system, and the operation and support system (Global System for Mobile Communication (GSM)). A cell phone can connect to the base system station which then connects to the operation and support station; it can then connect to the switching station where the call is transferred where it needs to go (Global System for Mobile Communication (GSM)). This is used for cellular phones and common standard for a majority of cellular providers. Personal Communications Service (PCS): PCS is a radio band that can be used by mobile phones in North America. Sprint happened to be the first service to set up a PCS. Digital Advanced Mobile Phone Service (D-AMPS) is an upgraded version of AMPS but it may be phased out as the newer GSM networks are replacing the older system.
Yet another example is the General Packet Radio Service (GPRS) which is a Mobile Data Service available to users of Global System for Mobile Communications (GSM) and IS-136 mobile phones. GPRS data transfer is typically charged per kilobyte of transferred data, while data communication via traditional circuit switching is billed per minute of connection time, independent of whether the user has actually transferred data or has been in an idle state. GPRS can be used for services such as Wireless Application Protocol (WAP) access, Short Message Service (SMS), Multimedia Messaging Service (MMS), and for Internet communication services such as email and World Wide Web access. 2G cellular systems combined with GPRS is often described as “2.5G”, that is, a technology between the second (2G) and third (3G) generations of mobile telephony. It provides moderate speed data transfer, by using unused Time Division Multiple Access (TDMA) channels in, for example, the GSM system. Originally there was some thought to extend GPRS to cover other standards, but instead those networks are being converted to use the GSM standard, so that GSM is the only kind of network where GPRS is in use. GPRS is integrated into GSM Release 97 and newer releases. It was originally standardized by European Telecommunications Standards Institute (ETSI), but now by the 3rd Generation Partnership Project (3GPP). W-CDMA (Wideband Code Division Multiple Access) is a type of 3G cellular network. W-CDMA is the higher speed transmission protocol used in the Japanese FOMA system and in the UMTS system, a third generation follow-on to the 2G GSM networks deployed worldwide. More technically, W-CDMA is a wideband spread-spectrum mobile air interface that utilizes the direct sequence Code Division Multiple Access signaling method (or CDMA) to achieve higher speeds and support more users compared to the implementation of time division multiplexing (TDMA) used by 2G GSM networks. It should be noted that SMS can be supported by GSM and MMS can be supported by 2.5G/3G networks.
Generally, a mobile phone or cell phone can be a long-range, portable electronic device used for mobile communication. In addition to the standard voice function of a telephone, current mobile phones can support many additional services such as SMS for text messaging, email, packet switching for access to the Internet, and MMS for sending and receiving photos and video. Most current mobile phones connect to a cellular network of base stations (cell sites), which is in turn interconnected to the public switched telephone network (PSTN) (one exception is satellite phones).
The Short Message Service (SMS), often called text messaging, is a means of sending short messages to and from mobile phones. SMS was originally defined as part of the GSM series of standards in 1985 as a means of sending messages of up to 160 characters, to and from Global System for Mobile communications (GSM) mobile handsets. Since then, support for the service has expanded to include alternative mobile standards such as ANSI CDMA networks and Digital AMPS, satellite and landline networks. Most SMS messages are mobile-to-mobile text messages, though the standard supports other types of broadcast messaging as well. The term SMS is frequently used in a non-technical sense to refer to the text messages themselves, particularly in non-English-speaking European countries where the GSM system is well-established.
Multimedia Messaging Service (MMS) is a relatively more modern standard for telephony messaging systems that allows sending messages that include multimedia objects (images, audio, video, rich text) and not just text as in Short Message Service (SMS). It can be deployed in cellular networks along with other messaging systems like SMS, Mobile Instant Messaging and Mobile E-mal. Its main standardization effort is done by 3GPP, 3GPP2 and Ope Mobile Alliance (OMA).
The popularity of computing systems, especially mobile communication devices, is evidenced by their ever increasing use in everyday life. Accordingly, improved techniques for ensuring their safety would be useful.
Broadly speaking, the invention relates to computing environments and computing systems. More particularly, the invention relates to integrity verification techniques for providing safe (or secure) computing environments and computing systems (e.g., a “Trusted” computing environment as will be known by those skilled in the art). The invention, among other things, provides improved verification techniques suitable for verification of the integrity of various computing environments and/or computing systems.
In accordance with one aspect of the invention, verifiable representative data can effectively represent the verifiable content of a computing environment and/or system, thereby allowing the integrity of the computing environment to be verified at least partially based on the verifiable representative data instead of the content being represented. It will be appreciated that the verifiable representative data can effectively include selected portions of the content (e.g., selected content which may be of general and/or specific security interest). In other words, the content being verified can effectively be reduced (e.g., the size of the verifiable representative data can be generally smaller than the size of the content it represents). As such, it may generally be more efficient to use the verifiable representative data instead of content it represents. In accordance with one embodiment of the invention, verifiable representative data can be generated based on a representation of content that can be used to make at least a partial assessment regarding the integrity of a computing environment. The verifiable representative data can include one or more selected portions of the content. The integrity of the verifiable representative data can be verified, thereby allowing the integrity of the computing environment to be verified at least partially based on verification of the integrity of the verifiable representative data.
In accordance with another aspect of the invention, verifiable content of a computing environment and/or system can be organized. In one embodiment, verifiable representative data is generated for the content, based on an organization of the content, as verifiable organized representative data. By way of example, unstructured content (e.g., a configuration file written in text) can be effectively transformed based on a scheme (e.g., a XML schema) into a structured text-based content written in a structured language (e.g., XML language). As such, verifiable organized representative data can be organized in accordance with various organizational aspects including, for example, structural, semantics, parameter verification, parameter simplification, and other organizational rules, requirements and/or preferences.
In accordance with other aspects of the invention, verifiable representative data can be verified in order to assess the integrity of a computing environment and/or computing system. As an example, organization of verifiable organized data can be verified as a measure of its integrity and by in large the integrity of the computing environment and/or system being effectively represented by the verifiable representative data in accordance with yet another aspect of the invention.
The invention can be implemented in numerous ways, including, for example, a method, an apparatus, a computer readable medium, and a computing system (e.g., a computing device). A computer readable medium can include at least executable computer program code stored in a tangible form. Several embodiments of the invention are discussed below.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:
As noted in the background section, mobile devices are becoming increasingly more popular. Today, wireless networks and mobile communication devices (e.g., Smartphones, cell phones, Personal Digital Assistants) are especially popular. Unfortunately, however, partly because of this popularity, more and more malicious attacks are being directed to wireless networks and mobile communication devices. In addition, recent developments, including relatively new services (e.g., email, file transfer and messaging), and use of common software platforms (e.g., Symbian, Embedded Linux, and Windows CE operating systems) has made mobile communication devices relatively more exposed to malicious attacks. The exposure to malicious attacks could become worse as the wireless networks and mobile communication devices continue to evolve rapidly. Today, wireless and/or portable communication devices (e.g., cell phones, Smartphones) can offer similar functionality as that more traditionally offered by Personal Computers (PCs). As a result, wireless and/or portable communication devices are likely to face similar security problems (e.g., worms, viruses) as those encountered in more traditional computing environments.
Examples of the most notorious threats to cell phones include the Skull, Cabir, and Mabir worms which have targeted the Symbian operating systems. Generally, an MMS-based worm can start attacking initial targets (hit-list) from the network. Each infected phone can scan its contact list and randomly pick up members to deliver a malicious attack in the form of a message. A person can trust an incoming message due to its attractive title or seemingly familiar source and activate the attached file and unwittingly get a phone infected. The infected phone can in turn get other phones infected, and so on. In contrast, a Blue-tooth based worm can take control of a victim phone's Blue-tooth interface and continuously scan for other Blue-tooth-enabled phones within its range. Once a new target has been detected, the worm can effectively connect to other devices and transfers a malicious message to them, and so on.
Taking the cell phone as an example, an active cell phone typically has two security states: susceptible and infected. A susceptible cell phone is not completely protected against worms and may get infected when exposed to a specific worm (e.g., CommWarrior). An infected cell phone can return back to the susceptible state when the user launches a protection (e.g., the CommWarrior patch from F-Secure or Symantec) partly because the cell phone is susceptible to other worm threats. Malware has many other undesirable affects including compromising the privacy of the users.
Today, security of the computing systems (or devices) is a major concern. Generally, it is important that various components of a computing environment and/or computing system maintain their integrity. As such, integrity of a computing component is crucial to ensuring the security (or safety) of a computing system (e.g., a “trusted” device). A secure system (or device) can, for example, be provided as a trusted system (or device) in accordance with the Trusted Computing (TC) principles primarily developed and promoted by the Trusted Computing Group. In Trusted Computing (TC), verification of integrity can be done by taking “Integrity Measurements” of the content. Integrity of various software components, including operating systems and application programs, can be measured (or taken), for example, by using a cryptographic hash function (or hash function). A hash function can generate a fixed-size string (or hash value) for content (e.g., binary code, text files). Hash values can be securely stored as trusted integrity values (or values that are trusted or believed to be safe). The trusted integrity values can be compared to Integrity values subsequently obtained to taken to ensure the integrity of a computing environment and/or computing system. As such, the trusted integrity values can effectively serve as a point of reference where a deviation would indicate that the integrity has been compromised.
Integrity Measurements (IM) are crucial for providing a Trusted Computing (TC) environment. More generally, providing a safe computing environment typically requires verifying the integrity of various components operating in the computing environment. As such, integrity verification techniques are highly useful.
However, conventional integrity verification techniques can be difficult to implement. By way of example, to verify the integrity of a text-based configuration file for configuring a device, the hash value of the configuration file can be taken, but the hash value can change even if minor change (e.g., adding a space) is made to the configuration file. As a result, the integrity values of the device may have to be updated often and possibly provided to other devices or systems that interact with the device. This means that it may be infeasible to verify the integrity of some computing systems, especially those that may operate with limited processing power and/or memory (e.g., mobile and/or embedded devices). Also, conventional integrity verification techniques do not generally allow selective verification of content.
In view of the foregoing, improved integrity verification techniques are needed and would be very useful.
It will be appreciated that the invention, among other things, provides improved verification techniques suitable for verification of the integrity of various computing environments and/or computing systems.
In accordance with one aspect of the invention, verifiable representative data can effectively represent the verifiable content of a computing environment and/or system, thereby allowing the integrity of the computing environment to be verified at least partially based on the verifiable representative data instead of the content being represented. It will be appreciated that the verifiable representative data can effectively include selected portions of the content (e.g., selected content which may be of general and/or specific security interest). In other words, the content being verified can effectively be reduced (e.g., the size of the verifiable representative data can be generally smaller than the size of the content it represents). As such, it may generally be more efficient to use the verifiable representative data instead of content it represents. In accordance with one embodiment of the invention, verifiable representative data can be generated based on a representation of content that can be used to make at least a partial assessment regarding the integrity of a computing environment. The verifiable representative data can include one or more selected portions of the content. The integrity of the verifiable representative data can be verified, thereby allowing the integrity of the computing environment to be verified at least partially based on verification of the integrity of the verifiable representative data.
In accordance with another aspect of the invention, verifiable content of a computing environment and/or system can be organized. In one embodiment, verifiable representative data is generated for the content, based on an organization of the content, as verifiable organized representative data. By way of example, unstructured content (e.g., a configuration file written in text) can be effectively transformed based on a scheme (e.g., a XML schema) into a structured text-based content written in a structured language (e.g., XML language). As such, verifiable organized representative data can be organized in accordance with various organizational aspects including, for example, structural, semantics, parameter verification, parameter simplification, and other organizational rules, requirements and/or preferences.
In accordance with other aspects of the invention, verifiable representative data can be verified in order to assess the integrity of a computing environment and/or computing system. As an example, organization of verifiable organized data can be verified as a measure of its integrity and by in large the integrity of the computing environment and/or system being effectively represented by the verifiable representative data in accordance with yet another aspect of the invention.
Embodiments of these aspects of the invention are discussed below with reference to
Referring back to
It should be noted that the selected content portions of the representation of content need not include all of the content. As such, representation of content 110 need not represent all the content of the content A (102) in order to effectively represent the content A. As a result, the verifiable representation data 108 can be a relatively smaller size than the actual content being represented (e.g., content A and/or B), thereby, among other things, allowing verification of data to be performed more efficiently.
It will also be appreciated that the representation of content 110 can effectively include an organization for content (or content organization) 112 being represented. As depicted in
As an organized representation, the representation of content 110 can, for example, include a plurality of selected content portions from one or more of the plurality of content (or content components) depicted in
The verifiable content transformation system 106 can be operable to generate the verifiable representative data 108 based on input (or selected input) 114. In other words, the verifiable transformation system 106 can effectively allow the verifiable representative data 108 to be customized based on input 114 that can effectively select one or more content portions that have been identified by the representation of content 110. As such, customized verifiable data 120 can, for example, include the content portion 120a associated with a content portion 110a of the representation of content 110 which is selected from the content A (102) and/or a content portion 120b associated with a content portion 110b selected from the content B (104).
As noted above, the verifiable content transformation system 106 can obtain the representation of content 110. By way of example, the verifiable content transformation system 106 can be operable to receive, identify, determine, and/or define the representation of content 110. Generally, one or more portions of content (or content portions) can be selected from content (e.g., content A, content B) in order to effectively define the representation of content 110. The one or more content portions can, for example, be selected as one or more security related portions of content (e.g., content of a security interest, such as, for example, one or more specific parameters in a configuration file), thereby allowing the verifiable representation 108 to include content that is of security interest, and as such, can be verified to ensure the integrity of content that is of general and/or specific security interest. As another example, representation of content 110 can be defined such that one or more portions of content that are susceptible to change but not of relative security importance are not identified, thereby allowing generating verifiable representative data 108 which is less likely to be changed as a result of change to content which is of a relatively lesser security importance.
Those skilled in the art will readily appreciate that the verifiable content transformation system (or component) 106 can, for example, be implemented using one or more hardware and/or software components. By way of example, the verifiable content transformation system (or component) 106 can be provided a computer program code stored in a computer readable medium (not shown) and executed by one or more processors (not shown) provided for a computing system or device (not shown), such as, for example, a Personal Computer (PC), a laptop, a mobile and/or smart phone, and so on.
Generally, the integrity of the verifiable representation data 108 can be verified. Referring to
Referring to
As noted above, representation of verifiable content can include an organization for content, allowing organized verifiable representative data to be generated in accordance with one aspect of the invention. It will be appreciated that the organization of the variable representative data can be verified as a measure of the integrity of the content.
To further elaborate,
Referring back to
In any case, based on the verification (188) of the organization of the organized representative data, it can be determined (189) whether the organization is valid. As such, if it is determined (189) that the organization of the organized representative data is valid, it is determined (190) that the organized representative data has not maintained its integrity. In other words, it is determined (190) that the organized representative data has not been successfully verified, and the verification method 185 ends. However, if it is determined (191) that the organization of the organized representative data is valid, the verification method 185 proceeds to verify (191) the integrity of the content of the organized representative data. By way of example, an integrity measurement of the content can be taken (e.g., a hash or digest value can be calculated) and compared with an excepted integrity value (e.g., a trusted integrity value). Accordingly, it can be determined (192) whether the content of the organized representative data is valid. If it determined (192) that the organized representative data is not valid, it is determined (190) that the organized representative data has not maintained its integrity and the verification method 185 ends. On the other hand, if it is determined (192) that the organized representative data is valid, it is determined (194) that the organized representative data has maintained its integrity. In other words, the integrity of the organized representative data can be successfully verified before the verification method 185 ends.
As noted above, a verifiable content transformation system (or component) 106 (shown in
To further elaborate,
Referring back to
In any case, transformation system 200 can effectively generate based on the generic representation 203 of the generic content category A, a template 206 representative of the generic content category A. The template 206 can effectively include the selected content (or content portions) 202 in a manner that allows a specific instance of verifiable representative data 208 to be generated for a particular instance of content by effectively selecting one or more of the selectable content portions 202. The specific instance of verifiable representative data 208 can, for example, be generated based on input 210 (e.g., input provided by a person in order to select selectable content from the template 206 for the specific instance of verifiable representative data 208). As another example, the transformation system 200 can be operable (e.g., programmed as an automated tool) to automatically generate the specific instance of verifiable representative data 208 for a particular situation, user and/or device. It should be noted that the generic representation 203 can also be defined based on input (e.g., input provided by a person).
Generally, the transformation system 200 can be operable to receive existing content (e.g., configuration files which are already in existence) and generate one or more templates that can be used to generate verifiable representative data suitable for assessing the integrity of a computing environment and/or computing system. It should also be noted that the transformation system 200 can also be operable to generate a template which is representative of multiple generic content categories. Referring to
As noted above, verifiable representative data can be generated for content that may already exist (e.g., existing configuration files) in a computing environment or computing system. The verifiable representative data can be verified instead of the content it represents (original content). As such, verifiable representative data can effectively replace the original content or can be provided in addition to the original content existing in a computing environment. By way of example, verifiable representative data representing an original configuration file can effectively be used as a new configuration file and/or used to generate new configuration files that can be maintained in addition to or in place of the original configuration files.
To further elaborate,
As noted above, verifiable representative data can be provided as organized data (organized verifiable representative data). In particular, it will be appreciated that text-based content and/or textual content can be effectively transformed using a scheme (e.g., configuration scheme such as an XML configuration scheme). The scheme can, for example, be associated with a structured language (e.g., a “markup language”, such as “Extensible Markup Language”).
As generally known in the art, a markup language can be an artificial language using a set of annotations to text that describe how text is to be structured, laid out, and/or formatted. A well-known example of a markup language in use today in computing is HyperText Markup Language (HTML), one of the protocols of the World Wide Web. HTML follows some of the markup conventions used in the publishing industry in the communication of printed work between authors, editors, and printers.
Another markup language that is now widely used is XML (Extensible Markup Language). XML has been developed by the World Wide Web Consortium (W3C). XML allowing users to create “tags” as needed (hence “extensible”) and then describing the tags and their permitted uses. As such, XML can be classified as an extensible language because it allows its users to define their own elements.
As an Extensible Markup Language, XML can be a general-purpose specification for creating custom markup languages. It is classified as an extensible language because it allows its users to define their own elements. XML can facilitate the sharing of structured data across different information systems, particularly via the Internet, and it can be used both to encode documents and to serialize data.
Broadly speaking, an XML schema can be a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntax constraints imposed by XML itself. An XML schema provides a view of the document type at a relatively high level of abstraction. There are languages developed specifically to express XML schemas. The Document Type Definition (DTD) language, which is native to the XML specification, is a schema language that is of relatively limited capability, but that also has other uses in XML aside from the expression of schemas.
XML Schema is one of several XML schema languages. It was the first separate schema language for XML to achieve Recommendation status by the W3C. Like all XML schema languages, XML Schema can be used to express a schema: a set of rules to which an XML document must conform in order to be considered ‘valid’ according to that schema. However, unlike most other schema languages, XML Schema was also designed with the intent that determination of a document's validity would produce a collection of information adhering to specific data types.
The process of checking to see if an XML document conforms to a schema can be called validation, which can be separate from XML's core concept of syntactic well-formedness. All XML documents must be well-formed, but it is not required that a document be valid unless the XML parser is “validating,” in which case the document is also checked for conformance with its associated schema. DTD-validating parsers are most common, but some support W3C XML Schema or RELAX NG as well.
Documents can be considered “valid” if they satisfy the requirements of the schema with which they have been associated. These requirements typically include constraints, such as, elements and attributes that must/may be included, and their permitted structure, the structure is specified by a regular expression syntax, how character data is to be interpreted (e.g., a number, a date, a URL, a Boolean). As known in the art, XML Schema validations can be effectively performed using specialized parsers like JAXB or SAX. XML schema languages include: Document Definition Markup Language (DDML), Document Schema Definition Languages (DSDL), Document Structure Description (DSD), Document Type Definition (DTD), Namespace Routing Language (NRL), RELAX NG and its predecessors RELAX and TREX, SGML, Schema for Object-Oriented XML (SOX), Schematron, XML-Data Reduced (XDR), and XML Schema (W3C) (WXS or XSD).
To further elaborate,
Referring to
After, generating (506) of the structured text-based data, an integrity value can be determined (508) for the structured text-based data. In addition, it can be determined (510) whether to “authenticate” the integrity value in order to allow verification of its authenticity. Those skilled in the art will appreciate that the determination (510) can present a design choice and/or can be made based on various criteria including, for example, type of data, the desired level of general security, an indication and/or input received in connection with the text-based content. In any case, if it is determined (510) to authenticate integrity value, one or more authentication techniques can be used to effectively authenticate the integrity value. By way of example, structured text-based representative data can be digitally signed and the signature can be subsequently verified to effectively authenticate the integrity value. The method 500 ends after authenticating (512) of the integrity value or directly after a determination (510) not to authenticate the integrity value.
Accordingly, if it is determined (524) that an integrity value is not authentic, verification of data fails (526), and the verification method 520 subsequently ends. On the other hand, if it is determined (524) that the one or more integrity values of the text-based data are authentic, it is determined (526) whether the text-based data conforms to the particular scheme. To make this determination (526), it may be necessary to obtain general schema data for a structured language and/or specific schema defined for the text-based data. In any case, if it is determined (528) that the text-based content does not conform to scheme of the structured language, verification of data fails (526), and the verification method 520 ends. However, if it is determined (528) that the text-based content conforms to the scheme, the verification method 520 can proceed to compare (532) the one or more integrity values with one or more expected values (e.g., one or more trusted values securely stored). As such, the one or more integrity values can be verified (534). Accordingly, the text-based content can be successfully verified (536) or fail (526) based on the comparison (532) of the one or more integrity values before the verification method 520 ends.
If the structural integrity of the organized text-based data is not successfully verified (558), it is determined (560) that the integrity of the computing environment has been compromised, and the verification method 550 ends. On the other hand, if it is determined (558) that the organized text-based data has maintained its structural integrity, it is determined (562) whether to verify the semantics of the organized text-based data. The verification method 550 can proceed in a similar manner as noted above, to obtain one or more semantics rules (if necessary) and verify the semantics of the organized text-based data to determine (566) whether it has maintained its integrity. Additional organizational/verification aspects can be considered (568) and additional rules can be obtained (if necessary) and used to effectively verify (570) the organization of the organized data and make a determination (572) regarding the integrity of the organization. If it is determined (558, 566 and 572) that the organization of the organized data has not maintained its integrity, it can be determined (560) that the integrity of the computing environment has been compromised. On the other hand, it is determined that the integrity of the organization is successfully verified or it is determined not to verify the integrity of the organization, the verification method 550 proceeds to verify (574) the integrity of the content of the organized data. If it is determined (576) that the content has not maintained its integrity, it is determined (560) that the computing environment has not maintained its integrity, and the verification method 550 ends. However, if it is determined (574) that the content has maintained its integrity, it is determined (578) that the computing environment has maintained its integrity. The verification method 550 can also end following a successful verification of the integrity of the computing environment.
The various aspects, features, embodiments or implementations of the invention described above can be used alone or in various combinations. The many features and advantages of the present invention are apparent from the written description and, thus, it is intended by the appended claims to cover all such features and advantages of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, the invention should not be limited to the exact construction and operation as illustrated and described. Hence, all suitable modifications and equivalents may be resorted to as falling within the scope of the invention.