HTTPã®å§ç¸®æ©è½ãç¨ãã¦ãHTTPSä¸ã®éä¿¡ãã¿ã¦CSRF tokenãªã©ã®ç§å¯ãæ¨æ¸¬ãããã¨ãã§ããã¨ããèå¼±æ§ã
以åCRIMEã¨ããèå¼±æ§ããã£ãã®ã ããããã¯HTTPSã®å§ç¸®æ©è½ã¨ãããã¾ã使ããã¦ããªãæ©è½ãç¨ãã¦ããã®ã§ããã®æ©è½ããªãã«ããã°ããã£ãã
ããããä»åã®ã¯HTTPä¸ã®gzipå§ç¸®ãªã©ã該å½ããã®ã§ä½¿ã£ã¦ããã¨ããã¯å¤ãããªã®ã§ããªããªããªãã«ã¯ãã¥ãããããã¦ãã以å¤ã®å¯¾çãCSRF tokenã®çææ¹æ³ãå¤æ´ãããªã©ããã©ãããã®ã§å¯¾çãã¨ãã«ããã
ãã ããæ»æè ã¯ã¦ã¼ã¶ã®HTTPSéä¿¡ãçè´ã§ãããã¤ãæ»æè ãã¦ã¼ã¶ã«èå¼±æ§ã®ãããµã¤ãã«HTTPãªã¯ã¨ã¹ããéä¿¡ããããã¨ãã§ããªããã°ãªããªãã®ã§ãããã¾ã§åé¡è¦ããªãã¦ãããã®ããã
æ»ææ¹æ³
GET /hoge?foo=XXXXXX
ãå®è¡ããã¨
<html> ... <a href=/fuga?bar=XXXXX> .. <a href=/heso?canary=61BAAES23CA89213> ... </html>
ã¨ããã¬ã¹ãã³ã¹ããã£ãè¿ããããªãµã¤ããæ³å®ãã¦ãããããã§ãã¦ã¼ã¶ãå ¥åãããXXXXXãã¬ã¹ãã³ã¹ããã£ã«ãã®ã¾ã¾è¡¨ç¤ºããã¦ãããã¾ããcanary=以ä¸ã¯æ»æè ãåå¾ãããã¨ãã¦ããCSRF tokenã§ããã
gzipãªã©ã®å§ç¸®ã¢ã«ã´ãªãºã ã¯åãæååãããã°å§ç¸®å¾ã®ãµã¤ãºã¯å°ãããªããããã«ãid=ã®é¨åã«ãcanary=5ãã¨å ¥ããæãããcanary=6ãã¨å ¥ããæã®æ¹ããµã¤ãºã¯å°ãããªããããcanary=63ãã¨å ¥ããæãããcanary=61ãã¨å ¥ããæã®æ¹ããµã¤ãºã¯å°ãããªãããã®ããã«å ¥åãå¤æ´ãã¤ã¤ãµã¤ãºã®å¤§å°ã観å¯ãããã¨ã«ãããå¾ã ã«æ£è§£ã¨ãªãCSRF tokenã«è¿ã¥ãããã¨ãã§ããã
æ»ææ¹æ³ã¯ã ãããä¸è¨ã®ãããªå 容ãCRIMEãã»ã¼åãå 容ã¿ããã§ãHTTPSã ãã§ãªããHTTPã®å§ç¸®æ©è½ã§ãã§ããã ããã¨ãããã¨ã¯ããã¾ã§ãè¨ããã¦ããã£ã½ãã
ãã ãå®éã¯åãæååãããæã ããµã¤ãºãå°ãããªãããã§ã¯ãªãããããã³ç¬¦å·åã«ãã£ã¦ãå°ãããªãã®ã§ãå¿ ãããæ£è§£ã®æã®ã¿å°ãããªãããã§ã¯ãªãããã ãããã®å ´åã®å¯¾çãè«æã«ãããã¦ããã