text:
Editorials represent the institutional opinion of the Tampa Bay Times, which is why they are not signed. These are the members of the editorial board, which is charged with debating, analyzing and presenting those opinions to readers.
Nickens: This race is about Scott's record, not Obama's
Maxwell: A hard look at acting properly in public
Ruth: School lemons leave a sour and alarming taste
The best reason to make solar an issue: It will pay off
The Times welcomes letters from readers for publication. Because of space limitations, letters should be of reasonable length (250-300 words maximum, as a rule). Letters may be edited for clarity, taste and length. All letters must contain the writer's name, address and telephone number. (Addresses and telephone numbers will not be printed.) Click here to submit a letter.
The Opinion channel features Tampa Bay Times newspaper editorials, letters to the editor and columns.


text: Posteritati, named "the best place to be reminded that all film art isn't on-screen" by the Village Voice and voted one of SoHo's best independent shops by Time Out New York, is one of the world's premier dealers of vintage and contemporary movie art: "Any film poster fanatic will feel more than at home at Posteritati." As Vanity Fair puts it, Posteritati's Manhattan gallery is "home to more than 9,000 fine examples of American and international film-promotion."See seller's other items

subset: commoncrawl


text:
|Release Date: December 19, 1997
|Running Time: 197 mins.
|MPAA Rating: PG 13
|Box Office: $600,743,440.00
|Genre: Action, Adventure, Drama, Historical, Period, Romance
• Pregnant Kate Winslet banned from performing movie stunts
• 8 Fictional Characters Women Would Marry In A Heartbeat
• Kate Winlset lands 2,520th star on Hollywood Walk of Fame
• The Top 10 Greatest Movies From The 90s
• Leonardo DiCaprio credits Titanic role for control over his career
More News >>
Leonardo DiCaprio
Kate Winslet
Billy Zane
Kathy Bates
All Cast & Crew >>
Summary:After winning a trip on the RMS Titanic during a dockside card game, American Jack Dawson spots the society girl Rose DeWitt Bukater who is on her way to Philadelphia to marry her rich snob fiance Cal Hockley. Rose feels helplessly trapped by her situation and makes her way to the aft deck and thinks of suicide until she is rescued by Jack. Cal is ... Full Summary >>
Photo Gallery:
View All Pictures >>
Event Photos:
Video News:
Related Movies:
Life of Pi
Revolutionary Road
The Abyss
True Lies More Related Movies >>
Browse More Movies:


text:
Early Childhood Special Education (ECSE)
Program Overview
General Information
It is the policy of the State of Missouri that all children with disabilities, residing in the state are identified, located, and evaluated. School districts and other public agencies responsible for providing special education must offer a Free and Appropriate Public Education (FAPE) to children who have been identified as eligible under the eligibility criteria outlined in the Missouri State Plan for Special Education as early as a child's third birthdate. Special Education and related services for pre-school age is referred to as early childhood special education.
Parents of children who are three-to-five years old or approaching age three who suspect their child may have a developmental delay or handicapping condition that may affect them educationally, may contact their local school district to make a referral for evaluation to determine eligibility for special education services.
ECSE services are provided through Federal Funding under the Individuals with Disabilities Education Act as well as state general revenue funds.
Program Location
Early Childhood Special Education services are provided in all areas of the state. If a district's size or resources does not make it feasible to provide services to meet the unique needs of all students in their district through salaried personnel, they may choose to contract with private agencies, individuals, or other school districts to make available appropriate services.
Where possible and appropriate, services are provided in the environment where the child typically spends his/her day (community child care facilities, Head Start, Title I or school district preschool programs, etc.), but some children may require services that are provided in a group setting primarily designed for children with disabilities. Services may be provided to children on a one-on-one basis, in small groups, or in a classroom setting. Providers of special education and related services also provide consultation to assist general education teachers, paraprofessionals and caregivers in addressing the child's special education needs.
Eligibility Determination
Beginning with the 2001-2002 school year, school districts had the option of identifying a child as eligible under the category of Young Child with a Developmental Delay (YCDD) or under one of the other eligibility categories that have been historically used for children ages Kindergarten to 21. In order to be eligible under the YCDD category, the child's development must be at or below 1.5 standard deviations or equivalent levels, of the mean in any two areas of development, or at or below 2.0 standard deviations or equivalent levels in one area of development, and the child must need special education and related services. Areas of development that can be used to determine eligibility include physical, cognitive, communication, social/emotional or adaptive.


text:
1-10 of 32 properties for sale found
£1,550,000 Guide Price
Guide Price £1,550,000
7 bedroom country house for sale SUMMERFIELD HOUSE, KIRKBY LONSDALE, LA6 2HP
An architectural gem not to be missed More details ›
£875,000 Guide Price
Guide Price £875,000
5 bedroom detached house for sale Kirkby Lonsdale, Carnforth, Lancashire, LA6
A beautiful charming farmhouse set in 5 acres of landscaped gardens and grounds offering excellent five bedroom family accommodation full of period features and character. The property is conveniently located for the popular market town of Kirkby Lonsdale & M6 motorway. More details ›
4 bedroom detached house for sale Abbotsgate, Kirkby Lonsdale
We are pleased to offer for sale this 4 bedroomed detached property conveniently located within the town of Kirkby Lonsdale - having splendid views over the town, St Marys Church and Casterton Fells and beyond. The accommodation comprises of an entrance hall with cloakroom, formal dining room, ki... More details ›
4 bedroom property for sale New Road, Kirkby Lonsdale
We are delighted to offer for sale this substantial stone built Victorian town house located in the heart of Kirkby Lonsdale. The property offers stunning accommodation which is set over four floors and comprises of 3/4 bedrooms, two reception rooms, fully fitted modern kitchen, large cellar/wo... More details ›
4 bedroom detached house for sale Ruskins Drive, Kirkby Lonsdale
We are pleased to offer for sale this stunning 4 bedroomed detached property located in the heart of the market town of Kirkby Lonsdale. Having been completely refurbished by the present owners this stylish property now offers an open plan light and airy hall, sitting, dining kitchen room, utilit... More details ›
4 bedroom detached house for sale Green Lynn, Bentinck Drive, Kirkby Lonsdale, Cumbria, LA6 2DE
STAMP DUTY PAID!A substantial, detached, family home that has a light airy feel with extended accommodation including three first floor bedrooms with a stylish bathroom and a further studio bedroom en suite to the second floor.Green Lynn enjoys a ground floor with two generous reception rooms a... More details ›
4 bedroom town house for sale 7 Rowan Garth, Kirkby Lonsdale, Lancashire, LA6 2JR
A modern family town house offering extensive accommodation arranged over three floors and including four bedrooms and three bathrooms in a contemporary style with two balconies yet in the heart of the townThis appealing property has a light airy feel with generous room sizes and with some far re... More details ›
4 bedroom detached house for sale 5 Abbotsgate, Kirkby Lonsdale, Lancashire, LA6 2JS.
A spacious, modern, detached four bedroom (one en-suite) house providing ample space for family living. The property has a large integral double garage with additional parking and front and rear garden.Situated in a quiet cul de sac the property is ideally located, close to all the amenities of K... More details ›
£415,000 Offers in Region of
Offers in Region of £415,000
4 bedroom detached house for sale Robraine, Kirkby Lonsdale
We are pleased to offer for sale this spacious detached property set in a large plot enjoying views to Devils Bridge and beyond, offering an opportunity to create a stunning family home within the town. Having a large sitting/dining room, hallway, study, kitchen, utility and cloakroom and 4 bedro... More details ›
4 bedroom town house for sale 14 Bective Road, Kirkby Lonsdale, LA6 2BG
If Victorian grandeur and architecture are for you then look no further than this beautifully presented three storey town house with its generously proportioned four bedroom and two reception rooms. With its distinctive entrance and stonework the internal layout and period features are equally im... More details ›
Thank you.
Your information has been sent to 0 out of 6 agents who have property to sell in the area you specified.


text:
Commissioners, D.A. explain rules on private property improvements
by C.F. David
Assistant District Attorney Stan Manske, speaking for the Cimarron County Commissioners tried to explain the law on the illegality of county improvement of private property. The question, according to Manske, has arisen since county maintainers opened driveways for emergency personnel in the latter part of December.
The commissioners are prohibited from performing work on private property of any individual, Manske explained.
Regardless of that probation, when there is an emergency such as we had in December, it is proper to open roads for emergency personnel; but the authority is limited to such emergencies to public health and safety, Manske added.


text:
Load is a utility for Web application and SOAP-based Web services performance and scalability testing. It features a scripting language and a library of test objects for the creation of intelligent agents that drive the Web application or SOAP-based Web service. Running hundreds of agents concurrently shows how your software performs in production environments. Load is a Java application that runs on Linux, Solaris, NT, Win2000, and Macintosh. While Load continues to be maintained, the next generation is the TestMaker program.
Luxor is an open-source XML User Interface Language (XUL) toolkit in Java that lets you build UIs using XML and also includes an ultra light-weight, multi-threaded Web server, a portal engine, and a template engine. It is also Web Start-ready, as everything fits in a jar and requires no loose files.
ProviderTool Internet server administration program with email protection. The software is divided into a subcomponent Admin Tool, Customer Tool, and a Reseller Tool. Each subcomponent tool manages a separate zone that is setup for the specific needs of your administrator, end user, and reseller. If you have a Red Hat, SuSE, or Debian Internet or intranet server, you will be able to add, delete, and change settings and users with just a couple of clicks. ProviderTool is delivered with a separate Apache and PHP server environment. There is also an email protection tool included.
NeedLock allows users to easily define directories that they want to protect and visitors who are allowed to view them. The script supports full member control, admin levels, statistics, account expiration, action logs, easy configuration, member registration setup, announcements, and many other unique features.
Akeni Web Chat is an IM system designed for universal accessibility and ease of deployment. With its browser-based client, there is no need to install any client side software. It is also firewall friendly and can be used whenever you have access to a Web browser. The rich client supports chat, notification, and conferencing. It also allows your staff to provide real time sales information and technical support to your customer using a simple Web-based interface.


text:
Transport Layer Security
|This article's lead section may not adequately summarize key points of its contents. (March 2013)
|Internet protocol suite
|Application layer
|Transport layer
|Internet layer
|Link layer
Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL), are cryptographic protocols which are designed to provide communication security over the Internet.[1] They use X.509 certificates and hence asymmetric cryptography to assure the counterparty with whom they are communicating, and to exchange a symmetric key. This session key is then used to encrypt data flowing between the parties. This allows for data/message confidentiality, and message authentication codes for message integrity and as a by-product, message authentication. Several versions of the protocols are in widespread use in applications such as web browsing, electronic mail, Internet faxing, instant messaging, and voice-over-IP (VoIP). An important property in this context is forward secrecy, so the short term session key cannot be derived from the long term asymmetric secret key.[2]
As a consequence of choosing X.509 certificates, certificate authorities and a public key infrastructure are necessary to verify the relation between a certificate and its owner, as well as to generate, sign, and administer the validity of certificates. While this can be more beneficial than verifying the identities via a web of trust, the 2013 mass surveillance disclosures made it more widely known that certificate authorities are a weak point from a security standpoint, allowing man-in-the-middle attacks (MITM).[3][4]
In the Internet Protocol Suite, TLS and SSL encrypt the data of network connections in the application layer. In OSI model equivalences, TLS/SSL is initialized at layer 5 (session layer) and works at layer 6 (the presentation layer).[citation needed] The session layer has a handshake using an asymmetric cipher in order to establish cipher settings and a shared key for that session; then the presentation layer encrypts the rest of the communication using a symmetric cipher and that session key. In both models, TLS and SSL work on behalf of the underlying transport layer, whose segments carry encrypted data.
TLS is an Internet Engineering Task Force (IETF) standards track protocol, first defined in 1999 and last updated in RFC 5246 (August 2008) and RFC 6176 (March 2011). It is based on the earlier SSL specifications (1994, 1995, 1996) developed by Netscape Communications[5] for adding the HTTPS protocol to their Navigator web browser.
- 1 Description
- 2 History and development
- 3 Applications and adoption
- 4 Security
- 4.4 Attacks against TLS/SSL
- 4.5 Forward secrecy
- 4.6 Avoiding Triple-DES CBC
- 4.7 Dealing with MITM attacks
- 5 Protocol details
- 6 Support for name-based virtual servers
- 7 Standards
- 8 See also
- 9 References
- 10 Further reading
- 11 External links
The TLS protocol allows client-server applications to communicate across a network in a way designed to prevent eavesdropping and tampering.
Since protocols can operate either with or without TLS (or SSL), it is necessary for the client to indicate to the server the setup of a TLS connection. There are two main ways of achieving this. One option is to use a different port number for TLS connections (for example port 443 for HTTPS). The other is for the client to request that the server switch the connection to TLS using a protocol-specific mechanism (for example STARTTLS for mail and news protocols).
Once the client and server have agreed to use TLS, they negotiate a stateful connection by using a handshaking procedure.[6] During this handshake, the client and server agree on various parameters used to establish the connection's security:
- The client sends the server the client's SSL version number, cipher settings, session-specific data, and other information that the server needs to communicate with the client using SSL.
- The server sends the client the server's SSL version number, cipher settings, session-specific data, and other information that the client needs to communicate with the server over SSL. The server also sends its own certificate, and if the client is requesting a server resource that requires client authentication, the server requests the client's certificate.
- The client uses the information sent by the server to authenticate the server—e.g., in the case of a web browser connecting to a web server, the browser checks whether the received certificate's subject name actually matches the name of the server being contacted, whether the issuer of the certificate is a trusted certificate authority, whether the certificate has expired, and, ideally, whether the certificate has been revoked.[7] If the server cannot be authenticated, the user is warned of the problem and informed that an encrypted and authenticated connection cannot be established. If the server can be successfully authenticated, the client proceeds to the next step.
- Using all data generated in the handshake thus far, the client (with the cooperation of the server, depending on the cipher in use) creates the pre-master secret for the session, encrypts it with the server's public key (obtained from the server's certificate, sent in step 2), and then sends the encrypted pre-master secret to the server.
- If the server has requested client authentication (an optional step in the handshake), the client also signs another piece of data that is unique to this handshake and known by both the client and server. In this case, the client sends both the signed data and the client's own certificate to the server along with the encrypted pre-master secret.
- If the server has requested client authentication, the server attempts to authenticate the client. If the client cannot be authenticated, the session ends. If the client can be successfully authenticated, the server uses its private key to decrypt the pre-master secret, and then performs a series of steps (which the client also performs, starting from the same pre-master secret) to generate the master secret.
- Both the client and the server use the master secret to generate the session keys, which are symmetric keys used to encrypt and decrypt information exchanged during the SSL session and to verify its integrity (that is, to detect any changes in the data between the time it was sent and the time it is received over the SSL connection).
- The client sends a message to the server informing it that future messages from the client will be encrypted with the session key. It then sends a separate (encrypted) message indicating that the client portion of the handshake is finished.
- The server sends a message to the client informing it that future messages from the server will be encrypted with the session key. It then sends a separate (encrypted) message indicating that the server portion of the handshake is finished.
The SSL handshake is now complete and the session begins. The client and the server use the session keys to encrypt and decrypt the data they send to each other and to validate its integrity.
This is the normal operation condition of the secure channel. At any time, due to internal or external stimulus (either automation or user intervention), either side may renegotiate the connection, in which case, the process repeats itself.[8]
This concludes the handshake and begins the secured connection, which is encrypted and decrypted with the key material until the connection closes.
If any one of the above steps fails, the TLS handshake fails and the connection is not created.
In step 3, the client must check a chain of "signatures" from a "root of trust" built into, or added to, the client. The client must also check that none of these have been revoked; this is not often implemented correctly,[citation needed] but is a requirement of any public-key authentication system. If the particular signer beginning this server's chain is trusted, and all signatures in the chain remain trusted, then the Certificate (thus the server) is trusted.
History and development[edit]
Secure Network Programming API[edit]
Early research efforts towards transport layer security included the Secure Network Programming (SNP) application programming interface (API), which in 1993 explored the approach of having a secure transport layer API closely resembling Berkeley sockets, to facilitate retrofitting preexisting network applications with security measures.[9]
SSL 1.0, 2.0 and 3.0[edit]
The SSL protocol was originally developed by Netscape.[10] Version 1.0 was never publicly released; version 2.0 was released in February 1995 but "contained a number of security flaws which ultimately led to the design of SSL version 3.0."[11] SSL version 3.0, released in 1996, was a complete redesign of the protocol produced by Paul Kocher working with Netscape engineers Phil Karlton and Alan Freier. Newer versions of SSL/TLS are based on SSL 3.0. The 1996 draft of SSL 3.0 was published by IETF as a historical document in RFC 6101.
The basic algorithm was written by Dr. Taher Elgamal. As the Chief Scientist of Netscape, Taher was recognized as the "inventor of SSL".[citation needed]
TLS 1.0[edit]
TLS 1.0 was first defined in RFC 2246 in January 1999 as an upgrade of SSL Version 3.0. As stated in the RFC, "the differences between this protocol and SSL 3.0 are not dramatic, but they are significant to preclude interoperability between TLS 1.0 and SSL 3.0." TLS 1.0 does include a means by which a TLS implementation can downgrade the connection to SSL 3.0, thus weakening security.
TLS 1.1[edit]
TLS 1.1 was defined in RFC 4346 in April 2006.[12] It is an update from TLS version 1.0. Significant differences in this version include:
- Added protection against Cipher block chaining (CBC) attacks.
- The implicit Initialization Vector (IV) was replaced with an explicit IV.
- Change in handling of padding errors.
- Support for IANA registration of parameters.
TLS 1.2[edit]
TLS 1.2 was defined in RFC 5246 in August 2008. It is based on the earlier TLS 1.1 specification. Major differences include:
- The MD5-SHA-1 combination in the pseudorandom function (PRF) was replaced with SHA-256, with an option to use cipher suite specified PRFs.
- The MD5-SHA-1 combination in the Finished message hash was replaced with SHA-256, with an option to use cipher suite specific hash algorithms. However the size of the hash in the finished message is still truncated to 96-bits.
- The MD5-SHA-1 combination in the digitally signed element was replaced with a single hash negotiated during handshake, defaults to SHA-1.
- Enhancement in the client's and server's ability to specify which hash and signature algorithms they will accept.
- Expansion of support for authenticated encryption ciphers, used mainly for Galois/Counter Mode (GCM) and CCM mode of Advanced Encryption Standard encryption.
- TLS Extensions definition and Advanced Encryption Standard cipher suites were added.
All TLS versions were further refined in RFC 6176 in March 2011 removing their backward compatibility with SSL such that TLS sessions will never negotiate the use of Secure Sockets Layer (SSL) version 2.0.
Applications and adoption[edit]
In applications design, TLS is usually implemented on top of any of the Transport Layer protocols, encapsulating the application-specific protocols such as HTTP, FTP, SMTP, NNTP and XMPP. Historically it has been used primarily with reliable transport protocols such as the Transmission Control Protocol (TCP). However, it has also been implemented with datagram-oriented transport protocols, such as the User Datagram Protocol (UDP) and the Datagram Congestion Control Protocol (DCCP), usage which has been standardized independently using the term Datagram Transport Layer Security (DTLS).
A prominent use of TLS is for securing World Wide Web traffic between the website and the browser carried by HTTP to form HTTPS. Notable applications are electronic commerce and asset management.
|23.0% (−0.7%)
|99.3% (−0.1%)
|Depends on cipher[n 1] and client mitigations[n 2]
|97.7% (±0.0%)
|Depends on cipher[n 1] and client mitigations[n 2]
|29.6% (+2.0%)
|Depends on cipher[n 1] and client mitigations[n 2]
|32.3% (+2.1%)
|Depends on cipher[n 1] and client mitigations[n 2]
- Notes
Key exchange or key agreement[edit]
Before a client and server can begin to exchange information protected by TLS, they must securely exchange or agree upon an encryption key and a cipher to use when encrypting data (see Cipher). Among the methods used for key exchange/agreement are: public and private keys generated with RSA (denoted TLS_RSA in the TLS handshake protocol), Diffie-Hellman (denoted TLS_DH in the TLS handshake protocol), ephemeral Diffie-Hellman (denoted TLS_DHE in the handshake protocol), Elliptic Curve Diffie-Hellman (denoted TLS_ECDH), ephemeral Elliptic Curve Diffie-Hellman (TLS_ECDHE), anonymous Diffie-Hellman (TLS_DH_anon),[15] and PSK (TLS_PSK).[16]
The TLS_DH_anon key agreement method does not authenticate the server or the user and hence is rarely used. Only TLS_DHE and TLS_ECDHE provide forward secrecy.
Public key certificates used during exchange/agreement also vary in the size of the public/private encryption keys used during the exchange and hence the robustness of the security provided. In July 2013, Google announced that it would no longer use 1024 bit public keys and would switch instead to 2048 bit keys to increase the security of the TLS encryption it provides to its users.[17]
|Protocol version
[note 1][note 2][note 3]
[note 1][note 3]
[note 1]
[note 1]
|AES CBC[note 4]
|AES GCM[18][note 5]
|AES CCM[19][note 5]
|Camellia CBC[20][note 4]
|Camellia GCM[21][note 5]
|SEED CBC[22][note 4]
|ChaCha20+Poly1305[23][note 5]
|IDEA CBC[note 4][note 6]
|Triple DES CBC[note 4][note 7]
|DES CBC[note 4][note 6]
|RC2 CBC[note 4][note 6]
|RC4[note 8]
- Notes
- ^ a b c d RFC 5746 must be implemented in order to fix a renegotiation flaw that would otherwise break this protocol.
- ^ If libraries implement fixes listed in RFC 5746, this will violate the SSL 3.0 specification, which the IETF cannot change unlike TLS. Fortunately, most current libraries implement the fix and disregard the violation that this causes.
- ^ a b the BEAST attack breaks all block ciphers (CBC ciphers) used in SSL 3.0 and TLS 1.0 unless mitigated by the client. As of March 2014[update], Apple has turned on this mitigation by default only for Safari 7 for Mac OS X 10.9 and for iOS 7, resulting in for Windows, for Mac OS X 10.8 or earlier, and for iOS 6 or earlier still being theoretically vulnerable to the BEAST attack on those platforms – see #Web browsers
- ^ a b c d e f g CBC ciphers can be attacked with the Lucky 13 attack if the library is not written carefully to eliminate timing side channels.
- ^ a b c d AEAD ciphers (such as GCM and CCM) can be used in only TLS 1.2.
- ^ a b c IDEA, DES, and RC2 CBC have been removed from TLS 1.2.
- ^ Triple DES provides only 108 or 112 bits of security, which is below the recommended minimum of 128 bits.[24]
- ^ the RC4 attacks weaken or break RC4 used in SSL/TLS
Web browsers[edit]
As of February 2014[update], the latest version of all major web browsers support SSL 3.0, TLS 1.0, 1.1, and 1.2 enabled by default. However, Mozilla Firefox ESR 24 supports TLS 1.1 and 1.2 but disabled by default, and Internet Explorer for Windows Vista or older and Safari for Mac OS X 10.8 or earlier, for iOS 6 or earlier, and for Windows support only SSL 3.0 and TLS 1.0.
[notes 1]
|Google Chrome
[notes 2]
[notes 3]
Mac OS X,
Windows (XP, Vista, 7, 8)
|Not latest
|Not latest
|Mozilla Firefox
[notes 3]
[notes 4]
Firefox OS,
Mac OS X,
Windows (XP, Vista, 7, 8)
|Not latest
|Yes, disabled by default[28][37]
|Not latest
|Yes, disabled by default[28][37]
|Yes, disabled by default[30][38]
(latest ESR)
(latest non-ESR)
[notes 5]
|Windows (98, 2000, ME, XP)
|Yes, disabled by default
|Not latest
|Windows XP
(latest for Windows XP)
|Windows Vista
(latest for Windows Vista)
|Windows 7
|Yes, disabled by default
|Yes, disabled by default
|Not latest
|Windows 8
|Yes, disabled by default
|Yes, disabled by default
(latest for Windows 8)
|Windows 7, 8.1
(latest for Windows 7, 8.1)
[notes 6]
[notes 7]
|Android,[citation needed]
iOS,[citation needed]
Mac OS X,
|Not latest
|Yes, disabled by default[47]
|Not latest
|Yes, disabled by default
|Yes, disabled by default
(latest for Linux)
|Not latest
(latest for Windows, OS X)
[notes 8]
|Mac OS X −10.8[notes 9]
|No[notes 9]
(latest for OS X −10.8)
|Mac OS X 10.9 [notes 10]
(latest for OS X 10.9)
|iPhone OS 1–3, iOS 4.0[notes 11][notes 9]
|Not latest
|iOS 5–6[notes 11][notes 9]
|No[notes 9]
(latest for iOS 5–6)
|iOS 7[notes 11][notes 9]
(Latest for iOS 7)
|No[notes 12]
(latest for Windows)
- Notes
- ^ Does the current browser have mitigations or is not vulnerable for all the known protocol and cipher attacks listed in this page (BEAST, CRIME, BREACH, Lucky Thirteen). Note actual security depends on other factors such as negotiated cipher (such as RC4), encryption strength etc. Non-current browsers will have unfixed security issues so are not considered.
- ^ Google Chrome (and Chromium) supports TLS 1.0, and TLS 1.1 from version 22 (it was added, then dropped from version 21). TLS 1.2 support has been added, then dropped from Chrome 29.[25][26][27]
- ^ a b Uses the TLS implementation provided by NSS. NSS 3.14 supports TLS 1.0 and 1.1 but not 1.2.[28][29] As of 2 July 2013[update], TLS 1.2 has been implemented in NSS 3.15.1.[30][31]
- ^ As of Firefox 19, Firefox supports only TLS 1.0 despite the bundled NSS supporting TLS 1.1. Since Firefox 23, TLS 1.1 can be enabled, but was not enabled by default due to issues. Firefox 24 has TLS 1.2 support disabled by default. TLS 1.1 and TLS 1.2 have been enabled by default in Firefox 27 release.
- ^ IE uses the TLS implementation of the Microsoft Windows operating system provided by the SChannel security support provider. TLS 1.1 and 1.2 are disabled by default until IE11.[40][41]
- ^ Opera 10 added support for TLS 1.2 as of Presto 2.2. Previous support was for TLS 1.0 and 1.1.[44] TLS 1.1 and 1.2 are disabled by default (except for version 9[45] that enabled TLS 1.1 by default).
- ^ TLS support of Opera 14 and above is same as that of Chrome, because Opera has migrated to Chromium backend.
- ^ Safari uses the operating system implementation on Mac OS X, Windows (XP, Vista, 7)[50] with unknown version,[51] Safari 5 is the last version available for Windows. OS X 10.8 on have SecureTransport support for TLS 1.1 and 1.2[52] Qualys SSL report simulates Safari 5.1.9 connecting with TLS 1.0 not 1.1 or 1.2[53]
- ^ a b c d e f As of September 2013[update], Apple has implemented BEAST mitigation in OS X 10.8 (Mountain Lion), but it is not turned on by default resulting in Safari still being theoretically vulnerable to the BEAST attack on that platform[56][55]
- ^ Simulated connection by Qualys.[54]
- ^ a b c Mobile Safari and third-party software utilizing the system UIWebView library use the iOS operating system implementation, which supports TLS 1.2 as of iOS 5.0.[57][58][59]
- ^ Development and support of Safari for Windows has been discontinued.
Most SSL and TLS programming libraries are free and open source software.
- Botan, a BSD-licensed cryptographic library written in C++.
- Microsoft Windows includes an implementation of SSL and TLS as part of its Secure Channel package.
- OS X includes an implementation of SSL and TLS as part of its Secure Transport package.
- Delphi programmers may use a library called Indy which utilizes OpenSSL.
- OpenSSL: a free implementation (BSD license with some extensions)
- GnuTLS: a free implementation (LGPL licensed)
- cryptlib: a portable open source cryptography library (includes TLS/SSL implementation)
- JSSE: a Java implementation included in the Java Runtime Environment supports TLS 1.1 and 1.2 from Java 7, although is disabled by default for client, and enabled by default for server.[61] Java 8 supports TLS 1.1 and 1.2 enabled on both the client and server by default.[62]
- MatrixSSL: a dual licensed implementation
- Network Security Services (NSS): FIPS 140 validated open source library
- PolarSSL: A tiny SSL library implementation for embedded devices that is designed for ease of use
- CyaSSL: Embedded SSL/TLS Library with a strong focus on speed and size.
A paper presented at the 2012 ACM conference on computer and communications security[63] showed that few applications used some of these SSL libraries incorrectly, leading to vulnerabilities. According to the authors
"the root cause of most of these vulnerabilities is the terrible design of the APIs to the underlying SSL libraries. Instead of expressing high-level security properties of network tunnels such as confidentiality and authentication, these APIs expose low-level details of the SSL protocol to application developers. As a consequence, developers often use SSL APIs incorrectly, misinterpreting and misunderstanding their manifold parameters, options, side effects, and return values."
Other uses[edit]
The Simple Mail Transfer Protocol (SMTP) can also be protected by TLS. These applications use public key certificates to verify the identity of endpoints.
TLS can also be used to tunnel an entire network stack to create a VPN, as is the case with OpenVPN and OpenConnect. Many vendors now marry TLS's encryption and authentication capabilities with authorization. There has also been substantial development since the late 1990s in creating client technology outside of the browser to enable support for client/server applications. When compared against traditional IPsec VPN technologies, TLS has some inherent advantages in firewall and NAT traversal that make it easier to administer for large remote-access populations.
TLS is also a standard method to protect Session Initiation Protocol (SIP) application signaling. TLS can be used to provide authentication and encryption of the SIP signaling associated with VoIP and other SIP-based applications.[citation needed]
SSL 2.0[edit]
SSL 2.0 is flawed in a variety of ways:[64]
- Identical cryptographic keys are used for message authentication and encryption.
- SSL 2.0 has a weak MAC construction that uses the MD5 hash function with a secret prefix, making it vulnerable to length extension attacks.
- SSL 2.0 does not have any protection for the handshake, meaning a man-in-the-middle downgrade attack can go undetected.
- SSL 2.0 uses the TCP connection close to indicate the end of data. This means that truncation attacks are possible: the attacker simply forges a TCP FIN, leaving the recipient unaware of an illegitimate end of data message (SSL 3.0 fixes this problem by having an explicit closure alert).
- SSL 2.0 assumes a single service and a fixed domain certificate, which clashes with the standard feature of virtual hosting in Web servers. This means that most websites are practically impaired from using SSL.
SSL 2.0 is disabled by default, beginning with Internet Explorer 7,[65] Mozilla Firefox 2,[66] Opera 9.5,[67] and Safari. After it sends a TLS "ClientHello", if Mozilla Firefox finds that the server is unable to complete the handshake, it will attempt to fall back to using SSL 3.0 with an SSL 3.0 "ClientHello" in SSL 2.0 format to maximize the likelihood of successfully handshaking with older servers.[68] Support for SSL 2.0 (and weak 40-bit and 56-bit ciphers) has been removed completely from Opera as of version 10.[69][70]
SSL 3.0[edit]
SSL 3.0 improved upon SSL 2.0 by adding SHA-1–based ciphers and support for certificate authentication.
From a security standpoint, SSL 3.0 should be considered less desirable than TLS 1.0. The SSL 3.0 cipher suites have a weaker key derivation process; half of the master key that is established is fully dependent on the MD5 hash function, which is not resistant to collisions and is, therefore, not considered secure. Under TLS 1.0, the master key that is established depends on both MD5 and SHA-1 so its derivation process is not currently considered weak. It is for this reason that SSL 3.0 implementations cannot be validated under FIPS 140-2.[71]
TLS has a variety of security measures:
- Protection against a downgrade of the protocol to a previous (less secure) version or a weaker cipher suite.
- Numbering subsequent Application records with a sequence number and using this sequence number in the message authentication codes (MACs).
- Using a message digest enhanced with a key (so only a key-holder can check the MAC). The HMAC construction used by most TLS cipher suites is specified in RFC 2104 (SSL 3.0 used a different hash-based MAC).
- The message that ends the handshake ("Finished") sends a hash of all the exchanged handshake messages seen by both parties.
- The pseudorandom function splits the input data in half and processes each one with a different hashing algorithm (MD5 and SHA-1), then XORs them together to create the MAC. This provides protection even if one of these algorithms is found to be vulnerable.
Attacks against TLS/SSL[edit]
Significant attacks against TLS/SSL are listed below:
Renegotiation attack[edit]
A vulnerability of the renegotiation procedure was discovered in August 2009 that can lead to plaintext injection attacks against SSL 3.0 and all current versions of TLS. For example, it allows an attacker who can hijack an https connection to splice their own requests into the beginning of the conversation the client has with the web server. The attacker can't actually decrypt the client-server communication, so it is different from a typical man-in-the-middle attack. A short-term fix is for web servers to stop allowing renegotiation, which typically will not require other changes unless client certificate authentication is used. To fix the vulnerability, a renegotiation indication extension was proposed for TLS. It will require the client and server to include and verify information about previous handshakes in any renegotiation handshakes.[72] This extension has become a proposed standard and has been assigned the number RFC 5746. The RFC has been implemented by several libraries.[73][74][75]
Version rollback attacks[edit]
Modifications to the original protocols, like False Start[76] (adopted and enabled by Google Chrome[77]) or Snap Start, have been reported to introduce limited TLS protocol version rollback attacks[78] or to allow modifications to the cipher suite list sent by the client to the server (an attacker may be able to influence the cipher suite selection in an attempt to downgrade the cipher suite strength, to use either a weaker symmetric encryption algorithm or a weaker key exchange[79]). It has been shown in the Association for Computing Machinery (ACM) conference on computer and communications security that the False Start extension is at risk as in certain circumstances it could allow an attacker to recover the encryption keys offline and access the encrypted data.[80]
BEAST attack[edit]
On September 23, 2011 researchers Thai Duong and Juliano Rizzo demonstrated a proof of concept called BEAST (Browser Exploit Against SSL/TLS)[81] using a Java applet to violate same origin policy constraints, for a long-known cipher block chaining (CBC) vulnerability in TLS 1.0.[82][83] Practical exploits had not been previously demonstrated for this vulnerability, which was originally discovered by Phillip Rogaway[84] in 2002. The vulnerability of the attack had been fixed with TLS 1.1 in 2006, but TLS 1.1 had not seen wide adoption prior to this attack demonstration.
Mozilla updated the development versions of their NSS libraries to mitigate BEAST-like attacks. NSS is used by Mozilla Firefox and Google Chrome to implement SSL. Some web servers that have a broken implementation of the SSL specification may stop working as a result.[85]
Microsoft released Security Bulletin MS12-006 on January 10, 2012, which fixed the BEAST vulnerability by changing the way that the Windows Secure Channel (SChannel) component transmits encrypted network packets.[86]
Users of Windows 7, Windows 8 and Windows Server 2008 R2 can enable use of TLS 1.1 and 1.2, but this workaround will fail if it is not supported by the other end of the connection and will result in a fall-back to TLS 1.0.
CRIME and BREACH attacks[edit]
The authors of the BEAST attack are also the creators of the later CRIME attack, which can allow an attacker to recover the content of web cookies when data compression is used along with TLS.[87][88] When used to recover the content of secret authentication cookies, it allows an attacker to perform session hijacking on an authenticated web session.
While the CRIME attack was presented as a general attack that could work effectively against a large number of protocols, including but not limited to TLS, and application-layer protocols such as SPDY or HTTP, only exploits against TLS and SPDY were demonstrated and largely mitigated in browsers and servers. The CRIME exploit against HTTP compression has not been mitigated at all, even though the authors of CRIME have warned that this vulnerability might be even more widespread than SPDY and TLS compression combined. In 2013 a new instance of the CRIME attack against HTTP compression, dubbed BREACH, was announced. Built based on the CRIME attack a BREACH attack can extract login tokens, email addresses or other sensitive information from TLS encrypted web traffic in as little as 30 seconds (depending on the number of bytes to be extracted), provided the attacker tricks the victim into visiting a malicious web link or is able to inject content into valid pages the user is visiting (ex: a wireless network under the control of the attacker).[89] All versions of TLS and SSL are at risk from BREACH regardless of the encryption algorithm or cipher used.[90] Unlike previous instances of CRIME, which can be successfully defended against by turning off TLS compression or SPDY header compression, BREACH exploits HTTP compression which cannot realistically be turned off, as virtually all web servers rely upon it to improve data transmission speeds for users.[89] This is a known limitation of TLS as it is susceptible to chosen-plaintext attack against the application-layer data it was meant to protect.
Padding attacks[edit]
Earlier TLS versions were vulnerable against the padding oracle attack discovered in 2002. A novel variant, called the Lucky Thirteen attack, was published in 2013. As of February 2013, TLS implementors were still working on developing fixes to protect against this form of attack.
RC4 attacks[edit]
In spite of existing attacks on RC4 that break it, the cipher suites based on RC4 in SSL and TLS were considered secure because of how the cipher was used in these protocols. In 2011 the RC4 suite was actually recommended as a work around for the BEAST attack.[91] In 2013 a vulnerability was discovered in RC4 suggesting it was not a good workaround for BEAST.[14] An attack scenario was proposed by AlFardan, Bernstein, Paterson, Poettering and Schuldt that used newly discovered statistical biases in the RC4 key table[92] to recover parts of the plaintext with a large number of TLS encryptions.[93][94] A double-byte bias attack on RC4 in TLS and SSL that requires 13 × 220 encryptions to break RC4 was unveiled on 8 July 2013, and it was described as "feasible" in the accompanying presentation at the 22nd USENIX Security Symposium on August 15, 2013.[95][96]
However, many modern browsers have been designed to defeat BEAST attacks (except Safari for Mac OS X 10.8 or earlier, for iOS 6 or earlier, and for Windows; see #Web browsers). As a result, RC4 is not the best choice for TLS 1.0 anymore. The CBC ciphers which were affected by the BEAST attack in the past are becoming a more popular choice for protection.[24]
Microsoft recommends disabling RC4 where possible.[97][98]
Truncation attack[edit]
A TLS truncation attack blocks a victim's account logout requests so that the user unknowingly remains logged into a web service. When the request to sign out is sent, the attacker injects an unencrypted TCP FIN message (no more data from sender) to close the connection. The server therefore doesn't receive the logout request and is unaware of the abnormal termination.[99]
Published in July 2013,[100] the attack causes web services such as Gmail and Hotmail to display a page that informs the user that they have successfully signed-out, while ensuring that the user's browser maintains authorization with the service, allowing an attacker with subsequent access to the browser to access and take over control of the user's logged-in account. The attack does not rely on installing malware on the victim's computer; attackers need only place themselves between the victim and the web server (e.g., by setting up a rogue wireless hotspot).[99]
Survey of websites[edit]
As of April 2014[update], Trustworthy Internet Movement estimate the ratio of websites that are vulnerable to TLS attacks.[13]
|Renegotiation attack
|5.7% (−0.3%)
support insecure renegotiation
|2.3% (+0.9%)
support both
|84.7% (−0.4%)
support secure renegotiation
|7.3% (−0.2%)
not support
|RC4 attacks
|33.4% (−2.3%)
support RC4 suites used with modern browsers
|58.0% (+2.0%)
support some RC4 suites
|8.7% (+0.3%)
not support
|BEAST attack
|71.8% (+2.2%)
|CRIME attack
|12.9% (−0.7%)
Heartbleed Bug[edit]
The Heartbleed bug is a serious vulnerability in the popular OpenSSL cryptographic software library. This weakness allows stealing the information protected, under normal conditions, by the SSL/TLS encryption used to secure the Internet. SSL/TLS provides communication security and privacy over the Internet for applications such as web, email, instant messaging (IM) and some virtual private networks (VPNs).
The Heartbleed bug allows anyone on the Internet to read the memory of the systems protected by the vulnerable versions of the OpenSSL software. This compromises the secret keys used to identify the service providers and to encrypt the traffic, the names and passwords of the users and the actual content. This allows attackers to eavesdrop on communications, steal data directly from the services and users and to impersonate services and users.
Forward secrecy[edit]
Forward secrecy is a property of cryptographic systems which ensures that a session key derived from a set of public and private keys will not be compromised if one of the private keys is compromised in the future.[101] An implementation of TLS can provide forward secrecy by requiring the use of ephemeral Diffie-Hellman key exchange to establish session keys, and some notable TLS implementations do so exclusively: e.g., Gmail and other Google HTTPS services that use OpenSSL.[102] However, many web servers providing TLS are not configured to implement such restrictions.[103][104] Without forward secrecy, if the server's private key is compromised, not only will all future TLS-encrypted sessions using that server certificate be compromised, but also any past sessions that used it as well (provided of course that these past sessions were intercepted and stored at the time of transmission).[105] In practice, unless a web service uses Diffie-Hellman key exchange to implement forward secrecy, all of the encrypted web traffic to and from that service can be decrypted by a third party if it obtains the server's master (private) key; e.g., by means of a court order.[106]
Even where Diffie-Hellman key exchange is implemented, server-side session management mechanisms can impact forward secrecy. The use of TLS session tickets (a TLS extension) causes the session to be protected by AES128-CBC-SHA256 regardless of any other negotiated TLS parameters, including forward secrecy ciphersuites, and the long-lived TLS session ticket keys defeat the attempt to implement forward secrecy.[107][108][109]
Since late 2011, Google has provided forward secrecy with TLS by default to users of its Gmail service, along with Google Docs and encrypted search among other services.[110] Since November 2013, Twitter has provided forward secrecy with TLS to users of its service.[111] As of April 2014[update], 6.3% of TLS-enabled websites are configured to use cipher suites that provide forward secrecy to web browsers.[13]
Avoiding Triple-DES CBC[edit]
Some experts recommend avoiding Triple-DES CBC. Since the last supported ciphers developed to support Internet Explorer on Windows XP are RC4 and Triple-DES, this makes it difficult to support SSL for IE on XP.[24]
Dealing with MITM attacks[edit]
Certificate pinning[edit]
One way to detect and block many kinds of MITM attacks is "certificate pinning", sometimes called "SSL pinning".[112] A client that does certificate pinning adds an extra step to the normal TLS protocol or SSL protocol: After obtaining the server's certificate in the standard way, the client checks the server's certificate against trusted validation data. Typically the trusted validation data is bundled with the app, in the form of a trusted copy of that certificate, or a trusted hash or fingerprint of that certificate or the certificate's public key. For example, Chromium and Google Chrome include validation data for the *.google.com certificate that detected fraudulent certificates in 2011.
In other systems the client hopes that the first time it obtains a server's certificate it is trustworthy and stores it; during later sessions with that server, the client checks the server's certificate against the stored certificate to guard against later MITM attacks.
Perspectives Project[edit]
The Perspectives Project[113] operates network notaries that clients can use to detect if a site's certificate has changed. By their nature, man-in-the-middle attacks place the attacker between the destination and a single specific target. As such, Perspectives would warn the target that the certificate delivered to the web browser does not match the certificate seen from other perspectives - the perspectives of other users in different times and places. Use of network notaries from a multitude of perspectives makes it possible for a target to detect an attack even if a certificate appears to be completely valid.
Protocol details[edit]
The TLS protocol exchanges records—which encapsulate the data to be exchanged in a specific format (see below). Each record can be compressed, padded, appended with a message authentication code (MAC), or encrypted, all depending on the state of the connection. Each record has a content type field that designates the type of data encapsulated, a length field and a TLS version field. The data encapsulated may be control or procedural messages of the TLS itself, or simply the application data needed to be transferred by TLS. The specifications (cipher suite, keys etc.) required to exchange application data by TLS, are agreed upon in the "TLS handshake" between the client requesting the data and the server responding to requests. The protocol therefore defines both the structure of payloads transferred in TLS and the procedure to establish and monitor the transfer.
TLS handshake[edit]
When the connection starts, the record encapsulates a "control" protocol—the handshake messaging protocol (content type 22). This protocol is used to exchange all the information required by both sides for the exchange of the actual application data by TLS. It defines the messages formatting or containing this information and the order of their exchange. These may vary according to the demands of the client and server—i.e., there are several possible procedures to set up the connection. This initial exchange results in a successful TLS connection (both parties ready to transfer application data with TLS) or an alert message (as specified below).
Basic TLS handshake[edit]
A simple connection example follows, illustrating a handshake where the server (but not the client) is authenticated by its certificate:
- Negotiation phase:
- A client sends a ClientHello message specifying the highest TLS protocol version it supports, a random number, a list of suggested CipherSuites and suggested compression methods. If the client is attempting to perform a resumed handshake, it may send a session ID.
- The server responds with a ServerHello message, containing the chosen protocol version, a random number, CipherSuite and compression method from the choices offered by the client. To confirm or allow resumed handshakes the server may send a session ID. The chosen protocol version should be the highest that both the client and server support. For example, if the client supports TLS1.1 and the server supports TLS1.2, TLS1.1 should be selected; SSL 3.0 should not be selected.
- The server sends its Certificate message (depending on the selected cipher suite, this may be omitted by the server).[114]
- The server sends a ServerHelloDone message, indicating it is done with handshake negotiation.
- The client responds with a ClientKeyExchange message, which may contain a PreMasterSecret, public key, or nothing. (Again, this depends on the selected cipher.) This PreMasterSecret is encrypted using the public key of the server certificate.
- The client and server then use the random numbers and PreMasterSecret to compute a common secret, called the "master secret". All other key data for this connection is derived from this master secret (and the client- and server-generated random values), which is passed through a carefully designed pseudorandom function.
- The client now sends a ChangeCipherSpec record, essentially telling the server, "Everything I tell you from now on will be authenticated (and encrypted if encryption parameters were present in the server certificate)." The ChangeCipherSpec is itself a record-level protocol with content type of 20.
- Finally, the client sends an authenticated and encrypted Finished message, containing a hash and MAC over the previous handshake messages.
- The server will attempt to decrypt the client's Finished message and verify the hash and MAC. If the decryption or verification fails, the handshake is considered to have failed and the connection should be torn down.
- Finally, the server sends a ChangeCipherSpec, telling the client, "Everything I tell you from now on will be authenticated (and encrypted, if encryption was negotiated)."
- The server sends its authenticated and encrypted Finished message.
- The client performs the same decryption and verification.
- Application phase: at this point, the "handshake" is complete and the application protocol is enabled, with content type of 23. Application messages exchanged between client and server will also be authenticated and optionally encrypted exactly like in their Finished message. Otherwise, the content type will return 25 and the client will not authenticate.
Client-authenticated TLS handshake[edit]
The following full example shows a client being authenticated (in addition to the server like above) via TLS using certificates exchanged between both peers.
- Negotiation Phase:
- A client sends a ClientHello message specifying the highest TLS protocol version it supports, a random number, a list of suggested cipher suites and compression methods.
- The server responds with a ServerHello message, containing the chosen protocol version, a random number, cipher suite and compression method from the choices offered by the client. The server may also send a session id as part of the message to perform a resumed handshake.
- The server sends its Certificate message (depending on the selected cipher suite, this may be omitted by the server).[114]
- The server requests a certificate from the client, so that the connection can be mutually authenticated, using a CertificateRequest message.
- The server sends a ServerHelloDone message, indicating it is done with handshake negotiation.
- The client responds with a Certificate message, which contains the client's certificate.
- The client sends a ClientKeyExchange message, which may contain a PreMasterSecret, public key, or nothing. (Again, this depends on the selected cipher.) This PreMasterSecret is encrypted using the public key of the server certificate.
- The client sends a CertificateVerify message, which is a signature over the previous handshake messages using the client's certificate's private key. This signature can be verified by using the client's certificate's public key. This lets the server know that the client has access to the private key of the certificate and thus owns the certificate.
- The client and server then use the random numbers and PreMasterSecret to compute a common secret, called the "master secret". All other key data for this connection is derived from this master secret (and the client- and server-generated random values), which is passed through a carefully designed pseudorandom function.
- The client now sends a ChangeCipherSpec record, essentially telling the server, "Everything I tell you from now on will be authenticated (and encrypted if encryption was negotiated). " The ChangeCipherSpec is itself a record-level protocol and has type 20 and not 22.
- Finally, the client sends an encrypted Finished message, containing a hash and MAC over the previous handshake messages.
- The server will attempt to decrypt the client's Finished message and verify the hash and MAC. If the decryption or verification fails, the handshake is considered to have failed and the connection should be torn down.
- Finally, the server sends a ChangeCipherSpec, telling the client, "Everything I tell you from now on will be authenticated (and encrypted if encryption was negotiated). "
- The server sends its own encrypted Finished message.
- The client performs the same decryption and verification.
- Application phase: at this point, the "handshake" is complete and the application protocol is enabled, with content type of 23. Application messages exchanged between client and server will also be encrypted exactly like in their Finished message.
Resumed TLS handshake[edit]
Public key operations (e.g., RSA) are relatively expensive in terms of computational power. TLS provides a secure shortcut in the handshake mechanism to avoid these operations: resumed sessions. Resumed sessions are implemented using session IDs or session tickets.
Apart from the performance benefit, resumed sessions can also be used for single sign-on as it is guaranteed that both the original session as well as any resumed session originate from the same client. This is of particular importance for the FTP over TLS/SSL protocol which would otherwise suffer from a man-in-the-middle attack in which an attacker could intercept the contents of the secondary data connections.[115]
Session IDs[edit]
In an ordinary full handshake, the server sends a session id as part of the ServerHello message. The client associates this session id with the server's IP address and TCP port, so that when the client connects again to that server, it can use the session id to shortcut the handshake. In the server, the session id maps to the cryptographic parameters previously negotiated, specifically the "master secret". Both sides must have the same "master secret" or the resumed handshake will fail (this prevents an eavesdropper from using a session id). The random data in the ClientHello and ServerHello messages virtually guarantee that the generated connection keys will be different from in the previous connection. In the RFCs, this type of handshake is called an abbreviated handshake. It is also described in the literature as a restart handshake.
- Negotiation phase:
- A client sends a ClientHello message specifying the highest TLS protocol version it supports, a random number, a list of suggested cipher suites and compression methods. Included in the message is the session id from the previous TLS connection.
- The server responds with a ServerHello message, containing the chosen protocol version, a random number, cipher suite and compression method from the choices offered by the client. If the server recognizes the session id sent by the client, it responds with the same session id. The client uses this to recognize that a resumed handshake is being performed. If the server does not recognize the session id sent by the client, it sends a different value for its session id. This tells the client that a resumed handshake will not be performed. At this point, both the client and server have the "master secret" and random data to generate the key data to be used for this connection.
- The server now sends a ChangeCipherSpec record, essentially telling the client, "Everything I tell you from now on will be encrypted." The ChangeCipherSpec is itself a record-level protocol and has type 20 and not 22.
- Finally, the server sends an encrypted Finished message, containing a hash and MAC over the previous handshake messages.
- The client will attempt to decrypt the server's Finished message and verify the hash and MAC. If the decryption or verification fails, the handshake is considered to have failed and the connection should be torn down.
- Finally, the client sends a ChangeCipherSpec, telling the server, "Everything I tell you from now on will be encrypted. "
- The client sends its own encrypted Finished message.
- The server performs the same decryption and verification.
- Application phase: at this point, the "handshake" is complete and the application protocol is enabled, with content type of 23. Application messages exchanged between client and server will also be encrypted exactly like in their Finished message.
Session tickets[edit]
RFC 5077 extends TLS via use of session tickets, instead of session IDs. It defines a way to resume a TLS session without requiring that session-specific state is stored at the TLS server.
When using session tickets, the TLS server stores its session-specific state in a session ticket and sends the session ticket to the TLS client for storing. The client resumes a TLS session by sending the session ticket to the server, and the server resumes the TLS session according to the session-specific state in the ticket. The session ticket is encrypted and authenticated by the server, and the server verifies its validity before using its contents.
One particular weakness of this method is that it always limits encryption and authentication security of the transmitted TLS session ticket to AES128-CBC-SHA256, no matter what other TLS parameters were negotiated for the actual TLS session.[108] This means that the state information (the TLS session ticket) is not as well protected as the TLS session itself. Of particular concern is OpenSSL's storage of the keys in an application-wide context (SSL_CTX), i.e. for the life of the application, and not allowing for re-keying of the AES128-CBC-SHA256 TLS session tickets without resetting the application-wide OpenSSL context (which is uncommon, error-prone and often requires manual administrative intervention).[109][107]
TLS record[edit]
This is the general format of all TLS records.
|Byte +0
|Byte +1
|Byte +2
|Byte +3
|Content type
|(bits 15..8)
|(bits 7..0)
|Protocol message(s)
|MAC (optional)
|Padding (block ciphers only)
- Content type
- This field identifies the Record Layer Protocol Type contained in this Record.
- Version
- This field identifies the major and minor version of TLS for the contained message. For a ClientHello message, this need not be the highest version supported by the client.
|Version Type
- Length
- The length of Protocol message(s), not to exceed 214 bytes (16 KiB).
- Protocol message(s)
- One or more messages identified by the Protocol field. Note that this field may be encrypted depending on the state of the connection.
- MAC and Padding
- A message authentication code computed over the Protocol message, with additional key material included. Note that this field may be encrypted, or not included entirely, depending on the state of the connection.
- No MAC or Padding can be present at end of TLS records before all cipher algorithms and parameters have been negotiated and handshaked and then confirmed by sending a CipherStateChange record (see below) for signalling that these parameters will take effect in all further records sent by the same peer.
Handshake protocol[edit]
Most messages exchanged during the setup of the TLS session are based on this record, unless an error or warning occurs and needs to be signaled by an Alert protocol record (see below), or the encryption mode of the session is modified by another record (see ChangeCipherSpec protocol below).
|Byte +0
|Byte +1
|Byte +2
|Byte +3
|(bits 15..8)
|(bits 7..0)
|Message type
|Handshake message data length
|(bits 23..16)
|(bits 15..8)
|(bits 7..0)
|Handshake message data
|Message type
|Handshake message data length
|(bits 23..16)
|(bits 15..8)
|(bits 7..0)
|Handshake message data
- Message type
- This field identifies the Handshake message type.
|Message Types
- Handshake message data length
- This is a 3-byte field indicating the length of the handshake data, not including the header.
Note that multiple Handshake messages may be combined within one record.
Alert protocol[edit]
This record should normally not be sent during normal handshaking or application exchanges. However, this message can be sent at any time during the handshake and up to the closure of the session. If this is used to signal a fatal error, the session will be closed immediately after sending this record, so this record is used to give a reason for this closure. If the alert level is flagged as a warning, the remote can decide to close the session if it decides that the session is not reliable enough for its needs (before doing so, the remote may also send its own signal).
|Byte +0
|Byte +1
|Byte +2
|Byte +3
|MAC (optional)
|Padding (block ciphers only)
- Level
- This field identifies the level of alert. If the level is fatal, the sender should close the session immediately. Otherwise, the recipient may decide to terminate the session itself, by sending its own fatal alert and closing the session itself immediately after sending it. The use of Alert records is optional, however if it is missing before the session closure, the session may be resumed automatically (with its handshakes).
- Normal closure of a session after termination of the transported application should preferably be alerted with at least the Close notify Alert type (with a simple warning level) to prevent such automatic resume of a new session. Signalling explicitly the normal closure of a secure session before effectively closing its transport layer is useful to prevent or detect attacks (like attempts to truncate the securely transported data, if it intrinsically does not have a predetermined length or duration that the recipient of the secured data may expect).
|Level type
|Connection state
|connection or security may be unstable.
|connection or security may be compromised, or an unrecoverable error has occurred.
- Description
- This field identifies which type of alert is being sent.
|Level types
|Close notify
|Unexpected message
|Bad record MAC
|Possibly a bad SSL implementation, or payload has been tampered with e.g. FTP firewall rule on FTPS server.
|Decryption failed
|TLS only, reserved
|Record overflow
|TLS only
|Decompression failure
|Handshake failure
|No certificate
|SSL 3.0 only, reserved
|Bad certificate
|Unsupported certificate
|e.g. certificate has only Server authentication usage enabled and is presented as a client certificate
|Certificate revoked
|Certificate expired
|Check server certificate expire also check no certificate in the chain presented has expired
|Certificate unknown
|Illegal parameter
|Unknown CA (Certificate authority)
|TLS only
|Access denied
|TLS only – e.g. no client certificate has been presented (TLS: Blank certificate message or SSLv3: No Certificate alert), but server is configured to require one.
|Decode error
|TLS only
|Decrypt error
|TLS only
|Export restriction
|TLS only, reserved
|Protocol version
|TLS only
|Insufficient security
|TLS only
|Internal error
|TLS only
|User canceled
|TLS only
|No renegotiation
|TLS only
|Unsupported extension
|TLS only
|Certificate unobtainable
|TLS only
|Unrecognized name
|TLS only; client's Server Name Indicator specified a hostname not supported by the server
|Bad certificate status response
|TLS only
|Bad certificate hash value
|TLS only
|Unknown PSK identity (used in TLS-PSK and TLS-SRP)
|TLS only
ChangeCipherSpec protocol[edit]
|Byte +0
|Byte +1
|Byte +2
|Byte +3
|CCS protocol type
- CCS protocol type
- Currently only 1.
Application protocol[edit]
|Byte +0
|Byte +1
|Byte +2
|Byte +3
|(bits 15..8)
|(bits 7..0)
|Application data
|MAC (optional)
|Padding (block ciphers only)
- Length
- Length of Application data (excluding the protocol header and including the MAC and padding trailers)
- 20 bytes for the SHA-1-based HMAC, 16 bytes for the MD5-based HMAC.
- Padding
- Variable length; last byte contains the padding length.
Support for name-based virtual servers[edit]
From the application protocol point of view, TLS belongs to a lower layer, although the TCP/IP model is too coarse to show it. This means that the TLS handshake is usually (except in the STARTTLS case) performed before the application protocol can start. The name-based virtual server feature being provided by the application layer, all co-hosted virtual servers share the same certificate because the server has to select and send a certificate immediately after the ClientHello message. This is a big problem in hosting environments because it means either sharing the same certificate among all customers or using a different IP address for each of them.
There are two known workarounds provided by X.509:
- If all virtual servers belong to the same domain, a wildcard certificate can be used. Besides the loose host name selection that might be a problem or not, there is no common agreement about how to match wildcard certificates. Different rules are applied depending on the application protocol or software used.[116]
- Add every virtual host name in the subjectAltName extension. The major problem being that the certificate needs to be reissued whenever a new virtual server is added.
In order to provide the server name, RFC 4366 Transport Layer Security (TLS) Extensions allow clients to include a Server Name Indication extension (SNI) in the extended ClientHello message. This extension hints the server immediately which name the client wishes to connect to, so the server can select the appropriate certificate to send to the client.
The current approved version of TLS is version 1.2, which is specified in:
- RFC 5246: "The Transport Layer Security (TLS) Protocol Version 1.2".
The current standard replaces these former versions, which are now considered obsolete:
- RFC 2246: "The TLS Protocol Version 1.0".
- RFC 4346: "The Transport Layer Security (TLS) Protocol Version 1.1".
as well as the never standardized SSL 2.0 and 3.0:
- Hickman, Kipp E.B. (April 1995). "The SSL Protocol". Retrieved July 31, 2013. This Internet Draft defines the now completely broken SSL 2.0.
- RFC 6101: "The Secure Sockets Layer (SSL) Protocol Version 3.0".
Other RFCs subsequently extended TLS.
Extensions to TLS 1.0 include:
- RFC 2595: "Using TLS with IMAP, POP3 and ACAP". Specifies an extension to the IMAP, POP3 and ACAP services that allow the server and client to use transport-layer security to provide private, authenticated communication over the Internet.
- RFC 2712: "Addition of Kerberos Cipher Suites to Transport Layer Security (TLS)". The 40-bit cipher suites defined in this memo appear only for the purpose of documenting the fact that those cipher suite codes have already been assigned.
- RFC 2817: "Upgrading to TLS Within HTTP/1.1", explains how to use the Upgrade mechanism in HTTP/1.1 to initiate Transport Layer Security (TLS) over an existing TCP connection. This allows unsecured and secured HTTP traffic to share the same well known port (in this case, http: at 80 rather than https: at 443).
- RFC 2818: "HTTP Over TLS", distinguishes secured traffic from insecure traffic by the use of a different 'server port'.
- RFC 3207: "SMTP Service Extension for Secure SMTP over Transport Layer Security". Specifies an extension to the SMTP service that allows an SMTP server and client to use transport-layer security to provide private, authenticated communication over the Internet.
- RFC 3268: "AES Ciphersuites for TLS". Adds Advanced Encryption Standard (AES) cipher suites to the previously existing symmetric ciphers.
- RFC 3546: "Transport Layer Security (TLS) Extensions", adds a mechanism for negotiating protocol extensions during session initialisation and defines some extensions. Made obsolete by RFC 4366.
- RFC 3749: "Transport Layer Security Protocol Compression Methods", specifies the framework for compression methods and the DEFLATE compression method.
- RFC 3943: "Transport Layer Security (TLS) Protocol Compression Using Lempel-Ziv-Stac (LZS)".
- RFC 4132: "Addition of Camellia Cipher Suites to Transport Layer Security (TLS)".
- RFC 4162: "Addition of SEED Cipher Suites to Transport Layer Security (TLS)".
- RFC 4217: "Securing FTP with TLS".
- RFC 4279: "Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)", adds three sets of new cipher suites for the TLS protocol to support authentication based on pre-shared keys.
Extensions to TLS 1.1 include:
- RFC 4347: "Datagram Transport Layer Security" specifies a TLS variant that works over datagram protocols (such as UDP).
- RFC 4366: "Transport Layer Security (TLS) Extensions" describes both a set of specific extensions and a generic extension mechanism.
- RFC 4492: "Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)".
- RFC 4680: "TLS Handshake Message for Supplemental Data".
- RFC 4681: "TLS User Mapping Extension".
- RFC 4785: "Pre-Shared Key (PSK) Ciphersuites with NULL Encryption for Transport Layer Security (TLS)".
- RFC 5054: "Using the Secure Remote Password (SRP) Protocol for TLS Authentication". Defines the TLS-SRP ciphersuites.
- RFC 5077: "Transport Layer Security (TLS) Session Resumption without Server-Side State".
- RFC 5081: "Using OpenPGP Keys for Transport Layer Security (TLS) Authentication", obsoleted by RFC 6091.
Extensions to TLS 1.2 include:
- RFC 5288: "AES Galois Counter Mode (GCM) Cipher Suites for TLS".
- RFC 5289: "TLS Elliptic Curve Cipher Suites with SHA-256/384 and AES Galois Counter Mode (GCM)".
- RFC 5746: "Transport Layer Security (TLS) Renegotiation Indication Extension".
- RFC 5878: "Transport Layer Security (TLS) Authorization Extensions".
- RFC 6066: "Transport Layer Security (TLS) Extensions: Extension Definitions", includes Server Name Indication and OCSP stapling.
- RFC 6091: "Using OpenPGP Keys for Transport Layer Security (TLS) Authentication".
- RFC 6176: "Prohibiting Secure Sockets Layer (SSL) Version 2.0".
- RFC 6209: "Addition of the ARIA Cipher Suites to Transport Layer Security (TLS)".
- RFC 6460: "Suite B Profile for Transport Layer Security (TLS)".
Encapsulations of TLS include:
See also[edit]
- Bullrun (decryption program) – a secret anti-encryption program run by the U.S. National Security Agency
- Datagram Transport Layer Security – specifies a TLS variant that works over datagram protocols (such as UDP)
- Extended Validation Certificate
- Heartbleed – bug in OpenSSL
- Key ring file
- Multiplexed Transport Layer Security
- Next Protocol Negotiation – a TLS extension used for SPDY and TLS False Start
- Obfuscated TCP
- RdRand
- Server gated cryptography
- SSL acceleration
- tcpcrypt
- Transport Layer Security Channel ID – a proposed protocol extension that improves web browser security via self-signed browser certificates
- Wireless Transport Layer Security
- ^ T. Dierks, E. Rescorla (August 2008). "The Transport Layer Security (TLS) Protocol, Version 1.2".
- ^ SSL: Intercepted today, decrypted tomorrow, Netcraft, 2013-06-25.
- ^ Law Enforcement Appliance Subverts SSL, Wired, 2010-04-03.
- ^ New Research Suggests That Governments May Fake SSL Certificates, EFF, 2010-03-24.
- ^ A. Freier, P. Karlton, P. Kocher (August 2011). "The Secure Sockets Layer (SSL) Protocol Version 3.0".
- ^ "SSL/TLS in Detail". Microsoft TechNet. Updated July 31, 2003.
- ^ Checking for certificate revocation can slow down browsing, so browsers generally don't perform this check unless so configured.
- ^ "Description of the Secure Sockets Layer (SSL) Handshake". Support. microsoft.com. 2008-07-07. Retrieved 2012-05-17.
- ^ Thomas Y. C. Woo, Raghuram Bindignavle, Shaowen Su and Simon S. Lam, SNP: An interface for secure network programming Proceedings USENIX Summer Technical Conference, June 1994
- ^ "THE SSL PROTOCOL". Netscape Corporation. 2007. Archived from the original on 14 June 1997.
- ^ Rescorla 2001
- ^ Dierks, T. and E. Rescorla (April 2006). "The Transport Layer Security (TLS) Protocol Version 1.1, RFC 4346".
- ^ a b c d As of April 6, 2014. "SSL Pulse: Survey of the SSL Implementation of the Most Popular Web Sites". Retrieved 2014-04-08.
- ^ a b ivanr. "RC4 in TLS is Broken: Now What?". Qualsys Security Labs. Retrieved 2013-07-30.
- ^ "RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2". Internet Engineering Task Force. Retrieved 9 September 2013.
- ^ P. Eronen, Ed. "RFC 4279: Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)". Internet Engineering Task Force. Retrieved 9 September 2013.
- ^ Gothard, Peter. "Google updates SSL certificates to 2048-bit encryption". Computing. Incisive Media. Retrieved 9 September 2013.
- ^ draft-agl-tls-chacha20poly1305-04
- ^ a b c Qualys SSL Labs. "SSL/TLS Deployment Best Practices". Retrieved 19 November 2013.
- ^ Google (2012-05-29). "Dev Channel Update". Retrieved 2011-06-01.
- ^ Google (2012-08-21). "Stable Channel Update". Retrieved 2012-08-22.
- ^ Chromium Project (2013-05-30). "Chromium TLS 1.2 Implementation".
- ^ a b c d e "Bug 565047 – (RFC4346) Implement TLS 1.1 (RFC 4346)". Retrieved 2013-10-29.
- ^ "NSS 3.14 release notes". Retrieved 29 October 2013.
- ^ a b c d e "Bug 480514 – Implement support for TLS 1.2 (RFC 5246)". Retrieved 2013-10-29.
- ^ "NSS 3.15.1 release notes". Retrieved 6 July 2013.
- ^ a b c d "SSL/TLS Overview". 2008-08-06. Retrieved 2013-03-29.
- ^ a b "Chromium Issue 90392". 2008-08-06. Retrieved 2013-06-28.
- ^ a b "Issue 23503030 Merge 219882". 2013-09-03. Retrieved 2013-09-19.
- ^ a b "Issue 278370: Unable to submit client certificates over TLS 1.2 from Windows". 2013-08-23. Retrieved 2013-10-03.
- ^ a b c d "Security in Firefox 2". 2008-08-06. Retrieved 2009-03-31.
- ^ a b c "Bug 733647 – Implement TLS 1.1 (RFC 4346) in Gecko (Firefox, Thunderbird), on by default". Retrieved 2013-12-04.
- ^ a b "Bug 861266 – Implement TLS 1.2 (RFC 5246) in Gecko (Firefox, Thunderbird), on by default". Retrieved 2013-11-18.
- ^ a b "Firefox Notes – Desktop". 2014-02-04. Retrieved 2014-02-04.
- ^ Microsoft (2012-09-05). "Secure Channel". Retrieved 2012-10-18.
- ^ Microsoft (2009-02-27). "MS-TLSP Appendix A". Retrieved 2009-03-19.
- ^ a b Microsoft (2013-09-24). "IE11 Changes". Retrieved 2013-11-01.
- ^ Microsoft (2013-06-24). "Release Notes: Important Issues in Windows 8.1 Preview". Retrieved 2013-10-29.
- ^ Yngve Nysæter Pettersen (2009-02-25). "New in Opera Presto 2.2: TLS 1.2 Support". Retrieved 2009-02-25.
- ^ "Changelog for Opera 9.0 for Windows" at Opera.com
- ^ "Changelog for Opera 5.x for Windows" at Opera.com
- ^ "Changelog for Opera [8] Beta 2 for Windows" at Opera.com
- ^ a b same as Chrome 27–29
- ^ a b same as Chrome 30-current
- ^ Adrian, Dimcev. "Common browsers/libraries/servers and the associated cipher suites implemented". TLS Cipher Suites Project.
- ^ Apple (2009-06-10). "Features". Retrieved 2009-06-10.
- ^ Curl: Patch to add TLS 1.1 and 1.2 support & replace deprecated functions in SecureTransport
- ^ Qualys SSL Report: google.co.uk (simulation Safari 5.1.9 TLS 1.0)
- ^ Qualys (2013-09-28). "SSL Report: facebook.com (22.214.171.124)". Retrieved 2013-09-28.
- ^ a b Ivan Ristić (2013-10-31). "Apple enabled BEAST mitigations in OS X 10.9 Mavericks". Retrieved 2013-11-07.
- ^ a b Ristic, Ivan. "Is BEAST Still a Threat?". qualys.com.
- ^ Apple (2011-10-14). "Technical Note TN2287 – iOS 5 and TLS 1.2 Interoperability Issues". Retrieved 2012-12-10.
- ^ Liebowitz, Matt (2011-10-13). "Apple issues huge software security patches". NBCNews.com. Retrieved 2012-12-10.
- ^ MWR Info Security (2012-04-16). "Adventures with iOS UIWebviews". Retrieved 2012-12-10., section "HTTPS (SSL/TLS)"
- ^ schurtertom (October 11, 2013). "SOAP Request fails randomly on one Server but works on an other on iOS7". Retrieved January 5, 2014.
- ^ Oracle. "Java Cryptography Architecture Oracle Providers Documentation". Retrieved 2012-08-16.
- ^ Oracle. "JDK 8 Security Enhancements". Retrieved 2014-03-25.
- ^ Georgiev, Martin and Iyengar, Subodh and Jana, Suman and Anubhai, Rishita and Boneh, Dan and Shmatikov, Vitaly (2012). The most dangerous code in the world: validating SSL certificates in non-browser software. Proceedings of the 2012 ACM conference on Computer and communications security. pp. 38–49. ISBN 978-1-4503-1651-4.
- ^ Joris Claessens, Valentin Dem, Danny De Cock, Bart Preneel, Joos Vandewalle (2002). "On the Security of Today's Online Electronic Banking Systems". Computers & Security 21 (3): 253–265. doi:10.1016/S0167-4048(02)00312-7.
- ^ Lawrence, Eric (2005-10-22). "IEBlog: Upcoming HTTPS Improvements in Internet Explorer 7 Beta 2". MSDN Blogs. Retrieved 2007-11-25.
- ^ "Bugzilla@Mozilla — Bug 236933 – Disable SSL2 and other weak ciphers". Mozilla Corporation. Retrieved 2007-11-25.
- ^ "Opera 9.5 for Windows Changelog" at Opera.com: "Disabled SSL v2 and weak ciphers."
- ^ "Firefox still sends SSLv2 handshake even though the protocol is disabled". 2008-09-11.
- ^ "Opera 10 for Windows changelog" at Opera.com: "Removed support for SSL v2 and weak ciphers"
- ^ Pettersen, Yngve (2007-04-30). "10 years of SSL in Opera — Implementer's notes". Opera Software. Retrieved 2007-11-25.
- ^ National Institute of Standards and Technology (December 2010). "Implementation Guidance for FIPS PUB 140-2 and the Cryptographic Module Validation Program".
- ^ Eric Rescorla (2009-11-05). "Understanding the TLS Renegotiation Attack". Educated Guesswork. Retrieved 2009-11-27.
- ^ "SSL_CTX_set_options SECURE_RENEGOTIATION". OpenSSL Docs. 2010-02-25. Retrieved 2010-11-18.
- ^ "GnuTLS 2.10.0 released". GnuTLS release notes. 2010-06-25. Retrieved 2011-07-24.
- ^ "NSS 3.12.6 release notes". NSS release notes. 2010-03-03. Retrieved 2011-07-24.
- ^ A. Langley; N. Modadugu, B. Moeller (June 20120). "Transport Layer Security (TLS) False Start". Internet Engineering Task Force. IETF. Retrieved 31 July 2013.
- ^ Wolfgang, Gruener. "False Start: Google Proposes Faster Web, Chrome Supports It Already". Archived from the original on October 7, 2010. Retrieved 9 March 2011.
- ^ Brian, Smith. "Limited rollback attacks in False Start and Snap Start". Retrieved 9 March 2011.
- ^ Adrian, Dimcev. "False Start". Random SSL/TLS 101. Retrieved 9 March 2011.
- ^ Mavrogiannopoulos, Nikos and Vercautern, Frederik and Velichkov, Vesselin and Preneel, Bart (2012). A cross-protocol attack on the TLS protocol. Proceedings of the 2012 ACM conference on Computer and communications security. pp. 62–72. ISBN 978-1-4503-1651-4.
- ^ Thai Duong and Juliano Rizzo (2011-05-13). "Here Come The ⊕ Ninjas".
- ^ Dan Goodin (2011-09-19). "Hackers break SSL encryption used by millions of sites".
- ^ "Y Combinator comments on the issue". 2011-09-20.
- ^ "Security of CBC Ciphersuites in SSL/TLS: Problems and Countermeasures". 2004-05-20. Archived from the original on 2012-06-30.
- ^ Brian Smith (2011-09-30). "(CVE-2011-3389) Rizzo/Duong chosen plaintext attack (BEAST) on SSL/TLS 1.0 (facilitated by websockets −76)".
- ^ "Vulnerability in SSL/TLS Could Allow Information Disclosure (2643584)". 2012-01-10.
- ^ Dan Goodin (2012-09-13). "Crack in Internet's foundation of trust allows HTTPS session hijacking". Ars Technica. Retrieved 2013-07-31.
- ^ Dennis Fisher (September 13, 2012). "CRIME Attack Uses Compression Ratio of TLS Requests as Side Channel to Hijack Secure Sessions". ThreatPost. Retrieved 2012-09-13.
- ^ a b Goodin, Dan (1 August 2013). "Gone in 30 seconds: New attack plucks secrets from HTTPS-protected pages". Ars Technica. Condé Nast. Retrieved 2 August 2013.
- ^ Leyden, John (2 August 2013). "Step into the BREACH: New attack developed to read encrypted web data". The Register. Retrieved 2 August 2013.
- ^ security – Safest ciphers to use with the BEAST? (TLS 1.0 exploit) I've read that RC4 is immune – Server Fault
- ^ Pouyan Sepehrdad, Serge Vaudenay, Martin Vuagnoux (2011). "Discovery and Exploitation of New Biases in RC4". Lecture Notes in Computer Science 6544: 74–91. doi:10.1007/978-3-642-19574-7_5.
- ^ Green, Matthew. "Attack of the week: RC4 is kind of broken in TLS". Cryptography Engineering. Retrieved March 12, 2013.
- ^ Nadhem AlFardan, Dan Bernstein, Kenny Paterson, Bertram Poettering and Jacob Schuldt. "On the Security of RC4 in TLS". Royal Holloway University of London. Retrieved March 13, 2013.
- ^ AlFardan, Nadhem J.; Bernstein, Daniel J.; Paterson, Kenneth G.; Poettering, Bertram; Schuldt, Jacob C. N. (8 July 2013). On the Security of RC4 in TLS and WPA (PDF). Retrieved 2 September 2013.
- ^ AlFardan, Nadhem J.; Bernstein, Daniel J.; Paterson, Kenneth G.; Poettering, Bertram; Schuldt, Jacob C. N. (15 August 2013). "On the Security of RC4 in TLS" (PDF). 22nd USENIX Security Symposium. p. 51. Retrieved 2 September 2013. "Plaintext recovery attacks against RC4 in TLS are feasible although not truly practical"
- ^ "Security Advisory 2868725: Recommendation to disable RC4". Microsoft. 2013-11-12. Retrieved 2013-12-04.
- ^ draft-popov-tls-prohibiting-rc4-01
- ^ a b John Leyden (1 August 2013). "Gmail, Outlook.com and e-voting 'pwned' on stage in crypto-dodge hack". The Register. Retrieved 1 August 2013.
- ^ "BlackHat USA Briefings". Black Hat 2013. Retrieved 1 August 2013.
- ^ Diffie, Whitfield; van Oorschot, Paul C.; Wiener, Michael J. (June 1992). "Authentication and Authenticated Key Exchanges". Designs, Codes and Cryptography 2 (2): 107–125. doi:10.1007/BF00124891. Retrieved 2008-02-11.
- ^ "Protecting data for the long term with forward secrecy". Retrieved 2012-11-05.
- ^ Vincent Bernat. "SSL/TLS & Perfect Forward Secrecy". Retrieved 2012-11-05.
- ^ "SSL Labs: Deploying Forward Secrecy". Qualys.com. 25 June 2013. Retrieved 10 July 2013.
- ^ Discussion on the TLS mailing list in October 2007
- ^ Ristic, Ivan (5 August 2013). "SSL Labs: Deploying Forward Secrecy". Qualsys. Retrieved 31 August 2013.
- ^ a b Langley, Adam (27 June 2013). "How to botch TLS forward secrecy". imperialviolet.org.
- ^ a b Daignière, Florent. "TLS "Secrets": Whitepaper presenting the security implications of the deployment of session tickets (RFC 5077) as implemented in OpenSSL". Matta Consulting Limited. Retrieved 7 August 2013.
- ^ a b Daignière, Florent. "TLS "Secrets": What everyone forgot to tell you...". Matta Consulting Limited. Retrieved 7 August 2013.
- ^ "Protecting data for the long term with forward secrecy". Retrieved 2014-03-07.
- ^ Hoffman-Andrews, Jacob. "Forward Secrecy at Twitter". Twitter. Twitter. Retrieved 2014-03-07.
- ^ "Certificate Pinning".
- ^ Perspectives Project
- ^ a b These certificates are currently X.509, but RFC 6091 also specifies the use of OpenPGP-based certificates.
- ^ Chris (2009-02-18). "vsftpd-2.1.0 released – Using TLS session resume for FTPS data connection authentication". Scarybeastsecurity. blogspot.com. Retrieved 2012-05-17.
- ^ "Named-based SSL virtual hosts: how to tackle the problem" (PDF). Retrieved 2012-05-17.
Further reading[edit]
- Wagner, David; Schneier, Bruce (November 1996). "Analysis of the SSL 3.0 Protocol". The Second USENIX Workshop on Electronic Commerce Proceedings. USENIX Press. pp. 29–40.
- Eric Rescorla (2001). SSL and TLS: Designing and Building Secure Systems. United States: Addison-Wesley Pub Co. ISBN 0-201-61598-3.
- Stephen A. Thomas (2000). SSL and TLS essentials securing the Web. New York: Wiley. ISBN 0-471-38354-6.
- Bard, Gregory (2006). "A Challenging But Feasible Blockwise-Adaptive Chosen-Plaintext Attack On Ssl". International Association for Cryptologic Research (136). Retrieved 2011-09-23.
- Canvel, Brice. "Password Interception in a SSL/TLS Channel". Retrieved 2007-04-20.
- IETF Multiple Authors. "RFC of change for TLS Renegotiation". Retrieved 2009-12-11.
- Creating VPNs with IPsec and SSL/TLS Linux Journal article by Rami Rosen
External links[edit]
|This article's use of external links may not follow Wikipedia's policies or guidelines. (November 2013)
|Wikimedia Commons has media related to SSL and TLS.
- SSL 2 specification (published 1994)
- Early drafts of SSL 3.0 specification (published 1995)
- The Secure Sockets Layer (SSL) Protocol Version 3.0 (2011)
- The IETF (Internet Engineering Task Force) TLS Workgroup
- SSL tutorial
- OWASP: Transport Layer Protection Cheat Sheet
- A talk on SSL/TLS that tries to explain things in terms that people might understand.
- SSL: Foundation for Web Security
- TLS Renegotiation Vulnerability – IETF Tools
- SSL Cipher Suites Supported By Your Browser – TLS test server for checking client
- Qualys SSL Labs
- SSL Server Test – TLS test server for checking servers
- SSL/TLS Capabilities of Your Browser (Experimental) – TLS test server for checking client
- Trustworthy Internet Movement – SSL Pulse – Survey of the SSL Implementation of the Most Popular Web Sites
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.


text:
Overview of research priorities definitive of Eunice Kennedy Shriver Intellectual and Developmental Disabilities Research Center core grants, funded by the Eunice Kennedy Shriver National Institute of Child Health and Human Development (NICHD).
To access Vanderbilt Kennedy Center Research Support services, Vanderbilt faculty must apply for membership.
The National Scientific Advisory Board brings a broad, national perspective to the Center's research, advising the Center's scientific leaders on promising research directions, administrative arrangements and program directions, and funding possibilities.
The major research areas of the VKC IDDRC are organized into four thematic research areas in which researchers interact regularly, sharing theoretical orientations and methodologies, but who vary widely in their academic disciplines. The four research themes are: basic mechanisms, cognitive processes and interventions, mental health and interventions, and life impact.
The Core research support units, as established by our role as a Intellectual and Developmental Disabilities Research Center, support research by providing services to support cutting-edge research by providing activities that promote collaboration and by attracting new investigators to the field.
A private, interactive website designed to enhance communication among researchers affiliated with the national network of Eunice Kennedy Shriver Intellectual Developmental Disabilities Research Centers
Elisabeth Dykens, Ph.D., Director, Vanderbilt Kennedy Center, (615) 322-8945
Karoly Mirnics, M.D., Associate Director, Vanderbilt Kennedy Center, (615) 936-1074
Jan Rosemergy, Ph.D., Deputy Director, Vanderbilt Kennedy Center, (615) 322-8238
Tim Stafford, Director of Operations, Vanderbilt Kennedy Center, (615) 322-8233


text:
Scheduling for upcoming cohorts
To get started in the AM2 program, you'll gather with instructors and other students for a two to three day, face-to-face learning experience. You'll get to know other Montessori educators in your cohort and form a close-knit learning community. Your newly formed relationships will continue online over the following months across geographical distances and for years after graduation.
You'll get to know Montessori faculty members who will introduce you to the curriculum and help you understand how learning takes place in your cohort. You'll also get an orientation to St. Catherine University services and learn how to use the program's web-based instructional software.
Scheduling and locations
St. Catherine University is now accepting applications to join cohorts beginning in 2013 and early 2014:
Summer 2013 Cohort: Minneapolis-St. Paul, Minnesota
Online learning begins: June 2013
Graduation: December 2013
Face-to-face experience: June 7-9, 2013 at the St. Catherine University campus in St. Paul, Minnesota
Fall 2013 Cohort: San Francisco Bay Area
Online learning begins: August 2013
Graduation: May 2014
Face-to-face experience: Aug. 8-9, 2013 at our host site, Montessori Teacher Education Center San Francisco Bay Area, at Rainbow Montessori in Sunnyvale, California.
Spring 2014 Cohort: Minneapolis-St. Paul, Minnesota
Online learning begins: January 31 to February 2, 2014
Graduation: December 2014
Face-to-face experience: Jan. 31-Feb. 2, 2014 at the St. Catherine University campus in St. Paul, Minnesota
Summer 2014 Cohort(s)
Watch this web site for details on upcoming locations and dates. Or put your name on our mailing list to receive information on new cohorts as they are announced.
Learn more about AM2


text:
The DU OccuTards Attack!!!!!
A new OccuTard??? Maybe, but it's followed up by our old buddy...Fri May 4, 2012, 05:29 AM
Marzupialis (60 posts)
COINTELPRO and Occupy
White powder being sent to right-wing stations (Fox) with the message "Happy May Day" at a time when Occupy holds May Day protests...young men, some of whom sympathized ith Occupy Cleveland who never thought of blowing up a bridge until an FBI informant told them to do it with fake explosives. Now a permit has been denied against Occupy Cleveland and nobody questions the timing of this event.
COINTELPRO may be dead as a name, but the tactic lives and will live forever. Left-wing organizations will always be framed in order to discredit them.
Those poor widdle OccuTards are always being setup by "The Man"!!!!!!Response to Marzupialis (Original post)
Fri May 4, 2012, 06:19 AM
Fire Walk With Me(31,642 posts)
1. Don't forget Seattle.
Black-clad police were caught on video smashing windows, etc.
In LA on mayday 2007 at MacArthur park, cops dressed as protesters beat someone up while riot cops walked right past them. Canada was also able to unmask some cops dressed as protesters, after they caused damage, IIRC.
Anyone who thinks cops are our friends needs to view this stunning ten minutes (no filler)


text:
President Obama's State of the Union address presented an expanded vision of smart government to create jobs and revive the economy. Yet he lowered his sights on the single policy that would both jump-start the economy in the short term and create the conditions for long-term growth: infrastructure spending. Having tried several times to propose infrastructure bills of around $50 billion — or just 0.3 percent of gross domestic product (GDP) — the president further scaled back, proposing a "fix-it-first" plan that repairs 70,000 bridges falling down nationwide. This would apply a band-aid on America's growing cancer of failing infrastructure. A 2009 study of all U.S. infrastructure by the American Society of Civil Engineers concluded that $2.2 trillion should be spent over five years to bring the nation's roads, bridges, railway tracks, airports and associated systems up to grade.
Here are three crucial facts.