«HTTPS»–ի խմբագրումների տարբերություն

Content deleted Content added
No edit summary
Տող 33.
Սա կատարվում է օրինակ ինտերնետում HTTP միջոցով ֆինանսական գործարքների կատարման համար, որտեղ հիմնականում [[վեբ սերվեր|սերվերն]] է նույնականացված։ HTTPS-ը անպաշտպան ցանցում ստեղծում է անվտանգ ալիք, ինչը ապահովում է վստահելի պաշտպանություն տվյալների կորզումից։
 
== Ծանոթագրություններ ==
<!--
{{ծանվանկ}}
 
Because HTTPS piggybacks HTTP entirely on top of TLS, the entirety of the underlying HTTP protocol can be encrypted. This includes the request URL (which particular web page was requested), query parameters, headers, and cookies (which often contain identity information about the user). However, because host (website) addresses and port numbers are necessarily part of the underlying [[TCP/IP]] protocols, HTTPS cannot protect their disclosure. In practice this means that even on a correctly configured web server, eavesdroppers can infer the IP address and port number of the web server (sometimes even the domain name e.g. www.example.org, but not the rest of the URL) that one is communicating with as well as the amount (data transferred) and duration (length of session) of the communication, though not the content of the communication.{{citation needed|date=August 2012}}
 
Web browsers know how to trust HTTPS websites based on [[certificate authorities]] that come pre-installed in their software. Certificate authorities (e.g. VeriSign/Microsoft/etc.) are in this way being trusted by web browser creators to provide valid certificates. Therefore, a user should trust an HTTPS connection to a website [[if and only if]] all of the following are true:
 
* The user trusts that the browser software correctly implements HTTPS with correctly pre-installed certificate authorities.
* The user trusts the certificate authority to vouch only for legitimate websites.
* The website provides a valid certificate, which means it was signed by a trusted authority.
* The certificate correctly identifies the website (e.g., when the browser visits "https://example.com", the received certificate is properly for "Example Inc." and not some other entity).
* Either the intervening hops on the Internet are trustworthy, or the user trusts that the protocol's encryption layer (TLS/SSL) is sufficiently secure against eavesdroppers.
 
HTTPS is especially important over unencrypted networks (such as WiFi), as anyone on the same local network can "packet sniff" and discover sensitive information. Additionally, many free to use and even paid for WLAN networks do packet injection for serving their own ads on webpages or just for pranks, however this can be exploited maliciously, e.g., by injecting malware and spying on users.<ref>{{cite web|title=Hotel Wifi JavaScript Injection|url=http://justinsomnia.org/2012/04/hotel-wifi-javascript-injection/|accessdate=24 July 2012}}</ref>
 
Another example where HTTPS is important is connections over [[Tor (anonymity network)]], as malicious Tor nodes can damage or alter the contents passing through them in an insecure fashion and inject malware into the connection. This is one reason why the [[Electronic Frontier Foundation]] and the Tor project started the development of [[HTTPS Everywhere]],<ref name=httpse/> which is included in the Tor Browser Bundle.<ref>[https://www.torproject.org/projects/torbrowser.html.en Tor Browser Bundle]</ref>
 
Deploying HTTPS also allows the use of [[SPDY]], which is designed to reduce page load times and latency.
 
It is recommended to use [[HTTP Strict Transport Security]] with HTTPS to protect users from man-in-the-middle attacks.<ref name=deployhttpscorrectly>{{cite web|title=How to Deploy HTTPS Correctly|url=https://www.eff.org/https-everywhere/deploying-https|accessdate=13 June 2012}}</ref><ref name="HSTSMDN">[https://developer.mozilla.org/en/Security/HTTP_Strict_Transport_Security HSTS Mozilla Developer Network]</ref>
 
HTTPS should not be confused with the little-used [[Secure Hypertext Transfer Protocol|Secure HTTP]] (S-HTTP) specified in RFC 2660.
 
===Usage in websites===
As of 2014-10-12, 32.8% of the Internet's 151,509 most popular websites have a secure implementation of HTTPS.<ref name=sslpulse>{{cite web|title=SSL Pulse|url=https://www.trustworthyinternet.org/ssl-pulse/|publisher=Trustworthy Internet Movement|accessdate=2014 թ․ հոկտեմբերի 12–ին}}</ref>
 
===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 certificate]]s 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.
{{gallery
|title=Comparison between different kinds of [[Secure Sockets Layer|SSL]] certificates<br><small>(Using [[Firefox]] as an example)</small>
|height=170
|width=300
|lines=3
|align=center
|File:Firefox 3 rc1 Extended Validation SSL address bar and certificate detail.PNG|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.
|File:SSL Certificate Info Box In Firefox.png|When accessing a site only with a common certificate, the address bar of [[Firefox]] turns blue. For some other [[Web browser|browser]]s, a "lock" sign may appear.
|File:Firefox 3.0 error on svn.boost.org.png|Most web browsers alert the user when visiting sites that have invalid security certificates.
}}
 
Firefox uses HTTPS for Google searches as of version 14,<ref>{{cite web|title=Firefox 14.0.1 Release Notes|url=https://www.mozilla.org/en-US/firefox/14.0.1/releasenotes/|accessdate=24 July 2012}}</ref> to "shield our users from network infrastructure that may be gathering data about the users or modifying/censoring their search results".<ref>{{cite web|title=Firefox Rolling Out HTTPS Google search|url=https://blog.mozilla.org/futurereleases/2012/05/09/rolling-out-https-google-search/|accessdate=24 July 2012}}</ref>
 
The [[Electronic Frontier Foundation]], opining that "In an ideal world, every web request could be defaulted to HTTPS", has provided an add-on called [[HTTPS Everywhere]] for [[Mozilla Firefox]] that enables HTTPS by default for hundreds of frequently used websites. A beta version of this plugin is also available for [[Google Chrome]] and Chromium.<ref>Peter Eckersley: [https://www.eff.org/deeplinks/2010/06/encrypt-web-https-everywhere-firefox-extension Encrypt the Web with the HTTPS Everywhere Firefox Extension] EFF blog, 17 June 2010</ref><ref>[https://www.eff.org/https-everywhere HTTPS Everywhere] EFF projects</ref>
 
==Technical==
 
===Difference from HTTP===
HTTPS URLs begin with "https://" and use [[List of TCP and UDP port numbers|port]] 443 by default, whereas [[HTTP]] [[URL]]s begin with "http://" and use [[List of TCP and UDP port numbers|port]] 80 by default.
 
HTTP is insecure 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 [[TCP/IP model]], the Application layer; as does the SSL security protocol (operating as a lower sublayer of the same layer), which encrypts an HTTP message prior to transmission and decrypts a message upon arrival. Strictly speaking, HTTPS is not a separate protocol, but refers to use of ordinary [[HTTP]] over an [[encryption|encrypted]] SSL/TLS connection.
 
Everything in the HTTPS message is encrypted, including the headers, and the request/response load. With the exception of the possible [[Chosen-ciphertext attack|CCA]] cryptographic attack described in the [[#Limitations|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.
 
===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 without warning. The authority certifies that the certificate holder is the operator of the web server that presents it. Web browsers are generally distributed with a list of [[root certificate|signing certificates of major certificate authorities]] so that they can verify certificates signed by them.
 
====Acquiring certificates====
 
Authoritatively signed certificates may be free<ref>{{cite web
|url=http://www.sslshopper.com/article-free-ssl-certificates-from-a-free-certificate-authority.html
|title=Free SSL Certificates from a Free Certificate Authority
|publisher=sslshopper.com
|accessdate=2009 թ․ հոկտեմբերի 24–ին
}}</ref><ref>{{cite web
|url=http://www.techrepublic.com/blog/networking/secure-outlook-web-access-with-free-ssl-part-1/293
|title=Secure Outlook Web Access with (free) SSL: Part 1
|author=Justin Fielding
|date=2006-07-16
|publisher=[[TechRepublic]]
|accessdate=2009 թ․ հոկտեմբերի 24–ին
}}</ref>
or cost between {{nowrap|8 [[United States dollar|USD]]}}<ref>{{cite web
|url=https://www.namecheap.com/ssl-certificates/comodo/positivessl-certificate.aspx
|title=Namecheap.com SSL Services
|publisher=namecheap
|accessdate=30 Jan 2012
}}</ref> and {{nowrap|70 USD}}<ref>{{cite web
|url=https://ssl.comodo.com/comodo-ssl-certificate.php
|title=Secure Site Pro with SSL Certificate |accessdate=23 Aug 2014
}}</ref> per year (in 2012–2014).
However, in the case of free certificate authorities such as CACert, popular browsers (e.g. Firefox, Chrome, Internet Explorer) may not include the trusted root certificates, which may cause untrusted warning messages to be displayed to end users.
 
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 secret (private) key====
An important property in this context is [[perfect forward secrecy]] (PFS). Possessing one of the long term asymmetric secret keys used to establish a HTTPS session should not make it easier to derive the short term session key to then decrypt the conversation, even at a later time. [[Diffie–Hellman key exchange]] (DHE) and [[Elliptic curve Diffie–Hellman]] key exchange (ECDHE) are in 2013 the only ones known to have that property. Only 30% of Firefox, Opera, and Chromium Browser sessions use it, and nearly 0% of Apple's Safari and Microsoft Internet Explorer sessions.<ref name=ecdhe/> From the larger internet providers only Google supports PFS since 2011 (State of September 2013).{{Citation needed|reason=There appears to be referenced basis for this claim; Additionally, a cursory test indicates that at least Facebook and Twitter use ECDHE(alexa top 10)|date=September 2013}}
 
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]],<ref>{{cite web
|url=https://www.mozilla.com/en-US/legal/privacy/firefox-en.html
|title=Mozilla Firefox Privacy Policy
|publisher=[[Mozilla Foundation]]
|date=27 April 2009
|accessdate=13 May 2009
}}</ref> [[Opera (web browser)|Opera]],<ref>{{cite news
|url=http://news.softpedia.com/news/Opera-8-launched-on-FTP-1330.shtml
|title=Opera 8 launched on FTP
|publisher=[[Softpedia]]
|date=19 April 2005
|accessdate=13 May 2009
}}</ref> and [[Internet Explorer]] on [[Windows Vista]]<ref>{{cite web
|url=http://msdn.microsoft.com/en-us/library/bb250503.aspx
|title=HTTPS Security Improvements in Internet Explorer 7
|last=Lawrence
|first=Eric
|publisher=[[MSDN]]
|date=31 January 2006
|accessdate=13 May 2009
}}</ref> 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.<ref>{{cite web
|url=https://tools.ietf.org/html/rfc2560
|title=Online Certificate Status Protocol – OCSP
|publisher=[[Internet Engineering Task Force]]
|date=June 1999
|author=Myers, M
|author2=Ankney, R |author3=Malpani, A |author4=Galperin, S |author5= Adams, C
|accessdate=13 May 2009
}}</ref>
 
===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.{{Citation needed|reason=This article is very informative and detailed right up until it pretty completely glosses over the details and differences here...|date=July 2013}}
 
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 [[cipher|cryptographic algorithms]] supported.
 
SSL does not prevent the entire site from being indexed using a [[web crawler]], and in some cases the [[Uniform resource identifier|URI]] of the encrypted resource can be inferred by knowing only the intercepted request/response size.<ref>{{cite web
|url=http://sysd.org/stas/node/220
|title=The Pirate Bay un-SSL
|last=Pusep
|first=Stanislaw
|date=31 July 2008
|accessdate=6 March 2009
}}</ref> This allows an attacker to have access to the [[plaintext]] (the publicly available static content), and the [[ciphertext|encrypted text]] (the encrypted version of the static content), permitting a [[Chosen-ciphertext attack|cryptographic attack]].
 
Because [[Secure Sockets Layer|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.<ref>[http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts Apache FAQ: Why can't I use SSL with name-based/non-IP-based virtual hosts?]</ref> This means that, in most cases, it is not feasible to use [[Virtual hosting#Name-based|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 do not support this extension. Support for SNI is available since [[Firefox]] 2, [[Opera (web browser)|Opera]] 8, Safari 2.1, Google Chrome 6, and [[Internet Explorer 7]] on [[Windows Vista]].<ref>{{cite web
|url=http://blogs.msdn.com/ie/archive/2005/10/22/483795.aspx
|title=Upcoming HTTPS Improvements in Internet Explorer 7 Beta 2
|last=Lawrence
|first=Eric
|publisher=[[Microsoft]]
|date=22 October 2005
|accessdate=12 May 2009
}}</ref><ref>[http://blog.ebrahim.org/2006/02/21/server-name-indication-sni/ Server Name Indication (SNI)]</ref><ref>{{cite web | url = https://bugzilla.mozilla.org/show_bug.cgi?id=116169 | title = Browser support for TLS server name indication | accessdate = 2010-12-15 | last = Pierre | first = Julien | format = 2001-12-19 | work = Bugzilla | publisher = Mozilla Foundation}}</ref>
 
From an architectural point of view:
 
# An SSL/TLS connection is 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 information or certificate to the application server, which needs to know who is going to be connected.
# 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.
# 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.
# 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]] called SSL stripping was presented at the Blackhat Conference 2009. This type of attack defeats the security provided by HTTPS by changing the <tt>https:</tt> link into an <tt>http:</tt> 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.<ref>{{cite web | url = http://www.thoughtcrime.org/software/sslstrip/index.html |title = sslstrip| accessdate = 2011-11-26}}</ref> This prompted the development of a countermeasure in HTTP called [[HTTP Strict Transport Security]].
 
In May 2010, a research paper by researchers from [[Microsoft Research]] and [[Indiana University Bloomington|Indiana University]] discovered that detailed sensitive user data can be inferred from side channels such as packet sizes. More specifically, the researchers found that an eavesdropper can infer the illnesses/medications/surgeries of the user, his/her family income and investment secrets, despite HTTPS protection in several high-profile, top-of-the-line web applications in healthcare, taxation, investment and web search.<ref>{{cite web|url=http://research.microsoft.com/pubs/119060/WebAppSideChannel-final.pdf|title=Side-Channel Leaks in Web Applications: a Reality Today, a Challenge Tomorrow|publisher=[[Institute of Electrical and Electronics Engineers|IEEE]] Symposium on Security & Privacy 2010|date=May 2010|author=Shuo Chen, Rui Wang, XiaoFeng Wang, and Kehuan Zhang}}</ref>
 
==History==
[[Netscape Communications]] created HTTPS in 1994 for its [[Netscape Navigator]] web browser.<ref>{{cite book
|url=http://books.google.com/books?id=FLvsis4_QhEC&pg=PA344
|title=Embedded software
|last=Walls
|first=Colin
|year=2005
|pages=344
|isbn = 0-7506-7954-9
|publisher = Newnes
}}</ref> Originally, HTTPS was used with the [[Secure Sockets Layer|SSL]] protocol. As SSL evolved into [[Transport Layer Security]] (TLS), the current version of HTTPS was formally specified by RFC 2818 in May 2000.
 
==See also==
* [[AAA protocol]]
* [[Bullrun (code name)]] — a secret anti-encryption program run by the U.S. [[National Security Agency]]
* [[Computer security]]
* [[curl-loader]]
* [[HTTPsec]]
* [[Opportunistic encryption]]
* [[Stunnel]]
* [[Moxie Marlinspike]]
 
==References==
{{Reflist|33em}}
 
==External links==
*[https://tools.ietf.org/html/rfc2818 RFC 2818: HTTP Over TLS]
*[http://www.greyhatspeaks.com/2013/10/mitm-against-https-sites.html Hacking HTTPS by man-in-the-middle attack]
*[https://tools.ietf.org/html/rfc5246 RFC 5246: The Transport Layer Security Protocol 1.2]
*[https://tools.ietf.org/html/draft-ietf-tls-ssl-version3-00 SSL 3.0 Specification] (IETF)
 
{{URI scheme}}
{{Web browsers}}
 
{{DEFAULTSORT:Http Secure}}
-->
 
[[Category:Hypertext Transfer Protocol]]
[[Category:Cryptographic protocols]]
[[Category:Secure communication]]
[[Category:URI schemes]]
Ստացված է «https://hy.wikipedia.org/wiki/HTTPS» էջից