
ããã«ã¡ã¯ãHabrïŒ ç§ã®ååã¯Akhmadeev Rinatã§ããç§ã¯Srã§ãã PHPéçºè
ã
ç§ã¯ããªãã«ã¬ããŒãã®æŠèŠãæç€ºããŸã BruteforceãåããVirgil Security with HighLoad ++ 2018ã® Alexey Ermishkinã®ããã«ãŒãäœãæ®ããªãæ¹æ³ ã
ã¬ããŒãã«è¡ã£ããšããç§ã¯æ²èгçã§ããã ããããä»¥æ¥ Virgil Securityãªã®ã§ãç§ã¯ãŸã è¡ãããšã«ããŸããã æåã¯ã¬ããŒããæ¬åœã«ãã£ããã³ã®ããã«èŠããèå³ã倱ãå§ããŸããããçµå±ã¯ãéåžžã®ãœã«ãããã·ã¥ä»¥å€ã®ããã€ãã®æ°ãããã¹ã¯ãŒãä¿è·ã¢ãããŒããèŠã€ããŸããã
ãã®ã¬ããŒãã§ã¯ãããã·ã¥ãFacebookã®ãã¹ã¯ãŒãOnionãSphinxãPythiaãªã©ã®ããçŸä»£çãªã¢ãããŒãããããã·ã¥ããä¿è·ããæ¹æ³ã«ã€ããŠèª¬æããŠããŸãã æåŸã«ãæ°ããSimple Password-Hardened Encryption ServicesïŒPHEïŒãã¬ãã¥ãŒãããŸãã
å ±åæžããšãŠãæ°ã«å
¥ã£ãã®ã§ã倧èŠãäœæããŸããã çããã«æ
£ããŠãããããå§ãããŸãã
Alexey Ermishkinã¯ã³ã¡ã³ãã§ã¹ã©ã€ããšãããªã¬ããŒããå
±æããŸããã
ã¢ãã¹ãã©ã¯ã
ãšã³ããªãŒ

ã¿ãªããããã«ã¡ã¯ããã¯ããããããŸãïŒ Highload Conferenceã§ãäŒãã§ããŠããããã§ãã ç§ã®ååã¯Alexey Ermishkinã§ããç§ã¯Virgil Securityã§åããŠããŸãã

ç§ãã¡ã¯ãåã
ã®éçºè
ãšããžãã¹ã®äž¡æ¹ã®ããã«ãããŸããŸãªæå·å補åã®éçºã«åãçµãã§ããŸãã ãšã³ãããŒãšã³ãã®ãœãªã¥ãŒã·ã§ã³ã«çŠç¹ãåœãŠãŠããŸããããã¯ãããŒã¿è»¢éãèªèšŒãªã©ã®ã¢ã¯ã·ã§ã³ãå®è¡ããããã«ãµãŒãã¹ãä¿¡é Œããå¿
èŠããªãå Žåã§ãã SDKã¯ãªãŒãã³ã§ããããã¹ãŠã®ãŠãŒã¶ãŒãã¢ã¯ã»ã¹ã§ããŸãã

ãã¹ã¯ãŒãã¯ãã©ããã«ã¢ã¯ã»ã¹ããæ¹æ³ãšããŠãèªèšŒããŒã«ãšããŠé·ãé䜿çšãããŠããŸããã ããã¯ã³ã³ãã¥ãŒã¿ãŒãç»å Žãããã£ãšåã®ããšã§ãã ããããã³ã³ãã¥ãŒã¿ãŒã®åºçŸãITã·ã¹ãã ã®åºçŸã«ããã人ã
ã¯ãã¹ã¯ãŒãã䜿çšããç¿æ
£ãæŸæ£ããŠããŸããã éçºè
ã«ãšã£ãŠããã¯éåžžã«å€§ããªåé¡ã«ãªããŸãããã·ã¹ãã ã䟿å©ã§é«éãã€å®å
šã«ããæ¹æ³ã®åé¡ã«åºããããããã§ãã å€ãã®å Žåããããã®åŽé¢ã®ãã¡ã®ããã€ããããŸãæ©èœããããšãããšã3çªç®ã®åŽé¢ã¯ããŸãæ©èœããŸããã ã·ã¹ãã ã®çç£æ§ãšå®å
šæ§ãé«ãããšãäžäŸ¿ã«ãªãå¯èœæ§ããããŸãã

ããã§ã¯ã仿¥ã¯äœã«ã€ããŠè©±ããŸããïŒ
ãªãã©ã€ã³æ»æã«å¯Ÿããä¿è·ã«ã€ããŠèª¬æããŸãã ãã¹ã¯ãŒããããŒã¿ããŒã¹ã«å
¥ããšããŠãŒã¶ãŒã¯ãã¹ã¯ãŒããå¶åŸ¡ããŸããã ããŒã¿ããŒã¹ããããã³ã°ãããå Žåãã©ããã§ãªãŒã¯ãããã®åŸããã«ãŒã¯ããã䜿ã£ãŠäœã§ãã§ããŸãã äœããã®æ¹æ³ã§ãã¹ã¯ãŒããä¿è·ããŠããŠãããã¹ã¯ãŒãã®æŽçãéå§ã§ãããã®ããã«ä»ã®äººãšããåãããå¿
èŠã¯ãããŸããã圌ãã¯ãã§ã«ãã®ããã®ãã¹ãŠãæã£ãŠããŸãã ãŸãããŠãŒã¶ãŒã¯åŒ±ããã¹ã¯ãŒãã®äœ¿çšããããŸããã ãã¹ã¯ãŒãããªã·ãŒã¯ãã¡ãã䟿å©ã§ãããåžžã«äŸ¿å©ã§ãããšã¯éããŸããã å
¥åãã人ã§ã匷åãªãã¹ã¯ãŒãã®ããã«æããå Žåã§ããããªã·ãŒã§ã¯æåãæ°åã远å ããå¿
èŠããããšèšãããŠããŸããã圌ãã«ãšã£ãŠã¯äŸ¿å©ã§ã¯ãããŸããã ãŸããåé¡ã¯ãŠãŒã¶ãŒãå
¥åãããã®ãšããŒã¿ããŒã¹ã«ãããã®ãšãæ¯èŒããå¿
èŠãããããšãæããã§ãã å®å
šãªæ¹æ³ã§ãããè¡ãæ¹æ³ã¯ïŒ ãŸããäŒç€Ÿã®äžã«ã¯å®å
šã«å奜çã§ã¯ãªãã圌ããã身ãå®ããã人ãããããšãå¿ããªãã§ãã ããã
ããã·ã¥

ååãšããŠããã¹ã¯ãŒãããããªã«çãäž»é¡ã§ããã®ã¯ãªãã§ããããªããããããæ
éã«æ±ã䟡å€ãããã®ã§ããïŒ åé¡ã¯ããã¹ã¯ãŒãã®ãšã³ããããŒãå°ããããšã§ãã ãšã³ããããŒãšã¯äœã§ããïŒ ããã¯ãããŒã¿ã«å«ãŸããæ
å ±éã§ãã ããšãã°ãHighloadã¯ãŒãã§ã¯8æåã¯8ãã€ãã§ããããšã³ããããŒãèšç®ãããšãã¯ãŒãå
šäœã®ããã«64ãããã§ã¯ãªãã30ãããæªæºã«ãªããŸãã 仿¥ã圌ãã¯ãã¹ã¯ãŒããç Žãããšã«ã€ããŠè©±ããŠãããšãã圌ãã¯ããã®ãããªæéã§ããŸãã¯ããã»ã©å€ãã®ããã以äžã§ããšã³ããããŒã§ãã¹ã¯ãŒããã¯ã©ãã¯ããããšãå¯èœã§ãããšèšããŸãã ã€ãŸã ãã¹ã¯ãŒãã®æ°ãèæ
®ãããŸããã

ãŠãŒã¶ãŒã¯ã©ã®ããã«ãã¹ã¯ãŒãã»ãã¥ãªãã£ãå§ããŸãããïŒ æåã«æãã€ããã®ã¯ãåæ¹åã®æå·åããã·ã¥ã䜿çšããããšã§ããã

圌ãã®æ³šç®ãã¹ãç¹åŸŽã¯ãåŒãè¿ãããšãã§ããªãããšã§ãã ã€ãŸã ãã®ããã·ã¥ã«æ
å ±ã転éããåºåã§å€ãåãåã£ãå Žåããã®å€ãããã®æ
å ±ãååŸããããšã¯ã§ããŸããã ããããæ®å¿µãªããããããã¯éåžžã«è¿
éã«èšç®ãããŸãã ããšãã°ã4æã®NVidiaã°ã©ãã£ãã¯ã«ãŒãã®ææ°ã®ã¯ã©ã¹ã¿ãŒã¯ã1ç§éã«æ°åååã®ãã¹ã¯ãŒããåŠçã§ããŸãã ã€ãŸã ãã¹ã¯ãŒãã®ãšã³ããããŒã40ãããæªæºã®å Žåã4æã®ãããªã«ãŒãã®ã¯ã©ã¹ã¿ãŒã1å以å
ã«ååŸããŸãã
ã¬ã€ã³ããŒããŒãã«

ããã«ãåããªãããŒããã·ã¥ã«ã¯ç¬èªã®ã¬ã€ã³ããŒããŒãã«ããããŸã ã ãã®è¡šã¯äœã§ãã©ã®ããã«äœãããŠããŸããïŒ

ã€ãŸã ããŒããã©ã€ãã«åãŸãæã人æ°ã®ãããã¹ã¯ãŒããšæåã®çµã¿åããã䜿çšãããããã®ããã·ã¥ãèæ
®ããŠãæ°ãã©ãã€ãã®ã¹ãã¬ãŒãžã«è¿œå ããŸãã ããçš®ã®ããã·ã¥ãããå Žåããããèšç®ããããšã¯ã§ããŸãããããããã®ããŒãã«ããéåžžã«é«éã«èŠã€ãã以åã«èšç®ããããã¹ã¯ãŒããšæ¯èŒããŸãã ã€ãŸã ããŒãã«ã®å©ç¹ã¯éåžžã«é«éã«åäœããããšã§ãããããŒãã«ãä¿åããã«ã¯å€ãã®ã¹ããŒã¹ãå¿
èŠã§ãã ããã«ãããããããã€ã³ã¿ãŒãããäžã§æã人æ°ã®ããããã·ã¥ã®ããŒãã«ããããããããããŠã³ããŒããããã賌å
¥ããããšããã§ããŸãã
æŠèŠã®äœè
ã®ã¡ã¢ïŒ ãŠã£ãããã£ã¢ã¯è©±è
ã«åæããŸããïŒãã¬ã€ã³ããŒããŒãã«ã¯ãããŒãã«å
ã®æ€çŽ¢æéãšå æã¡ã¢ãªéã®åççãªåŠ¥åã®ã¡ã«ããºã ã䜿çšããŠæå·ããã·ã¥é¢æ°ãéã«ããããã®æ€çŽ¢ããŒãã«ã®ç¹å¥ãªããŒãžã§ã³ã§ããã ã€ãŸã ãã£ã¹ã¯ã«åãŸãæãäžè¬çãªãã¹ã¯ãŒãã®ããã·ã¥ã¯ä¿åãããŸããããäžéšã®ãã¹ã¯ãŒãã®ããã·ã¥ã®ã¿ãæ®ããæ®ãã¯ååšãããã®ã«åºã¥ããŠèšç®ãããŸããããŒãã«ã«ã¯ã¬ã³ãŒãããšã«è€æ°ã®ãã¹ã¯ãŒãããããŸãã
å¡©

ããããåã³ãåè¹ã®ããŒãã«ã«ã¯ç¬èªã®å¡©ããããŸãã å¡©ãšã¯ïŒ ããã¯ã©ã³ãã ãªãã€ãã®ã»ããã§ããããã¹ã¯ãŒãã«è¿œå ãããŸãã ããã·ã¥ã®è¿ãã®ããŒãã«ã«ä¿åãããã¬ã€ã³ããŒããŒãã«ããä¿è·ããŸãã

ã€ãŸã 塩挬ãããã·ã¥ã䜿çšããŠããŒã¹ã䜿çšãããŠãŒã¶ãŒã¯ããããã®ããã·ã¥ãèšç®ããå¿
èŠããããŸãã ãããåé¡ã¯ããããã®ããã·ã¥ãéåžžã«è¿
éã«èšç®ãããå¡©ãããã§ã¯ããŸã圹ã«ç«ããªãããšã§ãã
æ€çŽ¢ãé
ãããæ¹æ³ã¯ïŒ

ããããã®èªç¶ãªæ¹æ³ã¯ãäœããã®æ¹æ³ã§ããã·ã¥ã®ãœãŒããé
ãããããšã§ãã ãããã©ã®ããã«è¡ãããšãã§ããŸããïŒ

æãåçŽãªã¢ãããŒãã¯ãããšãã°sha256ãªã©ã®ããçš®ã®ããã·ã¥é¢æ°ã䜿çšããŠãå埩çã«èšç®ããããšã§ãã ããã·ã¥ãèšç®ãããã®ããã·ã¥ããå床ããã·ã¥ãèšç®ãããªã©ã ãããäœååãäœçŸäžåãè¡ãããšãã§ããŸãã åé¡ã¯ããã®ãããªå®è£
ãèªåã§èšè¿°ãããšããã¹ã¯ãŒãæšæž¬ã«å°éçã«é¢äžããŠãã人ã
ã®å®è£
ãããé
ããªãå¯èœæ§ãé«ãããšã§ãã

SCrypt ã Bcrypt ã Argon2
ãããã£ãŠãæå·äœæè
ã¯ããã¹ã¯ãŒãæ€çŽ¢ã®é床ãèœãšãããã«ç¹å¥ã«èšèšãããããã€ãã®æ©èœãæãä»ããŸãã-圌ãã¯å€§éã®ã¡ã¢ãªãšãã¹ãŠã®å¯èœãªææ°ã®ããã»ããµåœä»€ã䜿çšããŠããŸãã ãã®ãããªæ©èœã§ä¿è·ããããã¹ã¯ãŒããæ»æè
ã®æã«æž¡ããšãæ»æè
ã¯éåžžã«åŒ·åãªããŒããŠã§ã¢ã䜿çšããå¿
èŠããããŸãã

ããšãã°ãææ°ã®Argon2颿°ã¯æ¬¡ã®ããã«æ©èœããŸããå³ã§ã¯ãããã·ã¥ãå®è¡ãããããŸããŸãªã¡ã¢ãªãããã¯ãããããããããšãããããŸãã 圌ã¯ãããããŸããŸãªæ¹æ³ã§åŸåŸ©ãããã¡ã¢ãªã¯éåžžã«éäžçã«äœ¿çšãããã¡ã¢ãªå
šäœã䜿çšãããŸãã ãã®ãããªæ©èœãæé©åããã®ã¯ããªãå°é£ã§ãïŒæ€çŽ¢é床ïŒã

ãããããããã®ã¢ãããŒãã«ã¯æ¬ ç¹ããããŸãã ãããã®æ©èœã¯ç¹å¥ã«é
ããªããŸãããæ»æè
ã«ãšã£ãŠã ãã§ãªãç¹å¥ã«é
ããªããããªãã«ãšã£ãŠãç¹å¥ã«é
ããªããŸãã 圌ãã¯ããªãã®éãããŒãããŸãã ãããã®æ©èœã¯ã«ã¹ã¿ãã€ãºå¯èœã§ãã 1ã€ã®ãã¹ã¯ãŒãã®ããã·ã¥ãèšç®ããããã«äœ¿çšãããã¡ã¢ãªã®éïŒæå€§æ°ã®ã¬ãã€ãïŒããã®ã¡ã¢ãªã®ãã¹æ°ãéžæã§ããŸãã ãããã®ãã©ã¡ãŒã¿ãŒãéåžžã«çå£ã«å·»ããšãèªåã®ããŒããŠã§ã¢ãèŠãã¿ãã·ã¹ãã ã«å€ãã®äººããã°ã€ã³ããŠããå Žåã¯ããã¹ã¯ãŒãä¿è·ãšåçŽãªãã¹ã¯ãŒãã®ããã«éåžžã«å€ãã®ãªãœãŒã¹ãå²ãåœãŠãå¿
èŠããããŸãã ã
Facebookã®ãã¹ã¯ãŒãOnion

人ã
ã¯ããã«ã€ããŠèãã質åãããŸããïŒããã¯ãšã³ããããŒãããã«ãèªåã®ãµãŒããŒãããŒãããã«åãããããã£ãéæããããšã¯å¯èœã§ããïŒ

ããã®å
é§è
ã®1人ã¯Facebookã§ããã ãããã®è¡ã¯ãFacebookã®æŽå²çãªæ®µéããã¹ã¯ãŒãã®ä¿è·æ¹æ³ãæåã¯åãªããã¹ã¯ãŒãã§ããããé·ãéã¯ã©ãã¯ãããŠããå€ãmd5颿°ãååŸããããã«å¡©ã远å ããŠããã·ã¥sha1ãååŸãããã®åŸçºçããŸããè峿·±ãããšã«ã圌ãã¯hmac颿°ïŒããã¯ããŒãæã€ããã·ã¥ã§ãïŒã®èšç®ããªã¢ãŒããµãŒãã¹ã«ãããããŸããã

ã©ã®ããã«æ©èœããŸããïŒ ããã¯ãšã³ããããããªã¢ãŒããµãŒãã¹ããããŸãã ãã®ãµãŒãã¹ã«ã¯ããçš®ã®ç§å¯éµããããŸãã 人ãããã¯ãšã³ãã«å
¥ãããã¹ã¯ãŒããå
¥åããŸãã ãã®ãã¹ã¯ãŒãã¯ãããŒã¿ããŒã¹å
ã®ãœã«ããšæ··åãããããã·ã¥ãä»ããŠå®è¡ããããµãŒãã¹ã«éä¿¡ãããŸãã ãµãŒãã¹ã¯ç§å¯éµãååŸããhmac颿°ãèšç®ããŠããã¹ãŠãéãè¿ããŸãã ããã¯ãšã³ãã§ã¯ãããŒã¹ã«é
眮ãããŸãã

ããã¯äœãäžããŸããïŒ Facebookã«ãŠãŒã¶ãŒããŒã¿ããŒã¹ãããå Žåããªã¢ãŒãã·ãŒã¯ã¬ããããŒããªãããããã¹ã¯ãŒããäžŠã¹æ¿ãã䟡å€ã¯ãããŸããã ããããFacebookã®ã¢ãããŒãã®åé¡ã¯ããªã¢ãŒãã®ãã©ã€ããŒãããŒã«äœããçºçãããšã倧ããªãã©ãã«ã«é¥ãããšã§ãã ããã·ã¥ã䜿çšããhmacã䜿çšãããããããã§äœãã§ããŸããã ãŠãŒã¶ãŒãäœã«ãæ°ä»ããªãããã«ããã®ç¶æ³ãäœããã®åœ¢ã§è§£æ±ºããæ¹æ³ã¯ãããŸããã
ã¹ãã£ã³ã¯ã¹

æå·äœæè
ã¯ãã¹ãŠãèŠãŸããã 圌ãã¯ããªã¢ãŒããµãŒãã¹ã䜿çšãããšããã¢ã€ãã¢ãæ°ã«å
¥ã£ãŠãããæ¬¡ã®ããã«èããããšã«ããŸããã åæ§ã®ã·ã¹ãã ãäœæããããšã¯å¯èœã§ãããFacebookãæäŸããŠãããã€ãã¹é¢ã¯ãããŸãããïŒ

ãããŠã圌ãã¯æ¬¡ã®ããã«ãã®åé¡ã«åãçµãããšã«æ±ºããŸããïŒãã¹ã¯ãŒããŸãã¯ãã¹ã¯ãŒãããã·ã¥ãæ°åãšããŠè¡šããããªãã°ã©ãã§ããããïŒ passw0rd
ãšããåèªãããå Žåã8ãã€ãã§æ§æãããŠããŸãã ã»ãšãã©ãã¹ãŠã®ããã°ã©ãã³ã°èšèªã«ã¯ã8ãã€ãã®æŽæ°åããããŸãã ååãšããŠãããã¯ãŸã£ããåãã§ãã ã€ãŸã 8ãã€ããåèªpassw0rd
ã§ãéåžžã®10鲿°ãšããŠè¡šãããšãã§ããŸãã ããã«ããäœãåŸãããŸããïŒ ããã«ããããŸã£ããç°ãªãè¡åã®èªç±ãåŸãããŸãã ããããããã¹ã¯ãŒããŸãã¯ããã·ã¥ã远å ããããããä¹ç®ããä»ã®ããã€ãã®æ°åã«å€æããããšãã§ããŸãã ãããã䜿çšããŠãçã«æ¬ââæ Œçãªæ°åŠæŒç®ãå®è¡ã§ããŸãã

ãã®æè¡ã䜿çšããæåã®ã·ã¹ãã ã®1ã€ã¯Sphinxã§ããã åœŒå¥³ã¯æ°å¹Žåã«ç»å ŽããŸããã ããã¯ç¢ºå®çãªãã¹ã¯ãŒããããŒãžã£ãŒã§ãã keepassã®ãããªããŸããŸãªããã°ã©ã ãããããã¹ã¿ãŒãã¹ã¯ãŒããããããµã€ãããšã«ã©ã³ãã ãªãã¹ã¯ãŒããçæããŸãã ãããããã¹ã¿ãŒãã¹ã¯ãŒããè¡ããããµã€ããå
¥åããããã«äœããèšç®ããåãµã€ãã«åºæã®ãã¹ã¯ãŒããçºè¡ããæ±ºå®çãªãã®ããããŸãã ãããããã®ãã¹ã¿ãŒãã¹ã¯ãŒããã©ããã«è¡ããšããµã€ãã®ãã¹ãŠã®ãã¹ã¯ãŒããæ°žä¹
ã«å±éºã«ãããããããšã¯æããã§ãã

Sphinxã¯ãã®åé¡ã«ã©ã®ããã«åãçµã¿ãŸãããïŒ åœŒã¯ãã¹ã¿ãŒãã¹ã¯ãŒããååŸãããã°ã€ã³ããããã¡ã€ã³ãååŸããããã·ã¥å
šäœãå®è¡ãããããæ°åã«å€æããŸãã ããããå®éã«ã¯ãããã§æ¥åæå·æ³ã䜿çšãããŠããŸããç°¡åã«ããããã«ãéåžžã®æ°åŠã§éåžžã®æ°ã§ããããã¹ãŠèª¬æããŸãã 圌ã¯ãããæ°åã«å€ããŠïŒ a
ãšåŒãŒãïŒã次ã«äœãããŸããïŒ

倧ããªä¹±æ°r
çæã§ãããã³ã«ã絶察ã«çŽ æŽãããããšã§ãã æ°å€a
ãr
ã®çޝä¹ã«äžãããã°ãããa
ãããã®æ°å€ãæ°å€r
éã®çޝä¹ã«äžãããšãåãæ°å€a
æ»ããŸããïŒ ã€ãŸã æåããäœãããã¹ã¯ããŠããããã¹ã¯ãè§£é€ã§ããŸãã

ãããŠãã¹ãã£ã³ã¯ã¹ã¯äœãããŸããïŒ ç¹°ãè¿ããŸããããŠãŒã¶ãŒãããŠããªã¢ãŒããµãŒãã¹ããããŸãã ãã¹ã¯ãããçªå·ããã®ãªã¢ãŒããµãŒãã¹ã«éä¿¡ãããŸãã ãªã¢ãŒããµãŒãã¹ã«ã¯ãç§å¯ããŒb
ãŸãã 圌ã¯äœãããŠããŸããïŒ åœŒã¯éä¿¡ãããçªå·a^r
ã«åœŒã®ç§å¯éµb
ãæããŠéãè¿ããŸãã ïŒ èŠçŽã®èè
ã®æ³šèšïŒã¹ã©ã€ãäžã§ãéä¿¡ãããæ°ã¯ç§å¯éµã§ä¹ç®ããããç§å¯éµã®çšåºŠãŸã§äžããããŸãããèŠç¹ã¯ã§ã ïŒã æ°r
æ¯åç°ãªãããããªã¢ãŒããµãŒãã¹ã¯ã©ã®ãã¹ã¯ãŒããšãã¡ã€ã³ããã¹ã¯ããããã«ã€ããŠã¯äœãèšããŸããã 圌ã¯ããã€ãã®ç°ãªãä¹±æ°ãèŠããã³ã«ã ãããŠã圌ã¯åçŽã«èªåã®ç§å¯éµb
ãæããŠéãè¿ããŸãã

ãŠãŒã¶ãŒã¯ãµãŒããŒãéä¿¡ãããã®ã®ãã¹ã¯ãè§£é€ããæ°åãååŸããŸã-ãã¡ã€ã³ãšãµãŒããŒã®ç§å¯éµãæãããã¹ã¿ãŒãã¹ã¯ãŒãa^b
ã 圌ã¯ãµãŒããŒã®ç§å¯éµãç¥ããããµãŒããŒã¯ãŠãŒã¶ãŒã圌ã«éã£ããã®ãç¥ããŸããããæçµçã«ã¯ããçš®ã®æ±ºå®è«çãªæ°ãååŸããŸãã ãã®ãããã³ã«ãå®è¡ãããã³ã«ãå€è£
ã¯ç°ãªããŸãããçµæã¯åžžã«åãã§ããããã®çµæãäœããã®ãã¹ã¯ãŒãã«æ»ããããŸããŸãªãµã€ããžã®å
¥åã«äœ¿çšã§ããŸãã

æ¬åœã«çŽ æŽããããã¯ãããžãŒã ãŸãã倧ããªãã¹ã¯ãŒããçæã§ããŸãã ç Žå£ããä¿è·ããŸãã 第äºã«ãããã«ãŒãè€æ°ã®ãã¹ã¯ãŒãã«ã¢ã¯ã»ã¹ããå Žåãæ®ãã«ã€ããŠã¯äœãèšããŸããã ãããã¯äºãã«ç¬ç«ããŠçæãããŸãã 第äžã«ããŠãŒã¶ãŒã®ãã¹ã¯ãŒããã©ããã«æ¶ããŠããããã«ãŒã¯ç§å¯éµãæããªãããããããäœãæäŸããŸããã 4çªç®ã§ã¯ãéåžžã«è¿
éã«åäœããŸãã ããã§ã¯ãå埩çãªå€§ããªããã·ã¥ã¯å¿
èŠãããŸããã æåéã2-3ã®ä¹ç®ãå®è¡ããããã¹ãŠãå³åº§ã«æ©èœããŸãã
ãããããã®ã·ã¹ãã ã«ã¯æ¬ ç¹ããããŸãã ãŠãŒã¶ãŒã話ããŠãããµãŒããŒã¯ã圌ã«ã€ããŠäœãç¥ããŸããã 圌ã¯åã«å
¥åãšããŠããã€ãã®ä¹±æ°ãåãåãããããã«äœããæããŠéãè¿ããŸãã ãŸããã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã«ã€ããŠäœãç¥ãããã©ããã«äœããéä¿¡ããçµæãåä¿¡ããåäœããŸãã ãããããµãŒãã¹ã«äœããèµ·ãã£ãå ŽåããŠãŒã¶ãŒã¯ããã«ã€ããŠäœãèšãããšãã§ããããã®ããã®æ
å ±ãæã£ãŠããŸããã ç§å¯éµã倿Žããããšã¯ã§ããŸãã;ããã§äœãã§ããŸããã
ããã¢

ãã£ãšããã ãããïŒ

æå·äœæè
ã¯ãã®ã·ã¹ãã ãèŠãŠãã·ã¹ãã ãæ¹åãããšã³ãããŒãšã³ãã®ååã«æºæ ããŠãããšèšãããããªããããã£ã远å ããããšã¯å¯èœã§ããããïŒ ã€ãŸã ã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒãšéä¿¡ã§ããŸãããåæã«èªèšŒãã§ããããçšåºŠãŸã§ä¿¡é Œã§ããŸãã

ãããŠã圌ãã¯PythiaãšåŒã°ãããããã³ã«ãæãã€ããŸããã

ããã¯çŽ æŽããã人ã¢ãã ã»ãšãŽã¡ãŒã¹ããŒãšåœŒã®ååã«ãã£ãŠäœãããŸããã äœããŠããŒã¯ãªã®ã§ããïŒ ãŸãããµãŒãã¹ã¯èª°ããã¹ã¯ãŒããå
¥åããããã€ãŸã ãŠãŒã¶ãŒIDã¯ãã¹ã¯ãŒããéããŠãµãŒããŒã«æž¡ãããŸãã é£ã«ããã©ã³ãã ãªIDããã¯ã¹ããŸãã¯åãªããŠãŒã¶ãŒåã§ãã é¢ä¿ãããŸãã ãããããµãŒãã¹ã¯ãããç¥ã£ãŠããŸãã ãããããµãŒããŒã¯ãã®ããšãã»ãã®å°ãç¥ã£ãŠããã ãã§ãªããããã圌ã§ããããšãæ°åŠçã«å³å¯ã«èšŒæã§ããŸãã

ã©ã®ããã«æ©èœããŸããïŒ ããã¯ãšã³ãïŒäœããã®WebãµãŒãã¹ããµã€ãïŒããããPythiaãµãŒãã¹ããããŸãã ããã¯ãšã³ãã¯äœããããµãŒãã¹ã¯äœãããŸããïŒ ãµãŒãã¹ã«ã¯ç§å¯éµk
ããããŸãããå
¬ééµãããã¯ãšã³ãã«è»¢éããŸãã ãµãŒãã¹ãžã®ããã¯ãšã³ãã¯ãSphinxãããã³ã«ã®å Žåã®ããã«ãã¹ã¯ãããçªå·a^r
éä¿¡ããã ãã§ãªããäœããã®çš®é¡ã®ãŠãŒã¶ãŒèå¥åïŒ UserID
ïŒãéä¿¡ããŸãã ãã®ãµãŒãã¹ã¯ããŠãŒã¶ãŒIDãšãã¹ã¯ãŒãã«ãã®ç§å¯ããŒãä¹ç®ããçµæ(UserID, a)^(r*k)
ãããã¯ãšã³ããéä¿¡ããŸãã ãŸããå¿çãšããŠç¹å®ã®Proof
ãéä¿¡ããŸããããã¯ããããã³ã°ãããŠããªããµãŒããŒããã§ãã¯ããããã«ããã¯ãšã³ãã§äœ¿çšã§ããå¿
èŠã«å¿ããŠå¿çããŠããŸãã

ãã®åŸããã¹ã¯ãè§£é€ãããçµæãšããŠå€æããæ°å€y
ãDBã«æ ŒçŽãããŸãã ããŒã¿ããŒã¹ã«ã¯ãããã·ã¥ã ãã§ãªããæ°åãæ¥åæ²ç·ã®ç¹ããããŸãã

ããã«ã¯ããã€ãã®è峿·±ãç¹ããããŸãã
- ãµãŒããŒããŠãŒã¶ãŒIDãšãã¹ã¯ãŒãã1ã€ã®çªå·ã«çµåããæ©èœã ããã¯ãåç·åœ¢æäœãŸãã¯åç·åœ¢ãã¢ãªã³ã°ãšåŒã°ããŸãã ããã¯æ¯èŒçæ°ããæ°åŠã§ãæè¿äœ¿çšããå§ããŸããã 圌女ã¯ãã¹ãŠãããã§æ£åžžã§ãããšèª°ãã確信ããããã«ã30幎ãçµéããŠããªããšããç¹ã§æ°ããæ°åŠè
ã®ãã¹ãŠã®ç¹æ§ãæã£ãŠããŸãã
- ãããããµãŒãã¹ãéä¿¡ãã
Proof
ã¯ããªãå€ãæè¡ã§ãã ããã¯ãSchnorrãããã³ã«ãšåŒã°ããŸã ã å
¬ééµã®çæã¯ãåºç¹ã«äœããã®ç§å¯éµãä¹ç®ããããšã§ãã Schnorrãããã³ã«ã¯ãå
¬ééµã®çæã«äœ¿çšãããç§å¯éµãããŠãŒã¶ãŒã®ãã¹ã¯ãŒãã«åãæ°åãæããããã«äœ¿çšãããããšã蚌æããŸãã ãã®ãããã³ã«ã¯é·ãéååšããŠãããå€ãã®å Žæã§äœ¿çšãããŠããã蚌æããããšãã§ããŸãã ããã¯ãŒããã«ãŒã蚌æãšåŒã°ããŸã -ãµãŒããŒã¯å
¬ééµã衚瀺ããŸããããç§ãå®è¡ããæäœã¯ãã®ç§å¯éµã«ãã£ãŠå®è¡ããããšèšããŸãã

ãã®ã·ã¹ãã ã®å©ç¹ã¯äœã§ããïŒ

ãããŠåœŒå¥³ã«ã¯å€ãã¯ãããŸããã
- ã·ã¹ãã ã¯ããã¯ãšã³ããããŒãããŸããã ããã¯ãšã³ãã¯ãã¹ãŠãå®è¡ããããããã¹ã¯ãŒããæ°åã«å€æããåœè£
ããŠéä¿¡ããçµæããã¹ã¯è§£é€ããŸãã
- ãã®ãããªçªå·ã®ããŒã¿ããŒã¹ãçãŸããå Žåãç§å¯ããŒããªããšãã¹ã¯ãŒãã®ãœãŒããæå³ããããŸããã
- PythiaãµãŒãã¹ã¯å埩ã®è©Šè¡ããããã¯ã§ããŸããã€ãŸããååãšããŠããã¯ãšã³ãã¯ãããè¡ãå¿
èŠããããŸããã åããŠãŒã¶ãŒIDã®äžã§ããã®å€ææäœãæ°åå®è¡ããããšãããšã圌ã¯åã«ãããåãåããã¬ãŒãå¶éã§ãããã¯ããããšãã§ããŸãã
- å€è£
ã®ãããã§ããµãŒãã¹ã¯ãã¹ã¯ãŒãã«ã€ããŠäœãç¥ããŸããã æ°ããä¹±æ°ã圌ã«éä¿¡ããããã³ã«ã ãŠãŒã¶ãŒIDã®ã¿ãäžå®ã§ãã
- ZKPïŒZero-knowledge proofïŒã®ãããã§ãããã¯ãšã³ãã¯ãããã圌ããã€ãŠæ¥è§ŠãããŸãã«ãã®ãµãŒãã¹ã§ãã£ãããšãåžžã«ç¥ã£ãŠããŸãã
- ããšãã°ãããã·ã¥ãšãœã«ããå«ãããŒã¹ãããå ŽåããŠãŒã¶ãŒåãã«ãã®ãããªãœãªã¥ãŒã·ã§ã³ã«ã·ãŒã ã¬ã¹ã«ç§»è¡ã§ããŸãã 圌ãã¯äœãæ°ã¥ããªããããããŸããã ãŠãŒã¶ãŒã®ãã¹ã¯ãŒãã®ä»£ããã«ãããã·ã¥ãååŸããŠPythiaã«éã蟌ã¿ããã®ãããã³ã«ã䜿çšããŠçªå·
y
ååŸããããŒã¿ããŒã¹ã«å床å
¥åããŸãã ãã®åŸãããã·ã¥ãåé€ã§ããŸãã ãŠãŒã¶ãŒãã·ã¹ãã ã«ãã°ã€ã³ãããã³ã«ããã®ãããã³ã«ãå®è¡ãããçµæãšããŠããã€ãã®çªå·ãååŸãããŸãããã®çªå·ãããŒã¿ããŒã¹ã®å
å®¹ãšæ¯èŒããŸãã èªèšŒã·ã¹ãã èªäœã¯ã次ã®ããã«å€æŽãããŸããã ãŠãŒã¶ãŒã¯ãåããã¹ã¯ãŒãïŒåŒ±ããã¹ã¯ãŒãã§ãïŒã§ä»¥åã«ãã°ã€ã³ããŠãã°ã€ã³ããŸãã ãã®å Žåãã·ã¹ãã ã¯ã¯ããã«å®å
šã«ãªããŸãã

ãããããããã¯ãã¹ãŠã®å©ç¹ã§ã¯ãããŸããã

äž»ãªæ©èœã®1ã€ã¯ãPythiaãµãŒãã¹ããããã³ã°ãããå Žåã§ããæ°ããç§å¯éµãçæã§ããããšã§ãã ããŒã¿ããŒã¹ã«ã¯ãããã·ã¥ã§ã¯ãªãæ°å€ãä¿åãããŸãã å€ãããŒãæ°å€k
ã§è¡šããæ°ããããŒãæ°å€k'
ã§è¡šããšãæŽæ°ããŒã¯ã³ãšåŒã°ããæ°å€ãèšç®ã§ããŸãã ãããè¡ãã«ã¯ãæ°ããæ°ã«å€ãæ°ã®éæ°ãæããŸãã ãŸãããã®æŽæ°ããŒã¯ã³ã䜿çšãããšãåãŠãŒã¶ãŒã®ããŒã¿ããŒã¹ã調ã¹ãŠããã®æ°åy
ã«æŽæ°ããŒã¯ã³ãæããããšãã§ããŸãã ãããè¡ã£ãåŸãã·ã¹ãã ã¯ãªã¢ãŒããµãŒãã¹ã®æ°ããç§å¯ããŒã§åŒãç¶ãåäœããŸãã ããã¯ãã¹ãŠç¬æã«èµ·ãããŸãã çœå®³ãçºçãããšããã¹ã¯ãŒãããŒã¿ããŒã¹ãçãŸããæãã¯ãªãã¯ããã ãã§æŽæ°ããŒã¯ã³ããªãªãŒã¹ããããã«ãŒãããªãããçãã ãšããäºå®ãå³åº§ã«åœ¹ã«ç«ããªããªããŸãã ããã¯ã°ã©ãŠã³ãã§ãã¹ãŠã®ã¬ã³ãŒããéãã«æ©ãåã£ãп޿°ããã ãã§ãæ°ããã·ãŒã¯ã¬ããããŒã§åäœããŸãã éåžžããŠãŒã¶ãŒã¯äœãæ°ã¥ããŸããã ã€ãŸã ãã¹ã¯ãŒãããŒã¿ããŒã¹ã®ã·ãŒã ã¬ã¹ãªæŽæ°ãšå³æã®ç¡å¹åã¯ããã®ã·ã¹ãã ã®éèŠãªé©æ°çãªæ©èœã®äžéšã§ãã

ããããããã ãã§ã¯ãããŸããã

åºåºã«ããæ°ã¯y
ã倧ãããååãšããŠå€§ããããããæ¬äŒŒã©ã³ãã ã«èŠããŸãã æŸããªãã®ã¯ãšãŠãç°¡åã§ãã ããã¯ãšã³ãã«ããæ©èœãããšãã°ã¯ã©ã€ã¢ã³ãããã€ã¹ãé»è©±ã«è»¢éããå Žåããã®y
ã䜿çšããŠããŒãçæã§ããŸãã ãã®ããšãBrainKeyãšåŒã³ãŸããã ããã¯ããŠãŒã¶ãŒãé»è©±ã®ã©ããã«ãã¹ã¯ãŒããå
¥åãããããåœè£
ãããªã¢ãŒããµãŒãã¹ã«éä¿¡ããããšãæå³ããŸãã ãµãŒãã¹ã¯ç¹å®ã®æ°y
è¿ãããã®y
ã䜿çšããŠé察称ããŒãçæã§ããŸãã ãããã£ãŠããŠãŒã¶ãŒã¯èªåã®ãã¹ã¯ãŒãããããŒãã¢ãååŸã§ããŸãã ããã¯ããã¹ãŠã®çš®é¡ã®BrainWalletsã§äœ¿çšãããŸãã ããã¯ããã¹ã¯ãŒããå
¥åãããã®ããã«çæããããããã³ã€ã³ãŠã©ã¬ãããååŸãããšãã§ãã ãã ãããã®ã¢ããªã±ãŒã·ã§ã³ã¯æå·é貚ã«éå®ããããããžã¿ã«çœ²åãäžéšã®ããã¯ã¢ãããããã³ã¢ã«ãŠã³ãã®å埩ãã€ãŸã é察称ããŒãå¿
èŠãªé察称æå·ã䜿çšãããå Žæã ãããã¯ãã¹ãŠäœ¿çšã§ããŸãããåæã«ããŒãã¢ã䜿çšããå¿
èŠã«å¿ããŠå¿
èŠãªæ°ã ãçæã§ããŸãã ãããã£ãŠããããã¯ãã¹ãŠãŠãŒã¶ãŒã®ãã¹ã¯ãŒãã«äŸåããããã¯éåžžã«äŸ¿å©ã§ãã

èèã®æšœã®äžã§ã¯ãè»èã«ããšããªãããã§ã¯ãããŸããã

ãããŠããã®æè¡ã®ç¹åŸŽã¯éåžžã«æ°ããããšã§ãã åç·åœ¢æäœïŒ BLS12-381 ïŒçšã®æ¥åæ²ç·ã䜿çšããŸãã æ°åŠèªäœã¯ä»¥åããååšããŠããŸããããç¹ã«å®è£
ã§äœ¿çšããããã®ç¹å®ã®æ²ç·ã¯ãç§ãã¡ä»¥å€ã®ZCashã§ã®ã¿äœ¿çšãããŸãã ãããã£ãŠããã®æ°ããæ°åŠã䜿çšããã©ã€ãã©ãªã¯ãçæã§æ°ããããšãã§ããŸãã ãããéçšç¶æ
ã«ããã«ã¯ãããçšåºŠã®æéãšåŽåãè²»ããå¿
èŠããããŸãã ããã«ãããããããæ¥çã¯æ¢ãŸã£ãŠãããããããã®æ¬ ç¹ã¯ãã¹ãŠäžæçãªãã®ã§ãã æåã®2ã€ã®ç¹æ§ã®çµæãšããŠããããã®åäžæ¬¡æäœã®é床ã¯çŸä»£ã®æ°åŠãç¹ã«æ¥å圢ã«ããŸãäžèŽããŠããŸãããããã¯ãTLSãããã³ã«ã䜿çšãããšããããã€ãã®ãµã€ãã䜿çšãããšãã«çŸåšäœ¿çšãããŠããŸãã ããã¯ã1ã€ã®ã³ã¢äžã®ãµãŒãã¹ã§ã®æ°çŸã®æäœã«çžåœããŸãã å®éãããã¯ç§ãã¡ãæ¢ãããã®ã§ã¯ãªããæ¥ã«ãã®ãããã³ã«ãå®è£
ãã æ¬çªç°å¢ã§ãªãªãŒã¹ãããã¹ãŠã®èšé²ã翻蚳ãããã®ãããã³ã«ã䜿çšããŠããããä¿è·ããŸããã ååãšããŠãçŸåšã®ã¿ã¹ã¯ã®ããã©ãŒãã³ã¹ã«æºè¶³ããŠããŸããå¿
èŠã«å¿ããŠãPythiaãµãŒãã¹ã䜿çšããŠå¥ã®ããŒããäœæããŸããååãšããŠãããããã¹ãŠãæ¢ã«å®è¡ã§ããŸãã
PHE

ããããããã«æ¹åã§ãããã©ãããèããŸãããïŒ æšæ¥ã®æ°åŠã䜿çšããŠãPythiaãæäŸããç¹æ§ãéæããããšã¯å¯èœã§ããïŒ ææ¥ã§ã仿¥ã§ããæšæ¥ã§ãããé·å¹Žäœ¿çšãããŠããŸããã

ãããŠä»å¹Žã®7æãç§åŠè
ãã¡ã¯Simple Password-Hardened Encryption ServicesïŒç¥ããŠPHEïŒãšåŒã°ããæ°ãããããã³ã«ããªãªãŒã¹ããŸããã

ããã¯ãšãŒãããã®ç§åŠè
ã§ããã©ãã»ã«ã»ã©ã€ã§ãã
ãã®ãµãŒãã¹ã®å©ç¹ã¯äœã§ããïŒ ãŸããæšæºã®P-256æ²ç·ã䜿çšããŸããããã¯ããã¹ãŠã®ãã©ãŠã¶ãŒã補åãã©ãã§ã䜿çšãããŠãããé·å¹Žäœ¿çšãããŠããããã©ã«ãã®æ²ç·ã§ãã 第äºã«ããã®ããšã¯PythiaãããçŽ10åéãåäœããæšæºããªããã£ãã䜿çšããŸãã ã¡ãã£ãšé£ããã§ãããçè§£ã§ããªãã©ã€ãã©ãªã䜿ããã«èªåã§å®è£
ã§ããŸãã OpenSSLãŸãã¯Bouncy Castleã䜿çšã§ããŸãã

ãã ããåäœã¯å°ãç°ãªããŸãã åã³ããã¯ãšã³ãããããPHEãµãŒãã¹ããããŸãã ããã¯ãšã³ãã«ã¯å
¬éããŒãããããµãŒãã¹ã«ã¯ç§å¯ããŒy
ãŸãã Pythiaãšã¯ç°ãªããç»é²ããã»ã¹ãšãã¹ã¯ãŒãæ€èšŒããã»ã¹ã¯å°ãç°ãªããŸãã æ°ãããŠãŒã¶ãŒããµãŒãã¹ã«ã¢ã¯ã»ã¹ããŠç»é²ãããå Žåãããã¯ãšã³ãã¯äœãããŸããïŒ åœŒã¯æåããPHEãµãŒãã¹ã«å°ããŸãããç»é²ã«äœ¿çšã§ããããŒã¿ãç»é²ã¬ã³ãŒããæããŠãã ããã ãµãŒãã¹ã¯OKãšèšã£ãŠã次ã®ããšã§ããã¯ãšã³ãã«å¿çããŸãã ã©ã³ãã ãª32ãã€ãã®ãœã«ãïŒ sNonce
ïŒãçæããŸãã ãã®ãœã«ããšãã®ç§å¯ããŒyã«åºã¥ããŠã2ã€ã®æ°å€ãçæããŸããããããC0
ããã³C1
ãšåŒã³ãŸãããã ãŸããSchnorrãããã³ã«ïŒä»¥åã®ãããã³ã«ãšåæ§ïŒã䜿çšããŠããã©ã€ããŒãããŒy
ã䜿çšããŠããã2ã€ã®æ°å€ãŸãã¯2ãã€ã³ããæ£ç¢ºã«çæããããšãã蚌æ ïŒ Proof
ïŒãçæããŸãã ããã¯ãšã³ãã¯Proof
ãã§ãã¯ããŸãã ããã«ã¯ãŸã ãã¹ã¯ãŒãããããŸããã ããã¯ãšã³ãã¯äœãããŸããïŒ ãŸãã圌ã¯èªåã®å人ã¯ã©ã€ã¢ã³ãã®ç§å¯éµx
ãæã¡ããŠãŒã¶ãŒãããã¹ã¯ãŒããåãåã£ãåŸããµãŒãã¹ãšã»ãŒåãããã«ãããã«ãã¹ã¯ãŒãã远å ããã ãã§ãã ã©ã³ãã ãªcNonce
ïŒã©ã³ãã ãªã¯ã©ã€ã¢ã³ããœã«ãïŒããã¹ã¯ãŒããHC0
ãåã³2ã€ã®æ°åHC0
ãšHC1
çæããŸãã ãªã2ã§ããïŒ æåã®HC0
èªèšŒã«äœ¿çšããã2çªç®ã®æ°åHC1
ãä¹±æ°M
ã«ç§å¯éµx
ïŒ MC
ïŒãæãåããããã®ã§ããããã§ãã æ°å€M
ããµã€ãºã32ãã€ãã§ãåŸã§ãŠãŒã¶ãŒããŒã¿ã®æå·åã«äœ¿çšã§ããŸãïŒæå·åãµãŒãã¹ããããŸãïŒïŒ ã¡ã¢ã®äœæè
ã«ããã¡ã¢ïŒãã®å Žåã®æå·åããŒã¯MC
ïŒã MC
çªå·ã¯ããŠãŒã¶ãŒãæ£ãããã¹ã¯ãŒããå
¥åããåŸã«ã®ã¿ããŒãšããŠäœ¿çšã§ããŸãã ç»é²æ®µéã§ã¯ãèªèšŒã¬ã³ãŒãã ãã§ãªãããŠãŒã¶ãŒããšã«äžæã®æå·åããŒãçæã§ããŸãããã®æå·åããŒã䜿çšããŠããããã¡ã€ã«ãäžéšã®ããŒã¿ãªã©ãæå·åã§ããŸãã ãã®åŸãããã¯ãšã³ãã¯ãµãŒãã¹ãéä¿¡ãããã®ãšå®è¡ãããã®ãåçŽã«å ç®ããŸã-ãããã®ãã€ã³ããå ç®ããŠT0
ãšT1
ãååŸããŸãã æåã®ã±ãŒã¹ã§ã¯2ã€ïŒ C0 + HC0
ïŒã2ã€ç®ã¯3ã€ïŒ C1 + HC1 + MC
ïŒã«ãªããŸãã ãããŠããããã®æ°åãåŸãããå©ããšãåèšã®çµæãšããŠå€æãã2ã€ã®æ°åïŒ T0
ãšT1
ïŒãsNonce
ãå¡©åº2ã®å¡©ïŒ sNonce
ã cNonce
ïŒãå
¥ããŸãã

ãããã£ãŠããŠãŒã¶ãŒèªèšŒããã»ã¹ã¯éã®é åºã§è¡ãããŸãã ãŠãŒã¶ãŒã¯ããã¯ãšã³ãã§ãã¹ã¯ãŒããå
¥åããŸãã ããã¯ãšã³ãã¯HC0
ãèšç®ããããŒã¿ããŒã¹å
ã«ãããã®ããT0
ããHC0
ãæžç®ããçµæã®C0
ããµãŒããŒãœã«ããšãšãã«ãµãŒãã¹ã«éä¿¡ããŸãã ãµãŒããŒãœã«ããç¥ã£ãŠãããµãŒãã¹ã¯ãããèªäœã§åããã€ã³ããèšç®ããããã¯ãšã³ããéä¿¡ãããã©ãããç
§åããäžèŽããå Žåã¯ãã¹ã¯ãŒããæ£ãããããçªå·ããHC1
äžç·ã«æžç®ãã2çªç®ã®æ°åC1
ã§çããããšãã§ããŸãT1
ããã³æå·åããŒãååŸããŸãã ãããã£ãŠãPHEãµãŒãã¹ã®ãã¹ã¯ãŒãã¯ãªããªããŸããã 圌ã¯ããã¯ãšã³ããããé¢ããŸããã ããã¯ãããã¯ãšã³ãã®ç§å¯éµã§ä¹ç®ãããããã€ãã®ãã€ã³ãã®åœ¢åŒã§ãã ããèªäœã¯ååšããŸããããåæã«ããªã¢ãŒããµãŒãã¹ã¯ãã®ãã¹ã¯ãŒããæ£ãããã©ããã«ã€ããŠå³å¯ãªçµè«ãäžãããã©ã€ããŒãããŒy
ã䜿çšããŠãã¹ãŠã®èšç®ãå®è¡ããããšã蚌æã§ããŸãã

ãã®ã·ã¹ãã ã«ã¯ã©ã®ãããªæ©èœããããŸããïŒ

ç§ãèšã£ãããã«ããã¹ã¯ãŒãã¯ããã¯ãšã³ããé¢ããŸããã ãã ããPythiaãšã¯ç°ãªããããã¯ãšã³ãã«ç§å¯ããŒãå¿
èŠã§ãã ããå¿
èŠã§ãããã©ããã«ä¿åããŠãã ããã PHEã«ã¯ãPythiaã®ãã¹ãŠã®åºæ¬æ©èœããããŸãã
- ç§å¯éµã§äœããèµ·ãã£ãå ŽåãæŽæ°ããŒã¯ã³ãçºè¡ããããšãã§ããŸãã
- ãŸããããŒã¿ããŒã¹å
šäœã調ã¹ãп޿°ããããšãã§ããŸãã
- æ€çŽ¢ä¿è·;
- ãµãŒãã¹ã¯ãã¹ã¯ãŒãã«ã€ããŠäœãç¥ããŸããã
- (Pythia , , , , PHE );
- .

...

⊠. . passw0rd.io . password , 18- , , zero trust, .. . , , .. Let's encrypt . , . CLI , . 2 SDK , GO .Net, .

:
- .
- .
- .

, .
?
37. ?

.
Q: , ! . , Pythia update token, ? private key . update token? ãã©ããïŒ
A: , update token- .
Q: . - update token-, Private key ?
A: , update token-, , - , , , update token. , .. .
Q: , , , .
A: .. .
Q: , , , - Pythia - , , , ?
A: .
Q: ?
A: , Pythia . ã€ãŸã , .
Q: ( ) bcrypt ?
A: , , , .
Q: , . ? , âŠ
A: password
Q: password ? ãã¡ã€ã¢ãŒïŒ äžè¬çã«ã
A: 123456 , 12345, 123456.
Q: . Pythia , PHE .
A: , .
Q: . . ? production ?
A: . ãïŒ Pythia.
Q: Pythia, , ?
A: .
Q: , ?
A: .
Q: , , !
A: SDK, .
Q: , , , , .. - , ? ? ?
A: , , , .. PHE, , 5 2 , 2 5 . , . PHE ( , ), , 10 , .
Q: .. - , - ? ?
A: . rate limiting, , .
Q: .. , ?
A: .
Q: . , .. Pythia (), , ? ?
A: , , .
Q: , update ?
A: , Pythia , , - - , , , )
A: ? ! 楜ããã§ããã ããŸããã§ããããã , , PHE, , .
çµè«
PHE ( ) + â ( , , ) ( ). PHE , .
:
, .
Scratch Virgil Security , , !
( )?
UPD : Scratch . . , . .