text:
A data structure has within it the following elements: an identification of a data structure type; and a proof that two or more instances of the data structure type are as trustworthy as each other. Methods and devices using such data structures are described.
1. A method of providing evidence of a state of a computer platform, comprising:
measuring a state of the computer platform, wherein measuring a state comprises a measurement of a first data structure in the computer platform, to provide a first measured state;
using the first measured state in evidence of the state of the computer platform;
replacing the first data structure with a second data structure in the computer platform;
measuring the state of the computer platform with the first data structure replaced by the second data structure to provide a second measured state;
verifying that the second measured state is as trustworthy as the first measured state; and
substituting the second measured state for the first measured state in evidence of the state of the computer platform.
2. A method as claimed in
3. A method as claimed in
4. A method as claimed in
5. A method as claimed in
6. A method according to
7. A method as claimed in
8. A method as claimed in
9. A method as claimed in
10. A method as claimed in
11. A method as claimed in
12. A method as claimed in
13. A method as claimed in
14. A method as claimed in
15. A method as claimed in
16. A computer platform containing a trusted device protected against subversion and adapted to measure and vouch for data structures on the computer platform, wherein the trusted device is adapted to determine when a first data structure on the computer platform has been replaced by a second data structure that the second data structure is as trustworthy as the first data structure.
17. A computer platform as claimed in
18. A computer platform as claimed in
19. A computer platform as claimed in
20. A computer platform as claimed in
21. A computer platform as claimed in
22. A computer platform as claimed in
23. A method of providing an upgrade or replacement for identified software, comprising:
determining for the upgrade or replacement a statement indicating the nature of the software and a proof that the upgrade or replacement is as trustworthy as the identified software; and
providing the upgrade or replacement with the statement.
24. A method as claimed in
25. A method as claimed in
26. A data structure, comprising:
an identification of a data structure type;
a proof that two or more instances of that data structure type are as trustworthy as each other.
27. A data structure as claimed in
28. A data structure as claimed in
29. A data structure as claimed in
30. A data structure as claimed in
31. A pair of data structures comprising a data structure as claimed in
32. A data structure or pair of data structures as claimed in
33. A data structure or pair of data structures as claimed in
34. A method of providing an integrity metric on a computing platform containing a trusted device protected from subversion, comprising:
measuring at least a part of a data structure as claimed in
recording the measurement in the trusted device.
35. A method as claimed in
36. A method as claimed in
37. A method as claimed in
38. A method as claimed in
39. A method of determining a software state used by a computing platform, comprising:
requesting an indication of software state from the computing platform; and
receiving one or more indications of software type attested by a software provider and verified by the computing platform.
40. A method as claimed in
41. A method as claimed in
42. A method for a computing platform to report a software state, comprising:
receiving a request for an indication of software state of the computing platform; and providing one or more indications of software type attested by a software provider and verified by the computing platform.
43. A method as claimed in
44. A method as claimed in
45. A method of migrating a virtual trusted computing platform from a first trusted computing platform to a second trusted computing platform, each trusted computing platform comprising a trusted device protected against subversion and adapted to measure aspects of the computing environment of that trusted computing platform, and wherein the virtual trusted computing platform comprises a virtual trusted device and a virtual computing environment from which the virtual trusted device is protected, trust in the virtual trusted platform being rooted in the trusted device of the trusted platform hosting the virtual trusted platform, the method comprising:
a first migration process on the first trusted computing platform determining that the second trusted computing platform is a trusted computing platform;
the first migration process updating data structures of the virtual trusted platform with properties of the second trusted computing platform;
the first migration process migrating secrets of the virtual trusted platform from the first trusted computing platform to the second trusted computing platform; and
transferring the virtual trusted platform to the second trusted computing platform and resuming operation of the virtual trusted platform.
46. A method as claimed in
47. A method as claimed in
48. A method of providing evidence of a state of a computer platform, comprising:
verifying one or more data structures present on the computer platform and obtaining evidence of the verification; and
providing said evidence of the verification of the one or more data structures as evidence of the state of the computer platform.
49. A method as claimed in
50. A method as claimed in
51. A method as claimed in
52. A method as claimed in
The invention relates to data which is trusted, in the sense that at least one trusted entity is prepared to vouch for the data. It is particularly relevant to data comprising software (such as data structures or executable instructions) and in embodiments to the upgrading or replacement of software on a computing device.
A significant consideration in interaction between computing entities is trust—whether a foreign computing entity will behave in a reliable and predictable manner, or will be (or already is) subject to subversion. Trusted systems which contain a component at least logically protected from subversion have been developed by the companies forming the Trusted Computing Group (TCG)—this body develops specifications in this area, such are discussed in, for example, "Trusted Computing Platforms—TCPA Technology in Context", edited by Siani Pearson, 2003, Prentice Hall PTR. The implicitly trusted components of a trusted system enable measurements of a trusted system and are then able to provide these in the form of integrity metrics to appropriate entities wishing to interact with the trusted system. The receiving entities are then able to determine from the consistency of the measured integrity metrics with known or expected values that the trusted system is operating as expected.
Integrity metrics will typically include measurements of the software used by the trusted system. These measurements may, typically in combination, be used to indicate states, or trusted states, of the trusted system. In Trusted Computing Group specifications, mechanisms are taught for "sealing" data to a particular platform state—this has the result of encrypting the sealed data into an inscrutable "opaque blob" containing a value derived at least in part from measurements of software on the platform. The measurements comprise digests of the software, because digest values will change on any modification to the software. This sealed data may only be recovered if the trusted component measures the current platform state and finds it to be represented by the same value as in the opaque blob.
It will be appreciated that any change in software will cause a number of problems, both with this specific process and more generally where measurement of software is taken as representative of the state of a computer system—however small the change to the software, effective forms of measurement (such as digests) will give different values. In the example of "sealing" above, this means that changes to software—which may be entirely desirable, for example to improve functionality or to remove bugs and weaknesses—have the disadvantage of preventing continued access to sealed data. This is only one exemplary problem, however—there is a general difficulty in having the same trust in new or replacement software as was had in original software, this general difficulty having attendant practical difficulties in maintaining functionality based on that trust.
It is desirable to find a way to update or change software that is trusted to provide continuity in trust as well as in software functionality.
In one aspect, the invention provides a data structure comprising an identification of a data structure type and a proof that two or more instances of the data structure type are as trustworthy as each other.
Preferred embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, of which:
Before describing embodiments of the present invention, a trusted computing platform of a type generally suitable for carrying out embodiments of the present invention will be described with relevance to
A trusted computing platform of the kind described here is a computing platform into which is incorporated a trusted device whose function is to bind the identity of the platform to reliably measured data that provides one or more integrity metrics of the platform. The identity and the integrity metric are compared with expected values provided by a trusted party (TP) that is prepared to vouch for the trustworthiness of the platform. If there is a match, the implication is that at least part of the platform is operating correctly, depending on the scope of the integrity metric.
A user verifies the correct operation of the platform before exchanging other data with the platform. A user does this by requesting the trusted device to provide its identity and one or more integrity metrics. (Optionally the trusted device will refuse to provide evidence of identity if it itself was unable to verify correct operation of the platform.) The user receives the proof of identity and the identity metric or metrics, and compares them against values which it believes to be true. Those proper values are provided by the TP or another entity that is trusted by the user. If data reported by the trusted device is the same as that provided by the TP, the user trusts the platform. This is because the user trusts the entity. The entity trusts the platform because it has previously validated the identity and determined the proper integrity metric of the platform.
Once a user has established trusted operation of the platform, he exchanges other data with the platform. For a local user, the exchange might be by interacting with some software application running on the platform. For a remote user, the exchange might involve a secure transaction. In either case, the data exchanged is 'signed' by the trusted device. The user can then have greater confidence that data is being exchanged with a platform whose behaviour can be trusted. Data exchanged may be information relating to some or all of the software running on the computer platform. Existing Trusted Computing Group trusted computer platforms are adapted to provide digests of software on the platform—these can be compared with publicly available lists of known digests for known software. This does however provide an identification of specific software running on the trusted computing platform—this may be undesirable for the owner of the trusted computing platform on privacy grounds. As will be described below, aspects of the present invention may be used to improve this aspect of the privacy position of the trusted computing platform owner.
The trusted device uses cryptographic processes but does not necessarily provide an external interface to those cryptographic processes. The trusted device should be logically protected from other entities—including other parts of the platform of which it is itself a part. Also, a most desirable implementation would be to make the trusted device tamperproof, to protect secrets by making them inaccessible to other platform functions and provide an environment that is substantially immune to unauthorised modification (i.e., both physically and logically protected). Since tamper-proofing is impossible, the best approximation is a trusted device that is tamper-resistant, or tamper-detecting. The trusted device, therefore, preferably consists of one physical component that is tamper-resistant. Techniques relevant to tamper-resistance are well known to those skilled in the art of security. These techniques include methods for resisting tampering (such as appropriate encapsulation of the trusted device), methods for detecting tampering (such as detection of out of specification voltages, X-rays, or loss of physical integrity in the trusted device casing), and methods for eliminating data when tampering is detected.
A trusted platform 10 is illustrated in the diagram in
As illustrated in
Typically, in a personal computer the BIOS program is located in a special reserved memory area, the upper 64K of the first megabyte of the system memory (addresses F���h to FFFFh), and the main processor is arranged to look at this memory location first, in accordance with an industry wide standard. A significant difference between the platform and a conventional platform is that, after reset, the main processor is initially controlled by the trusted device, which then hands control over to the platform-specific BIOS program, which in turn initialises all input/output devices as normal. After the BIOS program has executed, control is handed over as normal by the BIOS program to an operating system program, such as Windows XP™, which is typically loaded into main memory 212 from a hard disk drive (not shown). The main processor is initially controlled by the trusted device because it is necessary to place trust in the first measurement to be carried out on the trusted platform computing. The measuring agent for this first measurement is termed the root of trust of measurement (RTM) and is typically trusted at least in part because its provenance is trusted. In one practically useful implementation the RTM is the platform while the main processor is under control of the trusted device. As is briefly described below, one role of the RTM is to measure other measuring agents before these measuring agents are used and their measurements relied upon. The RTM is the basis for a chain of trust. Note that the RTM and subsequent measurement agents do not need to verify subsequent measurement agents, merely to measure and record them before they execute. This is called an "authenticated boot process". Valid measurement agents may be recognised by comparing a digest of a measurement agent against a list of digests of valid measurement agents. Unlisted measurement agents will not be recognised, and measurements made by them and subsequent measurement agents are suspect.
The trusted device 24 comprises a number of blocks, as illustrated in
Specifically, the trusted device in this embodiment comprises: a controller 30 programmed to control the overall operation of the trusted device 24, and interact with the other functions on the trusted device 24 and with the other devices on the motherboard 20; a measurement function 31 for acquiring a first integrity metric from the platform 10 either via direct measurement or alternatively indirectly via executable instructions to be executed on the platform's main processor; a cryptographic function 32 for signing, encrypting or decrypting specified data; an authentication function 33 for authenticating a smart card; and interface circuitry 34 having appropriate ports (36, 37 & 38) for connecting the trusted device 24 respectively to the data bus 26, control lines 27 and address lines 28 of the motherboard 20. Each of the blocks in the trusted device 24 has access (typically via the controller 30) to appropriate volatile memory areas 4 and/or non-volatile memory areas 3 of the trusted device 24. Additionally, the trusted device 24 is designed, in a known manner, to be tamper resistant.
For reasons of performance, the trusted device 24 may be implemented as an application specific integrated circuit (ASIC). However, for flexibility, the trusted device 24 is preferably an appropriately programmed micro-controller. Both ASICs and micro-controllers are well known in the art of microelectronics and will not be considered herein in any further detail.
One item of data stored in the non-volatile memory 3 of the trusted device 24 is a certificate 350. The certificate 350 contains at least a public key 351 of the trusted device 24 and an authenticated value 352 of the platform integrity metric measured by a trusted party (TP). The certificate 350 is signed by the TP using the TP's private key prior to it being stored in the trusted device 24. In later communications sessions, a user of the platform 10 can deduce that the public key belongs to a trusted device by verifying the TP's signature on the certificate. Also, a user of the platform 10 can verify the integrity of the platform 10 by comparing the acquired integrity metric with the authentic integrity metric 352. If there is a match, the user can be confident that the platform 10 has not been subverted. Knowledge of the TP's generally-available public key enables simple verification of the certificate 350. The non-volatile memory 35 also contains an identity (ID) label 353. The ID label 353 is a conventional ID label, for example a serial number, that is unique within some context. The ID label 353 is generally used for indexing and labelling of data relevant to the trusted device 24, but is insufficient in itself to prove the identity of the platform 10 under trusted conditions.
The trusted device 24 is equipped with at least one method of reliably measuring or acquiring the integrity metric of the computing platform 10 with which it is associated. In the present embodiment, a first integrity metric is acquired by the measurement function 31 in a process involving the generation of a digest of the BIOS instructions in the BIOS memory. Such an acquired integrity metric, if verified as described above, gives a potential user of the platform 10 a high level of confidence that the platform 10 has not been subverted at a hardware, or BIOS program, level. Other known processes, for example virus checkers, will typically be in place to check that the operating system and application program code has not been subverted.
The measurement function 31 has access to: non-volatile memory 3 for storing a hash program 354 and a private key 355 of the trusted device 24, and volatile memory 4 for storing acquired integrity metrics. A trusted device has limited memory, yet it may be desirable to store information relating to a large number of integrity metric measurements. This is done in trusted computing platforms as described by the Trusted Computing Group by the use of Platform Configuration Registers (PCRs) 8 a-8 n. The trusted device has a number of PCRs of fixed size (the same size as a digest)—on initialisation of the platform, these are set to a fixed initial value. Integrity metrics are then "extended" into PCRs by a process shown in
Clearly, there are a number of different ways in which an initial integrity metric may be calculated, depending upon the scope of the trust required. The measurement of the BIOS program's integrity provides a fundamental check on the integrity of a platform's underlying processing environment. The integrity metric should be of such a form that it will enable reasoning about the validity of the boot process—the value of the integrity metric can be used to verify whether the platform booted using the correct BIOS. Optionally, individual functional blocks within the BIOS could have their own digest values, with an ensemble BIOS digest being a digest of these individual digests. This enables a policy to state which parts of BIOS operation are critical for an intended purpose, and which are irrelevant (in which case the individual digests must be stored in such a manner that validity of operation under the policy can be established).
Other integrity checks could involve establishing that various other devices, components or apparatus attached to the platform are present and in correct working order. In one example, the BIOS programs associated with a SCSI controller could be verified to ensure communications with peripheral equipment could be trusted. In another example, the integrity of other devices, for example memory devices or co-processors, on the platform could be verified by enacting fixed challenge/response interactions to ensure consistent results. As indicated above, a large number of integrity metrics may be collected by measuring agents directly or indirectly measured by the RTM, and these integrity metrics extended into the PCRs of the trusted device 24. Some—many—of these integrity metrics will relate to the software state of the trusted platform.
Preferably, the BIOS boot process includes mechanisms to verify the integrity of the boot process itself. Such mechanisms are already known from, for example, Intel's draft "Wired for Management baseline specification v 2.0—BOOT Integrity Service", and involve calculating digests of software or firmware before loading that software or firmware. Such a computed digest is compared with a value stored in a certificate provided by a trusted entity, whose public key is known to the BIOS. The software/firmware is then loaded only if the computed value matches the expected value from the certificate, and the certificate has been proven valid by use of the trusted entity's public key. Otherwise, an appropriate exception handling routine is invoked. Optionally, after receiving the computed BIOS digest, the trusted device 24 may inspect the proper value of the BIOS digest in the certificate and not pass control to the BIOS if the computed digest does not match the proper value—an appropriate exception handling routine may be invoked.
Processes of trusted computing platform manufacture and verification by a third party are briefly described, but are not of fundamental significance to the present invention and are discussed in more detail in "Trusted Computing Platforms—TCPA Technology in Context" identified above.
At the first instance (which may be on manufacture), a TP which vouches for trusted platforms, will inspect the type of the platform to decide whether to vouch for it or not. The TP will sign a certificate related to the trusted device identity and to the results of inspection—this is then written to the trusted device.
At some later point during operation of the platform, for example when it is switched on or reset, the trusted device 24 acquires and stores the integrity metrics of the platform. When a user wishes to communicate with the platform, he uses a challenge/response routine to challenge the trusted device 24 (the operating system of the platform, or an appropriate software application, is arranged to recognise the challenge and pass it to the trusted device 24, typically via a BIOS-type call, in an appropriate fashion). The trusted device 24 receives the challenge and creates an appropriate response based on the measured integrity metric or metrics—this may be provided with the certificate and signed. This provides sufficient information to allow verification by the user.
Values held by the PCRs may be used as an indication of trusted platform state. Different PCRs may be assigned specific purposes (this is done, for example, in Trusted Computing Group specifications). A trusted device may be requested to provide values for some or all of its PCRs (in practice a digest of these values—by a TPM_Quote command) and sign these values. As indicated above, data (typically keys or passwords) may be sealed (by a TPM_Seal command) against a digest of the values of some or all the PCRs into an opaque blob. This is to ensure that the sealed data can only be used if the platform is in the (trusted) state represented by the PCRs. The corresponding TPM_Unseal command performs the same digest on the current values of the PCRs. If the new digest is not the same as the digest in the opaque blob, then the user cannot recover the data by the TPM_Unseal command. If any of the measurements from which the PCR values are derived relate to software on the platform which has changed, then the corresponding PCR will have a different value—a conventional trusted platform will therefore not be able to recover the sealed data.
Aspects of the present invention will now be described with reference to embodiments employing—in some cases modifying—the trusted computing platform structure indicated above. An approach to providing new or updated software of equivalent function and trust properties will first be described, together with a mechanism for allowing a trusted computing platform to indicate its software functionality—and verify its trusted status—without revealing the specific software that it uses. An exemplary approach is described to demonstrate how PCR values before and after replacement of software with functionally and trust equivalent software can be shown to be equivalent, and the use of this approach to solve problems such as that indicated above in sealing data against a software state.
It is noted that in existing trusted computing platform arrangements, entities in fact base their confidence in a trusted computing platform on signed statements about the software that is installed in a platform. The inventor has appreciated that trusted platforms may provide evidence of verification of statements that the software is to be trusted, rather than providing the actual software measurements. This has several advantages. If the trusted device no longer holds values of software measurements, it is physically impossible for the trusted device to report the values of software measurements. If the verification process can include evidence of the trust equivalence of two values of software measurements (and the statement was made by a trusted measurement entity), the trusted device will contain information that can be used (as is described below, in an exemplary arrangement) to re-enable access to sealed plain text data after software is changed in a prescribed manner.
Positive consequences follow from working from statements that vouch for the software in a platform, instead of with the actual software in a platform. If a party that vouched for existing software is prepared to vouch that replacement software is just as acceptable as existing software, use of appropriate statements for this purpose can be used such that the platform can re-enable access to sealed plain text data after such replacement software is installed. In practice the owner of a trusted platform must choose the parties that he wishes to vouch for his platform. The owner could choose any party or set of parties, provided that that party or parties has credibility with those who will interact with the platform. The owner can change parties or sets of parties, provided that those parties are willing to acknowledge each other as trusted peers. This enables both commercial companies and not-for-profit organisations to vouch for the same trusted platforms.
A party produces a signed statement if it wishes to vouch for a particular program. The party creates a new statement if the program is not an upgrade or replacement, or creates the next entry in a list of statements if the program is an upgrade or replacement. A statement can describe one or more programs. If a statement describes more than one program, the implication is that all the programs are considered by the signing party to be equally functional and trustworthy for the intended task.
An exemplary form of statement is shown in
It can be seen that nextPubKey and prevStatement between them allow related statements to form a list linked both backwards and forwards—such linkage is illustrated in
In one approach illustrated in
The arrows in
It should be appreciated that the statements in the list have in common equivalence of function and common evidence of trust by the party issuing the statement, but that in other aspects, statements can differ. For example, a program associated with statementN is not necessarily the program associated with statementM; thus programDigestsN is not necessarily the same as programDigestsM. This means that the program(s) associated with a statement at the start of a list may be different (or the same) as the program(s) associated with the statement at any intermediate point in the list, or at the end of the list. Similarly, pubKeyN in a list may or may not be the same as nextPubKeyN. Thus the key used to verify signatureValue0 may or may not be the same key used to verify signatureValueN, whether N is an intermediate statement in a list or is the last statement in a list. Thus a party may change its signing key at intervals (in accordance with recommended security practice) or may hand over trust to another party which has a different signing key.
In a modification to this approach, PubKey and nextPubKey could be digests of keys, or digests of a structure containing one or more keys. Clearly, in such an implementation, the actual public key must also be available to the platform. In such a case, any private key corresponding to any public key digest in that structure can be used to sign statements, and multiple parties can concurrently vouch for the trustworthiness of a platform.
It should be noted that for a given software type, it is necessary either to use statements of this type consistently or not to use them at all (and instead to use, for example, conventional TCG approaches). If statements are to be used for a software type, the first instance of the software type to be vouched for by the platform needs to have a statement. Switching from a conventional TCG approach to an upgrade with a statement, as described, is not an available approach.
A mechanism which allows a trusted platform to achieve a measure of privacy when asked to identify its software will now be described. This requires the party issuing a statement to actually issue two statements, the one described above plus a similar auxiliary statement that omits the programDigests field.
The verification of new or replacement software associated with statements will now be described, as will be the recording of the verification process. The essence of this process is to replace a single extend operation (for an aspect of a platform) with one or more extend operations, each of which describe a statement about that aspect of a platform.
For verification to be carried out and recorded, the following are required: that trusted measurement agents carry out the statement verification processes, and that a trusted measurement entity must verify programs, must verify statements, and must verify that lists of statements are fully linked. A measurement entity is trusted either because of attestation about the entity or measurements of the entity by a trusted measurement agent.
In order to verify a program, the measurement entity creates a digest of the program and compares that digest with information (from the field programDigests) in a statement. The measurement entity must record an indication of whether this process succeeded. One implementation is to record in the trusted device a verifiedProgram flag that is either TRUE or FALSE. If the program is associated with a linked list, this comparison should be done only using the last statement in the list. (Previous statements in the list merely provide a history of the evolution of the program and attestation for the program).
In order to create a verifiable record of a statement, the measurement entity must make a record in the trusted device of at least whether the signature of the statement was successfully verified. One implementation is to record in a trusted device a verifiedStatement flag that is set to either TRUE or FALSE.
In order to create an auditable record of the verification of a statement, the measurement agent must make a record of the technique used to perform the verification. One implementation is to record in the trusted device the public key (pubKey or nextPubKey) used to verify the signature over a statement. If practicable, the measurement agent also verifies that the public key used to verify the signature over statement is extant (has not been revoked), but this is probably beyond the capabilities of most measurement agents. Should it be possible to determine this, the measurement entity always sets the verifiedStatement flag to FALSE if the public key is not extant.
If the private key corresponding to a public key is only used to sign a single type of statement, no statement about the intent of the signature is required. Otherwise, information that indicates that the signature belongs to a particular statement must be recorded with the public key. One implementation is to record in the trusted device the statementID.
In order to distinguish a single statement or the start of a list, one implementation is to tag the verification of a statement with the flag startStatement==TRUE if the statement was not verified using nextPubKey of another statement or if the statement's prevStatementDigest is not the digest value of the previous statement, and otherwise to tag the verification of a statement with the flag startStatement==FALSE.
Any member of a linked list must be verified both forwards and backwards. If a linking test passes, the statement is tagged with the flag verifiedList ==TRUE. Otherwise the statement is tagged with the flag verifiedList ==FALSE.
In order to create a complete record of a list of verified statements, the measurement entity must record in the trusted device at least the essential characteristics of all statements in the list, and whether all the statements in the list passed their verification tests. The preferred implementation is to make a record in the trusted device of all statements in the list, while recording separately in the trusted device the results of verification tests on every statement in the list.
Following this approach, after assessing a statement, the measurement entity may record in the trusted device at least the data structure STATEMENT_VERIFICATION containing at least (1) the public key used to verify the statement, (2) the statementID if it exists. For each PCR, the trusted device maintains an upgradesPermitted flag that is set TRUE on PCR initialisation but reset FALSE whenever the platform encounters a statement associated with that PCR with verifiedProgram==FALSE, or verifiedStatement==FALSE, or verifiedList==FALSE. If upgradesPermitted is FALSE, the information content of the associated PCR is unreliable. If upgradesPermitted is FALSE, the trusted device (TPM) must refuse to perform security operations predicated upon the correctness of that PCR value, such as sealing data to that PCR (e.g. creating TCG's "digestAtCreation" parameter), unsealing data (e.g. checking TCG's "digestAtRelease" parameter). If upgradesPermitted is FALSE, the TPM may refuse to report (using TPM_quote, for example) that PCR value, or alternatively may report the value of upgradesPermitted along with the PCR value.
An algorithm to substitute a conventional TCG integrity metric with a record of a statement or a record of a list of statements is described:
The verification process described above captures the information needed to establish that upgraded or replacement software is trust equivalent to earlier software The privacy concerns associated with reporting software state on challenge can thus be ameliorated by the use of statements describing many programs or by the use of auxiliary statements. Further steps are required to solve the problem of accessing data in opaque blobs sealed to an earlier platform state with earlier software. As will be indicated below, it will be possible to reseal these opaque blobs to the PCR values associated with the new software state. This requires a number of actions, effectively amounting to proof that the later PCR values are derived legitimately from the earlier PCR values against which the opaque blob is sealed. Four types of action are required: proving that one PCR value can be derived from another PCR value; proving that one integrity metric is a replacement for another integrity metric (proving that the two integrity metrics are linked); proving the equivalence of PCR values composed of measured digests; and proving the equivalence of composite PCR values composed of multiple PCR values. Each action builds on preceding actions, and each action will be described below in turn in an exemplary embodiment, proposing new functions to complement the existing Trusted Computing Group system. The use of the functions will be described in an exemplary embodiment of the replacement of a first composite-PCR value in an opaque sealed blob with a second composite-PCR value that is trust equivalent to the first composite-PCR value.
It should be noted that in Trusted Computing Group terminology, sets of PCR values are described as TPM_COMPOSITE_HASH values. Trusted Computing Group defines a TPM_COMPOSITE_HASH value as the digest of a TPM_PCR_COMPOSITE structure, which is defined as:
This means that a TPM_PCR_COMPOSITE structure is (in essence) a TPM_PCR_SELECTION structure followed by a four Byte value, followed by a concatenated number of PCR values. A TPM_COMPOSITE_HASH value is the result of serially hashing those structures in a hash algorithm.
A particular nomenclature is used later in this specification when describing integrity metrics and PCR values. Capital letters represent integrity metric values and capital letters followed by the tilde character "˜" represent PCR values, where the capital letter is that representing the most recent value of integrity metric to be extended into the PCR. Thus the PCR state A˜ means that the most recent integrity metric extended into the PCR had the value A. The operation of extending a PCR value of A˜ with the integrity metric value B is written X(A˜, B), resulting in the PCR value B˜. It must be appreciated that the PCR value represented by [letter]˜ is multivalued. The actual PCR value depends on the previous history of the PCR.
The approach used throughout this exemplary implementation is for a management program to guide the trusted device (TPM) through a series of steps, each creating data that is evidence of an assertion that the trusted device has verified. (There are alternate ways to achieve the same objective involving checking by the trusted device of signed statements, but the described approach is selected for consistency with existing Trusted Computing Group methodology.) The trusted device can later recognise that it created such evidence. These recognition methods are well known to those skilled in the art, and are used in existing Trusted Computing Group technology. Recognition enables the TPM to believe the assertions stated in data when the data is reloaded into the TPM.
In one implementation, a trusted device requires new capabilities to prove that two sets of PCR values are trust equivalent. The following set of prototype trusted device commands illustrate the concept:
One use of these new functions will now be described, purely as an example.
The structure [uPCR, P, E0˜, E0˜] can then be used with TPM_upgrade_forkHash to create trust equivalent composite PCR digest values. These values can then be used in TPM_upgrade_seal to upgrade the composite hash values in a sealed blob.
Preferably the existing Trusted Computing Group method of generating a composite PCR is changed to extending each subsequent PCR value into an intermediate composite PCR value. Then the command TPM_upgrade_forkHash is not required.
In a complementary approach, a further new trusted device capability creates and signs credentials containing the contents of data blobs produced by these new capabilities. Such credentials could be supplied to third parties along with evidence of current platform state (such as that created by TPM_Quote), as evidence that a platform's new state is as trustworthy as a previous state. Such credentials must include a tag, such as digestPairData, compositePairData, and so on, to indicate the meaning of the credential. Such credentials should be signed using one of a TPM's Attestation Identities, in accordance with normal practice in the Trusted Computing Group, to preserve privacy.
This approach as a whole allows a later software state (as evidenced by associated PCR values) to be associated with an earlier software state. It is therefore possible for sealed blobs to be accessed despite the change of software state, as the new PCR values can be shown to be derivable from the old PCR values and a new TPM_COMPOSITE_HASH value can replace the old TPM_COMPOSITE_HASH value. A suitable approach is simply to update all such "sealed blobs" as one step in the process of upgrading or replacing software on the trusted platform.
If a platform is such that it does not have sufficient resources to perform statement verification processes, the trusted device can be provided with capabilities that perform those verification processes. Thus new trusted device capabilities could be used by a measurement entity to verify the signature on a statement, verify a linked list of statements, etc. The trusted device could even act as a scratch pad to store intermediate results of verification processes, so the results of one verification process can be used by future verification processes without the need to storage outside the trusted device. Similar techniques are already used in Trusted Computing Group technology to compute digests and extend such digests into PCRs.
Thus far it has been assumed that trust equivalence is reciprocal: that the software represented by integrity metric A0 is equally as trustworthy as the software represented by integrity metric A1, for example. This may not always be the case. The reason for upgrading software may be to correct or improve the trustworthiness of software, in which case the software represented by integrity metric A1 may be used instead of the software represented by integrity metric A0, but the software represented by integrity metric A0 may not be used instead of the software represented by integrity metric A1, for example. It therefore becomes necessary to add extra information to the statements 701, to indicate whether trustworthiness is reciprocal. This must be included as part of the data that is signed to create the signature value 736, and reflected in the new TPM functions, so that (when necessary) the integrity metrics in one branch are always the same as the metrics in the other branch, or backwards linking to the metrics in the other branch.
In one implementation:
In embodiments, this invention involves recording a linked list of statements in a TPM. We now describe aspects of embodiments of the invention related to the length of such linked lists. A record of a complete linked list is desirable to explicitly record the complete lineage of a platform's state. Unfortunately recording a complete list will increase the time needed to record integrity metrics, and increase the storage required for verification statements, either or both of which may be undesirable. It may therefore be desirable to remove older statements from a linked list, and in the limit to reduce linked lists to a single statement (the most recently linked statement).
Any arbitrary number of statements (including just one statement) can be recorded in the TPM, as long as they are contiguous members of the same linked list recorded in consecutive order. The recording process carried out by a Root-of-Trust-for. Measurement or Measurement Agent is readily adapted to the length of a list—the RTM/MA simply walks through the list, whatever its length, recording the result of the verification process in the TPM and recording the verification process in the TPM, as previously described. It remains to prove to a TPM that a shortened linked list is trust-equivalent to the original (longer) linked list. This proof depends on evidence that the start statement of a shortened list is part of a longer list. In one implementation, this involves a (previously described) [Ulinked, Slong, Sstartshort] structure, where Sstartshort is the start statement of the shortened list and Slong is some statement before Sstartshort in the longer list. This Ulinked structure is evidence that the statement Slong and Sstartshort are statements in the same linked list, and that Slong appears somewhere in the list before Sstartshort. Unless the statement Slong is contiguous with the statement Sstartshort in a linked list, generating this Ulinked structure requires a further new command (described below) to combine two Ulinked structures into a single Ulinked structure. Given the evidence [Ulinked, Slong, Sstartshort] and any arbitrary Ufork structure [Ufork, A˜, B˜, B, C˜, C], it follows that a further legitimate Ufork structure may be derived by extending B˜ with Slong and extending C˜ with Sstartshort, producing the data structure [Ufork, A˜, Slong˜, Slong, Sstartshort˜, Sstartshort]. This requires a further new command (described below). If Slong is the start of a linked list and Sstartshort is the start of a shortened version of that linked list, for example, [Ufork, A˜, Slong˜, Slong, Sstartshort˜, Sstartshort] is evidence that a PCR (whose most recent recorded statement is the start of a first list) is trust-equivalent to another PCR (whose most recent recorded statement is the start of a shortened version of that first list). The data structure [Ufork, A˜, Slong˜, Slong, Sstartshort˜, Sstartshort] can then be used with any command that operates on Ufork structures.
In the limiting case where only a single statement from a given list is recorded in a TPM), the functionality provided by the command TPM_upgrade_forkLink becomes redundant. The new structures previously described may be modified to omit statement values. In such a case, the Ufork structure [Ufork, A˜, B˜, B, C˜, C] becomes [Ufork, A˜, B˜, C˜], for example.
It was previously mentioned that a further new command may be required to combine two Ulinked structures into a single Ulinked structure. One example of that further new command is TPM_upgrade_link_concat([Ulinked, A, B], [Ulinked, C, D]). This command produces evidence that the integrity metric D is linked to the integrity metric A. The evidence takes the form of the data structure [Ulinked, A, D]. To produce this evidence, the TPM is loaded with the statements ([Ulinked, A, B] and [Ulinked, C, D]). The TPM verifies that both these Ulinked structures were created by the TPM, and verifies that B=C. Then the TPM creates the output structure [Ulinked, A, D].
It was previously mentioned that a further new command may be required to extend a first PCR value with a first statement and extend a second PCR that is trust-equivalent to the first PCR with a second statement linked to the first statement. An example of that further new command is TPM_upgrade_forkLink1([Ufork, A˜, B˜, B, C˜, C], [Ulinked, E, F], [branch]) which causes the TPM to extend the [branch] PCR value with the statement E and the other PCR value with the statement F. The TPM always verifies that it created both the Ufork and Ulinked structures before producing any output. If the [branch] parameter is 0, the command extends the PCR value B˜ with E to [E˜, E] and the PCR value C˜ with F to [F˜,F]. Thus the command produces the output data [Ufork, A˜, E˜, E, F˜, F]. If the [branch] parameter is 1, the command extends the PCR value B˜ with F to [F˜, F] and the PCR value C˜ with E to [E˜,E]. Thus the command produces the output data [Ufork, A˜, F˜, F, E˜, E].
We now describe, purely as an example, the upgrading of a PCR where just a single statement of a linked list is recorded in the TPM. We suppose that we are required to prove that the integrity metric sequence A0 B0 is trust equivalent to the integrity metric sequence A0 B1. This example uses modified data structures that omit statement fields, as noted above. One implementation is:
The structure [uPCR, P, B0˜, B1˜] can then be used with TPM_upgrade_forkHash to create trust-equivalent composite PCR digest values. These values can then be used in TPM_upgrade_seal to upgrade the composite hash values in a sealed blob.
Previous embodiments of this invention associated a linked list with the execution of just one program. (Even though aspects related to multiple statements in a linked list were recorded in a TPM, only one program per linked list was actually executed on the computer that hosts the TPM.) A further embodiment of this invention involves the identification of sections of contiguous statements in a linked list, accompanied by the execution in the computer of one program per statement in the section. This has the benefit of enabling the same entity to vouch for multiple programs that are executed on a platform, while maintaining trust-equivalence. Preferably the statement structure illustrated in
When an RTM or Measurement Agent walks through a linked list and verifies statements and records the results in a TPM, the RTM or Measurement Agent can identify sections of linked list. Each statement in a section can be used to actually verify a separate program and each such program can be executed by the computer.
If multiple statements in the same section of linked list are used to vouch for multiple programs that are executed on a platform, the statements in that section can act as a stem for branches of separate linked lists, each branch linked to a separate statement in the section. Such branches can be used to support the execution of just one program per section of linked list, or for the execution of multiple programs per section of linked list, as just described. Thus a linked tree of statements can be created.
In a further embodiment of the invention, an entity may use a verification statement to vouch that the trust state of a platform is unchanged if a program is no longer executed on the computer platform. This approach permits trust-equivalent states to include fewer programs than previous states.
In this embodiment of the invention, the programDigests 710 field is permitted to contain a NULL indicator. An RTM or Measurement Agent should never encounter a statement containing a NULL indicator, because it implies that no associated program needs to be executed, no verification result needs to be recorded in the TPM, and no verification value needs to be recorded in the TPM. A statement containing a NULL indicator is used when a TPM is guided through the process of proving that two PCR values are trust-equivalent. The command TPM_upgrade_link(SA, SB) is modified to produce output data [Ulinked, NULL, B] if the programDigests 710 field in the statement SA contains just a NULL flag, and to produce output data [Ulinked, A, NULL] if the programDigests 710 field in the statement SB contains just a NULL flag. The command TPM_upgrade_forkLink([Ufork, A˜, B˜, B, C˜, C], [Ulinked, E, F], [branch]) is modified so that the branch due to be updated with E is left unaltered if E is NULL, and the branch due to be updated with F is left unaltered if F is NULL.
Purely by way of example, we describe one way of guiding a TPM through a proof that a computer state before removal of a program B0 is trust-equivalent to a computer state after removal of program B0. Suppose a platform boots and generates a first set of integrity metrics [A0], [B0], [C0], [D0]. Then the platform reboots and generates a second set of integrity metrics [A0] [C0] [D0]. This second set is the same as [A0], [B1], [C0], [D0] where B1==NULL. The goal is to prove to the TPM that the first set of integrity metrics [A0], [B0], [C0], [D0] is trust equivalent to the second set of integrity metrics [A0], [NULL], [C0], [D0]. One implementation includes the sequence:
The rest of the proof proceeds as previous described.
Embodiments of this invention have enabled three types of upgrade:
In a further embodiment of this invention, an entity creating sealed data explicitly states the types of upgrade when automatic composite hash upgrade of sealed data is permitted, and data structures record indicators that show the types of integrity metric upgrade that have occurred. This permits an entity to explicitly state the types of upgrade that can cause the composite hash value in sealed data to be automatically upgraded. This is beneficial if a data owner is content to accept simple upgrade of programs but not the addition or removal of programs, or does not wish to automatically accept any upgrade, for example.
The process of sealing data, unsealing data, and guiding a TPM through the process of proving that one composite hash value is trust-equivalent to another composite hash is the same as previously described, with the following changes:
In a further embodiment of this invention, an entity creating sealed data can choose to force a change in the composite hash value in that sealed data. This permits the entity to explicitly approve access by upgraded programs to extant sealed data, for example. The process of sealing and unsealing data requires the following changes:
A new TPM command TPM_upgrade_SealForce([sealedBlob], compHash) is authorised using standard TCG authorisation protocols proving possession of the same value as upgradeAuth in the sealedBlob. The TPM opens the existing sealedBlob, replaces the existing composite hash value with the value compHash and outputs the modified sealed blob.
Automatic composite hash upgrades are not currently possible with TCG technology and some data owners may have used sealed blobs with the understanding that they could not be automatically upgraded. The TCG has stated the intention to maintain backwards compatibility whenever possible. It is therefore undesirable to allow the automatic upgrading of sealed blobs using existing commands and structures. It is preferable to create new versions of data structures and commands to implement the techniques described for embodiments of this invention. Data owners should use these new structures and commands if they wish to allow automatic upgrades, and continue to use existing structures and commands if they do not wish to allow automatic upgrades. The TCG may also wish to deprecate existing TPM_STORED_DATA structures and TPM_Seal and TPM_Unseal commands, to simply future TPMs. Therefore any new structures and commands designed to enable automatic upgrades should also enable automatic upgrade to be disabled. Data owners who mistrust some or all forms of automatic upgrade may wish to use an explicit upgrade, which inherently requires a new data structure. Therefore any new structures and commands should also enable explicit upgrades. Preferably, therefore:
One example of upgrading of integrity metrics and PCR values will now be described. This occurs during the migration of a virtual platform from one host trusted platform to another host trusted platform. This example assumes that the virtual platform uses data blobs that are sealed to PCR values that represent properties of the host platform. Embodiments of this invention permits the PCR values recorded in these sealed data blobs to be upgraded in the absence of the environment in which they can currently be unsealed. Hence an advantage of use of embodiments of the invention is that a virtual platform can be customised to work on a different host platform either before or after migration to a different host platform.
If a customer is willing to trust a virtual platform, the customer should trust the entity that manages the host platform. This is because that management entity has the ability to move the virtual platform to different host platforms. It is desirable that the management entity should undertake to instantiate the virtual platform on host platforms that are equally trustworthy. This is because a rogue host platform can subvert any virtual platform that it hosts, and a virtual platform can do nothing to protect itself against a rogue host platform or rogue management entity. A customer using a virtual platform would therefore require no knowledge of the host platform—either the management entity instantiates the virtual platform on host platforms that are equally trustworthy, or it doesn't.
A third party discovers the trust properties of a platform by performing an integrity challenge and inspecting the PCR values, event log, and certificates that are returned. Information that reveals whether the platform is virtual (plus the nature of the host platform, which might itself be virtual) can be in the virtual platform's PCRs and/or can be in a virtual platform's certificates.
There is an advantage to a host management entity from putting information about a security service agreement into a virtual platform's PCR stack. The advantage is that it makes it easier to balance computing loads while maintaining agreed levels of security. Users of a virtual platform can seal their data to a PCR that indicates their agreed Security Service Level Agreement (SSLA). The less restrictive a SSLA, the larger the range of host platforms that can support the user and the easier it is for the host entity to provide service and swap a virtual platform between host platforms. If a virtual platform's actual SSLA PCR value matches a user's SLA value in a sealed data blob, the user can access his data and consume platform resources. Otherwise the user cannot. Hence if the host management entity moves a customer to a host that does not satisfy a user's SSLA, the user's data will automatically be prevented from being used in an inappropriate environment.
Factors that may be represented in an SSLA include:
There is a disadvantage to a customer from putting information about the host platform into a virtual platform's PCR stack. This is because the virtual platform's PCR stack would be different to that of a dedicated (non-virtual) platform, so software configured to operate with a dedicated platform would not naturally operate on the virtual platform.
Some designers may decide to put information about host platforms in a hosted virtual platform's certificates, others may decide to put host information in a PCR on a hosted virtual platform, and others may choose to do both.
If designers put host information in a PCR on a hosted virtual platform, and users create data blobs that are sealed to those PCRs, it is desirable to upgrade those PCR values provided the properties of the destination host platform are at least equivalent to the properties of the source host platform. This can be done by use of the techniques described previously above The PCR and Integrity Metric upgrade techniques described previously are particularly advantageous because they do not require the presence of the environment currently described by the sealed data. Hence a virtual platform can be migrated to a new host and recreated when it reaches that new host, or vice versa.
One effect of the advantage to the host management entity is that the host management entity may offer preferable terms to customers using virtual platforms provided by the host management entity, provided they agree to information about the permitted instantiation of a virtual platform being present in a platform's PCR stack. Therefore, if a user's sealed data blobs always include a PCR whose value represents information about the permitted instantiation of a platform, even when a platform is a dedicated platform, the user can use the same software configurations on all platforms and take advantage of preferable terms when using virtual platforms. Naturally, the technique also permits customers to use their sealed data on different types of dedicated platform.
We now describe the migration of a Virtual Platform VP from one host trusted platform P1 to another host trusted platform P2, purely as an example. The elements of the platforms shown are illustrated schematically in
VP is initially instantiated on P1. When VP needs to be migrated (upon request of a user or as a maintenance operation from the provider), the Migration Process MP-P1 first suspends the execution of VPCE on P1 and then suspends the corresponding VTPM. While suspension of VPCE might not require any additional steps, suspension of VTPM must ensure that any secrets VTPM-Secrets used by VTPM are removed from memory and protected by TPM-P1. MP-P1 then migrates VP from P1 to P2 by performing the following steps, as illustrated in
If MP-P1 does not already trust P2 and know one of its TPM keys, P1 uses a Challenge-Response protocol with P2 to determine if P2 is a legitimate trusted platform (i.e. whether TPM-P2 and the construction of P2 are trusted by MP-P1). This challenge-response process provides MP-P1 with evidence that P2 is a particular type of genuine trusted platform and details of a particular TPM key of P2.
If a property provided by P2 is equivalent to (or a superset of) a host property recorded in PCR values in individual data blobs sealed to the VTPM, MP-P1 upgrades those individual VTPM sealed blobs, creating new sealed blobs that include PCR values that indicate the property offered by P2. This may or may not require explicit authorization from an upgrade entity associated with a sealed blob, depending on the upgrade method.
MP-P1 executes a migration command from TPM-P1 to TPM-P2 on VTPM-Secrets and sends the resulting data to MP-P2. MP-P2 finishes the migration process by providing the received data to TPM-P2. Standard TCG techniques are used to ensure that VTPM-Secrets are unavailable in P2 unless P2 is executing the desired version of MP-P2 and VC-P2.
MP-P2 uses this data to create an identical instance of VP on P2 by creating an instance of VPCE and VTPM. MP-P2 then resumes VTPM execution. Upon resume, VTPM tries to reload VTPM-Secrets into memory. Failure to do so indicates an unacceptable VP environment on P2. If reload is successful, MP-P2 resumes VPCE which can now use the VTPM and access secrets protected by VTPM as they were on P1. Finally, applications on the VP attempt to unseal data stored in sealed blobs protected by VTPM. Failure indicates that P2 is unsuitable for revealing that particular sealed data.
Note that steps 2 and 3 could be executed in the opposite order, in which case the VTPM-sealed blobs are migrated to P2 before being upgraded on P2.
The methods described above can obviously be applied and adapted to the upgrading of any data structure that contains integrity metrics or is derived from integrity metrics. Such methods can be used to provide evidence that one integrity metric is trust equivalent to another integrity metrics, that one PCR value is trust equivalent to another PCR value, and that one PCR_COMPOSITE value is trust equivalent to another PCR_COMPOSITE value. These methods can hence be used to upgrade arbitrary data structures that depend on integrity metrics, PCR values and PCR_COMPOSITE values. Some examples of other data structures that could be upgraded are TCG structures that depend on PCR_COMPOSITE values, such as the TCG key structures TPM_KEY, TPM-KEY12 and their ancillary structures. A TPM command analogous to TPM_upgrade_seal could be used to upgrade the PCR_COMPOSITE value in a TPM-KEY structure, for example. Upgrading of key structures may for example be desirable when an original environment is unavailable, when data is recovered from backups, or when it is duplicated on different systems. In particular, migratable keys may be used to facilitate backup and recovery, and for duplication of data (on different platforms or on different operating systems). Current TCG key migration commands such as TPM_CreateMIgrationBlob and TPM_CMK_CreateBlob explicitly ignore PCR_COMPOSITE values. Hence TCG trusted platform technology may benefit from methods described in embodiments of this invention to change the composite-PCR values in TPM key structures.
Patent Citations
Referenced by
Legal Events
Original Image


text:
|Project Name
|Price (USD)
|Project Name
|Price (USD)
|Windows Phone Store optimization
|...for a freelancer that is able to move my Windows Phone Store app to top positions in search results on given...keyphrases. Something like SEO but for a Windows Phone app rather then a website. Am ready to pay for
|Internet Marketing
|Aug 12, 2014
|Aug 12, 2014Ended
|Build a Windows phone app and publish it to windows store
|I need a windows mobile app that should be compatible with all windows device including tablets and should...should run on each windows version. we have ios and android mobile app already being developed need...Interested candidate please post your portfolio of windows app you did.
|Windows Mobile, Windows Phone, Windows 8
|May 20, 2014
|May 20, 2014Ended
|Universal Drawing App for Windows Phone and Windows Store
|I am looking for a drawing app for Windows Phone and Windows Store. I'll provide the drawing and all
|Windows Mobile
|Sep 1, 2014
|Sep 1, 2014Ended
|Developing an app for Windows Phone
|...native apps for Windows Phone. Please send me your previous works about Windows Phone. It is necessary...me your app links in the store. Also if you have experience about image processing in Windows platforms(especially...platforms(especially in Windows Phone), it would be great. Note: Please do not send anything related to your
|Windows Mobile, Windows Phone, Windows 8
|Dec 26, 2014
|Dec 26, 2014Ended
|Mobile app for windows phone
|Hello, we need to develop a windows phone version of our existing app Angolo Testi. You can see it on...on iOS and Google Play store. The app is a lyrics music player: the user can search for lyrics, check...3rd party addon), listen to their music inside our app with automatical match of the lyrics, see karaoke
|C# Programming,
|Apr 11, 2014
|Apr 11, 2014Ended
|windows phone app client
|I need VPN client for windows phone 8.1 that will use the built-in ikev2 vpn to make a connection to...to our vpn server. as windows phone 8.1 support ikev2 vpn. so I need a clients. 1-User will be asked...asked to enter username/password once the app started. Username/password will be stored in the profile and
|Linux, Windows Mobile, Windows Phone
|May 12, 2014
|May 12, 2014Ended
|Windows phone mobile app
|...develop a windows phone version of our existing app . You can see it on iOS and Google Play store. The app...app is a lyrics music player: the user can search for lyrics, check the top lyrics, identify songs like...3rd party addon), listen to their music inside our app with automatical match of the lyrics, see karaoke
|C# Programming
|Apr 11, 2014
|Apr 11, 2014Ended
|Windows phone app
|...to develop a small game that is meant for Windows phone store. The game is 2D and all artwork is done
|Mobile Phone, C# Programming, Windows Phone
|Apr 14, 2013
|Apr 14, 2013Ended
|Blackberry and Windows Phone APP
|...Develop an app for blackberry and Windows Phone, as explained in the attached document 2. Publish app in Windows...Windows Store and BlackBerry App World using my credentials 3. Give me full source code of both apps ...the attached doc 5. Explain me how to package the app if I make changes on it, and how to publish new versions
|Mobile Phone, Blackberry, Windows Phone
|Jan 25, 2014
|Jan 25, 2014Ended
|Windows Phone App Enhancement
|...the modification to a windows phone app. Kindly see the details as below, App Name : ABP News... : http://www.windowsphone.com/en-in/store/app/abp-news-tv/7dd8df23-f1a5-49aa-b47c-7f6d112cffce ...Project Description : ABP New TV is an RSS based app that uses this functionality to get the latest news
|XML, Mobile Phone, C# Programming, Windows Phone
|Nov 12, 2014
|Nov 12, 2014Ended
|windows phone app
|Hello, we need to develop a windows phone version of our existing app Angolo Testi. You can see it on...on iOS and Google Play store. The app is a lyrics music player: the user can search for lyrics, check...3rd party addon), listen to their music inside our app with automatical match of the lyrics, see karaoke
|C# Programming,
|Apr 11, 2014
|Apr 11, 2014Ended
|Windows phone 7 App
|I have a simple android app that I want to port to windows phone 7.the app takes an array of strings...the ability share the text. It will also need to store/display a favorites list. This is a relatively...relatively easy project. I have developed this app in java already and can be help out in the development process
|Windows Mobile
|Jan 7, 2011
|Jan 7, 2011Ended
|Windows Phone app
|Hi, I am looking for an Windows Phone developer, I need an windows phone app, you can see what I want...want in this android app example: https://play.google.com/store/apps/details?id=com.custom.USSportcarChevroletCorvette ...would like export this app on windows phone. The app should be windows phone 8 c...
|Mobile Phone, Windows Mobile, Windows Phone
|Dec 20, 2012
|Dec 20, 2012Ended
|Crowdsav Windows Phone App
|We have a mobile app which is currently available on android and iphone and we're looking to develop...same app for Windows Phone. Our website: www.crowdsav.com iOS - http://itunes.apple.com/us/app/crowdsav/id523487908...487908?mt=8 Android - https://play.google.com/store/apps/details?id=com.crowdsav Documentation will
|Windows Phone
|Sep 10, 2012
|Sep 10, 2012Ended
|Windows Phone App
|I will need a simple windows phone app for tracking the trip takes place between point A - B. It DOES...travels between x different locations. It should store every time the user clicks on "Track" and then send
|Windows Mobile, Windows Phone
|Jun 3, 2014
|Jun 3, 2014Ended
|Windows Phone prototype app
|Objective is to supply prototype app for completion by sponsor. To be developed using visual studio 2010... Target win phone 7.5/7.8 and 8. Possibly interested in solution using mono to allow app to target android/iphone...android/iphone. App should meet requirements of windows store and be ready for deployment to store. VS project
|Mobile Phone
|Oct 9, 2012
|Oct 9, 2012Ended
|Windows Phone App Test
|I want people who can install this app on their phone, test it and give review. For me $100 is total...to $5. You can see app here: [http://www.windowsphone.com/en-us/store/app/drivesafe/53036756-16...testing following is required:- - Install App on Windows Phone - Read the page How It Works / Privacy
|Engineering, Software Architecture, Software Testing
|Nov 1, 2012
|Nov 1, 2012Ended
|Design my windows phone and store app (XAML)
|...version of a windows phone application, and it also has a version for the Windows 8 Store as well. ...budget to style up a finished app, and I'll get you a link to the app so we can have a conversation!
|Graphic Design, Windows Phone
|Feb 6, 2013
|Feb 6, 2013Ended
|Allzik windows phone
|dev for windows phone of a simple existing musical app (allready on android here : https://play.google...google.com/store/apps/details?id=com.allzik.allzikradio and soon on iphone)
|Windows Mobile, Windows Phone
|Jun 15, 2015
|Jun 15, 2015Ended
|Windows 8 & Windows Phone app UI Beautification
|I have a working app on store and want to beautify the UI as per standards, I am a dev myself but I am... W8 app - 3 pages WP app - Panorama Simple Check the app on windows 8 store and Windows Phone...Phone Store "BBC Radio Player" Budget: 1000 - 5000/- INR Please bid if you have Windows 8 app devel...
|Windows Phone, Windows 8
|Nov 28, 2014
|Nov 28, 2014Ended

subset: commoncrawl


text:
What Would You Make?
by partysugar
Like us on Facebook
Ok here's the deal: You are at home and hungry for food. You have to cook up something scrumptious for you and your boyfriend/ girlfriend/ spouse/ child/ friend, but the ingredients you have on hand are limited.
You have cheddar cheese, fresh thyme, and all-purpose flour. Using these ingredients, along with whatever staples you currently have in your cupboard and refrigerator, what would you make? Tell me in the comments section below!
To see what I would make,
- I would start by finely chopping an onion and garlic.
- I would add this to a pot with melted butter, heating over medium heat.
- I would sauté the veggies until tender, then add the flour and cook to make a roux.
- Meanwhile I would boil whatever kind of pasta I have on hand, and grate the cheese and chop the thyme.
- After the roux has cooked for a few minutes, I would add liquid (chicken broth, milk, or heavy cream, depending on what's open in my fridge) to thicken the sauce. I would boil this a minute and slowly stir in the cheese and thyme.
- I would toss with the pasta and call it pasta and cheese. I would enjoy it in a shallow bowl paired with a cold beer.
POPSUGAR, the #1 independent media and technology company for women. Where more than 75 million women go for original, inspirational content that feeds their passions and interests.
RoGo1 7 years
Absolutely cheddar-thyme biscuits, one of my all-time faves!
michichan 7 years
gnocchi I think, or is that too potato-ey?
Dragon 7 years
Cheese puffs! Make a basic choux pastry, but cut in the grated cheese and the thyme with the flour. Optional - use more cheese as a filling.
designergirl 7 years
Quiche! Mmmmm..
abbe 7 years
mmm I would make a cheese and herb souffle and serve it with some simply dressed mixed greens.
sbgirl 7 years
I would make a cheese soufflee with thyme in it - delish and super easy. The only extra ingredients you would need: butter, eggs & milk.
fragiletearz 7 years
Thyme Cheddar Twists Ingredients: 1/16 Gallon(s) milk 2 54/625 Ounce(s) sugar 2 envelopes active dry yeast 1 48/85 Pound(s) all purpose flour 4/23 Ounce(s) salt 8 Tablespoon(s) cold butter; cut into pcs -1 3 egg yolks 1 Cup(s) vegetable oil 1 1/2 Cup(s) cheddar cheese; coarsely grated 6 Teaspoon(s) thyme; chopped 2 Teaspoon(s) pepper 1 egg; beaten with 1 t water Directions: Heat milk in a small saucepan over medium heat until it registers 110F on an instant read thermometer; transfer to a bowl. Stir in 2 T sugar. Sprinkle with yeast; let mixture stand until foamy, about 10 minutes. Process flour, remaining 2 T sugar, salt and butter pieces in a food processor until mixture resembles coarse meal. Add milk mixture and the yolks; process until combined. Transfer to a well-oiled bowl; cover with plastic wrap. Refrigerate 4 hours or overnight. Preheat oven to 375F. On a lightly floured work surface, roll out dough to form a 15x18 inch rectangle. Brush surface with melted butter. Sprinkle dough evenly with cheese, thyme, and pepper Fold dough in half horizontally. roll out to form a 10x18 inch rectangle. Cut into 10 inch long, 1/2 inch wide strips. Twist 2 strips around eachother; pinch edges to keep strips from unraveling. Shape twist to form a spiral; transfer to a baking sheet lined with parchment paper. Repeat with remaining strips. Brush twists with egg wash. Bake until deep golden brown, 20-22 minutes.
Murple 7 years
A whole meal or a snack? For a snack I'd make scones. For a meal I'd make chicken coated with the thyme and bread crumbs, and steamed veggies with cheese sauce.
HonestMuffin 7 years
This looks like a great excuse to make the infamous, the glorious... FONDUE!!! Shred the and set aside. With butter and FLOUR in a saute pan, make roux. Add diced onion and THYME, until trans. Stir in milk, salt, pepper... and Worcestershire if you're feeling saucey. Stirring in cheese in small groups to avoide clumpage. Serve in a fondue pot with a SMILE :) ...and some chunks of hearty bread and cubes of cooked potato. YAY!
aimeeb 7 years
Pizza! Ha. Don't ask...
jmt 7 years
The first thought that jumped into my head was, "I'd so make welsh rarebit." And I think that's the case. I like it a lot with beer instead of milk because it boosts the flavor and gives it an edge. I also like it with strong mustard and a healthy pinch of cayanne, but I think I'd ease back on both of those to make room for the heady fresh thyme. Or, if I was with girlfrinds who don't fancy themselves welsh rarebit eaters I'd make popovers and tomato soup.
I-LOVE-JAKE-G 7 years
I would make cheese fondue with the tyme to flavor the cheese.
Diana172 7 years
Ooh, I like the biscuit idea!
juliej 7 years
I make a wonderful (if I do say so myself) potato gratin w/ mustard & cheddar cheese (And while I usually use dried thyme, fresh would make it a little bighter!) I'd just toss a few pork chops in a skillet (and then into the oven to finish) as the main. --Jeez, I'm hungry now --- Guess I'm going to have to make this for dinner tonight now!
kiwitwist 7 years
Yum, that is what I was going to make. Basically Mac & Cheese with some parsley for color.
vapidintuition 7 years
Cheese straws! Cheddar, thyme, cayenne pepper, oregano, garlic powder, butter, flour. mmm.. Then I'd make a big pot of chicken stew to eat them with!
zalary 7 years
maybe because it's 8am, but I immediately though, mmmm quiche!
cageyme 7 years
I would make cornbread and mix in grated cheddar cheese and the thyme before baking. I would serve it with baked beans.
RosaDilia 7 years
I would make a rosemary & thyme focaccia bread and top it off with grilled chicken strips and melted shredded cheddar. I'll down it with a refreshing iced honey green tea.
cest_la_vie 7 years
I would make mac and cheese and baked chicken with thyme.
minaminamina 7 years
I know ya'll know I'd make some fried chicken and mashed potatoes!
femmefatale 7 years
Ok kimbit, I was thinking biscuits too! =)
kimbit 7 years
I would make cheese and thyme biscuits, then fry some eggs, and put more cheese on top and make a sandwhich using the biscuits. I would serve it with a salad.
rosey_y 7 years
I eat lots of chicken breast and always have some in the freezer so can I use one of them? I'll assume so! I'd defrost it, make a cut in the side, stuff it with the thyme and cheese, fastened it with a toothpick, roll it in some of the flour then fry it in a centimetre or two of oil in a fry pan. Hahaha, so unhealthy, but I think it'd taste great! :p


text:
'The Notebook' Brings the Romance to Blu-ray on January 20th
The film will also be released in a standard, limited edition gift set as well.
Based on the acclaimed best seller by Nicholas Sparks and directed by Nick Cassavetes (John Q), The Notebook is an epic love story starring Academy Award nominees James Garner, Gena Rowlands and Joan Allen opposite young breakout actors Ryan Gosling (The Believer) and Rachel McAdams. As a man (Garner) reads from a faded notebook to the woman (Rowlands) he regularly visits, his words bring to life the story of a couple (Gosling and McAdams) who are separated by World War II, then passionately reunited 7 years later, after they have taken different paths. Though her memory has faded, his words give her the chance to relive her turbulent youth and the unforgettable love they shared. The Notebook is produced by Academy Award winner Mark Johnson (Rain Man).
Cast & crew
Noah Calhoun
Allie Hamilton
Nurse Esther
Allie Calhoun
The film will also be released in a standard, limited edition gift set as well.
By Brian Gallagher | 7 years ago
...starring James Garner, Gena Rowlands, Joan Allen and Ryan Gosling
By Brian | 11 years ago
...starring James Garner, Gena Rowlands, Joan Allen, Ryan Gosling, and Rachel McAdams
By Brian | 11 years ago
...New Line Cinema's upcoming drama
By Brian | 11 years ago


text:
When a young, unknown Senator from Illinois named Barrack Obama decided to run for the U.S. President in 2008, he got a lot of money from some peculiar groups, primarily from the U.S. financial industry. These groups had just sent the American economy into a tailspin. They knew there would be no way the American people would elect another Republican ...Read More »
Tag Archives: GOP
Cochran hires new director, Brad White, for state offices
JACKSON — A former Mississippi Republican Party chairman is becoming the new director of Sen. Thad Cochran's state offices, where he'll be in charge of constituent services. Brad White begins the new job June 1. He succeeds Brad Davis, who is going to work for a private law firm. White has been deputy state auditor and chief of staff for ...Read More »
DAVID DALLAS: District One congressional race not attracting voters or much interest
With the special election for District One now over, a critical analysis of the very poor showing of GOP establishment candidates, backed by the likes of Haley Barbour and Phil Bryant, would be awfully tempting. But the low voter turnout for such a crazy, free-for-all special election deserves some commentary. In spite of a plea from Secretary of State Delbert ...Read More »
Harrison GOP says state party interfered in mayor's race
BILOXI — The Harrison County Republican Executive Committee is protesting what it calls the state party's interference in the Biloxi mayor's race. Chairman Frank Genzer of Biloxi told The Sun Herald that local Republicans are upset about a letter from state Chairman Joe Nosef that questioned the GOP credentials of Andrew "FoFo" Gilich. Gilich won a special election Tuesday with ...Read More »
ALAN TURNER: Joel Bomgar an entrepreneur and budding politician
At 35, Joel Bomgar has accomplished more than most business professionals achieve in a lifetime. He took a concept he came up with in his undergraduate years at Belhaven, and started a company with that concept in the very next week after he graduated. The rest was a very fast forwarded record of success that took the company from ...Read More »
DAVID DALLAS: Getting a grip on LGBT issues
Last week Bruce Jenner, the Olympic gold-medal winner, admitted to ABC's Diane Sawyer and a national television audience that he is transgender. What that means is Bruce Jenner, despite his masculine accoutrement, feels more like a woman and would like to identify himself as one. Jenner won the decathlon in 1976, the most grueling event in the games, requiring strength, ...Read More »
BILL CRAWFORD: Surely Republicans will pass some tax cut
As every legislator knows, no bill is really dead until the Legislature leaves town … especially if the governor wants it to live. But as this column was written late last week, major tax cut bills were all but dead. The House voted 67 to 52 along party lines for the $555 million compromise tax cut devised by Lt. ...Read More »
Palazzo named to US House Appropriations Committee
JACKSON — Republican Rep. Steven Palazzo of Mississippi is joining the U.S. House Appropriations Committee. Palazzo was named on Tuesday to the committee, which helps decide how to spend billions of federal dollars on everything from defense contracts to health care. A Mississippi congressman who died in early February, Republican Alan Nunnelee, had served on Appropriations. Palazzo says nobody can ...Read More »
Most businesses already have guidelines in place if same-sex marriage becomes law
By LISA MONTI If and when Mississippi allows same-sex marriage, employees at large companies in the state likely won't see any changes in their insurance and employee benefits. That's because major automakers, aerospace companies and others already offer equality benefits plans. "When you look at some of the top private sector employers in Mississippi like Nissan and Toyota, these are ...Read More »
McDaniel seeking 3rd term in Mississippi Senate
JACKSON — Chris McDaniel, a tea party-backed Republican who lost a U.S. Senate race last year, says he's seeking re-election to the Mississippi Legislature. The 43-year-old attorney from Ellisville said Thursday that he will run for a third term in state Senate. He's the first candidate in District 42, entirely in Jones County. Friday is the qualifying deadline for statewide, ...Read More »


text:
Search for:
Skip to content
Write for Kindness Blog
Top Kindness Articles
Kindness Stories
Recommended Websites
Kindness Quotations
Kindness Blog
Kindness Images, Videos, True Life Stories, Quotes, Personal Reflections and Meditations. Because Kindness Changes Everything.
Burnt Toast (A Lesson)
Son Receives a Touching 30th Birthday Card From His Father who Died in 1999
The Important Thing About Yelling – by Rachel Macy Stafford
Enough – by Rachel Macy Stafford
7 Things That Good Mothers Do That I'm Not Going to Do Anymore – by Leigh Anderson
How My Mom Became An Owner Of A Motorcycle
Birthday Blessings – by Jay Westrom
Surprise Giveback for Deserving Mum (Video)
This Father in Mourning Created An Amazing Tribute to His Disabled Son.
Cute Kids Answer–What is Love? (Video)
The Last Time – by Devon Corneal (Mother, Writer, Lawyer)
The Weight of Motherhood – by Kristin Shaw
Singing in the Rain – by 'Shrewed Up'
How to Raise a Good Man – by Colin Falconer
Having a Screw Loose – by Rusty Forger
I Know What Causes Autism – by Carrie Cariello
Kindness Lasts Forever – by Sara Oliver
I Blinked – by Lisa Osma
A Grieving Mother's Kindness Helps Other Parents In a Heartbreakingly Beautiful Way
Shoulders Slightly Hunched – The Shape of True Love – by David Drummond
How a Simple Discount Led to a Happier Father/Son Relationship.
The 3-Second Pause That Can Save a Morning & Spare Some Pain – by Rachel Macy Stafford
My Kindness Unexpectedly Helped a Grieving Couple – by Fedora La
The Day I Stopped Saying Hurry Up – by Rachel Macy Stafford
Using Football Reunions to Pass Kindness to the Next Generation – by Dietrich Gruen (Hospice Chaplain)
Post navigation
Older posts
Follow "Kindness Blog"
Get every new post delivered to your Inbox.
Join 19,211 other followers
Build a website with WordPress.com
Add your thoughts here... (optional)
Post to


text:
Home › Forums › Backyard Chat › Fun and Games › Three (3) Words
This topic contains 382 replies, has 11 voices, and was last updated by Larkie 1 year, 3 months ago.
really nice day
even warmer tomorrow
made stew today
Made Spanish Rice
HAIL the Queen
between King/Jack
you mean Elizabeth?
that is me!
ha ha ha
You must be logged in to reply to this topic.


text:
Top Definition
A sheep and a bear put together. Or at least it looks like one.
"Oh! That's a nice willabeep!"
by Poin W. Dexter February 14, 2008
Type your email address below to get our free Urban Word of the Day every morning!
Emails are sent from firstname.lastname@example.com. We'll never spam you.×


text:
Anathema / Moderators
- Sort:
- Date
- Alphabetical
In recent years, a growing movement of bands has started to reclaim and reinvent aspects of the progressive, post-punk and post-rock genres, re-establishing a desire to experiment with eclectic musical sources and state of the art widescreen sonic possibilities. Kscope was created to provide a home…
Channels are a simple, beautiful way to showcase and watch videos. Browse more Channels.


text:
Christmas Belles of Georgia - eBook
- Occasion▼▲
- Ages▼▲
- Audience▼▲
- Binding▼▲
- Format▼▲
- Language▼▲
- Media Type▼▲
- Series▼▲
- Author / Artist▼▲
- Publisher▼▲
- Top Rated▼▲
- Price▼▲
- Discount▼▲
Have questions about eBooks? Check out our eBook FAQs.
Product Description
Product Information
|Format: DRM Free ePub
Vendor: Barbour
Publication Date: 2011
Availability: In Stock
Series: Romancing America
Other Customers Also Purchased
- eBOOK
A Door County Christmas: Four Romances Warm Hearts in Wisconsin's Version of Cape Cod - eBookBecky Melby, Eileen Key, Rachael PhillipsBarbour / 2010 / ePub$1.59 Retail:
$1.99Save 20% ($0.40)Availability: In StockCBD Stock No: WW23295EB
- eBOOK
Made to Last - eBookMelissa TaggBethany House / 2013 / ePub$7.48 Retail:4.5 Stars Out Of 5 45 Reviews
$13.99Save 47% ($6.51)Availability: In StockCBD Stock No: WW40312EB
- eBOOK
Change of Fortune, A - eBookJen TuranoBethany House / 2012 / ePub$5.28 Retail:4 Stars Out Of 5 46 Reviews
$6.99Save 24% ($1.71)Availability: In StockCBD Stock No: WW33598EB
Fun with Hidden Pictures--Activity Book (ages 4 to 7)Warner Press / 2013 / Other$1.79 Retail:
$2.25Save 20% ($0.46)Availability: In StockCBD Stock No: WW177164
Publisher's Description
They were sisters once—identical quadruplets—given up for adoption at birth. Now each receives a letter advising her to claim her inheritance and the family she never knew. . .at Christmas. Holly feels betrayed when she learns she's adopted, while Carol prays for a loving family. Starr thinks it's all a hoax, and Noelle needs a break from a hopeless situation. There are more surprises in store as each young woman gets just the gift she wants—and needs. You'll be warmed by love in these interwoven tales of the ultimate Christmas gift. . . .
Author Bio
Debra Ullrick is an award winning author who is happily married to her husband of thirty-seven years. For over twenty-five years, she and her husband and their only daughter lived and worked on cattle ranches in the Colorado Mountains. The last ranch Debra lived on, a famous movie star and her screenwriter husband purchased property there. She now lives in the flatlands where she's dealing with cultural whiplash. Debra loves animals, classic cars, mud-bog racing, and monster trucks. When she's not writing, she's reading, drawing western art, feeding wild birds, watching Jane Austen movies, COPS, or Castle. Debra's other titles include, The Bride Wore Coveralls, Déjà vu Bride, Dixie Hearts, A Log Cabin Christmas, The Unexpected Bride, and come January 2012, The Unlikely Wife.
Product Reviews
Ask Christianbook
Ask Christianbook
Find Related Products
- Download >> eBooks >> Fiction
- Fiction >> Romance >> Contemporary Romance
- eBooks >> Fiction >> Romance >> Contemporary Romance
- Start A New Search


text:
Ramen Lab Enters Phase Two With Latin-Influenced 'Tampa-Style' Noodles
Slurp tonkotsu while you salsa.
Slurp tonkotsu while you salsa.
Screw the chashu, this thing is topped with Taylor ham.
New Yorkers will get to try all kinds of new, regional ramen.
Get ready to slurp tonkotsu in the privacy of your own partitioned seating, for real this time.
Your favorite flavor was probably involved.
Long live ramen!
How about some fried, foie-stuffed chicken wings?
Customers reported wait times of up to 45 minutes.
The timing couldn't be any better.
No one is cooking with gas.
They're serving forty kinds of shio, miso, tonkotsu, and shoyu overall.
Just in time for the brisk fall season.
Smookler and his wife will open the restaurant this fall.
This is great news for fans of Yuji Haraguchi's inventive noodle dishes.
Also, the most adorable ramen corndogs you've ever seen are now being made on the LES.
It's also got jerk pork-belly slices.
There's slurping that needs to be done on Clinton Street.
Haraguchi will integrate his ramen dishes at his brick-and-mortar in Williamsburg.


text: on Jun 18, 2013 @ 6:01 PMJun 18, 2013 @ 6:01 PM PublishedBusiness Highlights___NSA director says plot against Wall Street foiledWASHINGTON (AP) — The U.S. foiled a plot to bomb the New York Stock Exchange because of the sweeping surveillance programs at the heart of a debate over national security and personal privacy, officials said Tuesday at a rare open hearing on intelligence — a set-piece for supporters of the spying.The House Intelligence Committee, led by lawmakers sympathetic to the extraordinary surveillance, provided a venue for officials to defend the once-secret programs. There was limited probing of claims that the collection of people's phone records and Internet usage has disrupted dozens of terrorist plots, and few details were volunteered.Army Gen. Keith Alexander, director of the National Security Agency, said the two recently disclosed programs — one that gathers U.S. phone records and another that is designed to track the use of U.S.-based Internet servers by foreigners with possible links to terrorism — are critical. But details about them were not closely held within the secretive agency. Alexander said after the hearing that most of the documents accessed by Edward Snowden, a 29-year-old former systems analyst on contract to the NSA, were on a web forum available to many NSA employees. Others were on a site that required a special credential to access. Alexander said investigators are studying how Snowden did that.___Chrysler agrees to recall of Jeeps at risk of fireDETROIT (AP) — Chrysler abruptly agreed to recall 2.7 million older model Jeeps Tuesday, reversing a defiant stance and avoiding a possible public relations nightmare over fuel tanks that can rupture and cause fires in rear-end collisions.In deciding on the recall, Chrysler sidestepped a showdown with government safety regulators that could have led to public hearings with witnesses providing details of deadly crashes involving the Jeeps. The dispute ultimately could have landed in court and hurt Chrysler's image and its finances.The company said calls from customers concerned about the safety of their Jeeps played a part in its going along with the government's request.___Wake-up call: Starbucks to post calorie countsNEW YORK (AP) — Starbucks has a new way to wake up its customers: showing the calories in its drinks.The Seattle-based coffee chain says it will start posting calorie counts on menu boards nationwide next week, ahead of a federal regulation that would require it to do so.Calorie counts on menus are already required in some parts of the country, including New York City.___G-8 seeks unity on Syrian peace talks, tax evasionENNISKILLEN, Northern Ireland (AP) — President Barack Obama, Russian President Vladimir Putin and other G-8 leaders attempted to speak with one voice Tuesday on seeking a negotiated Syrian peace settlement — yet couldn't publicly agree on whether this means President Bashar Assad must go.Their declaration at the end of the two-day Group of Eight summit sought to narrow the diplomatic chasm between Assad's key backer, Russia, and Western leaders on starting peace talks in Geneva to end a two-year civil war that has claimed an estimated 93,000 lives.G-8 leaders also published sweeping goals for tightening the tax rules on globe-trotting corporations that long have exploited loopholes to shift profits into foreign shelters that charge little tax or none. But that initiative, aimed at forcing the Googles and Apples of the world to pay higher taxes, contained only aspirations, not binding commitments.___US consumer prices rise just 0.1 per cent in MayWASHINGTON (AP) — U.S. consumer prices rose slightly last month, as higher energy costs partly offset cheaper food. The small increase is further evidence that consumers are benefiting from mild inflation.The consumer price index ticked up a seasonally adjusted 0.1 per cent in May from April, the Labor Department said Tuesday. Over the past 12 months, prices have risen just 1.4 per cent.Excluding volatile food and gas costs, core prices rose 0.2 per cent in May from April. Core prices are up just 1.7 per cent over the past 12 months, in line with the Federal Reserve's inflation target of 2 per cent.___US home construction rises 6.8 per cent in MayWASHINGTON (AP) — U.S. builders stepped up home construction in May and applied for permits to build single-family homes at the fastest pace in five years. The gains show housing remains a key source of growth for the economy.The overall pace of homes started rose 6.8 per cent last month to a seasonally adjusted annual rate of 914,000, the Commerce Department said Tuesday. That offset part of the 14.8 per cent decline in April. May's rate is still below March's pace of more than 1 million — the fastest in five years.Construction increased in May for both single-family homes and apartments and condos.___With Samsung, Jay-Z's business continues to boomNEW YORK (AP) — He really is more than a businessman.Jay-Z's partnership with Samsung for his new album, "Magna Carta Holy Grail," is another sign of how musicians are finding new ways to push, sell and promote their music, and how the multiplatinum performer — who famously rapped "I'm not a businessman, I'm a business, man" — continues to leverage his enduring popularity into a successful brand.Jay-Z will give his new album to 1 million users of Galaxy mobile phones on July 4, three days before the album's official release date. The 43-year-old broke the news about his twelfth album in a three-minute commercial during the NBA Finals.Details about the Samsung-Jay-Z deal, announced Sunday, weren't disclosed and both parties did not grant interviews.___Sprint sues to stop Dish Clearwire buyoutOVERLAND PARK, Kan. (AP) — Sprint is suing to stop Dish Network's buyout of wireless data network operator Clearwire. The nation's third-largest cellphone carrier said the proposed deal violates the rights of Sprint and other Clearwire shareholders.Dish has offered to pay $4.40 per share for Clearwire, which has recommended that its shareholders approve the offer. That reverses its earlier stance in support of a takeover bid by Sprint, its majority shareholder.Sprint, headquartered in Overland Park, Kan., has bid $3.40 per share for the minority stake in Clearwire it doesn't already own.___MGM, AEG to develop 20,000 seat Las Vegas Strip arenaLAS VEGAS (AP) — Years of talk about building an arena capable of hosting professional sports and big-name concerts yielded an announcement Tuesday that casino giant MGM Resorts International and entertainment company AEG will build a privately financed 20,000-seat indoor venue on the Las Vegas Strip.Construction on the $350 million arena should start next summer on land that MGM Resorts owns between the New York-New York and Monte Carlo resorts, the two companies said in a joint announcement. Completion is expected by spring 2016.The international design firm Populous will draw up plans for premium seating and hospitality areas for entertainment and sports events, the statement said. Populous designed London's O2 arena, Berlin's O2 World arena and Kansas City's Sprint Center, among other projects.___European car sales hit 20-year low for MayMILAN (AP) — European car sales had their worst May in 20 years as the region's recession drags on, the European automakers' association said Tuesday.Passenger car demand for May dropped by 5.9 per cent on the same month last year in the 27-country European Union to 1.042 million units, the lowest level for that month since 1993 when sales dropped below 1 million, according to new figures released by ACEA. For the first five months of the year, sales dropped 6.8 per cent to 5.07 million.After hitting a 17-year low in 2012 with a little over 12 million new registrations, European passenger car sales have continued to sag as the European economy struggles to recover from its debt crisis.___By The Associated Press=The Dow Jones industrial average rose 138.38 points, or 0.9 per cent, to 15,318.23. The Nasdaq composite index rose 30.05 points, or 0.9 per cent, to 3,482.18. The Standard Benchmark oil for July delivery rose 67 cents to close at $98.44 a barrel on the New York Mercantile Exchange. Brent crude, a benchmark for many international oil varieties, gained 55 cents to $106.02 a barrel on the ICE Futures exchange in London.Wholesale gasoline added 2 cents to $2.88 a gallon. Heating oil was rose 1 cent to $2.96 per gallon. Natural gas gained 3 cents to $3.91 per 1,000 cubic feet.