ð ããã¹ãæå·å
(空)
ãã¹ãã¬ãŒãº(åèšè)ã䜿ã£ãŠãããã¹ããAES-GCMæ¹åŒã§æå·åããŸãã¯æå·åãããããã¹ãã埩å·ããããŒã«ã§ãããã©ãŠã¶ã«æšæºæèŒãããŠããWeb Crypto APIã䜿çšããŠãããå ¥åããããã¹ãããã¹ãã¬ãŒãºãå€éšã®ãµãŒããŒã«éä¿¡ãããããšã¯ãããŸããã
äœ¿ãæ¹
- ãæå·åããŸãã¯ã埩å·ãã¿ããéžã³ãŸãã
- æå·åãããããã¹ã(ãŸãã¯åŸ©å·ãããæå·æ)ãšããã¹ãã¬ãŒãºãå ¥åããŸãã
- å®è¡ãã¿ã³ãæŒããšçµæã衚瀺ãããŸããã³ããŒãã¿ã³ã§ã¯ãªããããŒãã«ã³ããŒã§ããŸãã
èšç®ã®ä»çµã¿
ãã®ããŒã«ã¯ããã¹ã¯ãŒãïŒãã¹ãã¬ãŒãºïŒã䜿ã£ãŠãããã¹ãããã©ãŠã¶ã®äžã§æå·åã»åŸ©å·ããŸããæå·åã®åŠçã«ã¯ãã©ãŠã¶æšæºã®Web Crypto APIã䜿ã£ãŠããŸãã æå·åã®æé ã¯æ¬¡ã®ãšããã§ãã 1. 16ãã€ãã®ã©ã³ãã ãªããœã«ãããšã12ãã€ãã®ã©ã³ãã ãªãIVïŒåæåãã¯ãã«ïŒããäœããŸãã 2. ãã¹ã¯ãŒããšãœã«ããããPBKDF2ïŒSHA-256ã10äžåã®ç¹°ãè¿ãïŒã§256ãããã®éµãäœããŸãã 3. ãã®éµãšIVã§ãããã¹ããAES-256-GCMã§æå·åããŸãã 4. ããœã«ãïŒIVïŒæå·æïŒæ¹ããæ€ç¥çšã®16ãã€ãã®ã¿ã°ãå«ãïŒããã€ãªããŠãBase64ã®æååã«ããŸãã 埩å·ãããšãã¯ããã®æååãããœã«ããšIVãåãåºããåããã¹ã¯ãŒãããåãéµãäœã£ãŠå ã«æ»ããŸããAES-GCMã¯æ¹ãããæ€ç¥ã§ããæ¹åŒã®ããããã¹ã¯ãŒããéãå Žåããæå·æã1æåã§ãå€ãã£ãŠããå Žåã¯ã埩å·ã«å€±æããŠãšã©ãŒã«ãªããŸãã
èšç®äŸ
å¹³æ: ç§å¯ã®ã¡ã¢ïŒUTF-8ã§15ãã€ãïŒ ãã¹ã¯ãŒã: ä»»æã®æåå åºåãããBase64æååã®é·ã: 80æå å èš³: ãœã«ã16 ïŒ IV12 ïŒ æå·æ15 ïŒ ã¿ã°16 ïŒ 59ãã€ã â Base64ã§80æå åãå¹³æãšãã¹ã¯ãŒãã§æå·åããŠãããœã«ããšIVãæ¯åã©ã³ãã ã«å€ãããããåºåã¯æ¯åéãæååã«ãªããŸãã
䜿çšäžã®æ³šæ
- ãã¹ã¯ãŒããå¿ãããšãæå·åããããã¹ãã¯èª°ã«ãå ã«æ»ããŸããã
- æå·ã®åŒ·ãã¯ãã¹ã¯ãŒãã®åŒ·ãã§æ±ºãŸããŸããçããã¹ã¯ãŒããæšæž¬ããããããã¹ã¯ãŒãã¯ãç·åœããã§ç Žãããå±éºããããŸãã
- ããã¹ãããã¹ã¯ãŒãããã©ãŠã¶ã®å€ã«ã¯éä¿¡ãããŸãããæå·æãçžæã«éãå Žåã¯ããã¹ã¯ãŒãã¯å¥ã®ææ®µã§äŒããŠãã ããã
ãããã質å
æå·åããããŒã¿ã¯ã©ããã«ä¿åãããŸãã?
ãããããã¹ãŠã®åŠçã¯ã䜿ãã®ãã©ãŠã¶å ã§å®çµããŠãããããã¹ãããã¹ãã¬ãŒãºãå€éšã®ãµãŒããŒã«éä¿¡ãããããšã¯ãããŸããã
ã©ã®ãããªæå·åæ¹åŒã䜿ã£ãŠããŸãã?
ãã©ãŠã¶æšæºã®Web Crypto APIã䜿ããPBKDF2(10äžåã®ã€ãã¬ãŒã·ã§ã³)ã§ãã¹ãã¬ãŒãºããæå·éµãå°åºããAES-GCM(256ããã)ã§æå·åããŠããŸããåºåã«ã¯ã©ã³ãã ãªãœã«ããšåæåãã¯ãã«(IV)ãå«ãŸããŠãããBase64圢åŒã§ãšã³ã³ãŒããããŠããŸãã
åŸ©å·æã«ãšã©ãŒãåºãã®ã¯ãªãã§ãã?
ãã¹ãã¬ãŒãºãééã£ãŠããããæå·æãéäžã§æ¬ ããŠããã»æ¹å€ãããŠããå¯èœæ§ããããŸããAES-GCMã«ã¯æ¹ããæ€åºæ©èœããããããæ£ãããã¹ãã¬ãŒãºãšå®å šãªæå·æã§ãªãéã埩å·ã«å€±æããŸãã