US20070094463A1 - Mobile wireless communications device providing data management and security features and related methods - Google Patents
Mobile wireless communications device providing data management and security features and related methods Download PDFInfo
- Publication number
- US20070094463A1 US20070094463A1 US11/257,731 US25773105A US2007094463A1 US 20070094463 A1 US20070094463 A1 US 20070094463A1 US 25773105 A US25773105 A US 25773105A US 2007094463 A1 US2007094463 A1 US 2007094463A1
- Authority
- US
- United States
- Prior art keywords
- data
- shared memory
- module
- communications device
- wireless communications
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000013523 data management Methods 0.000 title description 3
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000010926 purge Methods 0.000 claims abstract description 32
- 238000011143 downstream manufacturing Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims abstract description 12
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 10
- 230000008859 change Effects 0.000 claims description 10
- 238000013502 data validation Methods 0.000 claims description 5
- 239000000872 buffer Substances 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 2
- 230000010267 cellular communication Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
Definitions
- the present invention relates to the field of communications systems, and, more particularly, to data security in wireless communications devices and related methods.
- software defined mobile wireless communications devices e.g., radios
- radios e.g., radios
- these functions are instead performed by software modules or components in a software radio. That is, with a software radio analog signals are converted into the digital domain where the above-noted functions are performed using digital signal processing based upon software modules.
- JTR Joint Tactical Radio
- the JTR includes relatively standard radio and processing hardware along with the appropriate waveform software modules for the communication waveforms the radio will utilize. JTRs also utilize operating system software that conforms with the Software Communications Architecture (SCA).
- SCA Software Communications Architecture
- the SCA is an open architecture framework that specifies how hardware and software components are to interoperate so that different manufacturers and developers can readily integrate their respective components into a single device.
- Still another class of mobile wireless communications devices that increasingly use software components for communicating via different waveforms or standards is cellular communication devices. That is, many cellular devices are now designed to operate with more than one of the numerous cellular standards that are used throughout the world, such as the Global System for Mobile Communications (GSM) and Personal Communications Services (PCS), for example.
- GSM Global System for Mobile Communications
- PCS Personal Communications Services
- a mobile wireless communications device which may include a wireless transceiver, a series of processing modules, a shared memory connected the plurality of processing modules and to the wireless transceiver, and a memory manager module for generating respective data location indices for data stored in the shared memory.
- the processing modules may cooperate with the shared memory and the memory manager module so that an upstream processing module stores given data in the shared memory, and so that a downstream processing module receives the data location index for the stored given data and processes the stored given data based thereon.
- the device may further include a security module for selectively purging data from the shared memory.
- the security module may selectively purge the data (e.g., all of the data in the shared memory) based upon a change in a security level of the data.
- the memory manager module may retain data for a predetermined time. That is, the memory manager module may retain the data a sufficient amount of time to allow one or more processors to perform their respective tasks before allowing the data to be overwritten or deleted.
- the memory manager module may also cause data to be stored within the shared memory based upon a balanced tree.
- the mobile wireless communications device may further include an index memory for storing the data location indices.
- the indices may advantageously be stored separately from the data so that the indices are not erased when the security module purges the data, which could otherwise lead to processing errors, for example.
- the memory manager module may also allocate the shared memory among groups of data.
- the processing modules may be selected from a group including a digital signal processing module, a voice/data processing module, a data validation module, and a cryptographic interface module.
- the processing modules may operate in accordance with a Software Communications Architecture (SCA).
- the security module may be a secure cryptographic module, for example.
- the mobile wireless communications device may also include a portable housing carrying the wireless transceiver, the processing modules, the shared memory, the memory manager module, and the security module. An antenna may also be included and connected to the wireless transceiver.
- a method aspect of the invention is for using a mobile wireless communications device, such as the one discussed briefly above.
- the method may include using an upstream processing module to store data in the shared memory, generating a data location index for the stored data, and using a downstream processing module to receive the data location index and process the stored data based upon the data location index.
- the method may further include selectively purging data from the shared memory.
- FIG. 1 is a perspective view of a wireless communications device in accordance with the present invention.
- FIG. 2 is schematic block diagram of the mobile wireless communications device of FIG. 1 .
- FIG. 3 is schematic block diagram of an alternative embodiment of the mobile wireless communications device the FIG. 1 .
- FIGS. 4 and 5 are flow charts illustrating method aspects of the present invention.
- the device 20 may be a software defined Joint Tactical Radio (JTR) set for use with the JTR System (JTRS) that operates in accordance with the Software Communications Architecture (SCA), as will be appreciated by those skilled in the art.
- JTR Joint Tactical Radio
- SCA Software Communications Architecture
- the mobile wireless communications device 20 will generally be described herein with respect to a JTR implementation. However, it will also be appreciated from the following description that the device 20 may be used in other applications as well, such as cellular communications and computer applications, for example.
- the device 20 is preferably switchable between a plurality of wireless communications operating modes.
- such operating modes may include a Single-Channel Ground-Air Radio System (SINCGARS) mode, a HAVE QUICK mode, and a VULOS mode.
- SINCGARS Single-Channel Ground-Air Radio System
- HAVE QUICK single-Channel Ground-Air Radio System
- VULOS VULOS
- the device 20 may be used with numerous other operating modes as well, as will be appreciated by those skilled in the art.
- the device 20 illustratively includes an antenna 21 and a wireless transceiver 22 connected to the antenna and to a shared memory 24 .
- the device 20 further illustratively includes a plurality of processing modules 25 a - 25 n also connected to the shared memory 24 .
- the device 20 also illustratively includes a memory manager module 30 for the shared memory 24 , and a security module 31 .
- the above-noted modules may be implemented using one or more microprocessors and/or digital signal processors (DSPs) and corresponding software components for performing their respective tasks, which will be discussed further below.
- DSPs digital signal processors
- a portable housing 26 may carry the antenna 21 , wireless transceiver 22 , processing modules 25 a - 25 n , shared memory 24 , memory manager module 30 , security module 24 , as well as control knobs 27 , 28 and a plug-in module 29 .
- a mobile wireless communications device such as a JTR that is used for both secure (i.e., ciphertext) and unsecure (i.e., plaintext) communications
- purge or “scrub” data such as communication data packets
- the device is switched from a plaintext mode to a ciphertext mode or vice-versa
- it is typically desirable to purge all of the data current in memory so that secure and unsecure data packets are not intermingled. It may also be desirable to purge all data packets from memory upon detecting a security event, such as an intrusion alert, etc.
- Some architectures such as the SCA require that processes or processing modules be able to exchange data amongst themselves for processing, and that each processing module manages it own buffer.
- data purging can become problematic as data is copied in and out of numerous buffers for different processing modules in a processing “pipeline.” With data potentially resident in several processing buffers, it becomes difficult to ensure that all data is purged from every potential location where it might have been copied.
- the processing modules 25 a - 25 n advantageously use memory space within the same shared memory 24 for their respective buffers. This allows all stored data to be conveniently purged by erasing the contents of the entire shared memory 24 at once. That is, the security module 31 selectively purges data from the shared memory 24 , such as upon the occurrence of a change in security level of the data (i.e., between ciphertext/classified data and plaintext/unclassified data) or a security event (intrusion detection, etc.), for example. Typically, the security module 31 will purge all of the data from the shared memory 24 , but in some embodiments the security module could purge selected data from the shared memory, if desired.
- the security module 31 initiates purges of the shared memory 24 independently of the current operations being performed by the processing modules 25 a - 25 n . That is, the security module 31 purges the shared memory as soon as a security event or security level change occurs, even though the processing modules 25 a - 25 n might be processing data at that time. Accordingly, if a data packet and a pointer thereto are purged while a processing module is attempting to process the data packet, the processing module may generate an error and potentially crash.
- the memory manager module 30 advantageously allocates the shared memory 24 for storing different groups of data to be processed, and generates data location indices indicating the location of the data groups within the shared memory. It should be noted that in some embodiments respective buffer space could be allocated within the shared memory 24 for each of the processing modules 25 a - 25 n , rather than allocating the shared memory by data groups.
- the memory manager module 30 may also control the way in which data is stored in the shared memory 24 .
- the memory manager module 30 may cause data to be stored within the shared memory 24 based upon a self-balancing binary search tree (i.e., a “balanced tree”) to advantageously reduce data access times, as will be appreciated by those skilled in the art.
- a self-balancing binary search tree i.e., a “balanced tree”
- other suitable data storage techniques may also be used.
- the processing modules 25 a - 25 n cooperate with the shared memory 24 and the memory manager module 30 to perform data processing and storage in a manner that helps to avoid processing module crashes.
- data will be sequentially processed by the processing modules 25 a , 25 b , . . . , 25 n , in that order. As illustrated in FIG. 2 , this order will be reversed for processing data received by the wireless transceiver 22 .
- the processing modules 25 a - 25 n cooperate with the shared memory 24 and the memory manager module 30 so that an upstream processing module (e.g., the processing module 25 a ) stores data in the shared memory 24 .
- the next downstream processing module 25 b receives the data location index associated with the given group of data and processes this group of data from the shared memory 24 based upon the index.
- the upstream processing module 25 a when the upstream processing module 25 a is done with its processing operations and is ready to “hand-off” the data to the downstream processing module 25 b , only the data location index (i.e., a pointer) indicating the location of the given group of data is passed to the downstream processing module 25 b , and the data itself remains in the buffer space of the shared memory 24 allocated by the memory manager module 30 .
- the downstream processing module 25 b may then process the given data from the location designated by the data location index and pass along the data location index to the next downstream processing module in the series of processing modules 25 a - 25 n.
- the memory manager module 30 preferably retains data in the shared memory 24 for a predetermined time.
- a downstream processing modules 25 may have the option to indicate to the memory manager module 30 that is it accessing a given group of data, and that the buffer space allocated for the given group of data should not be returned to the usable buffer pool until the downstream processing module is finished with its processing operations.
- a reference count may be initiated by the memory manager module 30 which is incremented when a new processing module 25 is using the data, and decremented when that module is finished with its processing operations. When the reference count equals zero (i.e., after the predetermined count time or duration has expired), the buffer space is returned to the usable pool and the data therein may be overwritten.
- the device 20 ′ illustratively includes an index memory 32 ′ for storing the data location indices. This may be done so that the data location indices are not stored in the data buffer space of the shared memory 24 ′ that is subject to purging. However, in some embodiments as separate index buffer space could be designated within the shared memory 24 ′ that is not subject to purging. In this way, a “valid” index will always be available for a processing module 25 ′ when requested, even if an intervening purge has occurred erasing the data that the index is actually pointing to.
- the processing module 25 ′ will be directed to a location in the shared memory 24 ′ which, although potentially having empty data values, will most likely not cause the processing module to crash as it might otherwise do if the data and its corresponding index were both deleted, as will be appreciated by those skilled in the art.
- the processing modules 25 a ′- 25 d ′ are a digital signal processing module, a voice/data processing module, a data validation module, and a cryptographic processing module, respectively.
- the DSP processing module 25 a ′ may cooperate with the memory manager module 30 ′ to allocate buffer space within the shared memory 24 ′ for data traffic upon which digital signal processing operations have been or will be performed (e.g., encoding/decoding operations, etc.), and/or perform such DSP operations.
- the voice/data module 25 b ′ may provide a state machine interface for DSP operations, as well as interact with the memory manager module 30 ′ to free aborted traffic and return the buffer space associated therewith to the useable pool.
- the data validation module 25 c ′ may be responsible for validating data upon which cryptographic operations have been or will be performed (i.e., ciphertext). More specifically, the data validation module 25 c ′ may allocate a bypass header from the memory manager module 30 ′, as will be appreciated by those skilled in the art.
- the cryptographic interface module 25 d ′ may function as a security traffic and bypass module which provides an interface to a secure cryptographic module 31 ′ which performs the requisite cryptographic operations on the data and also controls purging of data from the shared memory 24 ′, as discussed further below.
- the cryptographic interface module 25 d ′ may also cooperate with the memory manager module 30 ′ to allocate buffer space within the shared memory 24 ′ for cryptographic processing, and free memory as processing operations are completed. It should be noted that in some embodiments the functions of the secure cryptographic module 31 ′ and the cryptographic interface module 25 d ′ may be consolidated, even though these modules are shown separately in FIG. 3 for clarity of illustration.
- the secure cryptographic module 31 ′ may determine that the data security level is about to change based upon a security mode switch 33 ′ operated by a user for example.
- a change in data security levels may be detected “automatically” in some embodiments based upon header information in received data packets, etc., as will also be appreciated by those skilled in the art.
- the method illustratively includes storing given data in a shared memory 24 using an upstream processing module 25 a (Block 42 ), and generating a data location index for the stored given data, at Block 44 .
- the method further illustratively includes using a downstream processing module 25 b to receive the data location index and process the stored given data associated therewith, at Block 46 .
- the security module 31 selectively purges data from the shared memory 24 , at Block 48 , thus concluding the illustrated method (Block 50 ). Again, this is done whenever a security level of the data changes, a security event is detected, etc. As such, the purging operation will occur independently of the above-described processing steps, and thus the step illustrated with respect to Block 48 could in fact occur at any time before or after the steps shown preceding the purging step with respect to Blocks 42 , 44 , and 46 .
- the memory manager module 30 may allocate the shared memory 24 for different groups of data, at Block 50 ′. Also, the memory manager module 30 may cause the data to be stored in the shared memory 24 based upon a balanced tree, as also discussed above (Block 42 ′). Moreover, the security module 31 preferably purges all of the data from the shared memory 24 any time there is a change in security level of the data (or a security event is detected, etc.), at Blocks 48 ′ and 52 ′. Additionally, the memory manager module 30 also preferably retains data in the shared memory 24 for a predetermined time, at Blocks 54 ′, 56 ′, to allow sufficient time for copying and/or processing by downstream processing modules 25 , as discussed above.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mobile Radio Communication Systems (AREA)
- Transceivers (AREA)
Abstract
Description
- The present invention relates to the field of communications systems, and, more particularly, to data security in wireless communications devices and related methods.
- With advances in processing capabilities and programming technologies, software defined mobile wireless communications devices (e.g., radios) continue to increase in popularity. Rather than relying upon hardware and circuitry components to perform frequency, modulation, bandwidth, security, and/or waveform functions, these functions are instead performed by software modules or components in a software radio. That is, with a software radio analog signals are converted into the digital domain where the above-noted functions are performed using digital signal processing based upon software modules.
- Because most of the functions of the radio are controlled by software, software radios may typically be implemented with relatively standard processor and hardware components. This may not only reduce device hardware costs, but it also provides greater flexibility in upgrading the device since new communications waveform modules can be uploaded to the device relatively easily and without the need to interchange new hardware components.
- One particular class of software radios which takes advantage of the above-described advantages is the Joint Tactical Radio (JTR). The JTR includes relatively standard radio and processing hardware along with the appropriate waveform software modules for the communication waveforms the radio will utilize. JTRs also utilize operating system software that conforms with the Software Communications Architecture (SCA). The SCA is an open architecture framework that specifies how hardware and software components are to interoperate so that different manufacturers and developers can readily integrate their respective components into a single device.
- Still another class of mobile wireless communications devices that increasingly use software components for communicating via different waveforms or standards is cellular communication devices. That is, many cellular devices are now designed to operate with more than one of the numerous cellular standards that are used throughout the world, such as the Global System for Mobile Communications (GSM) and Personal Communications Services (PCS), for example.
- Despite the numerous advantages of software radios, one challenge presented by such devices is that of managing the flow of data through the radio where numerous processing modules are required to perform respective processing operations on the data. Various approaches have been developed for allowing processors or processing modules to interrelate and share data. One example is disclosed in U.S. Pat. No. 5,357,612 to Alaiwan. In this system, a plurality of processors are interconnected by a shared intelligent memory. Inter-task message passing is performed through the shared intelligent memory for storing messages transmitted by sending tasks. The system also allows elements to be purged from a queue in the shared memory using an index.
- Despite the advantages of such systems, still further data management functionality may be desirable in mobile wireless communications devices. This may be particularly true where such devices communicate secure or classified data that may need to be purged from time-to-time to maintain data security.
- In view of the foregoing background, it is therefore an object of the present invention to provide a mobile wireless communications device which provides enhanced data management and security features and related methods.
- This and other objects, features, and advantages in accordance with the present invention are provided by a mobile wireless communications device which may include a wireless transceiver, a series of processing modules, a shared memory connected the plurality of processing modules and to the wireless transceiver, and a memory manager module for generating respective data location indices for data stored in the shared memory. The processing modules may cooperate with the shared memory and the memory manager module so that an upstream processing module stores given data in the shared memory, and so that a downstream processing module receives the data location index for the stored given data and processes the stored given data based thereon. The device may further include a security module for selectively purging data from the shared memory.
- More particularly, the security module may selectively purge the data (e.g., all of the data in the shared memory) based upon a change in a security level of the data. The memory manager module may retain data for a predetermined time. That is, the memory manager module may retain the data a sufficient amount of time to allow one or more processors to perform their respective tasks before allowing the data to be overwritten or deleted. The memory manager module may also cause data to be stored within the shared memory based upon a balanced tree.
- The mobile wireless communications device may further include an index memory for storing the data location indices. Thus, the indices may advantageously be stored separately from the data so that the indices are not erased when the security module purges the data, which could otherwise lead to processing errors, for example. The memory manager module may also allocate the shared memory among groups of data. By way of example, the processing modules may be selected from a group including a digital signal processing module, a voice/data processing module, a data validation module, and a cryptographic interface module.
- The processing modules may operate in accordance with a Software Communications Architecture (SCA). In addition, the security module may be a secure cryptographic module, for example. The mobile wireless communications device may also include a portable housing carrying the wireless transceiver, the processing modules, the shared memory, the memory manager module, and the security module. An antenna may also be included and connected to the wireless transceiver.
- A method aspect of the invention is for using a mobile wireless communications device, such as the one discussed briefly above. The method may include using an upstream processing module to store data in the shared memory, generating a data location index for the stored data, and using a downstream processing module to receive the data location index and process the stored data based upon the data location index. The method may further include selectively purging data from the shared memory.
-
FIG. 1 is a perspective view of a wireless communications device in accordance with the present invention. -
FIG. 2 is schematic block diagram of the mobile wireless communications device ofFIG. 1 . -
FIG. 3 is schematic block diagram of an alternative embodiment of the mobile wireless communications device theFIG. 1 . -
FIGS. 4 and 5 are flow charts illustrating method aspects of the present invention. - The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout, and prime notation is used to indicate similar elements in alternate embodiments.
- Referring initially to
FIGS. 1 and 2 , a mobilewireless communications device 20 in accordance with the present invention is first described. By way of example, thedevice 20 may be a software defined Joint Tactical Radio (JTR) set for use with the JTR System (JTRS) that operates in accordance with the Software Communications Architecture (SCA), as will be appreciated by those skilled in the art. The mobilewireless communications device 20 will generally be described herein with respect to a JTR implementation. However, it will also be appreciated from the following description that thedevice 20 may be used in other applications as well, such as cellular communications and computer applications, for example. - The
device 20 is preferably switchable between a plurality of wireless communications operating modes. In the case of a JTR, for example, such operating modes may include a Single-Channel Ground-Air Radio System (SINCGARS) mode, a HAVE QUICK mode, and a VULOS mode. Of course, thedevice 20 may be used with numerous other operating modes as well, as will be appreciated by those skilled in the art. - The
device 20 illustratively includes anantenna 21 and awireless transceiver 22 connected to the antenna and to a sharedmemory 24. Thedevice 20 further illustratively includes a plurality of processing modules 25 a-25 n also connected to the sharedmemory 24. Thedevice 20 also illustratively includes amemory manager module 30 for the sharedmemory 24, and asecurity module 31. By way of example, the above-noted modules may be implemented using one or more microprocessors and/or digital signal processors (DSPs) and corresponding software components for performing their respective tasks, which will be discussed further below. Aportable housing 26 may carry theantenna 21,wireless transceiver 22, processing modules 25 a-25 n, sharedmemory 24,memory manager module 30,security module 24, as well ascontrol knobs module 29. - Generally speaking, in the case of a mobile wireless communications device such as a JTR that is used for both secure (i.e., ciphertext) and unsecure (i.e., plaintext) communications, it is typically necessary to purge or “scrub” data, such as communication data packets, stored in the memory or buffers of the device from time-to-time. For example, when the device is switched from a plaintext mode to a ciphertext mode or vice-versa, it is typically desirable to purge all of the data current in memory so that secure and unsecure data packets are not intermingled. It may also be desirable to purge all data packets from memory upon detecting a security event, such as an intrusion alert, etc.
- Some architectures such as the SCA require that processes or processing modules be able to exchange data amongst themselves for processing, and that each processing module manages it own buffer. However, data purging can become problematic as data is copied in and out of numerous buffers for different processing modules in a processing “pipeline.” With data potentially resident in several processing buffers, it becomes difficult to ensure that all data is purged from every potential location where it might have been copied.
- The processing modules 25 a-25 n advantageously use memory space within the same shared
memory 24 for their respective buffers. This allows all stored data to be conveniently purged by erasing the contents of the entire sharedmemory 24 at once. That is, thesecurity module 31 selectively purges data from the sharedmemory 24, such as upon the occurrence of a change in security level of the data (i.e., between ciphertext/classified data and plaintext/unclassified data) or a security event (intrusion detection, etc.), for example. Typically, thesecurity module 31 will purge all of the data from the sharedmemory 24, but in some embodiments the security module could purge selected data from the shared memory, if desired. - The
security module 31 initiates purges of the sharedmemory 24 independently of the current operations being performed by the processing modules 25 a-25 n. That is, thesecurity module 31 purges the shared memory as soon as a security event or security level change occurs, even though the processing modules 25 a-25 n might be processing data at that time. Accordingly, if a data packet and a pointer thereto are purged while a processing module is attempting to process the data packet, the processing module may generate an error and potentially crash. - To avoid such a scenario while still using a shared memory scheme for ease of data purging, the
memory manager module 30 advantageously allocates the sharedmemory 24 for storing different groups of data to be processed, and generates data location indices indicating the location of the data groups within the shared memory. It should be noted that in some embodiments respective buffer space could be allocated within the sharedmemory 24 for each of the processing modules 25 a-25 n, rather than allocating the shared memory by data groups. - The
memory manager module 30 may also control the way in which data is stored in the sharedmemory 24. By way of example, thememory manager module 30 may cause data to be stored within the sharedmemory 24 based upon a self-balancing binary search tree (i.e., a “balanced tree”) to advantageously reduce data access times, as will be appreciated by those skilled in the art. Of course, other suitable data storage techniques may also be used. - The processing modules 25 a-25 n cooperate with the shared
memory 24 and thememory manager module 30 to perform data processing and storage in a manner that helps to avoid processing module crashes. Taking as an example data to be processed for transmission by thewireless transceiver 22, data will be sequentially processed by theprocessing modules FIG. 2 , this order will be reversed for processing data received by thewireless transceiver 22. Thus, for transmission data, the processing modules 25 a-25 n cooperate with the sharedmemory 24 and thememory manager module 30 so that an upstream processing module (e.g., theprocessing module 25 a) stores data in the sharedmemory 24. The nextdownstream processing module 25 b receives the data location index associated with the given group of data and processes this group of data from the sharedmemory 24 based upon the index. - More particularly, when the
upstream processing module 25 a is done with its processing operations and is ready to “hand-off” the data to thedownstream processing module 25 b, only the data location index (i.e., a pointer) indicating the location of the given group of data is passed to thedownstream processing module 25 b, and the data itself remains in the buffer space of the sharedmemory 24 allocated by thememory manager module 30. Thedownstream processing module 25 b may then process the given data from the location designated by the data location index and pass along the data location index to the next downstream processing module in the series of processing modules 25 a-25 n. - The
memory manager module 30 preferably retains data in the sharedmemory 24 for a predetermined time. By way of example, a downstream processing modules 25 may have the option to indicate to thememory manager module 30 that is it accessing a given group of data, and that the buffer space allocated for the given group of data should not be returned to the usable buffer pool until the downstream processing module is finished with its processing operations. To this end, a reference count may be initiated by thememory manager module 30 which is incremented when a new processing module 25 is using the data, and decremented when that module is finished with its processing operations. When the reference count equals zero (i.e., after the predetermined count time or duration has expired), the buffer space is returned to the usable pool and the data therein may be overwritten. - Turning now additionally to
FIG. 3 , an exemplary JTR implementation of a mobilewireless communications device 20′ is now described. Thedevice 20′ illustratively includes anindex memory 32′ for storing the data location indices. This may be done so that the data location indices are not stored in the data buffer space of the sharedmemory 24′ that is subject to purging. However, in some embodiments as separate index buffer space could be designated within the sharedmemory 24′ that is not subject to purging. In this way, a “valid” index will always be available for a processing module 25′ when requested, even if an intervening purge has occurred erasing the data that the index is actually pointing to. Thus, the processing module 25′ will be directed to a location in the sharedmemory 24′ which, although potentially having empty data values, will most likely not cause the processing module to crash as it might otherwise do if the data and its corresponding index were both deleted, as will be appreciated by those skilled in the art. - In the illustrated JTR example, the
processing modules 25 a′-25 d′ are a digital signal processing module, a voice/data processing module, a data validation module, and a cryptographic processing module, respectively. Among other functions, theDSP processing module 25 a′ may cooperate with thememory manager module 30′ to allocate buffer space within the sharedmemory 24′ for data traffic upon which digital signal processing operations have been or will be performed (e.g., encoding/decoding operations, etc.), and/or perform such DSP operations. The voice/data module 25 b′ may provide a state machine interface for DSP operations, as well as interact with thememory manager module 30′ to free aborted traffic and return the buffer space associated therewith to the useable pool. - The
data validation module 25 c′ may be responsible for validating data upon which cryptographic operations have been or will be performed (i.e., ciphertext). More specifically, thedata validation module 25 c′ may allocate a bypass header from thememory manager module 30′, as will be appreciated by those skilled in the art. In addition, thecryptographic interface module 25 d′ may function as a security traffic and bypass module which provides an interface to asecure cryptographic module 31′ which performs the requisite cryptographic operations on the data and also controls purging of data from the sharedmemory 24′, as discussed further below. - The
cryptographic interface module 25 d′ may also cooperate with thememory manager module 30′ to allocate buffer space within the sharedmemory 24′ for cryptographic processing, and free memory as processing operations are completed. It should be noted that in some embodiments the functions of thesecure cryptographic module 31′ and thecryptographic interface module 25 d′ may be consolidated, even though these modules are shown separately inFIG. 3 for clarity of illustration. - The
secure cryptographic module 31′ may determine that the data security level is about to change based upon a security mode switch 33′ operated by a user for example. Of course, a change in data security levels may be detected “automatically” in some embodiments based upon header information in received data packets, etc., as will also be appreciated by those skilled in the art. - Turning additionally to
FIG. 4 , related method aspects for using a mobilewireless communications device 20 are now described. Beginning atBlock 40, the method illustratively includes storing given data in a sharedmemory 24 using anupstream processing module 25 a (Block 42), and generating a data location index for the stored given data, atBlock 44. The method further illustratively includes using adownstream processing module 25 b to receive the data location index and process the stored given data associated therewith, atBlock 46. - As noted above, the
security module 31 selectively purges data from the sharedmemory 24, atBlock 48, thus concluding the illustrated method (Block 50). Again, this is done whenever a security level of the data changes, a security event is detected, etc. As such, the purging operation will occur independently of the above-described processing steps, and thus the step illustrated with respect to Block 48 could in fact occur at any time before or after the steps shown preceding the purging step with respect toBlocks - Additional method aspects will now be described with reference to
FIG. 5 . As noted above, thememory manager module 30 may allocate the sharedmemory 24 for different groups of data, atBlock 50′. Also, thememory manager module 30 may cause the data to be stored in the sharedmemory 24 based upon a balanced tree, as also discussed above (Block 42′). Moreover, thesecurity module 31 preferably purges all of the data from the sharedmemory 24 any time there is a change in security level of the data (or a security event is detected, etc.), atBlocks 48′ and 52′. Additionally, thememory manager module 30 also preferably retains data in the sharedmemory 24 for a predetermined time, at Blocks 54′, 56′, to allow sufficient time for copying and/or processing by downstream processing modules 25, as discussed above. - Many modifications and other embodiments of the invention will come to the mind of one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is understood that the invention is not to be limited to the specific embodiments disclosed, and that modifications and embodiments are intended to be included within the scope of the appended claims.
Claims (27)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/257,731 US8443158B2 (en) | 2005-10-25 | 2005-10-25 | Mobile wireless communications device providing data management and security features and related methods |
EP06803940A EP1952247A4 (en) | 2005-10-25 | 2006-09-20 | Mobile wireless communications device providing data management and security features and related methods |
PCT/US2006/036718 WO2007050209A2 (en) | 2005-10-25 | 2006-09-20 | Mobile wireless communications device providing data management and security features |
IL190790A IL190790A (en) | 2005-10-25 | 2008-04-10 | Mobile wireless communications device providing data management and security features |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/257,731 US8443158B2 (en) | 2005-10-25 | 2005-10-25 | Mobile wireless communications device providing data management and security features and related methods |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070094463A1 true US20070094463A1 (en) | 2007-04-26 |
US8443158B2 US8443158B2 (en) | 2013-05-14 |
Family
ID=37968295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/257,731 Active 2029-11-19 US8443158B2 (en) | 2005-10-25 | 2005-10-25 | Mobile wireless communications device providing data management and security features and related methods |
Country Status (4)
Country | Link |
---|---|
US (1) | US8443158B2 (en) |
EP (1) | EP1952247A4 (en) |
IL (1) | IL190790A (en) |
WO (1) | WO2007050209A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080178300A1 (en) * | 2007-01-19 | 2008-07-24 | Research In Motion Limited | Selectively wiping a remote device |
US9560012B1 (en) * | 2013-06-27 | 2017-01-31 | The Boeing Company | Cross domain gateway having temporal separation |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357612A (en) * | 1990-02-27 | 1994-10-18 | International Business Machines Corporation | Mechanism for passing messages between several processors coupled through a shared intelligent memory |
US5625795A (en) * | 1994-05-13 | 1997-04-29 | Mitsubishi Denki Kabushiki Kaisha | Exclusive control unit for a resource shared among computers |
US5652885A (en) * | 1993-05-25 | 1997-07-29 | Storage Technology Corporation | Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control |
US6112286A (en) * | 1997-09-19 | 2000-08-29 | Silicon Graphics, Inc. | Reverse mapping page frame data structures to page table entries |
US20030097596A1 (en) * | 2001-11-19 | 2003-05-22 | Muratov Alexander Victorovitch | Method and system for protecting data within portable electronic devices |
US20040243745A1 (en) * | 2003-04-28 | 2004-12-02 | Bolt Thomas B. | Data storage and protection apparatus and methods of data storage and protection |
US20050041510A1 (en) * | 2003-08-19 | 2005-02-24 | Jean Khawand | Method and apparatus for providing interprocessor communications using shared memory |
US6879518B1 (en) * | 2003-11-21 | 2005-04-12 | Atmel Corporation | Embedded memory with security row lock protection |
US6898721B2 (en) * | 2001-06-22 | 2005-05-24 | Gallitzin Allegheny Llc | Clock generation systems and methods |
US7152231B1 (en) * | 1999-11-01 | 2006-12-19 | Harris-Exigent, Inc. | High speed interprocess communication |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812641A (en) * | 1994-10-28 | 1998-09-22 | Nippon T.M.I. Co., Ltd. | Method of renting portable-type communicating devices |
EP1085396A1 (en) * | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Operation of trusted state in computing platform |
-
2005
- 2005-10-25 US US11/257,731 patent/US8443158B2/en active Active
-
2006
- 2006-09-20 WO PCT/US2006/036718 patent/WO2007050209A2/en active Application Filing
- 2006-09-20 EP EP06803940A patent/EP1952247A4/en not_active Withdrawn
-
2008
- 2008-04-10 IL IL190790A patent/IL190790A/en active IP Right Grant
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357612A (en) * | 1990-02-27 | 1994-10-18 | International Business Machines Corporation | Mechanism for passing messages between several processors coupled through a shared intelligent memory |
US5652885A (en) * | 1993-05-25 | 1997-07-29 | Storage Technology Corporation | Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control |
US5625795A (en) * | 1994-05-13 | 1997-04-29 | Mitsubishi Denki Kabushiki Kaisha | Exclusive control unit for a resource shared among computers |
US6112286A (en) * | 1997-09-19 | 2000-08-29 | Silicon Graphics, Inc. | Reverse mapping page frame data structures to page table entries |
US7152231B1 (en) * | 1999-11-01 | 2006-12-19 | Harris-Exigent, Inc. | High speed interprocess communication |
US6898721B2 (en) * | 2001-06-22 | 2005-05-24 | Gallitzin Allegheny Llc | Clock generation systems and methods |
US20030097596A1 (en) * | 2001-11-19 | 2003-05-22 | Muratov Alexander Victorovitch | Method and system for protecting data within portable electronic devices |
US20040243745A1 (en) * | 2003-04-28 | 2004-12-02 | Bolt Thomas B. | Data storage and protection apparatus and methods of data storage and protection |
US20050041510A1 (en) * | 2003-08-19 | 2005-02-24 | Jean Khawand | Method and apparatus for providing interprocessor communications using shared memory |
US6879518B1 (en) * | 2003-11-21 | 2005-04-12 | Atmel Corporation | Embedded memory with security row lock protection |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080178300A1 (en) * | 2007-01-19 | 2008-07-24 | Research In Motion Limited | Selectively wiping a remote device |
WO2008086611A1 (en) * | 2007-01-19 | 2008-07-24 | Research In Motion Limited | Selectively wiping a remote device |
US8056143B2 (en) | 2007-01-19 | 2011-11-08 | Research In Motion Limited | Selectively wiping a remote device |
US20120079603A1 (en) * | 2007-01-19 | 2012-03-29 | Research In Motion Limited | Selectively wiping a remote device |
US9100413B2 (en) * | 2007-01-19 | 2015-08-04 | Blackberry Limited | Selectively wiping a remote device |
US9106670B2 (en) | 2007-01-19 | 2015-08-11 | Blackberry Limited | Selectively wiping a remote device |
US9652629B2 (en) | 2007-01-19 | 2017-05-16 | Blackberry Limited | Selectively wiping a remote device |
US10162983B2 (en) | 2007-01-19 | 2018-12-25 | Blackberry Limited | Selectively wiping a remote device |
US10540520B2 (en) | 2007-01-19 | 2020-01-21 | Blackberry Limited | Selectively wiping a remote device |
US11030338B2 (en) | 2007-01-19 | 2021-06-08 | Blackberry Limited | Selectively wiping a remote device |
US9560012B1 (en) * | 2013-06-27 | 2017-01-31 | The Boeing Company | Cross domain gateway having temporal separation |
Also Published As
Publication number | Publication date |
---|---|
IL190790A0 (en) | 2008-11-03 |
IL190790A (en) | 2013-06-27 |
US8443158B2 (en) | 2013-05-14 |
EP1952247A4 (en) | 2009-09-09 |
WO2007050209A3 (en) | 2007-08-02 |
WO2007050209A2 (en) | 2007-05-03 |
EP1952247A2 (en) | 2008-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101535958B (en) | Methods, systems, and apparatus for object invocation across protection domain boundaries | |
CN100573402C (en) | Code signing system and method | |
US8571221B2 (en) | On-chip storage, creation, and manipulation of an encryption key | |
US8544089B2 (en) | Auditing a device | |
US7730236B2 (en) | Cellular phone and portable storage device using the same | |
US6889378B2 (en) | Information processing method, inter-task communication method, and computer-executable program for the same | |
US20060005049A1 (en) | Method and system for securing data utilizing redundant secure key storage | |
CN107408081A (en) | Reinforcement to memory is provided and resets protection | |
EP1711897A4 (en) | Debugging port security interface | |
US8185738B2 (en) | Data transmission method using an acknowledgement code comprising hidden authentication bits | |
US8032663B2 (en) | Information processing system, information processing apparatus and integrated circuit chip | |
CN109672519A (en) | A kind of encryption apparatus and its data encryption/decryption method | |
US20080080715A1 (en) | Apparatus and method for high-speed, large-volume data encryption using secure memory | |
US7881201B2 (en) | Resending control circuit, sending device, resending control method and resending control program | |
US8443158B2 (en) | Mobile wireless communications device providing data management and security features and related methods | |
CN107248910A (en) | Method for security protection and equipment | |
JP2009230575A (en) | Backup system, onboard backup system, and onboard device | |
EP1766632B1 (en) | System and method for testing a data storage device without revealing memory content | |
CN111386513B (en) | Data processing method, device and system chip | |
CN109050473A (en) | Shared arrangements for automotive doors unlocking method | |
WO2022078119A1 (en) | Cross-device data sharing method and related device | |
CN109508549A (en) | Data processing method, device, equipment and storage medium | |
US8380137B2 (en) | Circuit, process, and use of a memory for transmitting and/or receiving in a radio network | |
WO2024139864A1 (en) | Method for adjusting program storage position, and related apparatus | |
CN109918209B (en) | Method and equipment for communication between threads |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HARRIS CORPORATION, FLORIDA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BROWN, TRAVIS;MARCH, DAVID;PALUM, LLOYD;SIGNING DATES FROM 20051128 TO 20051201;REEL/FRAME:017369/0513 Owner name: HARRIS CORPORATION, FLORIDA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BROWN, TRAVIS;MARCH, DAVID;PALUM, LLOYD;REEL/FRAME:017369/0513;SIGNING DATES FROM 20051128 TO 20051201 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: HARRIS SOLUTIONS NY, INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HARRIS CORPORATION;REEL/FRAME:047600/0598 Effective date: 20170127 Owner name: HARRIS GLOBAL COMMUNICATIONS, INC., NEW YORK Free format text: CHANGE OF NAME;ASSIGNOR:HARRIS SOLUTIONS NY, INC.;REEL/FRAME:047598/0361 Effective date: 20180417 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |