web security
play

Web Security HTTPS Certificates Summary ITS335: IT Security - PowerPoint PPT Presentation

ITS335 Web Security Browsing Applications Web Security HTTPS Certificates Summary ITS335: IT Security Sirindhorn International Institute of Technology Thammasat University Prepared by Steven Gordon on 2 February 2014 its335y13s2l09,


  1. ITS335 Web Security Browsing Applications Web Security HTTPS Certificates Summary ITS335: IT Security Sirindhorn International Institute of Technology Thammasat University Prepared by Steven Gordon on 2 February 2014 its335y13s2l09, Steve/Courses/2013/s2/its335/lectures/websecurity.tex, r3104 1/31

  2. ITS335 Contents Web Security Browsing Web Browsing Applications HTTPS Certificates Web Applications Summary Confidential Web Communications with HTTPS Digital Certificates Summary 2/31

  3. ITS335 Web Browsing with HTTP Web Security Browsing Applications HTTPS Certificates Summary 3/31

  4. ITS335 Web Browsing with HTTP Web Security Browsing Applications HTTPS Certificates Summary 4/31

  5. ITS335 Web Access with Hypertext Transfer Protocol Web Security ◮ HTTP is a request/response protocol for web browsing Browsing ◮ HTTP is stateless; no dependence between a request Applications and previous request HTTPS ◮ User Agent (client) sends HTTP Request message Certificates Summary ◮ Server responds with HTTP Response message ◮ Default server port number: 80 ◮ Generic HTTP message format: Start line Optional header lines <empty line> Optional message body ◮ Start line differs for request and response ◮ Header format: field-name: value 5/31

  6. ITS335 HTTP Example Web Security Browsing Applications HTTPS Certificates Summary 6/31

  7. ITS335 HTTP Request Messages Web Security ◮ Start line: Method URL Version Browsing ◮ Methods: Applications ◮ GET: retrieve the resource at the specific URL HTTPS ◮ HEAD: same as GET, except do not return message Certificates body (only header) Summary ◮ OPTIONS: retrieve options available for resource or server ◮ POST: asks server to accept and process the attached data at the resource ◮ . . . ◮ Version: version of HTTP, e.g. HTTP/1.0, HTTP/1.1 7/31

  8. ITS335 HTTP Response Messages Web Security ◮ Start line: Version StatusCode StatusReason Browsing ◮ Status Codes and Reasons: Applications ◮ 100: Continue (the client should continue with its HTTPS request) Certificates ◮ 200: OK (the request succeeded) Summary ◮ 301: Moved Permanently (the requested resource has a new URL) ◮ 304: Not Modified (resource hasnt changed since last request, client should use cached copy) ◮ 401: Unauthorized (request must include user authentication) ◮ 403: Forbidden (request was understood, but server refuses to process it) ◮ 404: Not Found (server cannot find resource at requested URL) ◮ 503: Service Unavailable (server currently unable to handle request, e.g. server is too busy) 8/31

  9. ITS335 HTTP Headers Web Security ◮ Date: data and time of message generation Browsing ◮ Host: domain name of host of resource (means relative Applications URLs can be used) HTTPS ◮ Accept-Charset, Accept-Encoding, Accept-Language: Certificates indicate the character sets, encodings and languages Summary that client can accept ◮ Authorization: include user credentials (e.g. username, password) if authorization is required ◮ User-Agent: indicates information about the client (user agent), e.g. web browser ◮ Referrer: URL from which this request came from ◮ Content-Encoding: encoding or compression, e.g. gzip ◮ Content-Length: length of message body on bytes ◮ Content-Type: the type of content in message body ◮ Last-Modified: indicates data/time when content was last modified on server 9/31

  10. ITS335 Contents Web Security Browsing Web Browsing Applications HTTPS Certificates Web Applications Summary Confidential Web Communications with HTTPS Digital Certificates Summary 10/31

  11. ITS335 Web Applications Web Security ◮ Plain, static web pages: HTML, images and other files Browsing served to browser Applications ◮ But many applications use dynamic content HTTPS ◮ Content server to browse changes depending on request Certificates ◮ Provides interactive, tailored content Summary ◮ Client-side: JavaScript, Flash, Silverlight, Java ◮ Server-side: CGI, ASP, PHP, Coldfusion, Java, . . . ◮ Content stored in databases 11/31

  12. ITS335 Dynamic Content with Server-Side Processing Web Security Browsing Applications HTTPS Certificates Summary 12/31

  13. ITS335 What are the security issues? Web Security ◮ Data transmitted between browser and server is Browsing confidential: encryption with HTTPS Applications ◮ Browser sure it is communicating with intended server: HTTPS digital certificates Certificates ◮ Server sure it is communicating with intended user: Summary password authentication, session management ◮ Actions performed by server (engine) are appropriate: authentication, access control ◮ Actions of user (of browser) are kept private: anonymity services 13/31

  14. ITS335 Contents Web Security Browsing Web Browsing Applications HTTPS Certificates Web Applications Summary Confidential Web Communications with HTTPS Digital Certificates Summary 14/31

  15. ITS335 HTTPS Web Security ◮ HTTPS: HTTP over SSL (or TLS) Browsing ◮ URL uses https:// Applications ◮ Web server listens on port 443 HTTPS Certificates ◮ Encrypt: URL of requested document, contents of Summary document, contents of browser forms, cookies, contents of HTTP header ◮ Server is authenticated using certificate (using SSL) ◮ Client is authenticated using password (using HTTP) 15/31

  16. ITS335 SSL and TLS Web Security ◮ Secure Sockets Layer (SSL) originated in Netscape web Browsing browser Applications ◮ Transport Layer Security (TLS) standardised by IETF HTTPS ◮ SSLv3 and TLS are almost the same Certificates Summary ◮ SSL provides security services to application layer protocols using TCP ◮ SSL architecture consists of multiple protocols 16/31

  17. ITS335 SSL Architecture Web Security Browsing Applications HTTPS Certificates Summary Record: provides confidentiality and message integrity Handshake: authenticate entities, negotiate parameter values Change Cipher: change cipher for use in connection Alert: alert peer entity of status/warning/error 17/31

  18. ITS335 Connections and Sessions Web Security ◮ SSL connection corresponds with TCP connection Browsing ◮ Client and server may have multiple connections Applications ◮ SSL session is association between client and server HTTPS ◮ Session created with Handshake protocol Certificates ◮ Multiple connections can be associated with one session Summary ◮ Security parameters for session can be shared for connections ◮ State information is stored after Handshake protocol ◮ Session: ID, certificate, compression, cipher spec, master secret, . . . ◮ Connection: random values, encrypt keys, MAC secrets, IV, sequence numbers, . . . 18/31

  19. ITS335 SSL Record Protocol Operation Web Security Browsing Applications HTTPS Certificates Summary 19/31

  20. ITS335 SSL Handshake Protocol Web Security ◮ Allow client and server to authenticate each other Browsing ◮ Negotiate encryption and MAC algorithms, exchange Applications keys HTTPS ◮ Key Exchange: RSA, Diffie-Hellman Certificates ◮ MAC: HMAC using SHA or MD5 Summary ◮ Encryption: RC4, RC2, DES, 3DES, IDEA, AES ◮ Multiple phases: 1. Establish security capabilities: client proposes algorithms, server selects one 2. Server authentication and key exchange 3. Client authentication and key exchange 4. Finish setting up connection 20/31

  21. ITS335 Contents Web Security Browsing Web Browsing Applications HTTPS Certificates Web Applications Summary Confidential Web Communications with HTTPS Digital Certificates Summary 21/31

  22. ITS335 Authentication and Encryption in Web Browsing Web Security ◮ Browser and server do not have pre-shared secrets Browsing ◮ Use public key cryptography to securely exchange secret Applications key HTTPS ◮ RSA/DSA Certificates ◮ Diffie-Hellman key exchange Summary ◮ Elliptic curve cryptography ◮ Once a secret key is exchanged, use symmetric key encryption ◮ AES, RC4, 3DES, . . . ◮ E.g. with RSA: if a server sends browser its RSA public key, how does browser know it is indeed RSA public key of server? ◮ Get a trusted third party to confirm it is the servers RSA public key 22/31

  23. ITS335 Digital Certificates Web Security Step 1: Server Obtains Digital Certificate Browsing Applications ◮ Server (owner) creates key pair: ( PU s , PR s ) HTTPS ◮ Server confirms identity, ID s , with trusted third party Certificates called Certificate Authority Summary ◮ CA issues server with a digital certificate by signing relevant info: C s = ( ID s || PU s || T , E ( PR CA , H ( ID s || PU s || T )) ◮ A timestamp, T , can be used to determine how long the certificate is valid ◮ X.509 specifies standard format of certificates 23/31

  24. ITS335 Digital Certificates Web Security Step 2: Server Sends Digitial Certificate to Browser Browsing Applications ◮ When browser initiates communications with server, HTTPS server responds with C s Certificates ◮ Browser verifies signature using PU CA Summary ◮ Assumes browser already knows and trusts PU CA ◮ PU CA is stored in self-signed certificate: C CA = ( ID CA || PU CA || T , E ( PR CA , H ( ID CA || PU CA || T )) ◮ Once verified, browser can choose secret value and send it encrypted using PU s to server 24/31

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend