これは、VBA(VisualBASIC for Application) & C# & .Net Framework4.0 で作成しました
はじめに
多くのビジネスシーンでは、
営業が申し込み用紙のテンプレートとなる MS-Word ファイルを顧客へメールに添付して送信
顧客は、MS-Word ファイルに必要事項を記入して、返信メールに添付して送信
営業は、MS-Word ファイルを受信して、受注成立
という事なので、MS-Word マクロで公開鍵暗号処理が可能であれば...
営業は、RSA 公開鍵ペアを作成して、公開鍵を MS-Word ファイルに貼り付ける
秘密鍵はきちんと保管する
営業が申し込み用紙のテンプレートとなる MS-Word ファイルを顧客へメールに添付して送信
顧客は、MS-Word ファイルに必要事項を記入
顧客は、好きなパスワード
(後々の報告書などの送付時の ZIP パスワード保護のためのパスワード)
を MS-Word に記入
MS-Word マクロ(VBA)によって、暗号化される
MS-Word ファイルを営業へメールに添付して送信
営業は、Word ファイルを受信して、受注成立
営業は、秘密鍵で顧客が指定したパスワードを秘密鍵で復号する
のちのち、報告書などの送付に使う ZIP パスワード保護に、このパスワードを使用する
というふうにビジネスフローを変化させずに、安全に ZIP パスワードを共有できる
ファイル内容
rsaTest.docm
MS-Word2010 で動作確認した MS-Word VBA サンプル
公開鍵の作成、公開鍵による暗号化、秘密鍵による復号まで実装
このファイルはサンプルなため平文のテキストボックスと暗号化処理後のテキストボックスを分けているが、実運用時には上書きした方がよい 実運用においては、公開鍵による暗号化のみで十分で、営業には、↓の .NET Application を使わせればいいでしょうね
WordRSA.exe
rsaTest.docm と互換性のある .NET Applicarion
sCipher.exe
ファイルを Drag&Drop すると暗号化/復号する .NET Applicarion (Gzip 圧縮もするよ)
動作環境
Microsoft Offce 2010 VBA & Microsoft .NET Framework4.0
免責など
修正BSDライセンスで配布します。
(修正BSDライセンスにしても、あまり以前と、ライセンス条項って変わっていないような気がするんだよなぁ〜)
謝辞
VBA/VBScript について、
@tsuda_ahr
にいろいろとご教示いただきました。
VBA(Excel) で RSA 暗号を Encode/Decode してみる
を参考にしました。
イラストは、
「いらすとや」
を使わせていただきました。
その他リンク
MS、Office 2016の新機能でマクロ系マルウェアをブロックする設定を推奨
「パスワードは別のメールで送ります」ファイル送信方法の改善案を考える
もう一回見直そう メール送受信の暗号化設定
「パスワード付きZIP」廃止、じゃあどうすりゃいいのか(OneDrive編)
GPUでZIPパスワードを解析する
Version1.0.0.3
DownLoad
(WordRSA.lzh as 97,966byte) (
WordRSA.lzh.base64
)
(LHAは、吉崎栄泰氏が、著作権を所有)
履歴
2016/04/01 : ver1.0.0.0 最初のバージョン
2016/04/01 : ver1.0.0.1 アイコンと、HTML の修正
2016/04/02 : ver1.0.0.2 暗号化ツールを同梱
2016/04/05 : ver1.0.0.3 アイコン/HTML/マクロの小さいバグの修正
暗号化ツール
ED
とか暗号化プログラムはいくつもあると思うけど、暗号化ツール「sCipher.exe」を同梱してみた。
または、第一引数に入力ファイルのパスを指定して起動する
アルゴリズムは、
AES128bit/CBC/PKCS7 Padding/IV=null/PBKDF2(HMACSHA1)(salt=null)
方式
****.aes
: 暗号化されたファイルなので、復号する
****.gz.aes
: gzip 圧縮され暗号化されたファイルなので、復号し解凍する
****.gz
: gzip 圧縮されたファイルなので、解凍する
****
: gzip 圧縮、暗号化、または両方を実施の対象
sCipher.reg に sCipher.exe を配置したファイルパスを編集して、レジストリな登録すれば、右クリックメニューに登録することも可能です。
懸念事項
普及しすぎると、マクロウィルス再興の温床となる危険性がある
Wordのマクロ経由でPowerShellを使用し、他にバイナリをDLしないでスクリプトだけで動作するfilelessなマルウェアが増加している。マルウェアPowerWearはPSのみを用いて暗号化まで行うランサムウェア。
ZIP パスワード保護自体にはアルゴリズムの脆弱性があり、現実的な時間でかなり大きな鍵空間の探索が可能であるのはそのまま
ED
とか、同梱の sCipher.exe を使う方が良いかも
ZIP パスワード保護よりも、MS-Office のパスワード保護の方が安全性が高いらしい
顧客が簡単なパスワードを設定する
顧客が自ら設定したパスワードを忘れる
営業が、公開鍵/秘密鍵の鍵ペアを使いまわし、複数の顧客で同一の鍵ペアとなる危険性
営業が間違えて、Word ファイルに秘密鍵を添付する危険性
そもそも、ぶっちゃけ、実はそんなに機密性の高い情報をメールでやり取りしているわけではなかったりしますよね!? (毒)
mail to active@window.goukaku.com