Update of a trusted name list
09831903 · 2017-11-28
Assignee
Inventors
- Avinash Narasimhan (Cupertino, CA, US)
- Hemant Purswani (Sunnyvale, CA, US)
- Clark P. Mueller (San Jose, CA, US)
- David T. Haggerty (San Francisco, CA, US)
- Li Li (Los Altos, CA, US)
- Arun G. Mathias (Sunnyvale, CA)
- Najeeb M. Abdulrahiman (Fremont, CA)
Cpc classification
H04M17/02
ELECTRICITY
International classification
H04B1/3816
ELECTRICITY
Abstract
Methods, devices, and servers for as-needed update of a trusted list are provided herein. An electronic subscriber identity module (eSIM) server receives a request for an eSIM of a particular type from a wireless device. The eSIM server evaluates the particular type and requests an eSIM of the particular type from a second eSIM server, which is not initially trusted by a secure element (SE) of the wireless device. The eSIM server sends a policy update to the wireless device. The wireless device passes the policy update to the SE, for example, a universal integrated circuit card (UICC). The UICC updates the trusted list with an identity of the second eSIM server. When the wireless device downloads a bound profile package (BPP) containing an eSIM from the second eSIM server, the UICC validates the BPP based on the updated trusted list. The eSIM is then installed on the UICC.
Claims
1. A method, by a device, of downloading an electronic subscriber identity module (eSIM), the method comprising: by the device: sending a plan identifier to a carrier billing server; receiving a plan confirmation from the carrier billing server; requesting, responsive to receiving the plan confirmation, a policy update from a first eSIM server; receiving the policy update from the first eSIM server, wherein the policy update comprises an identification of a second eSIM server; sending the policy update to a universal integrated circuit card (UICC) of the device for update of a trusted list; sending a first request to the second eSIM server, wherein the first request is directed to the eSIM; receiving a confirmation, from the UICC, that the second eSIM server is trusted; receiving a data binary large object (blob) from the second eSIM server, wherein the data blob comprises: i) the eSIM in encrypted form, and ii) a signature of the second eSIM server; sending a first portion of the data blob to the UICC for verification of the signature of the second eSIM server; and providing a profile installation command to the UICC, wherein the profile installation command refers to the eSIM.
2. The method of claim 1, further comprising: receiving, from the UICC subsequent to the sending the policy update, a policy update confirmation.
3. The method of claim 1, wherein the eSIM in encrypted form is bound to the UICC.
4. The method of claim 1, wherein the UICC is identified by a card serial number (CSN).
5. The method of claim 1, further comprising: sending, prior to the sending the first request to the second eSIM server, a second request to the first eSIM server, wherein the second request is directed to the eSIM.
6. The method of claim 5, further comprising: receiving a redirection message from the first eSIM server subsequent to the sending the second request and prior to the sending the first request, wherein the redirection message indicates the second eSIM server.
7. The method of claim 1, wherein the UICC is an embedded universal integrated circuit card (eUICC).
8. The method of claim 7, wherein the eUICC is identified by an eUICC-ID (EID).
9. The method of claim 1, further comprising: sending, to a data plan server prior to the sending the plan identifier, a third request directed to learning a list of available data plans.
10. The method of claim 9, further comprising: receiving, subsequent to the sending the third request, a user input indicating the plan identifier, wherein the list comprises the plan identifier.
11. The method of claim 1, further comprising: receiving, from the UICC subsequent to the providing a profile installation command, an installation confirmation message.
12. The method of claim 11, further comprising: accessing, subsequent to the receiving the installation confirmation message, a carrier network associated with the eSIM.
13. A universal integrated circuit card (UICC) comprising: a secure memory; and a secure processor, wherein the secure memory comprises instructions that when executed by the secure processor cause the UICC to: receive, from a device associated with the UICC, a policy message for update of a trusted list, wherein the trusted list is stored on the UICC, add, based on the policy message, an identification of an eSIM server to the trusted list to produce an updated trusted list, receive, from the device, a trust inquiry message concerning the eSIM server, send, to the device and based on the updated trusted list, a confirmation that the eSIM server is a trusted eSIM server, receive at least a portion of a data binary large object (blob) from the device, wherein the at least a portion comprises a signature of the eSIM server, verify, based on the at least a portion, the signature using the identification of the eSIM server in the updated trusted list, and install an eSIM from the data blob in the UICC.
14. The UICC of claim 13, wherein the data blob comprises a bound profile package (BPP).
15. The UICC of claim 13, wherein the UICC is an embedded UICC (eUICC).
16. The UICC of claim 13, wherein: i) the UICC is an embedded universal integrated circuit card (eUICC), and ii) an eUICC controlling authority security domain (ECASD) portion of the secure memory is used by the eUICC for storage of the trusted list.
17. A device comprising: a memory; and one or more processors, wherein the memory includes instructions that, when executed by a processor of the one or more processors, cause the device to perform operations comprising: sending a plan identifier to a carrier billing server, wherein the plan identifier is associated with a carrier and a plan, receiving a plan confirmation from the carrier billing server, requesting, responsive to receiving the plan confirmation, a policy update from a first eSIM server, receiving the policy update from the first eSIM server, wherein the policy update comprises an identification of a second eSIM server, and sending the policy update to a secure element (SE) of the device for update of a trusted list.
18. The device of claim 17, wherein the operations further comprise: sending a first request to the second eSIM server, wherein the first request is directed to downloading an electronic subscriber identity module (eSIM) and wherein the eSIM is associated with the plan identifier.
19. The device of claim 17, wherein the operations further comprise: sending a trust inquiry to the SE; and receiving a confirmation, from the SE, that the second eSIM server is trusted.
20. The device of claim 17, wherein the operations further comprise: receiving a data binary large object (blob) from the second eSIM server, wherein: i) the data blob includes the eSIM in encrypted form, and ii) the eSIM is associated with the carrier and with the plan; providing a profile installation command to the SE, wherein the profile installation command refers to the eSIM; and providing a user of the device with a wireless service, wherein the wireless service is included in the plan.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The included drawings are for illustrative purposes and serve only to provide examples of possible structures and arrangements for the disclosed systems and techniques for intelligently and efficiently managing calls and other communications between multiple associated user devices. These drawings in no way limit any changes in form and detail that may be made to the embodiments by one skilled in the art without departing from the spirit and scope of the embodiments. The embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) Representative applications of apparatuses, systems, and methods according to the presently described embodiments are provided in this section. These examples are being provided solely to add context and aid in the understanding of the described embodiments. It will thus be apparent to one skilled in the art that the presently described embodiments can be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order to avoid unnecessarily obscuring the presently described embodiments. Other applications are possible, such that the following examples should not be taken as limiting.
(14) A wireless device can be provisioned with an eSIM. Various network entities participate in provisioning of an eSIM to an SE (e.g., a UICC or an eUICC), where the SE is associated with a wireless device. To establish trust between communicating entities, PKI techniques can be used. Problems can arise if an eSIM is reserved for a UICC by a particular eSIM server, but a trusted list of the UICC does not initially identify the particular eSIM server.
(15) Embodiments disclosed herein avoid these problems by updating a trusted list on an as-needed basis or, in other words, on an on-demand basis. If an eSIM is requested, via a device on which a UICC is present, from a server that may not be trusted by the UICC, the trusted list is updated to allow provisioning of the UICC with the requested eSIM. Before describing the methods, servers, and devices involved with this solution, eSIM provisioning and PKI techniques will be described to aid in the subsequent discussion.
(16) eSIM Provisioning
(17) A function which provides profile packages is known as a subscription manager data preparation (SM-DP, or SM-DP+). An SM-DP may also be referred to as a profile provider, an eSIM server, an eSIM delivery server, or as an eSIM vendor. An eSIM is an electronic SIM. A physical SIM can be an electronic card, which can be inserted into a wireless device. An eSIM is an example of a profile. A profile package can be a personalized profile using an interoperable description format that is transmitted to a UICC as the basis for loading and installing a profile. Profile data which is unique to a subscriber, e.g., a phone number or an International Mobile Subscriber Identity (IMSI), are examples of personalization data. The SM-DP communicates over an interface with a UICC. Certificates used for authentication and confidentiality purposes can be generated by a trusted certificate issuer.
(18) UICC (SE) Description
(19) Some aspects of an SE will be described here with respect to a UICC. A UICC includes an operating system, and the operating system can include ability to provide authentication algorithms to network access applications associated with a given operator. The operating system also can include the ability to translate profile package data into an installed profile using a specific internal format of the UICC. In some embodiments, the UICC is an embedded UICC (eUICC). An ISD-P (issuer security domain-profile) can host a unique profile within a UICC. The ISD-P is a secure container or security domain for the hosting of the profile. The ISD-P is used for profile download and installation based on a received bound profile package. A bound profile package is a profile package which has been encrypted for a target UICC. An ISD-R (issuer security domain-root) is a function in a eUICC responsible for the creation of new ISD-Ps on the UICC. An ECASD (embedded UICC controlling authority security domain) provides secure storage of credentials required to support the security domains on a UICC. A controlling authority security domain (CASD) may also be referred to as a “key store” herein. A security domain within the UICC contains the operator's over the air (OTA) keys and provides a secure OTA channel. OTA keys are credentials used by an operator for remote management of operator profiles on a UICC.
(20) Some activities related to a UICC resident in a device may be performed by the device. Examples of such activities are profile download assistance and local user interface functions. More information on profile download assistance and local user interface functions can be found in SGP.22.
(21) Public Key Infrastructure Techniques
(22) Communications of a UICC may be authenticated using PKI techniques. The techniques disclosed herein are applicable to eUICCs, UICCs, and SEs. Certificates used for authentication and confidentiality purposes can be generated by a trusted certificate issuer (CI or root CA). A public-key certificate may also be referred to herein simply as a certificate.
(23) A user may store a copy of a certificate, where the certificate holds the name of a given party (user identity). The public key recorded in the certificate can be used to check the signature on a message signed using a PKI private key of the given party. A user or message recipient may use an on-line protocol such as on-line certificate status protocol (OCSP) to determine if a certificate is valid.
(24) The UICC operating system can include ability to provide authentication algorithms to network access applications associated with a given operator. The operating system also can include the ability to translate profile package data into an installed profile using a specific internal format of the UICC. An ECASD provides secure storage of credentials required to support the security domains on the UICC. A controlling authority security domain (CASD) may also be referred to as a “key store” herein.
(25) System
(26)
(27) In some embodiments, the device 110 is a portable wireless device such as a smart phone or a tablet. The device 110 includes a device operating system (OS) 111, a key store 112, and a user interface 113. The UICC includes a UICC OS 102 and a secure memory 103. The device OS 111 communicates with the UICC 101 via an interface 115 and with the key store 112 via an interface 116. The user interface is coupled to the UICC 101 by an interface 117 and with an end user 120 by an interface 125.
(28) The eSIM server 150 is associated with a certificate authority (CA) 170. System 100 also includes an eSIM server 160, which may be a third-party eSIM server. The eSIM server 160 may distribute a PKI certificate signed by the CA 180. In some instances, the UICC 101 does not recognize the public key of CA 180 or of eSIM server 160. That is, in some instances, CA 180 and eSIM server 160 are not initially represented on the trusted list of UICC 101.
(29)
(30) The carrier server 130, in some embodiments, is hosted by SoftBank Group Corp. The eSIM server 150, in some embodiments, is hosted by the manufacturer of the device 110. Examples of the eSIM server 160 are servers hosted by Oberthur Technologies, Giesecke and Devrient (“G&D”) or Gemalto N.V. Examples of carriers are AT&T, T-Mobile, and Sprint.
(31) Trusted List Logic
(32)
(33) Use of Trusted List
(34)
(35) The UICC 101 uses the trusted list 301 to keep track of servers that it can trust. If the UICC 101 receives a communication from a server with a given name, and the given name does not correspond to any entry on the trusted list 301, then the UICC 101 will ignore that communication. For example, if a malicious server sends a provisioning command to the UICC 101, the UICC 101 will not execute the provisioning command because the malicious server is not represented in the trusted list 301. The entries on the trusted list 301, in some embodiments, include common names of servers. A common name is a value that, in some instances, appears in a PKI certificate, such as an X.509 certificate. X.509 is an International Telecommunication Union (ITU) PKI certificate standard. The common name value can be used to identify the subject of the certificate. Another identifier is a distinguished name, which is a fully-qualified domain name of the server that the certificate is for. An object identifier (OID) listed with a registration entity may be used to identify a server. Other names appearing in the trusted list 301 may be associated with the Global Platform (GP) family of standards.
(36) Tables 1 and 2 provide examples of trusted list 301 in the UICC 101 before and after addition of the eSIM server 160 to the trusted list 301. In Table 2, a common name (CN) of the eSIM server 160 has been added to the trusted list. In this example, the eSIM server 160 is hosted by G&D and the common name of the eSIM server 160 is GD L3.
(37) TABLE-US-00001 TABLE 1 Trusted List 301, Initial State Example Common Row Server Name Name (CN) 1 Certificate Issuer (CI) Apple Profile Root 2 Common name of CA 170 Apple L3 3 Common name of eSIM Apple L3 server 150
(38) TABLE-US-00002 TABLE 2 Trusted List 301, After Receiving a Policy Update Example Common Row Server Name Name (CN) 1 Certificate Issuer (CI) Apple Profile Root 2 Common name of CA 170 Apple L3 3 Common name of eSIM Apple L3 server 150 4 Common name of eSIM GD L3 server 160
(39) The UICC 101, in some embodiments, also maintains an untrusted list. An untrusted list can represent a list of entities, servers, CAs, or CIs, for example, which the UICC 101 does not trust. For example, presence of an entity identity or user identity on the untrusted list can indicate to the UICC 101 that there is no unexpired or unrevoked certificate for that entity stored in the UICC 101.
(40) UICC 101, in some embodiments, updates trusted list 301 and, if maintained, the untrusted list, based on events. For example, a given entity identified on the untrusted list may become a trusted entity if a trusted third party, such as a CI or a CA trusted by the UICC 101, provides a signed certificate for the given entity.
(41) Message Flow Overview
(42)
(43) Also near the time t.sub.2, the eSIM server 150 determines whether the UICC 101 trusts the eSIM server 160. If not, the eSIM server 150 recognizes that a policy update should be performed for the UICC 101 so that the UICC 101 will trust the eSIM server 160 when the BPP is downloaded from the eSIM server 160 to the device 110 housing the UICC 101.
(44) After receiving the bind confirmation message, the carrier server 130 sends a plan confirmation in message 403 at time t.sub.3 to the device 110. The device 110 then recognizes that a profile download should be performed. The device 110 sends a policy inquiry in a message 404 at time t.sub.4 to get policy updates. At a time t.sub.5, policy updates are delivered in a message 405 to the UICC 101 via the device 110. The policy update includes a list of server identifiers; the list identifies one or more trusted servers that the UICC 101 is to add to the trusted list 301. Upon receiving the message 405, the UICC 101 updates the trusted list 301; the trusted list 301 now includes an identifier of the eSIM server 160; for an example updated list, see Table 2. At a time t.sub.6, the device 110 continues with the profile download. Initially a message is sent (see
(45) At a time t.sub.8, the eSIM server 160 sends a data blob include the BPP containing the eSIM with identifier ICCID-value. The eSIM is in encrypted form. At a time t.sub.9, the device 110 and UICC 101 perform event 409, “eSIM Installation,” including verification of the signature of the eSIM server 160 by the UICC 101. The UICC 101 proceeds to the signature verification because the trusted list 301 includes an identifier of the eSIM server 160. After the eSIM installation, the end user 120 begins using device 110 with the new carrier plan, supported by UICC 101.
(46) Host eSIM Server Logic
(47)
(48) Device Logic
(49)
(50) UICC Logic
(51)
(52) Detailed Message Flow
(53)
(54) Time advances from top to bottom in
(55) The carrier server 130 sends a message 831 requesting an eSIM, corresponding to the plan, to the eSIM server 150. The eSIM server 150, in some embodiments, is a host eSIM server hosted by a manufacturer of the device 110. The eSIM server 150 determines that the requested eSIM is not provided by the eSIM server 150, but is provided by the eSIM server 160. The eSIM server 150 forwards the eSIM request as message 851 to the eSIM server 160. The eSIM server 160 reserves an eSIM and sends message 861 including an identifier of the eSIM, e.g., an ICCID value identifying eSIM 901 (
(56) At event 833, the carrier server 130 activates service for the device 110 with the eSIM 901 on carrier billing systems. Message 834 is a bind eSIM command to the eSIM server 150, which is forwarded to the eSIM server 160 in message 852. The bind command confirms the UICC and eSIM pairing. The eSIM server 160 binds the eSIM 901 to the UICC 101 to create a BPP. The BPP then rests at the eSIM server 160 until such time as device 110 seeks to download the BPP.
(57) The eSIM server 150 then checks whether the UICC 101 trusts the eSIM server 160. If not, event 853 is registered by the eSIM server 150 indicating that a policy update of the UICC 101 should occur. Message 854 indicates to the carrier server 130 that the eSIM 901 is bound to the UICC 101. The carrier server 130 then sends a plan confirmation message 403 to the device 110. The device 110 then registers a state indicating that an eSIM should be downloaded. This state is shown as event 814 “Trigger eSIM Download” in
(58) Based on the event 814, which is indirectly responsive to the end user 120 event 810 “Setup Cellular Data,” the device 110 sends policy inquiry 404 to the eSIM server 150 asking for any policy updates. The eSIM server 150 has registered the event 853, and so sends a policy update 405. Message 405 may be referred to as a push of policies down to the device. Device 110 forwards the policy update as message 815 to a policy control function (PCF) of the UICC 101. The UICC 101 then updates the trusted list 301 and sends a message 801 to the device 110 indicating that the trusted list of server names (
(59) Continuing with the sequence initiated by the event 814 “Trigger eSIM Download,” the device 110 sends a message 816 to the eSIM server 150 to obtain one or more pending eSIMs. The eSIM server 150 sends message 855 redirecting the device 110 to the eSIM server 160. The device 110 then sends message 817 (“Trust Inquiry”) to the UICC 101 to confirm that the eSIM server 160 is trusted by the UICC 101. Based on the updated trusted list 301, the UICC 101 sends positive confirmation message 802, “Trust Confirmation.”
(60) In response to message 406, the eSIM server 160 begins the download process of the BPP containing eSIM 901 to the device 110 (and ultimately the UICC 101). 818 indicates installation of the eSIM 901 on the UICC 101. 818 is a schematic figure indication, there are a number of events related to eSIM installation. For more details about installation of an eSIM, see SGP.22. After installation of the eSIM 901, the UICC 101 confirms the installation with the message 803.
(61) At event 813, end user 120 commences to use their device 110 based on authentication, encryption, and application services and functions provided in their data plan as supported by the eSIM 901 downloaded from the eSIM server 160. The end user 120 has selected a carrier data plan in a user-friendly manner from a carrier of their choice. Download of the eSIM 901 has been enabled by an on-demand update of the trusted list in the UICC 101 to establish trust in the carrier's selected eSIM server, the eSIM server 160. The device 110 now functions just as if a traditional physical SIM card had been installed after selection of a carrier.
(62) SE Details
(63)
(64) Example Device Connections
(65)
(66) A data blob with the eSIM 901 in encrypted form, in some embodiments, is downloaded from the eSIM server 160 to the device 110. The UICC 101 accepts the data blob based on finding an identity of the eSIM server 160 on the updated trusted list 301. After deployment of the eSIM 901, the end user 120 can now enjoy their requested carrier data plan or wireless service using the eSIM 901.
(67) Variety of Radio Access Technologies
(68) Wireless devices, and mobile devices in particular, can incorporate multiple different radio access technologies (RATs) to provide connections through different wireless networks that offer different services and/or capabilities. A wireless device can include hardware and software to support a wireless personal area network (“WPAN”) according to a WPAN communication protocol, such as those standardized by the Bluetooth® special interest group (“SIG”) and/or those developed by Apple referred to as an Apple Wireless Direct Link (AWDL). The wireless device can discover compatible peripheral wireless devices and can establish connections to these peripheral wireless devices located in order to provide specific communication services through a WPAN. In some situations, the wireless device can act as a communications hub that provides access to a wireless local area network (“WLAN”) and/or to a wireless wide area network (“WWAN”) to a wide variety of services that can be supported by various applications executing on the wireless device. Thus, communication capability for an accessory wireless device, e.g., without and/or not configured for WWAN communication, can be extended using a local WPAN (or WLAN) connection to a companion wireless device that provides a WWAN connection. Alternatively, the accessory wireless device can also include wireless circuitry for a WLAN connection and can originate and/or terminate connections via a WLAN connection. Whether to use a direct connection or a relayed connection can depend on performance characteristics of one or more links of an active communication session between the accessory wireless device and a remote device. Fewer links (or hops) can provide for lower latency, and thus a direct connection can be preferred; however, unlike a legacy circuit-switched connection that provides a dedicated link, the direct connection via a WLAN can share bandwidth with other wireless devices on the same WLAN and/or with the backhaul connection from the access point that manages the WLAN. When performance on the local WLAN connection link and/or on the backhaul connection degrades, a relayed connection via a companion wireless device can be preferred. By monitoring performance of an active communication session and availability and capabilities of associated wireless devices (such as proximity to a companion wireless device), an accessory wireless device can request transfer of an active communication session between a direction connection and a relayed connection or vice versa.
(69) In accordance with various embodiments described herein, the terms “wireless communication device,” “wireless device,” “mobile device,” “mobile station,” “wireless station”, “wireless access point”, “station”, “access point” and “user equipment” (UE) may be used herein to describe one or more common consumer electronic devices that may be capable of performing procedures associated with various embodiments of the disclosure. In accordance with various implementations, any one of these consumer electronic devices may relate to: a cellular phone or a smart phone, a tablet computer, a laptop computer, a notebook computer, a personal computer, a netbook computer, a media player device, an electronic book device, a MiFi® device, a wearable computing device, as well as any other type of electronic computing device having wireless communication capability that can include communication via one or more wireless communication protocols such as used for communication on: a wireless wide area network (WWAN), a wireless metro area network (WMAN) a wireless local area network (WLAN), a wireless personal area network (WPAN), a near field communication (NFC), a cellular wireless network, a fourth generation (4G) LTE, LTE Advanced (LTE-A), and/or 5G or other present or future developed advanced cellular wireless networks.
(70) The wireless device, in some embodiments, can also operate as part of a wireless communication system, which can include a set of client devices, which can also be referred to as stations, client wireless devices, or client wireless devices, interconnected to an access point (AP), e.g., as part of a WLAN, and/or to each other, e.g., as part of a WPAN and/or an “ad hoc” wireless network, such as a Wi-Fi direct connection. In some embodiments, the client device can be any wireless device that is capable of communicating via a WLAN technology, e.g., in accordance with a wireless local area network communication protocol. In some embodiments, the WLAN technology can include a Wi-Fi (or more generically a WLAN) wireless communication subsystem or radio, the Wi-Fi radio can implement an Institute of Electrical and Electronics Engineers (IEEE) 802.11 technology, such as one or more of: IEEE 802.11a; IEEE 802.11b; IEEE 802.11g; IEEE 802.11-2007; IEEE 802.11n; IEEE 802.11-2012; IEEE 802.11ac; IEEE 802.11ax; or other present or future developed IEEE 802.11 technologies.
(71) Additionally, it should be understood that the wireless devices described herein may be configured as multi-mode wireless communication devices that are also capable of communicating via different third generation (3G) and/or second generation (2G) RATs. In these scenarios, a multi-mode wireless device or UE can be configured to prefer attachment to LTE networks offering faster data rate throughput, as compared to other 3G legacy networks offering lower data rate throughputs. For instance, in some implementations, a multi-mode wireless device or UE may be configured to fall back to a 3G legacy network, e.g., an Evolved High Speed Packet Access (HSPA+) network or a Code Division Multiple Access (CDMA) 2000 Evolution-Data Only (EV-DO) network, when LTE and LTE-A networks are otherwise unavailable.
(72) Representative Exemplary Apparatus
(73)
(74) The computing device 1100 also includes a storage device 1140, which can comprise a single storage or a plurality of storages (e.g., hard drives), and includes a storage management module that manages one or more partitions within the storage device 1140. In some embodiments, storage device 1140 can include flash memory, semiconductor (solid state) memory or the like. The computing device 1100 can also include a Random Access Memory (“RAM”) 1120 and a Read-Only Memory (“ROM”) 1122. The ROM 1122 can store programs, utilities or processes to be executed in a non-volatile manner. The RAM 1120 can provide volatile data storage, and stores instructions related to the operation of the computing device 1100.
(75) The various aspects, embodiments, implementations or features of the described embodiments can be used separately or in any combination. Various aspects of the described embodiments can be implemented by software, hardware or a combination of hardware and software. The described embodiments can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, DVDs, magnetic tape, hard storage drives, solid state drives, and optical data storage devices. The computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
(76) The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the described embodiments. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the described embodiments. Thus, the foregoing descriptions of specific embodiments are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the described embodiments to the precise forms disclosed. It will be apparent to one of ordinary skill in the art that many modifications and variations are possible in view of the above teachings.