Which encryption algorithm is used in facebook




















One key remains secret—the private key—while the other key is made widely available to anyone who needs it. This key is called the public key. The private and public keys are mathematically tied together, so the corresponding private key can only decrypt that information encrypted using the public key. Say I want to send you a private message. I encrypt it using one of the programs listed below. Once encrypted, the message becomes a jumbled mess of random characters.

But, equipped with the key I send you, you can decrypt it and find the original message. The technology comes in many forms, with key size and strength generally being the most significant differences in one variety to the next. At one time, Triple DES was the recommended standard and the most widely used symmetric algorithm in the industry.

Triple DES uses three individual keys with 56 bits each. The total key length adds up to bits, but experts would argue that bits in key strength is more accurate. Government and numerous organizations. Although it is highly efficient in bit form, AES also uses keys of and bits for heavy-duty encryption purposes. AES is largely considered impervious to all attacks, except for brute force, which attempts to decipher messages using all possible combinations in the , , or bit cipher.

RSA is a public-key encryption algorithm and the standard for encrypting data sent over the internet. The result of RSA encryption is a huge batch of mumbo jumbo that takes attackers a lot of time and processing power to break. Blowfish is yet another algorithm designed to replace DES. Soon, end-to-end encryption will be standard for every Facebook message.

For instance, this was a major concern following the London terror attacks. End-to-end encryption is a method of communicating more securely, compared to non-encrypted communications. It involves using encryption via cryptographic keys that excludes third parties from accessing content shared between communicating users.

When the sender wants to communicate with the receiver, they share a unique algorithmic key to decrypt the message. No one else can access it, not even the service provider.

Read more: Social media and crime: the good, the bad and the ugly. One possible reason Facebook is pushing for this development is because it will solve many of its legal woes. And even if police were able to get hold of the data, they would still need the key required to read the messages. This means Facebook, law enforcement agencies and hackers will find it harder to intercept any communication done through the platform.

And although end-to-end encryption is arguably not necessary for most everyday conversations, it does have advantages , including:. How do we prevent cascading failures a common industry concern in connection setup storms? For our original design back in , we selected Kerberos named for the three-headed hound of Greek mythology. At the time, Kerberos was a sound choice for our needs. It was a mature protocol design that provided confidentiality, integrity, and authenticity. It supported several platforms and had mature implementations such as MIT Kerberos.

TLS 1. In the Kerberos system, if a client wants to talk to the server, it first has to talk to the key distribution center KDC. The KDC then provides the client with a ticket that only the client and server can decrypt.

This allows both the client and the server to verify that the other has the right identity and derive a session key to encrypt Thrift requests. We set up several systems to help Kerberos scale to suit our needs. In addition to building Kerberos support and in-memory ticket caching into Thrift, to pre-fetch tickets, we also tuned thread pools to scale to large services and clients with tens of thousands of concurrent connections and made multiple improvements to the MIT Kerberos library.

As we gained more experience and deployed Kerberos at a larger scale, we started to see issues. Several services have a large fan-out and talk to thousands of different services and thus need to fetch tickets from the KDC on a frequent basis. The KDC machines would fail from time to time, and the fallout of failure was that clients would not be able to talk to servers all of a sudden.

In other cases, clients would send requests in bursts and would need to fetch multiple tickets simultaneously. Thread pools are complex to tune, and we found that our thread pools were not able to keep up with bursty workloads, causing large delays. The errors and delays affected the reliability of our production systems. Although Kerberos provided strong security guarantees, our experience showed us there is a major trade-off between the security and operability of the system.

After several years of trying to manage these issues with Kerberos, we decided to redesign the system from the ground up. We based our new design on TLS mutual-authentication with X. By this time, we had built one of the largest deployments of TLS on the internet, and our TLS implementation and tools had matured quite a bit.

Using a uniform protocol between external and internal traffic offered the advantage of being able to reuse our expertise in both domains. At the heart of the new design is how to manage the trade-off between security and operability at scale, and we set down some key ideas:. Delegation of authority is important to our goal of provisioning a certificate during container setup. To manage certificates, we built our own internal certificate authority ICA service, which can not only sign certificates but also supply ticket keys to services.

To be able to fetch certificates during container setup, we integrated Tupperware with our ICA. Bootstrapping trust is one of the most difficult problems in a security system. We created a hierarchical identity setup to bootstrap trust because several systems have to work together to provide an identity to a service.

The animation shows the process of provisioning certificates. We created three types of certificates:. Our system provides some properties that help us mitigate the trade-offs of delegating authority:.

Full TLS handshakes use different forms of asymmetric crypto to provide confidentiality and mutual authentication. TLS tickets allow the use of symmetric crypto, which is an order of magnitude more efficient.

Specific services inside our data center that do millions of connections per second would take a significant hit if we required every connection to perform full handshakes without a significant redesign. To demonstrate how important resumption is, the graph below shows CPU utilization when we tested a quick rotation of STEKs which temporarily lowered the resumption rate.

Using resumed tickets is a classic trade-off between operability of the service and security. If not used judiciously, resumption can provide weaker security properties.

For example, if attackers obtain the STEK, they could decrypt all the traffic — not only for their host but for other hosts as well, using the same STEK. Resumption cannot re-validate the identity of the client, so having the STEK means that one could masquerade as any other service to a service using that STEK.

Thus, we wanted to mitigate the risk of using session tickets by using different STEKs between services and rotating them frequently to reduce the compromise window. Performing global rotation of STEKs is not operationally robust. We have thousands of different services running on hundreds of thousands of hosts, which would need to synchronize STEKs. Debugging de-synchronization failures would be very difficult. We designed a system to distribute STEKs that was simple to operate and did not require service owners to perform any configuration.

After Tupperware sets up the service, a periodic task is automatically installed in each container to fetch STEKs. The job calls the ICA via a mutually authenticated TLS connection using its identity certificate as a client certificate.

The identity comes directly from the client identity in the mutually authenticated TLS connection. It returns three STEKs to the host:. Having three keys allows graceful rotation of the tickets.



0コメント

  • 1000 / 1000