16.4.7 ƒWƒ‡ƒu‘Ò‚¿�s—ñ�Ú�ׂ̈Ã�†‰»
ƒWƒ‡ƒu‘Ò‚¿�s—ñ‚ðQENC=Yƒpƒ‰ƒ��[ƒ^‚ÅŠJŽn‚·‚邾‚¯‚Å�A‚±‚Ì‹@”\‚ðƒIƒ“‚É‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·�B‹N“®‚³‚ê‚é‚Æ�AˆÃ�†‰»‚ªŽg—p‚³‚ê‚Ä‚¢‚È‚¢Žž‚Æ‚Ü‚Á‚½‚“¯‚¶•û–@‚ŃWƒ‡ƒu‚ð“Š“ü‚Å‚«‚Ü‚·�B
–Æ�ÓŽ–�€
LANSA‚Í�AOpen SSLƒ‰ƒCƒuƒ‰ƒŠ“à‚ł̈Ã�†‰»ƒAƒ‹ƒSƒŠƒYƒ€‚Ì—LŒø�«‚»‚Ì‘¼‚ð•Û�Ø‚µ‚Ü‚¹‚ñ�BLANSA‚̈Ã�†‚ðŽg—p‚·‚é•”•ª‚ðŽg‚¤‘O‚É‚Í�A“K�Ø‚È’�ˆÓ‚𕥂Á‚Ä‚‚¾‚³‚¢�BO'Reilly‚ª”�s‚µ‚½John Viega et al‚Ì–{ "ƒI�[ƒvƒ“SSL‚ðŽg‚Á‚½ƒlƒbƒgƒ��[ƒN�EƒZƒLƒ…ƒŠƒeƒB" ‚©‚çŽn‚ß‚ç‚ê‚邱‚Æ‚ð’ñˆÄ‚µ‚Ü‚·�BLANSA‚ª’ñ‹Ÿ‚µ‚½ˆÃ�†‚Í�AˆÈ‰º‚Ì’Ê‚è‚Å‚·�B
AES 256, Blowfish 128, CAST5 128, DES 64, DESX 192, Triple DES 2 Key, Triple DES 3 Key, IDEA, RC2(TM) ‚¨‚æ‚Ñ RC4(TM)‚±‚ê‚ç‚̈Ã�†‚É‚Í�A’˜�ìŒ ‚ª‚ ‚邱‚Æ‚ª‚ ‚è‚Ü‚·�BˆÃ�†‚ÌŽg—p‚ª“Á‹–‚ð�NŠQ‚µ‚È‚¢‚±‚Æ‚ðŠm”F‚µ‚Ä‚‚¾‚³‚¢�BLANSA‚Í‚¢‚©‚È‚é“Á‹–‚Ì�NŠQ‚ɂ‚¢‚Ä‚àˆê�Ø‚Ì�Ó”C‚𕉂¢‚Ü‚¹‚ñ�B
‹Z�p“I�Ú�×
- �Å�‰‚É�AŒ»�݃Tƒ|�[ƒg‚³‚ê‚Ä‚¢‚é—Bˆê‚Ì‘Î�̈Ã�†‰»ƒAƒ‹ƒSƒŠƒYƒ€‚Í�ACBCƒ‚�[ƒh (ˆÃ�†ƒuƒ�ƒbƒNƒ`ƒF�[ƒ“) ‚ðŽg—p‚·‚éAES 256 ‚¨‚æ‚уV�[ƒh‚Æ‚µ‚Ä‚à’m‚ç‚ê‚é�‰Šú‰»ƒxƒNƒgƒ‹ (IV) ‚Å‚·�B‘¼‚̈Ã�†‚àŽg—p‚Å‚«‚Ü‚·‚ª�AŒ»�ÝLANSA‚ŃTƒ|�[ƒg‚³‚ê‚Ä‚¨‚炸�AŠm”F‚à‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ�Bƒ†�[ƒU�[Ž©‚ç‚Ì�Ó”C”͈͂Ŏg—p‚µ‚Ä‚‚¾‚³‚¢�BOpen SSL API EVP_get_cipherbyname‚É’¼�Úˆø‚«“n‚³‚ê‚éx_runƒpƒ‰ƒ��[ƒ^ CIPH‚ª‚ ‚è‚Ü‚·�B�Ú�ׂɂ‚¢‚Ä‚Í�AOpen SSL‚̃hƒLƒ…ƒ�ƒ“ƒg‚ðŽQ�Æ‚µ‚Ä‚‚¾‚³‚¢�B
- RSA‚ªŒ®‚Ì“]‘—‚ðƒTƒ|�[ƒg‚·‚é—Bˆê‚ÌOpenSSLŒöŠJŒ®ƒAƒ‹ƒSƒŠƒYƒ€‚Å‚ ‚邽‚ß�AŒöŠJŒ®‚ÍRSA‚Å‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñ�BLANSA‚Í�ARSA_F4‚¨‚æ‚уuƒ‰ƒCƒ“ƒh‚ªƒIƒ“‚É‚È‚Á‚Ä‚¢‚é (ƒ^ƒCƒ~ƒ“ƒO�UŒ‚‚ð’âŽ~‚·‚é�j 2048ƒrƒbƒg�Eƒ‚ƒWƒ…�[ƒ‹‚ðŽg—p‚µ‚Ü‚·�B
- ’Ê�í�A‘å—ʂ̃f�[ƒ^‚ÉŒöŠJŒ®ˆÃ�†‰»‚ðŽg—p‚·‚é•û–@‚Æ‚µ‚ăGƒ“ƒxƒ��[ƒvˆÃ�†‰»‚ªŽg—p‚³‚ê‚Ü‚·�BŒöŠJŒ®ˆÃ�†‰»‚Ì‘¬“x‚Í’x‚¢‚Å‚·‚ª�A‘Î�̈Ã�†‰»‚Í‘¬‚¢‚©‚ç‚Å‚·�B‚µ‚½‚ª‚Á‚Ä�AˆêŠ‡ˆÃ�†‰»‚É‚Í‘Î�̈Ã�†‰»‚ªŽg—p‚³‚ê�AŽg—p‚³‚ê‚é�¬‚³‚¢ƒ‰ƒ“ƒ_ƒ€‘Î�ÌŒ®‚ÍŒöŠJŒ®ˆÃ�†‰»‚ðŽg‚Á‚Ä“]‘—‚³‚ê‚Ü‚·�B
- ”é–§Œ®‚Í�AƒWƒ‡ƒu‘Ò‚¿�s—ñƒ‚ƒjƒ^�[‚̃�ƒ‚ƒŠ�[‚É•ÛŠÇ‚³‚ê‚Ü‚·�B�ˆ—�‚̃fƒoƒbƒO‚ª‚Å‚«‚邱‚Æ‚Ì‚Ý‚ªƒZƒLƒ…ƒŠƒeƒB�ã‚Ì–â‘è‚Å‚·�B‚µ‚½‚ª‚Á‚Ä�AƒfƒoƒbƒO‚ÌŒ ŒÀ‚𖳌ø‚É‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñ�B
- ‚à‚¿‚ë‚ñ�AŒöŠJŒ®‚Í‚·‚ׂẴ†�[ƒU�[‚ÉŒöŠJ‚³‚ê‚Ä‚¨‚è�AƒWƒ‡ƒu‘Ò‚¿�s—ñƒfƒBƒŒƒNƒgƒŠ‚̃tƒ@ƒCƒ‹‚É�‘‚«‚¾‚³‚ê‚Ü‚·�B
- ƒWƒ‡ƒu‘Ò‚¿�s—ñ‚ªŠJŽn‚³‚ê‚邽‚Ñ‚É�V‚µ‚¢Œ®ƒyƒA‚ª�¶�¬‚³‚ê‚Ü‚·�B
- ŠeƒWƒ‡ƒu‚É‚Í�A�V‚µ‚¢ƒV�[ƒh‚ª‚ ‚è‚Ü‚·�BŠeƒWƒ‡ƒu‘Ò‚¿�s—ñƒtƒ@ƒCƒ‹‚̃f�[ƒ^‚Í‚æ‚Ž—‚Ä‚¢‚邽‚ß�A‚±‚̃V�[ƒh‚Í•K—v•s‰ÂŒ‡‚Å‚·�BOpen SSLˆÃ�†API‚Ì�È—ª’l‚Ì‚Ó‚é‚Ü‚¢‚Å‚Í�Aƒ‰ƒ“ƒ_ƒ€�EƒV�[ƒh‚ð’ñ‹Ÿ‚µ‚Ü‚·�B
- ƒWƒ‡ƒu‘Ò‚¿�s—ñƒ‚ƒjƒ^�[‚Ì‚Ý‚ªˆÃ�†‰»‚ðŽg—p‚·‚é‚©‚Ç‚¤‚©Œˆ’肵‚Ü‚·�Bƒ‚ƒjƒ^�[‚ª‹N“®‚³‚ê‚é‚Æ�AŒ®ƒyƒA‚ª�ì�¬‚³‚ê�AŒöŠJŒ®‚ªDERƒoƒCƒiƒŠŒ`Ž®ƒtƒ@ƒCƒ‹‚É�‘‚«‚¾‚³‚ê‚Ü‚·�BƒNƒ‰ƒCƒAƒ“ƒg‚Í�AŒöŠJŒ®ƒtƒ@ƒCƒ‹‚ª‚ ‚é‚©‚Ç‚¤‚©‚ðƒ`ƒFƒbƒN‚µ‚Ü‚·�B‚ ‚é�ê�‡�AƒNƒ‰ƒCƒAƒ“ƒg‚ÍŒöŠJŒ®‚ňÃ�†‰»‚³‚ê‚éˆêˆÓ‚Ì‘Î�̃L�[ (ƒZƒbƒVƒ‡ƒ“�EƒL�[) ‚Ì�¶�¬‚ÉŽg—p‚³‚ê‚郉ƒ“ƒ_ƒ€�EƒV�[ƒh (IV) ‚ð�¶�¬‚µ‚Ü‚·�B‚»‚ÌŒã�AƒZƒbƒVƒ‡ƒ“�EƒL�[‚ðŽg—p‚µ‚ăWƒ‡ƒu‘Ò‚¿�s—ñƒf�[ƒ^‚ªˆÃ�†‰»‚³‚ê‚Ü‚·�BˆÃ�†‰»‚³‚ꂽƒZƒbƒVƒ‡ƒ“�EƒL�[ IV ‚¨‚æ‚шÃ�†‰»‚³‚ꂽƒWƒ‡ƒu‘Ò‚¿�s—ñ‚Í�AƒWƒ‡ƒu‘Ò‚¿�s—ñƒtƒ@ƒCƒ‹‚É�‘‚«‚¾‚³‚ê‚Ü‚·�BˆÃ�†‰»‚³‚ꂽƒWƒ‡ƒu‘Ò‚¿�s—ñ‚Ì�\‘¢‚͈ȉº‚Ì’Ê‚è‚Å‚·�B
- ƒWƒ‡ƒu‘Ò‚¿�s—ñƒtƒ@ƒCƒ‹‚Ì�\‘¢�F
<IV‚Ì’·‚³><IV><ƒZƒbƒVƒ‡ƒ“ƒL�[‚Ì’·‚³><ˆÃ�†‰»‚³‚ꂽƒZƒbƒVƒ‡ƒ“ƒL�[><ˆÃ�†‰»‚³‚ꂽƒf�[ƒ^‚Ì’·‚³><ˆÃ�†‰»‚³‚ꂽƒf�[ƒ^>
- RSAŒöŠJŒ®‚É‚Í�A—Ⴆ‚Î aes-256-cbc.der‚Æ‚¢‚¤‚悤‚É�A‘Î�̈Ã�†ŽQ�Æ•¶Žš—ñ‚Ì–¼‘O‚ª•t‚¯‚ç‚ê‚Ü‚·�B‚µ‚½‚ª‚Á‚Ä�Aƒtƒ@ƒCƒ‹–¼‚ðŽg—p‚µ‚Ä‘Î�̈Ã�†‚ÌŒŸ�õ‚ª‚Å‚«‚Ü‚·�B‚±‚̃tƒ@ƒCƒ‹‚Í‘Î�ÌŒ®‚Å‚Í‚È‚RSA”ñ‘Î�ÌŒ®‚ðŠÜ‚ñ‚Å‚¢‚邽‚ß�A•´‚ç‚킵‚¢‚±‚Æ‚ª‚ ‚è‚Ü‚·�B
- ƒWƒ‡ƒu‘Ò‚¿�s—ñ‚ª‹N“®‚·‚é‚Æ�A‚Ü‚¸‚·‚ׂĂ̊ù‘¶‚Ì .derƒtƒ@ƒCƒ‹‚Æ‚·‚ׂĂ̊ù‘¶‚̃Wƒ‡ƒu�Ú�ׂð�Á‹Ž‚µ‚Ä‚©‚ç�AŒ®ƒyƒA‚ð�¶�¬‚µ�A�V‚µ‚¢ŒöŠJŒ®‚ð�o—Í‚µ‚Ü‚·�B
- �Ó”C�F
ƒWƒ‡ƒu‘Ò‚¿�s—ñƒ‚ƒjƒ^�[ |
|
|
|
|
1.Œ®ƒyƒA‚ð�¶�¬‚µ‚Ü‚·�B 2.<–¼‘O‚ð‚‚¯‚ç‚ꂽ‘Î�ÌŒ®>.der e.g. aes-256-cbc.der ‚ÉŒöŠJŒ®‚ð�o—Í‚µ‚Ü‚·�B 6.ƒf�[ƒ^ƒtƒ@ƒCƒ‹‚ð“Ç‚ÝŽæ‚è‚Ü‚·�B 7.ƒ�ƒ‚ƒŠ�[“à‚̔閧Œ® (RSA”ñ‘Î�̈Ã�†) ‚¨‚æ‚уNƒ‰ƒCƒAƒ“ƒg�EƒZƒbƒVƒ‡ƒ“�EƒL�[‚ðŽg—p‚µ‚Ä•œ�†‰»‚µ‚Ü‚·�B |
|
ƒNƒ‰ƒCƒAƒ“ƒg |
|
|
|
3.ŒöŠJŒ® (RSA�j‚ð“Ç‚ÝŽæ‚è‚Ü‚·�B 4.ƒT�[ƒo�[‚©‚ç’ñ‹Ÿ‚³‚ê‚é–¼‘O•t‚«‘Î�̈Ã�†‚Æ‚Æ‚à‚ÉŽg—p‚·‚éƒZƒbƒVƒ‡ƒ“�EƒL�[‚ð�¶�¬‚µ‚Ü‚·�B 5.“K�؂ȃL�[‚ňÃ�†‰»‚µ‚½ƒf�[ƒ^�Eƒtƒ@ƒCƒ‹‚ð�ì�¬‚µ‚Ü‚·�B |
- X_RUNƒpƒ‰ƒ��[ƒ^
- CIPH: ˆÃ�†–¼‚Ì�È—ª’l‚Í aes-256-cbc‚Å‚·�BOpenSSLƒ‰ƒCƒuƒ‰ƒŠ‚É‚»‚Ì‚Ü‚Ü“n‚³‚ê‚邽‚ß�A‘啶Žš�E�¬•¶Žš‚ª‹æ•Ê‚³‚ê‚Ü‚·�B‚±‚̃pƒ‰ƒ��[ƒ^‚Í�A‘g‚Ý�ž‚ÝŠÖ�” GET_SESSION_VALUE ‚¨‚æ‚Ñ�@SET_SESSION‚Æ‚Æ‚à‚ÉŽg—p‚Å‚«‚Ü‚·�B
- QENC: ƒWƒ‡ƒu‘Ò‚¿�s—ñƒ‚ƒjƒ^�[‚Æ‚Æ‚à‚ɈÃ�†‰»‚ðŽg—p‚µ‚Ü‚·�B(‚±‚ê‚Í�AƒWƒ‡ƒu‘Ò‚¿�s—ñ‚̃Tƒuƒ~ƒbƒ^�[‚É‚Í–³Ž‹‚³‚ê‚Ü‚·�B�j
- ƒWƒ‡ƒu‚ªˆÃ�†‰»‚³‚ꂽƒWƒ‡ƒu‘Ò‚¿�s—ñ‚É“Š“ü‚³‚ê‚é‚Æ�AƒWƒ‡ƒu‘Ò‚¿�s—ñƒ‚ƒjƒ^�[‚̃Cƒ“ƒXƒ^ƒ“ƒX‚É‚æ‚Á‚Ä‚Ì‚ÝŽÀ�s‚³‚ê‚Ü‚·�BƒWƒ‡ƒu‘Ò‚¿�s—ñƒ‚ƒjƒ^�[‚ª’âŽ~‚³‚ꂽŒã�ÄŠJ‚³‚ê‚é‚Æ�AŠù‘¶‚̃oƒbƒ`�EƒWƒ‡ƒu‚ð•œ�†‰»‚Å‚«‚È‚¢�V‚µ‚¢”é–§Œ®‚ª�¶�¬‚³‚ê‚Ü‚·�BƒNƒ‰ƒCƒAƒ“ƒg‚ð�Ä‹N“®‚·‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñ‚ª�AƒWƒ‡ƒu‘Ò‚¿�s—ñƒ‚ƒjƒ^�[‚ª‹N“®‚µ�AŒöŠJŒ®‚ð�¶�¬‚·‚é‚܂ŃWƒ‡ƒu‚ð“Š“ü‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ�B