Σχόλια 0

Το κείμενο του εγγράφου

authenticated connection between clients and anetworkgateway. This project can be easily integrated into the university network and grant or deny access tothe internet.

OpenVPN:

The connection between the client and the server will be created by OpenSSL. The OpenSSL will create asecured tunnel between two endpoints using an IPSec like protocol. During the SSL connectionestablishment we make a key exchange process similar to IKEprocess. Afterwards we use the IPSec ESPprotocol for tunnel packet security (but on transport layer instead of network layer). OpenSSL is used inour project to make it easily extended and maintained, changes can be performed by editingconfiguration fieonly without having to modified and recompile the project and more importantOpenVPN is a user space applications (and not kernel mode), which leverage better system security forvariety of operating system (not kernel dependent anymore).

The OpenVPN tunnel consists of two channels:

a.

the control channel–

used for key exchange–

fully encrypted by TLS.

b.

the data channel–

used for data transfer–

signed by HMAC and may be encrypted by TLS usingthe control channel keys.

We extended the OpenVPN protocol so it will not only use an ordinary user password for authenticationbut will also send another challengeresponse can be satisfied only by a previously registeredTPM

device.

The Challenge-

Response protocol:

1.

The client initiates a connection and sends it’s

ID.

2.

The server creates a challenge and sends it back to the client

3.

The client receive the message and does the following:

a.

Hash the challenge using SHA1.

b.

Signs the hashed challenge using the

AIKprivate key

with thetspi_tpm_quote

api.

c.

Change the binary code to base64.

d.

Sends the result back to the server.

4.

The server receives the response and does the following:

a.

Return the response to binary from base64.

b.

Hash the original challenge using SHA1.

c.

Check the signature using the registered public key that matchesthe client ID

The most important feature in this solution is the TPM authentication. In order to achieve this goal theTPM device will create on the client will create a public and private AIK keys. The private key will be usedin the challenge–

response earlier described at the client side to sign the hashed challenge. The publickey will be used on the server side to validate that signature.

TPM Keys creation and exchange:

In order to get theAIK keys we planned to

use a live-cd (will be

introduced below) to create a

cleanenvironment, without any unknown programs or kernel modules, and run a script that access the TPMand creates the AIK keys.In this way the public key will be saved raw, while the private key will bewrapped (encrypted by the TPMs SRK, and can be decrypted and used only by it). Both of the keys willbe saved on a USB stick. When the machine will reboot without the live-cd we will copy the private keyto the machine and use that key as discussed above. The public key will be copied to the server database and create an ID for this client.

After creating the live-cd and script we discovered that the TPM device has a protection against foreignOperating system and therefore does not respond to key creation commands. Instead of using the live-cd a client

can either run the script on his computer operating system (in this way we are expose to thethreats listed above) or use the privacy CA as described below.

Client ID:

After the serverhas obtainedan ID for the client, the ID can be sent to the client through any mediaavailable, like email, DOK etc.

Root of trust:

When working in a Trusted Computer Group the platform level of trustworthiness and platformcharacteristics can be described in three different Roots of Trusts:

1.

RTM: Root of Trust for Measurement

2.

RTS: Root of Trust for Storage

3.

RTR: Root of Trust for Reporting

Concerning RTR, this is a piece of code capable of vouching for the authenticity of PCR values (based ontrusted platform identity, using AIK). The integrity measurements are digitally

signed to authenticatePCR values.

In our solution each time a client connects to the network gateway we are adding a random challenge tothe PCR and signing them together with the AIK private key we previously created.

AIK (Authentication IdentityKey):

The AIK is an asymmetric key pair that can be created by the TPM. The TPM can create an unlimitednumber of AIKs. The AIK can be used only to sign information that was generated internally by the TPM.AIK must never sign arbitrary external data so attackers could not take advantage and create fake PCRvalues.

In our solution we will use the AIK capability of signing PCR values together with a randomized challengein the authentication process.

AIK attestation process:

On our project we implementedone of few available

approaches for attestation:

1.

The implemented approach-

Based on certificate authority which stated by the TCG as PrivacyCA which issue the AIK credentials. The TPM create a pair of AIK asymmetric keys and send theAIK public key and the EK public key .Some TPM manufactures embed inside the TPM chip EKcertificates which helps the Privacy CA validate the authenticity of the TPM which created theAIK. If the TPM has certificates the Privacy CA validate that the public EK is valid TPM key

usingthe TPM manufacturer published certificates. If the key is valid the Privacy CA signs the AIK andsend encrypting it using the public EK and send it back to the TPM client. Now only the TPMwhich has the valid private key can decrypt the CA signed AIK and publish the key to the server.Now the server can validate that the AIK key is genuine. The reason we make this complexprocess is that the EK cannot sign due to privacy concern, hence that is the way stated by theTCG to create keys without exposing the TPM identity. This approach allows us to createcredential without physical presence.

2.

The third approach is using direct attestation

presented on privacyca.com, which do not keepthe user privacy, but it require EK certificate as well. Therefore, we

decided not to implementthis approach.

3.

The last approach is DAA (Direct Anonymous Attestation) using blind signatures, presented byIBM, which was not fully investigated by us due to limited resources.http://www.zurich.ibm.com/security/daa/

In addition to our TPM solution, a client can register also by username and password.

The IT admin can add registries of username and password on the server, where the password will besaved hashed and moved to base64 using a script called sha1_base64.

The client will run a script called openvpn_user_pass followed by username password (example:openvpn_user_pass avicohen4 Okj4cnj#fd).

LIVE-CD:

Live-CD is a CD or a DVD containing bootable computer operating system.

The term "live" derives from the fact that these CDs each contain a complete, functioning andoperational operating system on the distribution medium.

When running live-cd with default options, it allows the user to return the computer to its previous statewhen the live-cd is ejected and the computeris rebooted.

In our solution we created a live-cd that will be used when new user wants to register to the TPMservice. The IT admin will reboot the client laptop from the live-cd, run our TPM script and save the AIKkeys on a USB stick.

Using a live-cd will ensure a clean environment and therefore makes the TPM script safe and secure forthe user laptop and to our TPM code and results.

The AIK private key is wrapped and can be opened only by the TPM so there is neither safety nor privacyproblem there.