G
Guest
is this for reals?
ken said:
REZDOG said:SSL is a JOKE, and everyone that knows encryption would tell you so.
Chakal said:High everyone,
Excuse the noob question, how can I use TOR?
Any one with more info on encryption?
REZDOG said:SSL is easily defeated by sniffer programs,afom sits at a cafe and tears SSL a new asshole.
You wouldn't believe how many people think what they send thru the air,"SSL encrypted" is safe.
I can assure you,it's not.
http://www.securityfocus.com/infocus/1198
SSL - Rumours and Reality: A practical perspective on the value of SSL for protecting web servers
by Charl Van Der Walt
last updated Jan. 24, 2001
Introduction to SSL
You may have connected to a web page every now and then and noticed a small padlock icon at the bottom of your browser window. What does this padlock signify? It means that the web-site is protected by SSL. SSL stands for 'Secure Sockets Layer' and refers to a protocol (or technique) that ensures a secure connection to a web-site. It does this in two ways. First, SSL provides a means by which the parties involved in an information exchange can verify one another's identity. Obviously it's important to know who you are connected to before you start exchanging confidential information. SSL addresses this requirement very nicely by means of digital certificates, which I will explain shortly. Secondly, it changes data into an unreadable format while it traverses an untrusted network like the Internet. You may know of this as encryption. This article will discuss the ways in which SSL provides safe, secure Internet transactions, including: how SSL works, why it is an effective weapon against hackers and how it can sometimes help hackers.
Digital Certificates
In order to discuss SSL, it is crucial to understand the concept of digital certificates. Digital certificates are a mechanism through which we are able to accurately identify something (like a person or a web server) in a completely open system like the Internet. (I say that the Internet is an open system because we have no control over who the users of that system are.) A digital certificate contains information that authenticates the identity of the user, ensuring those who communicate with the holder of the certificate that he or she is who they say they are. Digital certificates are granted by Certificate Authorities, trusted third-party sources that have been authorised by banks, governments and other institutions to guarantee the identity of the holder of the certificate. In addition to containing unique identifying information, digital certificates also contain the public encryption key of the certificate holder.
For example, a bank may want to offer secure online banking facilities using encryption. Encryption necessitates the exchange of encryption keys, which is very hard to do on the Internet where one has no way of knowing who they are actually dealing with on the other side. SSL overcomes this hurdle through the use of digital certificates that not only identify the parties of information exchange, but also already include keys with which the exchange can be encrypted. When SSL is used to encrypt connections to a web server, it is sufficient that only the server itself has a certificate. The users are able to identify themselves by means of the traditional user name and PIN combination. As we shal see later in this discussion, SSL version 3 also makes it possible for users to identify themselves using digital certificates. This is called 'client side authentication' and, when properly implemented, it can significantly raise the security of the system.
The Value of Server Certificates of Authentication
The use of digital certificates allows SSL to offer authentication - the promise that the server the user is connected to is the one that he or she requested. This is obviously critical for users to know before they disclose any confidential information such as a credit card number or a PIN. How could it happen that the server I've connected to is not the one I requested? It's simple really. On the Internet, web servers are actually known by an IP address - a unique 32-bit number that's very hard for humans to remember. DNS - the Domain Name System - and other mechanisms are used to map those addresses to names that are easy for users to understand, like 'www.internetbanking.com'. When a user types 'www.internetbanking.com' in the address window of the browser a complex process kicks off to determine what IP address actually being requested is. Large parts of this process are usually beyond the control of the both the user and the website administrator and are vulnerable to attack at a number of points. This can have the effect that, when users type 'www.internetbanking.com', they are in fact directed to a site controlled by a potential attacker and not by the bank.
The impact of such an attack can range from embarrassing (if the new site displays porn, for example) to disastrous. Imagine if the attacker were to build an exact duplicate of the bank's online banking site. Users could potentially submit their card numbers and PINs only to be told that there was a technical problem with the site and "please try again later". In the meantime, the attacker could use the newly-acquired card number and PIN to steal money from the real site at leisure. (There's a lot more to be said about this kind of attack, but I'll leave that for another time.)
SSL attempts to address exactly this kind of problem by storing the domain name of the server in the digital certificate. When a user connects to a site using SSL, the server presents the certificate in which the domain name is contained. The browser then compares the name contained in the certificate with the name that the user entered in the address window. Any discrepancy is seen as a possible security issue and the user is notified through a pop-up window. In theory (and technical implementation errors aside) this mechanism works perfectly. However, the process falls short on two faulty assumptions:
1. that the user will react correctly to the security notification; and,
2. that the user is aware that the site has a certificate in the first place.
Imagine an attack like the one described above in which the attacker creates a duplicate of a bank's site. The hacker doesn't know of any easy way to trick the SSL authentication mechanism, so he or she simply leaves SSL out of it. The attacker's imposter site would not have a certificate so there would be no name field for the browser to check. The only noticeable difference would be that there would be no little lock in the corner of the browser window to indicate that the connection is SSL secured. However, for a variety of reasons, the user might overlook the fact that there is no secure site icon and unknowingly enter their valuable personal information on the hacker's site.
Clearly, SSL technology offers effective authentication. However, it could be argued that an insufficient number of users are adequately aware of the necessity of SSL to establish a secure connection. Unless more users are educated about SSL and secure sites, having those measures in place will not necessarily serve as any sort of guarantee of users' protection. Unless users are made sufficiently aware of the need to look for security measures on a site, the presence of security measures may not be optimally effective.
SSL and Stored Data
Once a user enters data on a web-site that is secured with SSL, what is the status of that data? Can it be considered secure. As a user enters his or her credit card number the data is encrypted and it travels securely over the Internet to the web server, where it is processed. What happens to the data then? Typically the card number, along with the user's name and other personal details is stored on a database and/or forwarded to some financial switch for further processing. Is that data secured? Is it secure where it is stored? Who has access to it there? Although there are some really excellent e-commerce back-end switches, hackers have successfully managed to compromise the servers on which data is stored (as was exemplified by the Egghead break-in of December, 2000.) In fact, my guess is that in the most cases when we hear of credit card numbers or other data being compromised, this is how it was done.
Although a site may be secured by SSL, this does not necessarily meant that data entered, and subsequently stored, on a site will be secure as well. We all need to realise that SSL offers a solution for only a very small part of the total e-commerce security problem. The fact that a site presents a digital certificate actually says nothing about the level of security protecting a user's information at that site.
The Value of SSLv3 and Client-Side Certificates
With the introduction of version 3 in 1996, SSL offered support for 'client-side' certificates. This means that a server can request clients (or machines that are requesting to be connected to the server) to present their own digital certificates before an SSL session is established. The user's name or email address is recorded in the certificate and can be used by the server to verify the user's identity. Remember that the client's certificate has been digitally 'signed' by a Certificate Authority as confirmation of the user's identity. Client-side authentication, when properly implemented, presents the hacker with a pretty formidable obstacle. So does that mean they throw in the towel? Not likely (hackers are not known for backing down from a challenge!)
SSL and Vulnerability to Attacks
The use of SSL on a web server can give administrators a false sense of security. A web server that uses SSL is just as vulnerable to attacks as any other server, and should be cared for in exactly the same way. In short, encryption and a digital certificate, the main components of SSL, can never protect a server - they can only protect data in transit to and from that server. The following examples will illustrate the ways which SSL is still vulnerable to attack.
Certification Weaknesses
It should be noted that public CAs like Verisign are not infallible. One mistake administrators often make is to place too much trust in public CAs like Verisign. Thus, if Verisign issues a certificate that states that I am 'John', the administrator henceforth accepts that I am John. Unfortunately, when it comes to user certificates, public certificate authorities probably care a lot less about who any particular user is than a site administrator does.
For example, Verisign issued a team of 'hackers', of which I am a member, in the name 'Administrator' (first name 'Administrator', last name blank'). The first thing we do when a site asks us for authentication is to offer the 'Administrator' certificate. You'd be amazed how far that gets us. What makes it even better is that IIS (Internet Information Server, Microsoft's Web server that runs on Windows NT platforms) has a feature called 'Client Certificate Mapping', which maps the name in the certificate you present to a user account under NT, thus giving us Administrator privileges on that host.
Brute-Forcing Certificates
If they are unable to penetrate a server using an illegitimate certificate, hackers can try a 'brute-force' attack. Although this is much harder with certificates then with passwords, it can still be done. To brute-force attack client-side authentication the attacker compiles a list of possible user names and applies to a CA for a certificate in each of those names. One-by-one each of those certificates is used in an attempt to gain access. The smarter the choice of user names, the better the chances that one of the certificates will be accepted. Brute-force with certificates is made easier by the fact that only has to guess a valid user name, not a user name AND password.
Stealing Valid Certificates with Trojan Horses
Finally, the hacker can try and steal a valid certificate with its corresponding private key. The easiest way to do this would be with a Trojan horse. A Trojan is a kind of remote control robot package that, if installed, gives an attacker full control over the victim computer. The trick is to get the package installed. But with a little creativity this is easier then you'd think. Microsoft was successfully attacked in this way in October, 2000. If someone can sneak a Trojan onto an internal computer at MS don't you think they can do it to your doctor's PC at home?
This last attack is where client certificates really fall short. While the attacks referred to previously rely primarily on human error, this attack exploits a fundamental weakness with certificates; namely, that the private key - the nucleus of the entire security system - is often stored on an insecure platform. The only real protection against this may be to store the certificates on a smart card or some other form of token, but that's another topic for another time.
These three types of attack indicate that certain weaknesses exist in the concept of security through certification. Is client authentication the answer to our problems then? I'm afraid not. For further reading on some of the inherent problems with certification as a security measure, read what Bruce Schneier and Carl Ellington have to say on this topic.
SSL and IDS
'IDS' stands for 'Intrusion Detection System' and it's a neat way of knowing when someone's attacking your server. An IDS typically monitors traffic on the network and compares the traffic patterns it detects with a database of known attack 'signatures' or methods. When an attack is detected, the IDS can react by notifying an administrator, terminating the connection or even launching a counter-attack! (Now there's a subject for further discussion!!) The problem is that if the traffic is encrypted then it can't be monitored by the IDS. This often makes the job of attackers much easier.
Given the typical DMZ scenario in which a group of servers are protected by a firewall and watched over by an IDS, hackers can safely probe around on the SSL-protected site because they are hidden from IDS detection by the encryption of SSL. Often a single web server responds to both SSL and normal TCP. Because hackers are attacking the server and not the connection, they can choose either path. Using SSL puts hackers at an advantage because they know that, thanks to the encryption offered by SSL, there is much less chance of being detected by an IDS.
Conclusion
Please don't get me wrong on this. Despite the problems that I have outlined here, SSL is still an effective component of a well-rounded, well-informed security strategy. However, as with all weapons in the security arsenal, it is ineffective if used in isolation from other weapons. Above all, like any other security tool, it is only as effective as the people using it. The danger lies in overestimating the value of SSL. SSL is not a secret weapon, it only wins one small battle in what is a very large, long and complex war. Until we can start winning some of the other battles e-business will remain risky business.
Post Script: How Do I Do My E-Stuff
After all I've said about the dangers of on-line commerce, you may be wondering whether I use the web for transactions at all. Absolutely. Although I am acutely and personally aware of the dangers of e-commerce, the convenience it offers is simply too good to ignore. I have two credit cards, one of which is used almost solely for web shopping etc. By carefully controlling the limits on this card I can minimise the losses I may incur if my number were to leak out. This is called 'risk management' and it is the essence of information security.
Thanks to Roelof Temmingh, my friend and partner, whose cunning mind is the greenhouse in which many of these ideas were grown.
charl van der walt is a founder-member of SensePost Information Security - an information security services company specialising in risk assessment and penetration testing, consultation and training. He has a dog called 'fish'. To discuss pets or any other issues related to security please mail me at [email protected], or visit our web site athttp://www.sensepost.com.
Existenzophile said:I don't think many people really enjoy goatse with their Latte though...