Sunteți pe pagina 1din 6

HTTP Secure

HTTP Secure
HTTP
Persistence Compression HTTPS Request methods GET POST PUT DELETE Header fields Cookie ETag Location Referer X-Forwarded-For Status codes 301 Moved permanently 302 Found 303 See Other 403 Forbidden 404 Not Found

Hypertext Transfer Protocol Secure (HTTPS) is a combination of the Hypertext Transfer Protocol with the SSL/TLS protocol to provide encrypted communication and secure identification of a network web server. HTTPS connections are often used for payment transactions on the World Wide Web and for sensitive transactions in corporate information systems. HTTPS should not be confused with the little-used Secure HTTP (S-HTTP) specified in RFC 2660.

Main idea
The main idea of HTTPS is to create a secure channel over an insecure network. This ensures reasonable protection from eavesdroppers and man-in-the-middle attacks, provided that adequate cipher suites are used and that the server certificate is verified and trusted. The trust inherent in HTTPS is based on major certificate authorities that come pre-installed in browser software (this is equivalent to saying "I trust certificate authority (e.g. VeriSign/Microsoft/etc.) to tell me whom I should trust"). Therefore an HTTPS connection to a website can be trusted if and only if all of the following are true: 1. The user trusts that their browser software correctly implements HTTPS with correctly pre-installed certificate authorities. 2. The user trusts the certificate authority to vouch only for legitimate websites without misleading names. 3. The website provides a valid certificate, which means it was signed by a trusted authority. 4. The certificate correctly identifies the website (e.g., when the browser visits "https://example", the received certificate is properly for "Example Inc." and not some other entity). 5. Either the intervening hops on the Internet are trustworthy, or the user trusts that the protocol's encryption layer (TLS or SSL) is unbreakable by an eavesdropper.

HTTP Secure

Browser integration
Most browsers display a warning if they receive an invalid certificate. Older browsers, when connecting to a site with an invalid certificate, would present the user with a dialog box asking if they wanted to continue. Newer browsers display a warning across the entire window. Newer browsers also prominently display the site's security information in the address bar. Extended validation certificates turn the address bar green in newer browsers. Most browsers also display a warning to the user when visiting a site that contains a mixture of encrypted and unencrypted content.

Many web browsers, including Firefox (shown here), use the address bar to tell the user that their connection is secure, often by coloring the background.

Most web browsers alert the user when visiting sites that have invalid security certificates. This example is from Firefox.

The Electronic Frontier Foundation, opining that "[i]n an ideal world, every web request could be defaulted to HTTPS", has provided an add-on for the Firefox browser that does so for several frequently used websites.[1] [2]

Technical
Difference from HTTP
As opposed to HTTP URLs that begin with "http://" and use port 80 by default, HTTPS URLs begin with "https://" and use port 443 by default. HTTP is unsecured and is subject to man-in-the-middle and eavesdropping attacks, which can let attackers gain access to website accounts and sensitive information. HTTPS is designed to withstand such attacks and is considered secure against such attacks (with the exception of older deprecated versions of SSL).

Network layers
HTTP operates at the highest layer of the OSI Model, the Application layer; but the security protocol operates at a lower sublayer, encrypting an HTTP message prior to transmission and decrypting a message upon arrival. Strictly speaking, HTTPS is not a separate protocol, but refers to use of ordinary HTTP over an encrypted Secure Sockets Layer (SSL) or Transport Layer Security (TLS) connection. Everything in the HTTP message is encrypted, including the headers, and the request/response load. With the exception of the possible CCA cryptographic attack described in limitations section below, the attacker can only know the fact that a connection is taking place between the two parties, already known to him, the domain name and IP addresses.

HTTP Secure

Server setup
To prepare a web server to accept HTTPS connections, the administrator must create a public key certificate for the web server. This certificate must be signed by a trusted certificate authority for the web browser to accept it. The authority certifies that the certificate holder is indeed the entity it claims to be. Web browsers are generally distributed with the signing certificates of major certificate authorities so that they can verify certificates signed by them. Acquiring certificates Authoritatively signed certificates may be free[3] [4] or cost between US$13[5] and $1,500[6] per year. Organizations may also run their own certificate authority, particularly if they are responsible for setting up browsers to access their own sites (for example, sites on a company intranet, or major universities). They can easily add copies of their own signing certificate to the trusted certificates distributed with the browser. There also exists a peer-to-peer certificate authority, CACert. Use as access control The system can also be used for client authentication in order to limit access to a web server to authorized users. To do this, the site administrator typically creates a certificate for each user, a certificate that is loaded into his/her browser. Normally, that contains the name and e-mail address of the authorized user and is automatically checked by the server on each reconnect to verify the user's identity, potentially without even entering a password. In case of compromised private key A certificate may be revoked before it expires, for example because the secrecy of the private key has been compromised. Newer versions of popular browsers such as Google Chrome, Firefox,[7] Opera,[8] and Internet Explorer on Windows Vista[9] implement the Online Certificate Status Protocol (OCSP) to verify that this is not the case. The browser sends the certificate's serial number to the certificate authority or its delegate via OCSP and the authority responds, telling the browser whether or not the certificate is still valid.[10]

Limitations
SSL comes in two options, simple and mutual. The mutual version is more secure, but requires the user to install a personal certificate in their browser in order to authenticate themselves. Whatever strategy is used (simple or mutual), the level of protection strongly depends on the correctness of the implementation of the web browser and the server software and the actual cryptographic algorithms supported. SSL doesn't prevent the entire site from being indexed using a web crawler, and in some cases the URI of the encrypted resource can be inferred by knowing only the intercepted request/response size.[11] This allows an attacker to have access to the plaintext (the publicly-available static content), and the encrypted text (the encrypted version of the static content), permitting a cryptographic attack. Because SSL operates below HTTP and has no knowledge of higher-level protocols, SSL servers can only strictly present one certificate for a particular IP/port combination.[12] This means that, in most cases, it is not feasible to use name-based virtual hosting with HTTPS. A solution called Server Name Indication (SNI) exists, which sends the hostname to the server before encrypting the connection, although many older browsers don't support this extension. Support for SNI is available since Firefox 2, Opera 8, Safari 2.1, Google Chrome 6, and Internet Explorer 7 on Windows Vista.[13] [14] [15] If parental controls are enabled on Mac OS X, HTTPS sites must be explicitly allowed using the Always Allow list.[16]

HTTP Secure From an architectural point of view: 1. An SSL/TLS bbis managed by the first front machine that initiates the SSL connection. If, for any reasons (routing, traffic optimization, etc.), this front machine is not the application server and it has to decipher data, solutions have to be found to propagate user authentication informations or certificate to the application server, which needs to know who is going to be connected. 2. For SSL with mutual authentication, the SSL/TLS session is managed by the first server that initiates the connection. In situations where encryption has to be propagated along chained servers, session timeOut management becomes extremely tricky to implement. 3. With mutual SSL/TLS, security is maximal, but on the client-side, there is no way to properly end the SSL connection and disconnect the user except by waiting for the SSL server session to expire or closing all related client applications. 4. For performance reasons, static content that is not specific to the user or transaction, and thus not private, is usually delivered through a non-crypted front server or separate server instance with no SSL. As a consequence, this content is usually not protected. Many browsers warn the user when a page has mixed encrypted and non-encrypted resources. A sophisticated type of man-in-the-middle attack was presented at the Blackhat Conference 2009. This type of attack defeats the security provided by HTTPS by changing the https: link into an http: link, taking advantage of the fact that few Internet users actually type "https" into their browser interface: they get to a secure site by clicking on a link, and thus are fooled into thinking that they are using HTTPS when in fact they are using HTTP. The attacker then communicates in clear with the client.[17] .

History
Netscape Communications created HTTPS in 1994 for its Netscape Navigator web browser.[18] Originally, HTTPS was used with SSL protocol. As SSL evolved into Transport Layer Security (TLS), the current version of HTTPS was formally specified by RFC 2818 in May 2000.[19]

References
[1] Peter Eckersley: Encrypt the Web with the HTTPS Everywhere Firefox Extension (https:/ / www. eff. org/ deeplinks/ 2010/ 06/ encrypt-web-https-everywhere-firefox-extension) EFF blog, 17 June 2010 [2] HTTPS Everywhere (https:/ / www. eff. org/ https-everywhere) [3] "Free SSL Certificates from a Free Certificate Authority" (http:/ / www. sslshopper. com/ article-free-ssl-certificates-from-a-free-certificate-authority. html). sslshopper.com. . Retrieved 2009-10-24. [4] Justin Fielding (2007-07-16). "Secure Outlook Web Access with (free) SSL: Part 1" (http:/ / www. techrepublic. com/ blog/ networking/ secure-outlook-web-access-with-free-ssl-part-1/ 293). TechRepublic. . Retrieved 2009-10-24. [5] "SSL Certificate Services" (http:/ / www. godaddy. com/ gdshop/ compare/ gdcompare_ssl. asp?isc=sslqgo002b). Go Daddy. . Retrieved 6 May 2009. [6] "Secure Site Pro with EV" (http:/ / www. verisign. com/ ssl/ buy-ssl-certificates/ extended-validation-pro-ssl-certificates/ index. html). VeriSign. . Retrieved 6 May 2009. [7] "Mozilla Firefox Privacy Policy" (http:/ / www. mozilla. com/ en-US/ legal/ privacy/ firefox-en. html). Mozilla Foundation. 27 April 2009. . Retrieved 13 May 2009. [8] "Opera 8 launched on FTP" (http:/ / news. softpedia. com/ news/ Opera-8-launched-on-FTP-1330. shtml). Softpedia. 19 April 2005. . Retrieved 13 May 2009. [9] Lawrence, Eric (31 January 2006). "HTTPS Security Improvements in Internet Explorer 7" (http:/ / msdn. microsoft. com/ en-us/ library/ bb250503. aspx). MSDN. . Retrieved 13 May 2009. [10] Myers, M; Ankney, R; Malpani, A; Galperin, S; Adams, C (June 1999). "Online Certificate Status Protocol - OCSP" (http:/ / tools. ietf. org/ html/ rfc2560). Internet Engineering Task Force. . Retrieved 13 May 2009. [11] Pusep, Stanislaw (31 July 2008). "The Pirate Bay un-SSL" (http:/ / sysd. org/ stas/ node/ 220). . Retrieved 6 March 2009. [12] Apache FAQ: Why can't I use SSL with name-based/non-IP-based virtual hosts? (http:/ / httpd. apache. org/ docs/ 2. 0/ ssl/ ssl_faq. html#vhosts) [13] Lawrence, Eric (22 October 2005). "Upcoming HTTPS Improvements in Internet Explorer 7 Beta 2" (http:/ / blogs. msdn. com/ ie/ archive/ 2005/ 10/ 22/ 483795. aspx). Microsoft. . Retrieved 12 May 2009.

HTTP Secure
[14] Server Name Indication (SNI) (http:/ / blog. ebrahim. org/ 2006/ 02/ 21/ server-name-indication-sni/ ) [15] Pierre, Julien. "Browser support for TLS server name indication" (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=116169) (2001-12-19). Bugzilla. Mozilla Foundation. . Retrieved 2010-12-15. [16] Pierre, Julien. "Mac OS X v10.5, 10.6: About the Parental Controls Internet content filter" (http:/ / support. apple. com/ kb/ HT2900) (2010-03-30). Support. Apple, Inc.. . Retrieved 2010-12-15. [17] Moxie Marlinspike (2009). "Error: no |title= specified when using {{[[Template:Cite web|Cite web (http:/ / blogs. orange-business. com/ securite/ 2009/ 02/ ssl-pwned. html)]}}"]. . Retrieved 20.06.2011. [18] Walls, Colin (2005). Embedded software (http:/ / books. google. com/ books?id=FLvsis4_QhEC& pg=PA344). pp.344. . [19] Rescorla, E (May 2000). "HTTP Over TLS" (http:/ / tools. ietf. org/ html/ rfc2818). Internet Engineering Task Force. . Retrieved 6 May 2009.

External links
RFC 2818: HTTP Over TLS (http://tools.ietf.org/html/rfc2818) SSL 3.0 Specification (http://tools.ietf.org/html/draft-ietf-tls-ssl-version3-00) (IETF) HTTPS Everywhere (https://www.eff.org/https-everywhere) created by Electronic Frontier Foundation Wikipedia with HTTPS protocol (https://secure.wikimedia.org/wikipedia/en/wiki/Main_Page) Apache-SSL homepage (http://www.apache-ssl.org/) (No longer actively developed) Apache 2.2 mod_ssl documentation (http://httpd.apache.org/docs/2.2/ssl/)

HTTPS Protocol in Internet Explorer Development - MSDN (http://msdn2.microsoft.com/en-us/library/ aa767735(VS.85).aspx) Manually Configuring Windows Communication Foundation (WCF) when using HTTP and HTTPS - MSDN (http://msdn2.microsoft.com/en-us/library/ms733768.aspx) HTTPS Security Improvements in Internet Explorer 7 & its Compatibility Impact - MSDN (http://msdn2. microsoft.com/en-us/library/bb250503.aspx)

Article Sources and Contributors

Article Sources and Contributors


HTTP Secure Source: http://en.wikipedia.org/w/index.php?oldid=435264344 Contributors: -jkb-, Acdx, Acodring, Adashiel, Af.pf, Alansohn, Aldie, AlefZet, AlistairMcMillan, Allamiro, Allaryin, Anclation, Andonic, Andre Engels, Andrew4u, Angela, Angus Lepper, Anonymous Dissident, Arcade, Arvindn, Ashley Y, Barakw, Bassbonerocks, Beetstra, Ben-Zin, Bevo, BiT, Blood sliver, Bobo192, Bozoid, BrianGV, BrunoHarbulot, Buss, C. A. Russell, Calm, Caltas, Can't sleep, clown will eat me, Canon, Card, Chainz, Cherlin, Chowbok, Chriswiki, Clumpidy, Cocytus, Codetiger, Conversion script, Courcelles, DARTH SIDIOUS 2, DStoykov, DVD R W, Dabomb87, Damian Yerrick, Daniel1, DarwinPeacock, Dazmax, Dbenbenn, Ddas, Demiurge, Dequid, DerHexer, Destynova, Dibblethewrecker, Dnicolaou, DougWare, EditorsChoice, Edwin, EncMstr, Epbr123, Erik9, Esb, Everyking, Excirial, Favonian, Felipe1982, Fnielsen, FrankAndProust, Fred Bradstadt, Fubar Obfusco, Furrykef, GHe, Gabipetrovay, Gaurav1424, Gautier lebon, Geneb1955, Ghettoblaster, Gogo Dodo, GrahamJAT, Grawity, GringoCroco, HaeB, Halvorsen brian, Hdt83, Helixer, HenryLi, Heymid, Hrvoje Simic, Hut 8.5, IMSoP, Immunize, Inspire22, Intgr, Irishguy, JGXenite, JPG-GR, JTN, Jebba, Jeffhos, Jeltz, Jeremy Visser, Jesse Viviano, Jim10701, Johan Burati, John of Reading, JonHarder, Jordan Gray, Jredmond, Jshadias, Kain Nihil, Ke din, Kevin, Kevin B12, Kingpin13, Kne1p, Koavf, Ksn, Kst2005, Kwertii, LCarl, Lachlan Hunt, Lakshmin, LapoLuchini, LeonardoGregianin, Logical2u, Lord Pistachio, Lord Snoeckx, Loren.wilton, Lorenzarius, LorenzoB, MER-C, MICKLEK, Mac, Magioladitis, Malo, Mandarax, Maros, Martinwguy, Matagascar, Matt Crypto, Meskalitos, Metamorph123, MetsFan76, Mike Rosoft, Minna Sora no Shita, Mjscud, Mmernex, Mormegil, Mortein, MrBoo, Mrqcho, Msiebuhr, Mysidia, N419BH, NERIC-Security, Neilka, Netzen, NewEnglandYankee, NiceGuyAlberto, Noishe, Nurg, Oiudfgogsdf, Omicronpersei8, OrangeDog, OwenX, Pako, Parsecboy, Patrick, Peanut.pookie, Peterl, Piano non troppo, Pimlottc, PinchasC, Planecrash111, Plugwash, Porchcorpter, Produke, Profoss, Prolog, Qxz, RP459, RaCha'ar, Raeky, Ragimiri, RainbowOfLight, Randy Johnston, Rannphirt anaithnid, Rbb l181, Reisio, Remember the dot, Rick Block, Rjwilmsi, Rnicoll, RockMFR, RossPatterson, Royalguard11, Rrburke, Rrjanbiah, S.K., SURIV, Safety Cap, Scott5114, Shanes, Shirishag75, SimonMorgan, Sixmeters, Slach, Smalljim, Snowolf, Socrates2008, Some jerk on the Internet, Someguy1221, Spezied, Srose, StaticVision, StephenBuxton, Stephenb, Stubblyhead, Stwalkerster, Subsume, SupaStarGirl, Sweeper tamonten, Tambarge, The Anome, The Thing That Should Not Be, TheJosh, Thecheesykid, Thingg, Thomas Springer, Thomasyen, Tigga en, Tlaresch, TomasBat, TonyW, Topaz, Toussaint, Veraladeramanera, Versageek, Versus22, Vrenator, Waterfox, Wenli, Wereon, White Cat, Wikingtubby, Wmahan, WojPob, WookieInHeat, WorldlyWebster, Ww, YUL89YYZ, Yamamoto Ichiro, Yaronf, Yonatan, Zachlipton, Zeno Gantner, Zfr, Ziggymarley01, Zntrip, Zollerriia, 684 , ,anonymous edits

Image Sources, Licenses and Contributors


File:Firefox 3 rc1 Extended Validation SSL address bar and certificate detail.PNG Source: http://en.wikipedia.org/w/index.php?title=File:Firefox_3_rc1_Extended_Validation_SSL_address_bar_and_certificate_detail.PNG License: GNU General Public License Contributors: Original uploader was GoddersUK at en.wikipedia File:Firefox 3.0 error on svn.boost.org.png Source: http://en.wikipedia.org/w/index.php?title=File:Firefox_3.0_error_on_svn.boost.org.png License: unknown Contributors: Mozilla Foundation

License
Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

S-ar putea să vă placă și