Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¾©¶«½ðÈÚ˽ÓÐÔÆHTTPSÐÔÄÜÓÅ»¯Êµ¼ù
 
À´Ô´£ºInfoQ ·¢²¼ÓÚ£º 2017-10-18
  6375  次浏览      27
 

HTTPS ЭÒéÒòÆä¾ßÓа²È«ÊôÐÔ£¬ÍêÈ«Óн« HTTP È¡¶ø´úÖ®µÄÇ÷ÊÆ¡£È»¶øÕâ¸ö½ø³Ì²¢Ã»ÓкÜ˳Àû£¬ÒòΪ HTTPS ʵʩÆðÀ´Óм¸¸öÄѵ㣬ÆäÖÐÓÐÒ»¸öÊÇËüµÄÐÔÄÜÎÊÌâ¡£±¾ÎÄ·ÖÏíÁ˾©¶«½ðÈÚ˽ÓÐÔÆÔÚ HTTPS ÐÔÄÜÓÅ»¯ÉϵÄʵ¼ù£¬Ï£Íû¶ÔÓÐÒâÇл» HTTP µ½ HTTPS µÄÄãÓÐËù°ïÖú¡£

Ëæ×ÅÖÇÄÜÊÖ»úÆÕ¼°¡¢WIFI ½ÓÈ볣̬»¯£¬»¥ÁªÍøÕ¼ÎÒÃÇÈÕ³£Éú»îµÄ±ÈÖØÈÕ½¥±ä´ó¡£ÎÒÃÇÔÚÍøÉÏËÑË÷¡¢Éç½»ºÍ¹ºÎ¿´ËÆ·½±ã¿ì½Ý£¬µ«ÊÇÓпÉÄÜÄãµÄÊý¾ÝÕýÔÚ±»ÇÔÌý´Û¸Ä£¬±»ºÚ¿Í×éÖ¯ÀûÓá£

Ôì³ÉÕâÖÖÎÊÌâµÄÔ­ÒòÊÇÎÒÃÇÆ½³£×îΪ¹ã·ºÊ¹Óõij¬Îı¾´«ÊäЭÒ飨HTTP£¬HyperText Transfer Protolcol£©ÔÚÉè¼ÆÖ®³õ²¢Ã»Óп¼Âǰ²È«ÐÔÎÊÌ⣬µ¼ÖÂÈç½ñ´óÁ¿Êý¾ÝÔÚÍøÂçÉÏÃ÷ÎÄ´«Êä¡£

HTTPS ÊÇʲô

HTTPS£¨HTTP over TLS£©Êdz¬Îı¾´«Ê䰲ȫЭÒ飨HyperText Transfer Protocol Secure£©£¬ÊÇÒ»ÖÖͨ¹ý¼ÆËã»úÍøÂç½øÐа²È«Í¨ÐŵĴ«ÊäЭÒ飬×î³õÓÉÍø¾°¹«Ë¾£¨Netscape£©ÓÚ 1994 ÄêÌá³ö¡£

HTTPS ÔÚ²»°²È«µÄÍøÂçÉÏ´´½¨Ò»Ìõ°²È«ÐŵÀ£¬Í¨¹ýÊý¾Ý¼ÓÃÜ¡¢Êý¾ÝÍêÕûÐÔУÑé¡¢Éí·ÝÈÏÖ¤µÈÊֶΣ¬¶ÔÇÔÌýºÍÖмäÈ˹¥»÷½øÐкÏÀíµÄ·À»¤¡£

  • Êý¾Ý¼ÓÃÜ£¬¾ÍÏñÎÒÃÇÓʼİü¹ü£¬ÈκεÄÖмäÈ˶¼ÎÞ·¨ÖªµÀÀïÃæ×°ÁËʲô
  • ÍêÕûÐÔУÑ飬¼ÙÉèÖмäÈ˶԰ü¹ü×öÁËÊֽţ¬ÎÒÃÇÄÜÇáÒ×µÄʶ±ð²¢ÇҾܾøÇ©ÊÕ
  • Éí·ÝÈÏÖ¤£¬È·±£°ü¹üÒ»¶¨Êǰü¹üµ¥ÉϵÄÊÕ¼þÈËÇ©Êյġ£

HTTPS ÊÇ´óÊÆËùÇ÷

Èç½ñ£¬È«ÊÀ½ç¶¼¶Ô HTTPS Å׳öÁËéÏé­Ö¦£º

  • ΢ÐÅС³ÌÐòÒªÇóËùÓеÄÇëÇó±ØÐëÊÇ HTTPS ÇëÇó
  • Æ»¹ûÒªÇóËùÓÐ IOS App 2016 Äêµ×Ç¿ÖÆÊ¹Óà HTTPS ¼ÓÃÜ£¬ËäÈ»¸Ã¼Æ»®ÔÝʱ±»ÑÓÆÚ
  • °Ù¶È¡¢¹È¸èÓÅÏÈÊÕ¼ HTTPS Õ¾µã£¬ÏàͬȨֵµÄÕ¾µã HTTPS ÅÅÃû¿¿Ç°
  • Chrome ä¯ÀÀÆ÷¶Ô HTTP Ò³ÃæÌá³ö¾¯¸æ£¬ÈçÏÂͼ£¬µ±Ç°ÎªÖÐÐÔ¾¯¸æ£¬¼´Ä¬ÈÏÇé¿öÏÂÖ»Óе± HTTP Ò³Ãæ¼ì²âµ½ÃÜÂë»òÐÅÓÿ¨×Ö¶Îʱ²Å»áÌáʾ²»°²È«£¬µ«Í¬Ê± Chrome Ò²Ã÷È·±íʾ£¬¸Ã¼Æ»®½«»áÔ½À´Ô½Ñϸñ£¬×îÖÕ»á¶ÔËùÓÐ HTTP Ò³ÃæÌáʾ²»°²È«¡£

HTTPS ´æÔÚµÄÎÊÌâ

HTTPS ÊÇ´óÊÆËùÇ÷£¬µ«ÊÇ HTTPS µÄ¸²¸ÇÂʲ¢²»¹ã£¬Ö»ÓÐÏñ BATJ µÈ´óÐÍ»¥ÁªÍøÆóÒµ²ÅÔÚ×î½ü¼¸ÄêÍê³ÉÁËȫվ HTTPS µÄÇ¨ÒÆ£¬¾¿ÆäÔ­ÒòÖ÷ÒªÊÇ HTTPS µÄʵʩ³É±¾¹ý¸ß£º

  • ÑÓʱÔö¼Ó£¬ÆÕ±éÔö¼Ó¶þµ½Ëĸö RTT£¬×îÑÏÖØÇé¿öÏ¿ÉÄÜ»áÔö¼ÓÆß¸ö RTT
  • ÍÌÍÂÂÊϽµ£¬·þÎñ¶ËÏûºÄ CPU ÑÏÖØ£¬ÍêÈ«ÎÕÊÖÏ£¬ÕûÌåÐÔÄÜ»áϽµµ½ HTTP µÄ 10% ÉõÖÁ¸üµÍ

Óû§·ÃÎÊÑÓʱµÄÔö¼Ó£¬¸ø¹«Ë¾²úÆ·¡¢·þÎñÖÊÁ¿Ôì³É²»ÀûµÄÓ°Ïì¡£´ÓÁíÍâÒ»¸ö²ãÃæÀ´½²£¬ÓÉÓÚ·þÎñ¶ËÐÔÄÜÖè½µ£¬¿ÉÄÜÐèÒªÔ­±¾½ÓÈ뼯Ⱥ»ù´¡ÉÏÊý±¶µÄ»úÆ÷ÊýÁ¿²ÅÄÜÖ§³Åµ±Ç°Óû§·ÃÎÊ¡£

¶øÇÒÖ¤ÊéµÄÑ¡Ôñ¡¢ºóÆÚÔËάÈç˽Կ´æ´¢¶¼¾ßÓÐÒ»¶¨µÄ¼¼ÊõÃż÷£¬±ÈÈçÈçºÎÔÚ°²È«ÐԺͼæÈÝÐÔ²ãÃæ´ïµ½Ïà¶Ôƽºâ£¬ÕâʹµÃÐí¶à¹«Ë¾Íû¶øÉúη¡£

±¾ÎIJ»Éæ¼° HTTPS µÄʵÏÖÔ­ÀíÒÔ¼°×î¼ÑÔËάʵ¼ù£¬Ö÷Ҫ̸̸¾©¶«½ðÈÚ˽ÓÐÔÆÔÚ HTTPS ÐÔÄÜÌáÉýÉϵÄһЩ¾­Ñé¡£

ÓÅ»¯¾­Ñé

¾©¶«½ðÈÚ˽ÓÐÔÆ HTTPS Ð¶ÔØ·þÎñ»ùÓÚ Nginx ºÍ Openssl Éî¶È¶¨ÖÆ£¬ÐÔÄÜÓÅ»¯Ö÷Òª´Ó ÑÓʱºÍ ÍÌÍÂÂÊ Á½¸öά¶È¿¼ÂÇ¡£

TLS Record Size ¶¯Ì¬µ÷Õû

TLS Record ЭÒ鹤×÷ÔÚ±íʾ²ã£¬ÔÚ´«Êä²ãºÍÓ¦ÓòãÖ®¼äÌṩÖîÈçÊý¾Ý·â°ü£¬¼Ó½âÃÜ£¬HMAC УÑéµÈ¹¦ÄÜ£¬ÈçÏÂͼ£º

Nginx ÔÚ½¨Á¢ TLS Á¬½Óʱ»áΪÿ¸öÁ¬½Ó·ÖÅä Buffer ÓÃÓÚ·¢ËÍÔ­Êý¾Ý£¨TLS Record Size£¬Ä¬ÈÏ 16KB£©£¬µ±·þÎñ¶Ë·¢ËÍÊý¾Ýʱ£¬Êý¾Ý»á±»ÇÐ·Ö³É 16KB µÄ¶à¸ö¿é£¬Ã¿¸ö¿éÓà MAC Ç©Ãû£¬¼ÓÉÏЭÒéµÄÔªÊý¾ÝÒÔ¼°±»¼ÓÃܺóµÄÔ­Êý¾ÝÐγÉÒ»¸ö TLS Record ½á¹¹·¢Ë͵½¿Í»§¶Ë£¬ÔÚ¿Í»§¶ËÖ»Óе±Ð­ÒéÕ»½ÓÊÕµ½ÍêÕûµÄ TLS Record ʱ²ÅÄܹ»½âÃÜÑéÖ¤£¬²Å»áÏòÓ¦ÓòãÌá½»¡£

ÓÉÓÚ 16KB µÄ°ü´óСÒÔ¼°¶ª°üµÈÒòËØµÄÓ°Ï죬Ïà¶ÔÓÚ TCP£¬HTTPS µÄ TTFB( Time To First Byte ) ÑÓʱ½Ï´ó¡£

TTFB ÊÇÅжÏÍøÕ¾ÐÔÄܵÄÖØÒªÖ¸±ê£¬Ö÷Á÷ä¯ÀÀÆ÷¶¼ÊDZßÏÂÔØ±ß½âÎöäÖȾµÄ£¬ÑÓʱ½Ï´ó×îÖ±¹ÛµÄÓ°Ïì¾ÍÊÇ×îÖÕÓû§ÔÚä¯ÀÀÆ÷¶Ë¿´µ½ÄÚÈݵÄËٶȽÏÂý¡£

µ±È» TLS Record Size Ò²²»ÄÜһζµØ±äС£¬±ÈÈçµ±ËüµÈÓÚ MSS ʱ£¬±äС¾Í»áÓнϴóµÄÍ·²¿¸ºµ££¬µ¼ÖÂÕûÌåÍÌÍÂÁ¿Ï½µ¡£

ÎÒÃǵ±Ç°Ê¹ÓõÄÊÇ TLS Record Size¶¯Ì¬µ÷Õû Ëã·¨£¬Ëæ×Å CWND ´Ó Initcwnd Ôö³¤µ½ 16K£¬ÔÚÑÓʱºÍÍÌÍÂÁ¿Ö®¼ä´ïµ½Ïà¶Ôƽºâ¡£

False Start

ͨ¹ýÆôÓà False Start£¬¿Í»§¶Ë¿ÉÒÔÔÚ Change Cipher Spec ºÍ Finished ±¨ÎĺóÁ¢¼´·¢ËÍÓ¦ÓÃÊý¾Ý£¬Ê¹µÃÔ­±¾ÐèÒªÁ½´Î RTT µÄÍêÈ«ÎÕÊÖ±ä¸üΪһ´Î RTT¡£

¹úÄÚÄϱ±ÍøÂçµÄƽ¾ùÑÓʱÊÇ 50ms£¬ÕâÒ²¾ÍÒâζ×Åÿһ¸öµØ´¦ÄÏ·½µÄÓû§·ÃÎʵش¦±±·½µÄÕ¾µã£¬È˾ù¿É½ÚÊ¡ 50ms£¬Ð§¹ûÏÔÖø¡£

¸ù¾Ý RFC7918 Îĵµ£¬Ö»ÓÐʹÓþßÓÐǰÏò°²È«µÄÃØÔ¿½»»»Ëã·¨ÒÔ¼°×㹻ǿ¶ÈµÄ¶Ô³Æ¼Ó½âÃÜË㷨ʱ False Start ²Å»áÆô¶¯¡£

ÐèҪעÒâµÄÊÇ£¬Chrome ä¯ÀÀÆ÷ΪÁ˽â¾öÒ»Ð©ÌØÊâ SSL ·þÎñÈç SSL Terminator Ó²¼þÉ豸µÄ²»¼æÈÝÐÔ£¬ÒªÇóÖ»ÓкÍÖ§³Ö NPN/ALPN µÄ·þÎñ¶ËͨÐŲŻῪÆô False Start¡£

NPN Ëæ×Å SPDY ±» HTTP/2 ´úÌæÒѱ» Chrome ÒÆ³ý£¬¶ø ALPN Ö»ÔÚ Openssl-1.0.2 ºó²Å¿ªÊ¼Ö§³Ö£¬¼ÓÖ® Openssl а汾µÄ Bug ÐÞ¸´ÒÔ¼°ÐÔÄÜÓÅ»¯£¬ËùÒÔÈç¹ûÓÐÌõ¼þ½¨ÒéÔÚ·þÎñ¶Ë²¿Êð½Ïа汾µÄ Openssl¡£

OCSP Stapling

OCSP Éè¼ÆÖ®³õÊÇ CRL(Certificate Revocation List) µÄÌæ´úÆ·£¬Ï£Íûͨ¹ýÔÚÏßʵʱµÄÍøÂç½»»¥¼ì²éÖ¤ÊéµõÏú״̬£¬µ«ÊÇÕâ¸ö¹¦ÄÜÓе㼦Àߣº

  • ±©Â¶Óû§Òþ˽£¬Https Ö¼ÔÚÌá¸ß°²È«ÐԺͱ£»¤Òþ˽£¬OCSP ÏÔµÃÓе㱳µÀ¶ø³Û
  • OCSP Responder »ù±¾ÔÚ¹úÍ⣬¶øÇÒ·þÎñÄÜÁ¦Î´Öª£¬¼ÙÉè·ÃÎÊ OCSP Responder µÄÑÓʱºÜ´ó£¬»òÕßÊǿͻ§¶ËºÍ OCSP Responder µÄÁ´Â·Ö÷¶¯»ò±»¶¯µØ¶Ï¿ª£¬¿Í»§¶ËÎÞ·¨ºÜºÃµØÈ·¶¨ÊÇ·ñÓ¦¸Ã½ÓÊÜÖ¤Êé¡£

OCSP Stapling ͨ¹ý·þÎñ¶Ë¶Ô OCSP ½á¹ûµÄԤȡ²¢°Ñ½á¹ûËæ×ÅÖ¤ÊéÒ»Æð·¢¸ø¿Í»§¶Ë£¬´Ó¶øÈƹý¿Í»§¶ËµÄÔÚÏßÑéÖ¤¹ý³Ì£¬¿ÉÒԺܺõؽâ¾öÉϱßÁ½¸öÎÊÌâ¡£

ÎÒÃÇÔÚ×Ô¼ºµÄÍøÕ¾Öж¼Ó¦¸ÃÅäÖÃʹÓà OCSP Stapling£¬µ«ÊÇÐèҪעÒâµÄÊÇ OCSP Stapling Ò²²¢·ÇÍêÈ«ÄÜÆðµ½¼ì²éÖ¤ÊéµõÏúµÄ×÷Óã¬ÒÔÖÁÓÚÏñ Chrome ä¯ÀÀÆ÷¾ÍÒѾ­ÍêÈ«²»×öÖ¤ÊéµõÏú¼ì²éÁË¡£

HSTS

HSTS£¨HTTP Strict Transport Security£©Í¨¹ýÔÚ HTTPS Response Header ÖÐЯ´ø Strict-Transport-Security À´¸æÖªä¯ÀÀÆ÷£ºÒÔºóÇëÖ±½Óͨ¹ý HTTPS ·ÃÎÊÎÒ£¬µ±µÚ¶þ´ÎÓû§ÔÚä¯ÀÀÆ÷¶Ë·ÃÎÊ HTTP Õ¾µã£¬ä¯ÀÀÆ÷»áÔÚÄÚ²¿×ö 307 ÖØ¶¨Ïò£¬Ö±½Óͨ¹ý HTTPS ·ÃÎÊ¡£ÈçÏÂͼ£º

ͨ¹ý HSTS ÄÜÓÐЧµØ±ÜÃâ SSL °þÀë¹¥»÷£¬²¢ÄܼõÉÙ 2 ¸ö RTT£¬Ç¿ÁÒ½¨ÒéÅäÖÃʹÓᣵ«Í¬Ê±Ò²Ðè¹Ø×¢Ê״ηÃÎʵÄÖмäÈ˹¥»÷£¬ÒÔ¼°×¼±¸»Ø¹ö´ëÊ©ÒÔ·À HTTPS »Ø¹ö¡£

»á»°¸´ÓÃ

³£¼ûµÄ»á»°¸´ÓÃÓÐ Session ID ºÍ Session Ticket Á½ÖÖÐÎʽ£¬ÆäÖÐ Session ID ÊÇ TLS ЭÒéµÄ±ê×¼×ֶΣ¬¶ø Ticket ÊÇÀ©Õ¹×ֶΣ¬¸ù¾ÝÏà¹ØÍ³¼Æ£¬Ticket µÄ¿Í»§¶ËÖ§³ÖÂÊÖ»ÓÐ 40% ×óÓÒ¡£

ͨ¹ý»á»°¸´Ó㬰ÑÍêÈ«ÎÕÊÖ±ä¸üΪ¼òµ¥ÎÕÊÖ£¬±ÜÃâ×îºÄʱµÄÃØÔ¿Ð­É̽׶Σ¬ÄÜÏÔÖøÌáÉýÐÔÄÜ£¬ÈçÏÂͼ£¬¿Í»§¶ËÔÚ·¢ÆðÁ¬½ÓʱЯ´øÉÏÒ»´ÎÍêÈ«ÎÕÊÖʱ·þÎñ¶Ë·µ»ØµÄ SessionID£¬·þÎñ¶ËÊÕµ½ºóÔÚÄÚ´æÖвéÕÒ»º´æµÄ»á»°ÐÅÏ¢²¢»Ö¸´¼ÓÃÜͨÐÅ¡£

µ«ÊÇÔ­Éú Nginx ֻʵÏÖÁ˵¥»ú°æ±¾µÄ»á»°¸´Óã¨SSL_SESSION_CACHE ¹Ø¼ü×Ö£©£¬¶øµ±Ç°ÎÒÃǶ¼Ï°¹ßÒÔ¼¯Èº·½Ê½²¿Êð Nginx À´´ïµ½¸ß¿ÉÓã¬ËùÒÔÎÒÃÇͨ¹ýÐÂÔö Nginx Ä£¿éÒÔ¼°¶Ô Nginx Ô´ÂëµÄÉÙÁ¿¸ÄÔ죬֧³Ö·Ö²¼Ê½»á»°¸´Óã¬ÈçÏÂͼ£¬ÎÞÂÛÇëÇóÂäµ½ÄÄһ̨ Nginx »úÆ÷£¬¶¼¿ÉÒÔ¸´ÓÃÒÑ»º´æµÄ»á»°ÐÅÏ¢¡£

¸Ã Nginx Ä£¿é

£¨ngx_ssl_session_cache_module£©

ÒѾ­¿ªÔ´£¬Ö§³Ö Redis ºÍ Memcached Á½ÖÖ·Ö²¼Ê½»º´æÏµÍ³£¬ÇÒ¶Ô Openssl ûÓÐÈκδúÂëÒÀÀµ£¬»¶Ó­Ê¹Óã¬Ïê¼ûhttps:// github.com /hzarch/ngx_ssl_session_cache_module.git.

˫֤Êé

256 λ ECC ÃØÔ¿¼ÓÃÜÇ¿¶ÈµÈͬÓÚ 3072 λ RSA ÃØÔ¿Ë®Æ½ÇÒÐÔÄܸü¸ß£¬¶øÇÒÃØÔ¿¸ü¶ÌÒâζןüÉٵĴ洢¿Õ¼ä£¬¸üµÍµÄ´ø¿íÕ¼Óã¬ËùÒÔ¶ÔÓÚÓÐÌõ¼þµÄÆóÒµ½¨Ò鿪Æô ECC & RSA ˫֤ÊéÖ§³Ö¡£

¶Ô±È ECDHE_RSA¡¢ECDHE_ECDSA ÃØÔ¿½»»»ÈÏÖ¤Ëã·¨ËùÐèµÄ RSA_SIGN¡¢ECDSA_SIGN Ëã·¨£¬ÒÔÏÂÊÇÎÒÃÇÔÚÆÕͨ¹¤×÷Õ¾ÉÏͨ¹ý OPENSSL SPEED ²âÊÔµÄÐÔÄÜÊý¾Ý£¬¿ÉÒÔÃ÷ÏÔ¿´µ½ ECDSA_SIGN ÐÔÄÜÌáÉý¡£

¶Ô³Æ¼ÓÃÜÓÅ»¯

AES-GCM ÊÇĿǰ³£ÓõķÖ×é¼ÓÃÜËã·¨£¬È±µãÊÇÐÔÄܵÍÒÔ¼°Òƶ¯¶ËºÄµçÁ¿´ó£¬ËùÒԹȸèÔÚ 2014 ÄêÍÆ³öÁËÒ»ÖÖеÄÁ÷ʽ¼ÓÃÜËã·¨ CHACHA20-POLY1350£¬ÔÚ ARM ƽ̨ÉÏÐÔÄÜÊÇ AES-GCM µÄ 3-4 ±¶¡£

Intel ´Ó Westmere ´¦ÀíÆ÷¿ªÊ¼Ö§³ÖÒ»ÖÖÐ嵀 x86 Ö¸ÁîÀ©Õ¹¼¯ AES-NI£¬AES-NI ÄÜ´ÓÓ²¼þÉϼÓËÙ AES µÄÐÔÄÜ£¬ÔÚÖ§³Ö AES-NI Ö¸ÁµÄÖ÷»úÉÏʵ²â AES-GCM ÐÔÄÜÊÇ CHACHA20 µÄ 5 ±¶×óÓÒ¡£

Ô­ÏÈÎÒÃÇΪȨºâ¼æÈÝÐԺͰ²È«ÐÔ£¬ËùÒԲο¼ Mozilla µÄÍÆ¼ö .

ĬÈϲÉÓÃÖеµÅäÖ㬸ÃÅäÖüÙÉè¿Í»§¶Ë²»Ö§³Ö AES-NI£¬ËùÒÔ CHACHA20 ÓÅÏÈÓÚ AES-GCM£¬È»¶øËæ×ŵײ㼼ÊõµÄ·¢Õ¹£¬Òƶ¯¶Ë´Ó ARMV8-A ¼Ü¹¹¿ªÊ¼Öð½¥Ö§³Ö AES Ö¸Á¡£

Ïñ³£ÓÃµÄ IPhone 5S£¬Galaxy Note 4(Exynos)£¬ºìÃ× 2£¬´¸×Ó T2£¬ÈÙÒ« 5X µÈ¶¼ÊÇ»ùÓÚµÄ ARMV8 ¼Ü¹¹£¬¿¼Âǵ½µ±Ç°»¥ÁªÍøÆóÒµµÄÓû§¶¼ÒÔÄêÇáȺÌåΪÖ÷£¬ËùÒÔÎÒÃǸıä²ßÂÔÓÅÏÈʹÓà AES-GCM¡£

HTTP/2

HTTP/2 ÊÇ HTTP/1.1 ÔÚ 1999 Äê·¢²¼ºóµÄÊ״θüУ¬HTTP/2 ´øÀ´ÁËÖîÈç¶à·¸´Óá¢Í·²¿Ñ¹Ëõ¡¢¶þ½øÖÆ·ÖÖ¡µÈÌØÐÔ£¬ÄÜ´ó·ùÌáÉý Web ÐÔÄÜ¡£

ʹÓÃʱ¿ÉÒÔÈÿͻ§¶ËÑ¡Ôñ»òͨ¹ý NPN/ALPN ¶¯Ì¬Ð­ÉÌÊDzÉÓà HTTP/1.X over TLS »¹ÊÇ HTTP/2 over TLS£¬¶øÇÒºó¶Ë·þÎñÎÞÐèÐ޸ĴúÂë½øÐÐÊÊÅ䣬¾ßÓбȽϴóµÄÁé»îÐÔ¡£

µ«ÊÇÒ²ÐèҪעÒâ HTTP/2 ²¢²»ÊÇÍòÄܵĽâÒ©£¬Ê¹ÓÃʱÐè¶ÔÍøÕ¾±¾ÉíµÄÇé¿ö×ö³ä·ÖÆÀ¹À£¬Ðè¹æ±ÜÖîÈçΪ HTTP/1.X µ÷ÓŶøÌá³öµÄÓòÃûÉ¢ÁеÈÎÊÌâ¡£

¼ÓËÙ¿¨

ÒÔÉÏËùÓеÄÓÅ»¯¶¼ÊÇ Èí¼ÓËÙ ·¶³ë£¬Ö÷ҪĿµÄÊǼõÉÙ RTT£¬µ«ÊǶÔÓÚÎÞ·¨±ÜÃâµÄÍêÈ«ÎÕÊÖ£¬·þÎñ¶Ë»¹ÊÇ»á½øÐдóÁ¿µÄ¼Ó½âÃÜÔËË㣬ÒÔ ECDHE_RSA ΪÀý£¬Ïñ RSA_Sign º¯ÊýÔÚ Intel E5-2650 V2 Ö÷»úÉÏÿÃëÖ»ÄÜÖ´ÐÐ 1.2W ´Î×óÓÒ£¬¶ø´Ëʱ 24 ¸öºËÒÑÈ«ÊÇÂúÔØ×´Ì¬¡£

CPU ÏòÀ´¶¼²»Êʺϴ¦Àí´ó¹æÄ£µÄ¸¡µãÔËË㣬½â¾öÕâÀàÎÊÌâÐÔ¼Û±È×î¸ßµÄ·½Ê½ÎÞÒÉÊDzÉÓÃÓ²¼þ¼ÓËÙ¿¨£¨GPU ¾ÍÊÇÆäÖÐÒ»ÖÖ£©£¬Í¨¹ý°Ñ¼Ó½âÃÜÔËËã×ªÒÆµ½¼ÓËÙ¿¨À´Ìæ»» Openssl µÄ¼Ó½âÃÜ´¦Àí¡£

¼ÓËÙ¿¨°²×°ÔÚÖ÷»úµÄ PCIE ²å²ÛÄÚ£¬ÊÜÏÞÓÚÖ÷»ú PCIE ²å²ÛÊýÁ¿£¬Ö§³ÖÏßÐÔÀ©ÈÝ£¬¸ù¾Ý¼ÓËÙ¿¨ÀàÐͲ»Í¬£¬Ïñ RSA_Sign ¼ÆËãÐÔÄÜÔÚµ¥¿¨×´Ì¬Ï¶¼ÄÜÌáÉý 3-6 ±¶×óÓÒ¡£

Ëã·¨·ÖÀë

ÀûÓÃÈíÓÅ»¯ÒÔ¼°Ó²¼þ¼ÓËÙ¿¨£¬»ù±¾ÄÜÂú×ã´ó²¿·ÖµÄÒµÎñ³¡¾°£¬µ«ÕâÈ´²»ÊÇ×îÓŽ⣬ÎÒÃÇ·¢ÏÖ£º

  • ²»Í¬³§¼Ò²»Í¬ÐͺŵļÓËÙ¿¨´æÔÚÐÔÄܲîÒ죬ͬÐͺŵļÓËÙ¿¨²»Í¬Ëã·¨Ò²´æÔÚÐÔÄܲîÒ죬ÏñÎÒÃDzâÊÔµÄÒ»¿î Cavium ¿¨£¬ECDHP256 ºÍ RSA2048_Sign ´æÔÚ 20% µÄÐÔÄܲî¾à
  • Openssl-1.0.2 °æ±¾ÊµÏÖÁ˸ü¿ìËÙÒÔ¼°¸ü°²È«µÄ EC_GFp_nistz256_method ·½·¨ÓÃÓÚ P256 ÇúÏß²Ù×÷£¬¸Ã·½·¨ÀûÓÃÁË Intel AVX À©Õ¹£¬ÐÔÄÜÌáÉýÏÔÖø¡£

ÔÚÀÏ¾ÉµÄ Intel E5-2620 Ö÷»ú²âÊÔ Openssl-1.0.2 µ¥ºË ECDH ÐÔÄÜ´ïµ½ 8040£¬4 ±¶ÓÚ Openssl-1.0.1u£¬24 ºËÈ«¿ªÊ±ÐÔÄÜ´ïµ½ 9.7W£¬ÔÚ E5-2650 V2 ÉÏ£¬¼«ÏÞÐÔÄܸüÊÇ´ïµ½ 17.5W£¬Ô¶¸ßÓÚ¼ÓËÙ¿¨µ¥¿¨µÄ 5-8W¡£

ÕýÊÇÓÉÓÚÕâÖÖ²îÒìÐÔ£¬ÎÒÃÇÌá³öËã·¨·ÖÀëµÄ¼Ü¹¹£¬Ï£Íû³ä·ÖÀûÓÃÓ²¼þÐÔÄÜ¡£

ÈçÉÏͼ£¬Í¨¹ýÕâÖּܹ¹ÎÒÃǰѽÓÈ뼯Ⱥ´Ó CPU Ãܼ¯ÐÍ ×ª»»³É IO Ãܼ¯ÐÍ£¬¾ßÌåµÄËã·¨ÔËË㣬˽Կ´æ´¢µÈ¶¼ÔÚרÓм¯ÈºÍê³É£¬¼«´óµØÔöÇ¿Á˽ÓÈ뼯ȺµÄ¿ÉÀ©Õ¹ÐÔ¡£

ÁíÍâͨ¹ýÕâÖּܹ¹ÎÒÃDz»½ö¿ÉÒÔ³ä·ÖÀûÓÃÏÐÖõļÆËã×ÊÔ´£¬Ò²¿ÉÒÔ×îÓÅ»¯ HTTPS Ð¶ÔØ·þÎñµÄÍÌÍÂÂÊ£¬¶øÇÒ¶ÔÓÚ¼ÆË㼯ȺµÄÔöɾ¸Ä£¬ÎÒÃÇÖ§³ÖÔÚ Web ¹Ü¿Ø¶ËÉÏÅúÁ¿Ð޸ģ¬Ð¶ÔØ·þÎñ»áʵʱÀ­È¡²¢Ó¦ÓÃÐ޸쬴ËÍâÔÙ¸¨ÒÔ¼ÆË㼯ȺµÄÕûÌå¼à¿Ø£¬¼«´óµØ¼ò»¯ÁËÔËά¸´ÔÓ¶È¡£

ÐÔÄÜÖ¸±ê

ÒÔÉÏÓÅ»¯×ܽáÆðÀ´¾ÍÊÇÃæÏòÑÓʱºÍÍÌÍÂÂʵÄÓÅ»¯£¬ÒÔÏÂÊÇÎÒÃÇÔÚ²âÊÔ»·¾³²âÊÔµÄÒ»×éµ¥»úÐÔÄÜÊý¾Ý£¨Intel E5-2650 V2£©£¬½ö¹©²Î¿¼¡£

ÓÉÓÚÎÞ·¨ÓÅ»¯ä¯ÀÀÆ÷¶Ë´úÂ룬µ±Ç°ÑÓʱֻÄÜÓÅ»¯µ½Ò»¸ö RTT£¬Èô¿Í»§¶Ë˽ÓУ¬¿É²Î¿¼ TLS V1.3 ¿ª·¢ 0-RTT ЭÒé¡£

×ܽá

HTTPS ÊǸöϵͳÐÔ¹¤³Ì£¬¶øÐÔÄÜÓÅ»¯Ö»ÊÇÆäÖÐÒ»¿é£¬»¹ÐèÒª½â¾öÖîÈçÖ¤Êé¡¢ÔËά¡¢ÍøÂçµÈÎÊÌ⣬µ«ÊǺÃÏûÏ¢ÊÇ£¬Ëæ×ŹúÄÚһЩ´óÆóҵʵʩ HTTPS ÒѾ­ÓÐһЩ×î¼Ñʵ¼ù±»Ì½Ë÷£¬ÒÔ¼°ÖîÈç Let's Encrypt µÈÃâ·Ñ DV Ö¤ÊéÍÆ³ö£¬HTTPS µÄ³É±¾ÕýÔÚÖð½¥½µµÍ£¬ËùÒÔÔڴ˺ôÓõ¸÷ÆóÒµ¾¡¿ìÉÏÏß HTTPS£¬±£ÕÏÍøÕ¾µÄÐÅÏ¢Êý¾Ý°²È«¡£

 

   
6375 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤