DarkJPEGãããžã§ã¯ãã®äžç°ãšããŠãJPEGç»åå
ã®ç¥èŠã§ããªããã€ãºã®åœ¢åŒã§æ©å¯æ
å ±ãé ãããšãã§ããæ°äžä»£ã®ã¹ãã¬ãã°ã©ãã£WebãµãŒãã¹ãéçºãããŸããããšã³ã³ãŒãäžã«æå®ãããç§å¯ããŒãã¹ã¯ãŒããç¥ã£ãŠããå Žåã«ã®ã¿ããã®æ
å ±ãéžæã§ããŸãã
ãã®ãããžã§ã¯ãã¯ãã¡ãã£ã¢ã®æ€é²ãå°å
¥ããããæå·ã®äœ¿çšãæ³çã«çŠæ¢ããããšã«ããã人暩ã䟵害ããåœã®äººã
ã«ããæ
å ±ã®èªç±ãå®çŸããããã«èšèšãããŠããŸãã
ãã®ãµãŒãã¹ã§ã¯ãæ°žç¶çãªã¹ãã¬ãã°ã©ãã£æ³ã䜿çšããŠãæ
å ±é èœã®äºå®ãšæ°žç¶çãªæå·æ³ãé ãããªãŒãã³ãã£ãã«ãä»ããŠéä¿¡ãããããŒã¿ã䟵害ããä¿è·ããŸãïŒæš©éã®ãªã人ã«ããã¢ã¯ã»ã¹ã®äºå®ïŒã ãããžã§ã¯ãã®ãœãŒã¹ã³ãŒãã¯ãMITã©ã€ã»ã³ã¹ã®äžã§é
åžãããŸãã
äž»ãªæ©èœïŒ
- SHA-3ã䜿çšããŠããŒãçæããŸãã
- 察称æå·åAES-256;
- JPEGïŒDCT LSBïŒã¹ãã¬ãã°ã©ãã£;
- RarJPEGããã³ããã«ãã€ãã£ã³ã°ã®ãµããŒãã
- ã©ã³ãã ã³ã³ããã®éžæã
- ãµãŒããŒãé¢äžããªãèšç®ã
- å®å
šãªæ©å¯æ§ä¿èšŒã
ã€ã³ãã
ã¹ãã¬ãã°ã©ãã£ãŒã¯ãæ
å ±äŒéã®é ãããäŒéã®ç§åŠã§ãã éåžžãã¡ãã»ãŒãžã¯ãç»åãèšäºãæçŽãªã©ãä»ã®äœãã®ããã«èŠããŸãã éåžžãã¹ãã¬ãã°ã©ãã£ã¯æå·åæ¹åŒãšçµã¿åãããŠäœ¿çšââãããããããããè£å®ããŸãã çŽç²ãªæå·åã«å¯Ÿããã¹ãã¬ãã°ã©ãã£ã®å©ç¹ã¯ãã¡ãã»ãŒãžã泚ç®ãããªãããšã§ãã æå·åãé ãããŠããªãã¡ãã»ãŒãžã¯çããããæå·åãçŠæ¢ãããŠããåœã§ã¯ããèªäœãæ害ã§ããå¯èœæ§ããããŸãã ãããã£ãŠãæå·åã¯ã¡ãã»ãŒãžã®å
容ãä¿è·ããã¹ãã¬ãã°ã©ãã£ã¯é ãããã¡ãã»ãŒãžã®ååšãã®ãã®ãä¿è·ããŸãã
ããããã¹ãŠå§ãŸã£ãæ¹æ³
æé ãªäŸ¡æ Œãé«éããã©ã€ããŒãããããŠæãéèŠãªãå®å
šã«ç¡æã®ã¹ãã¬ãã°ã©ãã£ãã¯WebãµãŒãã¹ãäœæãããšããã¢ã€ãã¢ã¯ã1ãæã»ã©åã«èšªããŸããã ãã®ïŒã ãã§ãªãïŒåœã§æ¥ãã§æ¡çšãããããã€ãã®é¢çœãæ³åŸã«é¢é£ããŠãç§ã¯äœãšãã²ã©ãééã£ãŠããŠããã¹ãŠã®äººãèªç±ã«ïŒäœããã£ãŠãïŒæ
å ±ãèªç±ã«äº€æã§ããã¹ãã ãšããèãã«æéãåããŸãã/ãŸãã¯ä»ã®äººãšã®ä¿è·ãããŠããªãéä¿¡ãã£ãã«ãããã³gpgæå·åã®æ©èœãå匷ããããã¹ãã°ãã€ããªã©ã®ãŠãŒãã£ãªãã£ããã»ãããå¹ãé£ã°ãããããããšãªãããã¹ãŠãã¯ãã¹ãã©ãããã©ãŒã ã§ãæ¬åœã«äœ¿ããããããä»ãããã§ã ã ãããããç§ã¯ãã®ãããªãµãŒãã¹ãããã ã®æ¥œãã¿ã®ããã«ããã®ããã«äœããšããã¢ã€ãã¢ãåŸãŸããã ãããŠãããããã®ãããªãµãŒãã¹ãäœæããã®ã¯ç§ã®æåã®çµéšã§ãããã€ã³ã¿ãŒãã§ãŒã¹èšèšè
ã¯ç§ããããã»ã©ç±ãã¯ãããŸããããä»äºã®åŸã®å€æ¹ã«3é±éã®ãšããµã€ãã£ã³ã°ãªéçºã®ããã«ããã¹ãŠãããŸããã£ãããã§ãã ãããããã¹ãŠã«ã€ããŠé çªã«è©±ããŸãããã
æ¹æ³
æåã«ãã¹ãã¬ãã°ã©ãã£ã®äžè¬çãªæ¹æ³ããã®å®è£
æ©èœãåæãããã³æ€åºãæããã«ããçŽ12ã®ç§åŠèšäºã調æ»ãããŸããã ã€ã³ã¿ãŒãããäžã®ã³ã³ãã³ãã®æãäžè¬çãªã¿ã€ããšããŠãJPEGç»åãã³ã³ãããšããŠäœ¿çšããããšã決å®ãããŸããã å€æããããã«ãããã€ãã®æ¹æ³ã¯éæšæºã®éååè¡åã䜿çšããŠéåžžã«ç°¡åã«èªåèªèº«ãæŸæ£ããä»ã®æ¹æ³ã¯ãã¹ãã°ã©ã ãã¹ãã«åæ ŒããŸããã3çªç®ã¯ã³ã³ãããµã€ãºã®çŽ9-13ïŒ
ã®æçšãªããªã¥ãŒã ãäžããŸããã€ãŸãã500Kbã®æçšãªæ
å ±ãé ãããå Žåãã³ã³ããã¯å°ãªããšã5MBã®ãµã€ãºãèŠãŠãã ãããããã¯ããªãæ²ããããšã§ãã
ãã®çµæãããªãæ°ããF5ã¹ãã¬ãã°ã©ãã£æ³ã®åäœåçãæ€èšããéåå誀差ã«åºã¥ããŠãåçŽã§å¹³å¡ãªLSBïŒæäžäœãããïŒã䜿çšããããšã決å®ããŸãããåºåã«ãããã®æ¬äŒŒã©ã³ãã ã·ãŒã±ã³ã¹ãäžããŸããããã¯ãF5ã§ããŒã¿ãããã¯ã®ã©ã³ãã é åã«ãã£ãŠå®çŸããããã®ã§ãã ãããã£ãŠãããã«ã¡ãœããã®æäœã®æŠç¥å³ããããŸãã
- ãŠãŒã¶ãŒãå
¥åãããã¹ã¯ãŒãã®256ãããSHA-3ããã·ã¥é+ã©ã³ãã ã«çæããããœã«ããååŸããŸãã
- AES-256ã䜿çšããŠããŒã¿+ããããŒïŒæ·»ä»ãããã¡ã€ã«ã®çœ²åãååããµã€ãºïŒãæå·åããå
é ã«ãœã«ããè¿œå ããæåŸã«0xFFD9-JPEGç»åã®çµããããŒã«ãŒãè¿œå ããŸãïŒããã¯å°ãäœããªããŸãïŒã
- ããŒã¿ã®ãµã€ãºã«é©ããã³ã³ãããéžæããRGBããYCbCrã«è²ãå€æããŸãã
- 8x8ãã¯ã»ã«ã®åãããã¯ã§ãé¢æ£ã³ãµã€ã³å€æãçæããŸãã
- åéãŒãä¿æ°ã®æåŸã®2ãããã«ãåŸã
ã«ããŒã¿ãæžã蟌ã¿ãŸãã
- ä¿æ°ã¯ãã·ãªãŒãºã³ãŒãã£ã³ã°ãšãããã³ã³ãŒãã䜿çšããŠå§çž®ãããŸãã
ã芧ã®ãšãããJPEGã³ãŒãã£ã³ã°ã®ããã»ã¹ã§ã¯ãä¿æ°ãéååããã¹ãããã¯é©åãªè¡åã䜿çšããŠã¹ãããããã1ã€ã ãããã¡ã€ã«ã«æžã蟌ãŸããŸããããã«ããã100ïŒ
ã®å質ã§ç»åå§çž®ãã·ãã¥ã¬ãŒãããŸããäžæ¹ããã®ãããªåäœéååãããªãã¯ã¹ã¯çããããšã§ã¯ãªããããããŒã¿ã®ããªã¥ãŒã ïŒã¯ãçããæžãããŸãã ãã£ãïŒ ãã¹ãŠãããŸããããŸããïŒ çµæã®ãã¡ã€ã«ã¯ãããªã¥ãŒã ã®çŽ20ïŒ
ãããŒã¿ã§å ããããŠããå®å
šã«æå¹ãªJPEGã§ããããŠãŒã¶ãŒã«å®å
šã«æäŸããŸãã ãã³ãŒãã¯ãåæ§ã®éã¹ããŒã ã«åŸã£ãŠå®è¡ãããŸãã
æ¥çãšRarJPEG
å®éããã®ãããªæ¹æ³ã¯éåžžã«åé·ã§ããããšãå€æããŸãããå®éã«ã¯ãJPEGãã¡ã€ã«ã®æåŸã«æå·åãããããŒã¿ãéåžžè¿œå ããã ãã§ååã§ãã ããã¯ãç»åã®æåŸã®åœã®ããŒã«ãŒã䟿å©ãªå Žæã§ããæåã§è¿œå ããŸã-æ¥çãããå°Ÿããçããå°ãªããšããããã«åãé€ããŸãã ãã¡ã€ã«ãé£çµãããšãRarJPEGã®äœæãšåŠçãªã©ã®æ¥œããæ©äŒãåŸãããŸã.ZIPãŸãã¯RARãã¡ã€ã«ã貌ãä»ããŠã空ã®ãã¹ã¯ãŒãã§æå·åæé ãã¹ãããããã ãã§ãã»ãšãã©ã®ã¢ãŒã«ã€ããŒã§çµæã®ç»åãéããšãé ãããã³ã³ãã³ãã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããŸãïŒãããããã®åçã¯ãŸã æå¹ãªJPEGã§ãïŒïŒ
çµæã¯äœã§ãã
ãããã£ãŠãã¹ãã¬ãã°ã©ãã£ã«ã¯ãèªåãåå ãããã³ã¹ãã°ã®3ã€ã®ãªãã·ã§ã³ããããŸãã ããã©ã«ãã§ã¯ãautoïŒç§ã決å®ããŸããïŒã¯joinã䜿çšããŠãšã³ã³ãŒããããã¡ã€ã«ãïŒå¿
ãããã¢ãŒã«ã€ããšäžç·ã«-äœã§ãïŒæ¥çããŸãããå¯äžã®éãã¯joinã§ã®ã¿ç©ºã®ãã¹ã¯ãŒãã䜿çšããŠRarJPEGãäœæã§ããããšãšãautoãšstegãçç±ã«ãããŸãã»ãã¥ãªãã£ãªãã ãã1ã€æ³šæãå¿
èŠãªãªãã·ã§ã³ããããŸããstegã¡ãœããã䜿çšããŠãã¡ã€ã«ãã³ã³ããã«ãšã³ã³ãŒãããjoinã¡ãœããã䜿çšããŠãã¡ã€ã«ã«æ·»ä»ããããšãã§ããŸããããã«ãããstegéšåãæãªãããšãªããå£ã«æŒãä»ãããå Žåã«ãjoinéšåã®ãã¹ã¯ãŒããçºè¡ã§ããŸã- ãäºéåºããåãããã®ãããªã³ã³ãããå€æããŸãã ã¡ãªã¿ã«ãç»åãäœããã®æ¹æ³ã§å€æŽãããå ŽåïŒããªãã³ã°ããã³ããªã©ïŒãå®çŸ©äžãæ®å¿µãªããã¹ãã¬ãã°ã©ãã£ã¯åç¶ããŸãããJPEGã¯å質ãæãªãå§çž®åœ¢åŒã§ãã
ã³ã³ãã
ã³ã³ããã«é¢ããŠã¯ãrandãgradãããã³imageã®3ã€ã®ãªãã·ã§ã³ããããŸãã ããããããã§ã¯ãã¹ãŠãã¯ããã«ç°¡åã§ãïŒããã©ã«ãã®ã©ã³ãã¯ãŠã£ãã¡ãã£ã¢ããã©ã³ãã ãªç»åãããŠã³ããŒãããæåã®æ¹æ³ãäžå¯èœã§ããããã«gradã䜿çšãããŸãïŒããšãã°ãã€ã³ã¿ãŒãããããªãå ŽåãããŒã¿éã倧ããããå ŽåïŒãç»åã¯ãŠãŒã¶ãŒãã³ã³ããçšã«ç¬èªã®ç»åãéžæã§ããããã«ããŸã å®å
šã§ãªããªãã·ã§ã³ããããŸããã¡ã¢ãªäžè¶³ã®ããã«åŒ±ãã³ã³ãã¥ãŒã¿ãŒã®ææè
ã ãã«æå¹ã«ããããšããå§ãããŸããããããŸã§ã¯åãã»ãã¥ãªãã£äžã®çç±ã§äœ¿çšããããšã¯ãå§ãããŸããã
å®ç§çŸ©å
æãèå³æ·±ããæãç©è°ãããããŠããéšåãæ©å¯æ§ãšå¿åæ§ã«ç§»ããŸãããã äžè¬çã«èšã£ãŠã1ã€ã®æã®ãWebãµãŒãã¹ããšããã©ã€ãã·ãŒããšããè¡šçŸã¯ãæ§ããã«èšã£ãŠãããªãå¥åŠã«èãããŸãã å®éããã¹ãŠãããã»ã©æªãã¯ãããŸããã ãã¹ãŠã®ãµãŒãã¹ã³ãŒãã¯ã¯ã©ã€ã¢ã³ãäžã§æä»çã«å®è¡ããããã¹ãŠã®èšç®ã¯ãã©ãŠã¶ã®éããŠããã¿ãããã¯ããŒã«ãããŸããããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã«é¢ããæ
å ±ã¯è¿œè·¡ããã£ãã·ã¥ãä¿åãèšé²ããããã©ãã«ãéä¿¡ãããŸããã ããã«ããã®æäœã®ããã«ãWebãµãŒããŒãæŠããŠå¿
èŠãããŸãããWebãµãŒããŒãã€ã³ã¹ããŒã«ããã«ããããžã§ã¯ãããã£ã¹ã¯ã«ä¿åïŒãŸãã¯ãªããžããªã®ã¯ããŒã³ïŒãããã®ããã«index.htmlãéãã ãã§ãã å¯äžã®ããšã¯ããªãã·ã§ã³ã®-allow-file-access-from-files -disable-web-securityã䜿çšããŠãã¯ãã ïŒãŸãã¯ã¯ãã ãšãã®æŽŸçç©ïŒãèµ·åãããšã³ã³ãŒãäžã«ããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ã«ã¢ã¯ã»ã¹ãããã³ãŒãäžã«ã¯ãã¹ãã¡ã€ã³ããŠã³ããŒããåç
§ããå¿
èŠãããããšã§ãã
ãã¡ãããGitHubããããã³ã°ãããªã©ã®æ¥µç«¯ãªã±ãŒã¹ãèæ
®ãããšãã¹ã¯ãªããã眮ãæããå±éºæ§ããããŸãããå€ã®äžçã«äœããã®åœ¢ã§æ¥ç¶ãããŠãããã®ãã¹ãŠããã®ãããªã·ããªãªã«ãããããå¯èœæ§ãããããšãå¿ããŠã¯ãªããŸããïŒãã®ãããäžéšã®ãœãããŠã§ã¢ã®ã¡ã³ãããŒã®ç§å¯éµãçã¿ãããã䜿çšããŠå€æŽãããããã±ãŒãžã«çœ²åããããšãã§ããŸãã ãã®å Žåã®WebãµãŒãã¹ã®å¯äžã®éãã¯ãã¯ããã«å¶éããããµã³ãããã¯ã¹ã§åäœããããšãšããã®å Žåã«çºçããå¯èœæ§ã®ããæ倧å€ã§ãããŠãŒã¶ãŒè¿œè·¡ãšããŒã¿äŸµå®³ã§ãã ãããã£ãŠãç§ã¯ãã¹ãŠã®ãã©ãã€ã¢åé¡ã«å¯Ÿããå®ç§ãªè§£æ±ºçããã¹ãŠã®äººã«ã¢ããã€ã¹ããŸãïŒTORãä»ããŠïŒãã¡ãããéä¿¡ãã£ãã«ãä»ããŠãšã³ã³ãŒããããã³ã³ãã³ããéä¿¡ãããšããïŒç§ã®ãµãŒãã¹ã䜿çšããŠãã ãã
å®å
šæ§
ç·æ¥ã®å¿
èŠãããå Žåãæ²èŠ³çãªé¡ãæã€äžéšã®äººã
ããããã€ããŒãä»ããŠIPãŠãŒã¶ãŒãç¹å®ã§ãããã©ããã¯ããããŸããããããã§ã¯ãåãI2Pã®å Žåã®ããã«ããµãŒãã¹ã蚪åããäºå®ã蚌æãããŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã远跡ããããšããã§ããŸããã»ãŒäžå¯èœã§ãïŒäººèªèº«ãã¹ãã€ããªãéãïŒã
ç°ãªããµã€ãã§ã®ããŒã¯jpegã®æ€åºã«é¢ããŠã¯ãjoinã¡ãœããã䜿çšããå Žåã¯å°ãé£ãããªããŸããäžè¬çã«ãstegã䜿çšããå Žåã¯ããªãå°é£ã§ãã ããšãã°ãåŸè
ãæ€åºããã«ã¯ããªãœãŒã¹ãéäžçã«äœ¿çšããã«ã€2ä¹æ€å®ã®ã¿ãé©åã§ãããããããã«ã€ããŠå®éã«å¿é
ããããšã¯ã§ããŸããã
誰ããæå·ãç¥ããã«ãšã³ã³ãŒããããããŒã¿ããã³ãŒããããå Žåãæå·ã¢ã«ãŽãªãºã ã¯256ãããããŒã䜿çšããããšãèŠããŠããå¿
èŠããããŸãããŸããqwertyã123ãããã³èŸæžããç°¡åã«çæãããä»ã®çµã¿åããããã¹ã¯ãŒããšããŠäœ¿çšããªãå Žåã¯ãæ°å
幎ã®ãã«ãŒããã©ãŒã¹ã¯çãããè·æ¥ã®ããã«æãããã®ã§ãéä¿¡è
ã«èµ€ç±ã¯ãã ããŠãä»ããŠãã ããïŒå¶ç¶ãåãTORã䜿çšããå Žåãããã¯ãŸã£ããéèŠã§ã¯ãããŸãããTORã䜿çšããŠãã ããïŒã
App Engineã®ãµããŒã
ãã ãããã¡ã€ã«èªäœãæå®ããã®ã§ã¯ãªãããªã³ã¯ãå
¥åãããšãã«ç»åãååŸããããã«Google App Serviceã䜿çšããããšãåé¡ã«ãªãå¯èœæ§ããããŸãã ãµãŒããŒããªãããïŒéçãªããŒãžã®ã¿ãæäŸããã«ãŠã³ãããªãgithubããŒãžïŒãäœããã®æ¹æ³ã§ïŒãã³ãŒãçšã«ïŒå¥ã®ãµã€ãããç»åãããŠã³ããŒãã§ããå¿
èŠããããŸãã ã³ã³ãã³ããããŠã³ããŒãããããšããŠãããµãŒããŒã«ãã£ãŠæ瀺çã«ç€ºãããŠããªãéããã¯ãã¹ãã¡ã€ã³ããŠã³ããŒããçŠæ¢ããå¶éããããæ®å¿µãªãããã®å¶éãå
æããããšã¯ã§ããŸããã ããã§ãã¯ãã¹ãã¡ã€ã³ããŒãã䜿çšãããå Žåã¯ã4ã€ã®åé¿çããããŸãã
- ãã¡ã€ã«ãæåã§ãã£ã¹ã¯ã«ä¿åããããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ããéžæããã®ã¯äžäŸ¿ã§ãã
- ããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ïŒãã¡ã€ã«ïŒ/// home / ...ïŒããéãããããžã§ã¯ãã®ããŒã«ã«ã³ããŒã䜿çšãã䟡å€ã¯ãããŸããã
- ãµãŒãã¹ã«ããèªå䜿çšãçŽæ¥ããŠã³ããŒãã«å€±æããå ŽåãApp Engineãã©ãããã©ãŒã äžã®2ã€ã®ãããã·ãµãŒãã¹ã䟿å©ã§ãããéä¿¡ãããæ
å ±ã®å¶éã¯1æ¥ããã2GBã§ãã
- ãããžã§ã¯ãã®ã¡ã€ã³ããŒãžããå©çšå¯èœãªãã©ãŠã¶çšã«æ¢ã«èšè¿°ãããæ¡åŒµæ©èœã䜿çšããã³ã³ããã¹ãã¡ãã¥ãŒããã¯ãªãã¯ããã ãã§ãä»»æã®ãµã€ãããçŽæ¥ç»åããã³ãŒãããããšãçæ³çã§ãã
ããã«ããããããããGoogleããšããèšèããã®åŠæ³ã«ããããããããããã·ãµãŒãã¹ã¯ãŸã£ããåãèªå·±èšè¿°åã§ãããäœãä¿åããããã£ãã·ã¥ãããbase64ã§ãšã³ã³ãŒãããããªã³ã¯ãåãå
¥ããè¿œå ã®CORSããããŒãæã€ã³ã³ãã³ãã衚瀺ããŸãã -ãµã€ãã§ã®ãã¡ã€ã³ããŠã³ããŒããç¡å¹ã«ãªã£ãŠããããåã«ãµããŒããããŠããŸããã hugsã®ãœãŒã¹ã³ãŒãïŒhugs-01ããã³hugs-02ãµãŒãã¹ïŒãgithubã«ãããŸãã
éçºè
ãž
ãããžã§ã¯ãã®ã³ã¢ã§ããdark.jsã¯ããµãŒãããŒãã£ã®éçºã§äœ¿çšã§ããŸãã éåæWebã¯ãŒã«ãŒãšããŠèšèšãããŠããã次ã®èŠæ±ãåãå
¥ããŸãã
- {action: "encrypt", name: "file.ext", pass: "password", buffer: ArrayBuffer} - {action: "encode", method: "join", width: 0, height: 0, buffer: ArrayBuffer} - {action: "encode", method: "auto | join | steg", width: image.width, height: image.height, buffer: ImageData} - {action: "decode", method: "auto | join |steg", buffer: ArrayBuffer} - {action: "decrypt", pass: "password"}
å¿çã¯worker.onmessageé¢æ°ã«ãã£ãŠåŠçããã次ã®ããã«ãªããŸãã
- {type: "encrypt", size: encrypted} - {type: "encode", time: duration, isize: res.length, csize: enc.length, rate: 100*isize/csize, buffer: ArrayBuffer} - {type: "decode", time: duration, isize: res.length, csize: dec.length, rate: 100*isize/csize} - {type: "decrypt", name: "file.ext", buffer: ArrayBuffer} - {type: "progress", name: "encrypt | decrypt | encode | decode", progress: percent} - {type: "error", name: "encrypt | decrypt | encode | decode", msg: message}
ãšã³ã³ãŒãããããã¡ã€ã«ã®æ£ç¢ºãªåœ¢åŒã¯æ¬¡ã®ãšããã§ãã
- container: [ JPEG <+> encoded data ] or [ JPEG ][ encoded data ] - encoded: [ 16-bit encryption salt ][ AES256 encrypted data ][ 0xFFD9 ] - encrypted: [ 0x3141593 ][ 32-bit file size ][ 16-bit file name length ][ UTF-16 file name ][ DATA ][ zero padding ]
ãèªç±ã«ãèªã¿ãã ãã
ãŸãšã
- ææ°ã®ãã©ãŠã¶ïŒSafari 6ãChrome 25ãFirefox 21ãOpera 15以éïŒã§ã®ã¿åäœããŸãã
- ã¯ããOpera 12.xxã¯æ²ããããšã«ãå€ãã®html5æ©èœïŒBlob URLãããŠã³ããŒãå±æ§ã転éå¯èœãªãªããžã§ã¯ããªã©ïŒã«å¯ŸããPrestoã®ãµããŒãããªãããããµããŒããããŠããŸããã
- äœæ¥ã¹ã¯ãªããã¯unglifyjsã䜿çšããŠçž®å°ãããŸãããããã¯ããŒã¯ãããªãããšã確èªããããã«ãgit cloneãå®è¡ããŠããã«ãã®åã«ãã«ããã£ã¬ã¯ããªã«ãã£ãããšãšgit cloneãå®è¡ããŠããdiffãå®è¡ããŸãããã¹ãŠãã¯ã©ã€ã¢ã³ãããgithubããã¯ã©ã€ã¢ã³ãã«çŽæ¥è»¢éãããŸãã
- ãã¹ãŠã®èšç®ã¯ããµãŒããŒã«å°ããé¢äžããããšãªããå®éã«ã¯ã©ã€ã¢ã³ãäžã§å®è¡ãããŸãããããžã§ã¯ãããã£ã¹ã¯ã«ä¿åããApacheã䜿çšããã«index.htmlãéãã ãã§ãã¹ãŠãæ©èœããŸãã
- ã¯ãããã¹ãŠã極ç§ã§ãããã©ãã«ãä¿åãããã远跡ãããããã°ã¯ä¿æãããŸãã-githubããŒãžãµãŒããŒã¯éçããŒãžã®ã¿ãã¬ã³ããªã³ã°ã§ããŸãã
- 3ã€ã®ãšã³ã³ãŒãæ¹åŒããããŸããautoãjoinãããã³stegã§ããããã©ã«ãã§ã¯autoã䜿çšãããåºæ¬çã«ã¯joinã䜿çšãããŸãã
- ã°ã«ãŒãã¡ã€ã«ã®çµå-æ¿å
¥ãããããŒã¿ã®ãµã€ãºã¯åžžèã«ãã£ãŠã®ã¿å¶éãããã»ãã¥ãªãã£ã¯å¹³åçã§ãã
- stegã¯å®éã®DCT LSBã¹ãã¬ãã°ã©ãã£ã䜿çšããŸã-æ¿å
¥ãããããŒã¿ã®èš±å®¹ãµã€ãºã¯ã³ã³ãããµã€ãºã®çŽ20ïŒ
ã§ãããã»ãã¥ãªãã£ãé«ãã§ãã
- autoãšjoinã®éãã¯ãjoinã§ã¯ç©ºã®ãã¹ã¯ãŒãã§ãšã³ã³ãŒãã§ããããšã§ããããã«ãããRarJPEGã®äœæãšåŠçãå¯èœã«ãªããŸãã
- ã³ã³ããã«ã¯3ã€ã®ã¿ã€ãããããŸãïŒrandãgradãããã³imageãæåã¯ãŠã£ãã¡ãã£ã¢ããã©ã³ãã ã«ãµã€ãºèšå®ãããç»åãéžæãã2çªç®ã¯æåãäžå¯èœãªå Žåã«äœ¿çšããã3çªç®ã¯ããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ããããŠã³ããŒãããããŠãŒã¶ãŒãæå®ããä»»æã®ç»åã䜿çšã§ããŸã;
- EnterããŒãæŒãããã©ã¹èšå·ãã¯ãªãã¯ããã©ãã°ã¢ã³ãããããããŸãã¯URLã䜿çšããŠãããŒã«ã«FSãããã¡ã€ã«ãæ·»ä»ã§ããŸãã
- ãã¹ãŠã®å€è²ç¢å°ïŒããã³ãããã ãã§ãªãïŒã¯ã¯ãªãã¯å¯èœã§ãã
- ãdarkjpegããšããç¢æãã¯ãªãã¯å¯èœã§ããªããŒãããã«ããŒãžãæŽæ°ããã®ã«äŒŒãŠããŸãã
- ãã³ãŒãçšã®URLãæå®ãããšãCORSã®å¶éã«ãããGoogle App Engineã®2ã€ã®ãããã·ãµãŒãã¹ã䜿çšãããŸãã
- éçºã«ã¯ãJPEGãšã³ã³ãŒããŒããã³ãã³ãŒããŒã®JavaScriptå®è£
ãAES-256ãSHA-3ãå«ãŸããéåæWebã¯ãŒã«ãŒãšããŠå®è£
ãããŠããdark.jsã䜿çšã§ããŸãã
- ç§ã®ãµãŒãã¹ãã©ã®ããã«äœ¿çšããããïŒã€ã¡ãŒãžããŒãã«ãããŒãæçš¿ããããããã€ãã®æŽ»å家ã調æŽãããã©ãã-ããªã次第ã§ããç§ã¯ãã¹ãŠãèš±å¯ããŸãã
å
èš±
ãã®ãœãããŠã§ã¢ã¯ãçŸç¶æ姿ãã§æäŸãããæ瀺ãŸãã¯é»ç€ºãåãããååæ§ã®ä¿èšŒãç¹å®ã®ç®çãžã®é©åæ§ãæš©å©ã®äŸµå®³ã¯å«ãŸããŸãããããããã«éå®ãããŸããã äœè
ãŸãã¯æš©å©è
ã¯ããããªãå Žåã§ããæ¢åã®å¥çŽãäžæ³è¡çºããŸãã¯ãã®ä»ã®åå ããœãããŠã§ã¢ã®äœ¿çšããœãããŠã§ã¢ã®äœ¿çšããŸãã¯ãœãããŠã§ã¢ã®ãã®ä»ã®è¡çºã«åºã¥ãæ害ãæ倱ããŸãã¯ãã®ä»ã®è«æ±ã«å¯Ÿãã責任ãè² ããªããã®ãšããŸãã
è¬èŸ
- JavaScriptã§AES-256ãå®è£
ãããšããªãŒã»ã¹ã¿ãŒã¯ããã€ã¯ã»ãã³ãã«ã°ããã³ã»ãããã¹ã¿ã³ãã©ãŒã倧åŠã
- SHA-3 Keccakã®å®è£
ã«å¯ŸããChris Drostã
- JavaScript JPEGãã³ãŒããŒã®äžéšã«ã€ããŠã¯ãã¹ã¿ãŒã§ã¯ãããŸããããBrendan Dahlã®Yury Delendikæ°ã
- Andreas Ritteræ°ãJavaScriptãšã³ã³ãŒããŒçšã®çŽ æŽãããjpegããŒãã
- Dan Griesã¯ãéåžžã«çŸãããã©ã¯ã¿ã«ã°ã©ããŒã·ã§ã³ã®äŸã«ã€ããŠèª¬æããŠããŸãã
- ããŒã¯ã³ããŒã¯ã»ããã®ã®ã¢ã¢ã€ã³ã³ã®Brsevã
- Fabrizio Panattoniã®Premade Background 019;
- ã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãããã«ç§ã®ã¬ãŒã«ãã¬ã³ãã«ã
- ããªãã®èªæžã®ããã«ãå³å¯ã«å€æããªãã§ãã ããïŒ3