コンテンツにスキップ
'hibara.org' から 移転しました。ブックマークの更新をお願いします。

オンラインヘルプ

はじめに

「アタッシェケース」は日常的に使うことを想定し、見た目のシンプルさと簡便な操作性に注力しながらも、 世界標準の暗号アルゴリズムを採用した強力なファイル暗号化ソフトです。

ファイルをドラッグ&ドロップし、パスワードを入力するだけで、簡単に暗号化でき、 フォルダごとドラッグ&ドロップした場合には、1つにまとめて暗号化ファイルを作ります(フォルダごとパックします)。

暗号の流れ

暗号化の際にはデータに圧縮がかかりますので、ファイルのサイズがコンパクトになります。

復号化(元に戻す)は、ドラッグ&ドロップまたはダブルクリックでパスワードを入力するだけで、 元のファイルやフォルダに簡単に戻せます。

また、実行形式(.exe)ファイルとして書き出すこともできます。 その結果、アタッシェケースを利用していない人とも、暗号化されたファイルを共有したり、 復号化してもらったりすることが可能になります。

豊富な動作設定

各種動作設定ウィンドウ

保存場所の指定、処理後のファイルの完全削除、暗号/復号毎に異なるパスワード記憶、 圧縮率の調整、パスワード入力回数による制限やデータ破壊などあり、コマンドラインからのオプションも用意されています。

世界標準の暗号アルゴリズムを採用

暗号化アルゴリズムには、2000年10月に(米国標準技術研究所 NIST: http://csrc.nist.gov/によって、 次世代暗号化標準 AES(Advanced Encryption Standard)として選定されたアルゴリズムを採用し組み込んでいます。

なお、乱数による初期化ベクトル(IV)を生成してからCBCモードで暗号化し、 第三者による解析も防ぐよう工夫されています。(→詳しくは、「暗号化アルゴリズムについて」の項目を参照ください。)

「アタッシェケース」はオープンソース化し開発が進められていますが、 ver.4 より商用利用にかぎり有償となりました。 (→詳しくは、トップページの「商用利用」を参照ください。)


使い方

ファイル/フォルダーを暗号化する

使い方はシンプルです。「アタッシェケース」ショートカットアイコンか、あるいは起動したウィンドウの上に、 暗号化したいファイルをドラッグ&ドロップするだけです。

ドラッグ&ドロップ

あるいは、すでに出力ファイルの種類があらかじめ決まっているのならば、 先に出力形式を選んでおくこともできます。

あらかじめ出力形式を選択

ファイルをドラッグ&ドロップした後、パスワードを入力します。推測されにくい長めのパスワード入力をオススメします。

パスワード入力画面

また、この画面においても、アタッシェケースアイコンをクリックすることで、出力形式を選ぶことができます。

アタッシェケースアイコンをクリック 後から出力形式を選択

一度、パスワード入力を行ったあと、OKボタンを押すと、確認のため、再度同じパスワード入力を促されます。 これは誤ったパスワードで暗号化してしまい、元に戻せなくなるのを防ぐためです。

パスワード再入力画面

次に、「暗号化」ボタンを押せば処理が開始され、 「完了」というメッセージが出たら、暗号化ファイルが作成されています。

暗号化処理完了画面 ATCファイルアイコン

ファイルを復号する(元に戻す)

これも暗号化と同じく、アタッシェケースのアイコン、または開いたウィンドウ上に、 暗号化ファイルをドラッグ&ドロップします。

暗号化ファイルのドラッグ&ドロップ

アタッシェケースファイルは、たとえ拡張子が異なっていたとしても、 ファイルデータを直接見て、暗号化ファイルか自動判別します。 ですので、自己実行形式ファイルをドラッグ&ドロップしても問題なく復号できます。

暗号化ファイルだと確認できれば、以下のように、復号するためのパスワードが求められます。

復号するためのパスワード入力画面

「完了」の文字が出たら、暗号化されていた元のファイルが同じ場所にできているはずです。

復号完了画面 Wordファイルアイコン

自己実行形式出力

以下にある「暗号化前」と、「ファイル/フォルダーをドラッグ&ドロップした後」の画面で、 以下のアイコンを選択すると、

自己実行可能形式の選択ウィンドウ

自己実行可能形式

実行ファイル(*.exe)で出力されます。

公開鍵暗号

公開鍵暗号とは、2つのキーファイルを使って、暗号化・復号を行う暗号化方式のことです。

通常、共通鍵暗号方式にあるように、同じパスワードで暗号化と復号を行います。

共通鍵暗号

公開鍵暗号は、暗号化を行うパスワード(ファイル)と、復号パスワード(ファイル)の2つに役割を割って 一組の「鍵束」にしたものを言います。

公開鍵と秘密鍵

つまり、暗号化しかできない公開鍵を送信したとしても、「暗号化しかできない」ので、 たとえ盗聴されていたとしても安全です。秘密鍵(復号用)が手元にあるかぎり、 暗号化されたファイルを元に戻すことはできません。

まず手元で、一対の公開鍵と秘密鍵を生成します。

公開鍵と秘密鍵を生成する

そして、データのやりとりを行いたい相手に対して「公開鍵」を送信して渡します。

公開鍵を送信する

このとき、秘密鍵は自身のローカルから出ていないので安全です。

秘密鍵は手元に残る

公開鍵と秘密鍵を生成する

では実際に、アタッシェケースで公開鍵暗号で暗号化、復号をしてみましょう。 まずは、一対になる公開鍵と秘密鍵を生成します。

公開鍵暗号を選択

メインウィンドウから「公開鍵暗号」を選択します。

「鍵生成」を選択

「鍵生成」ボタンを押してファイル名を決定し、公開鍵と秘密鍵を生成します。

公開鍵と秘密鍵ファイル

これにより「公開鍵(.atcpub)」と「秘密鍵(.atcpvt)」の2つのファイルが生成されます。

公開鍵によってファイルを暗号化する

先に作った「公開鍵(.atcpub)」ファイルをアタッシェケースに読み込みます。 この際、GUIDやハッシュなどが表示されますが、あらかじめこれらの値は公開鍵を渡した相手へ 公開鍵を渡した別の手段で伝えておくと、改ざんの可能性が減り、より安全にやりとりが可能になります。

公開鍵の読み込み

この画面になった状態で、暗号化したいファイルをドラッグ&ドロップすれば暗号化は完了します。

秘密鍵によって暗号化ファイルを復号する

公開鍵によって暗号化されたファイルは、「秘密鍵(.atcpvt)」を読み込むことによって復号することができます。

秘密鍵の読み込み

この画面になった状態で、暗号化ファイルをドラッグ&ドロップすれば復号されます。


動作設定

一般

一般設定パネル

処理後にアタッシェケースを終了する

チェックを入れると、暗号化または復号処理の終了後に、エラーがないかぎり、アプリケーションは自動で終了します。

復号後に、関連付けられたファイルを開く

チェックを入れると復号されたファイルを関連付けされたアプリケーションで開きます。 暗号化したファイルが多いと、すべて起動することになるので注意が必要です。

実行ファイル(*.exe)を含むときは警告ダイアログを出す

暗号化する際に、そのファイルの中に実行ファイルを含むときは警告ダイアログを出します。 上記の項目が設定されている場合、EXEファイルは直接実行されるため、ここのチェックを入れておくことをお勧めします。

複数ある場合は警告ダイアログを出す

これも同様に上記の「復号後に、関連付けられたファイルを開く」チェックが入っており、 かつ大量に複数のファイルが含まれている場合、すべてが関連付けられたアプリケーションが起動してしまうため、 開くファイル数の上限を決めておくことで、事前に警告ダイアログを出します。

内容にかかわらず暗号化か復号かを問い合わせる

通常アタッシェケースは、自動でファイルの種類を判別して処理を行いますが、常に暗号化、または復号したいという場合は、 ここにチェックを入れておくことで処理前に選ぶことができます。

パスワード文字列を隠さず入力する

パスワード入力画面で、パスワードをマスクする(隠す)ことなく、入力できます。 これにより誤った文字入力を事前に防ぐことができます。

アタッシェケースの外観の色を選ぶことができます。「自動」を選択すると Windows10 のテーマによって変化します。

言語

アタッシェケースでは、日本語の他に、英語表記も可能です。 OSが日本語環境でも、英語表記のアタッシェケースが使いたいという方は、ここで英語版に設定することができます。

ウィンドウ

ウィンドウ設定パネル

処理中は常に最小化する

暗号化/復号の処理中は、アタッシェケースは最小化して動作します。

タスクバーに表示することなく最小化する

処理中はタスクバーにアタッシェケースアイコンを表示せず、最小化されて動作します。

最小化して、かつタスクバーからアイコンを消す設定がないのは、一度処理が行われると、 処理を停止する場所がどこにもなくなってしまうからです。

タスクバーに表示する

アタッシェケース起動時は常にタスクバーにアイコンを表示します。

デスクトップでウィンドウを最前面にする

デスクトップ上で、すべての別ウィンドウ(別アプリケーション)よりも最前面で表示します。 それにより、ファイルのドラッグ&ドロップがやりやすくなったりします。

アタッシェケースを複数起動しない

常に一つのウィンドウで運用します。 この設定がONのときに二重起動した場合は、 先に起動しているアタッシェケースが優先されます(新しいウィンドウは表示されません)。

パスワード入力用すべてのテキストボックスでIMEをONにする

チェックすると、パスワード入力用のテキストボックスにフォーカスがあたったとき、自動的にIMEがONになります。

パスワード

パスワード設定パネル

暗号化時のパスワード保存

チェックを入れ、パスワードを指定しておくと、暗号化時のパスワードとして自動で使われます。

復号時のパスワード保存

上記と同様に、パスワードを指定しておくと、復号時のパスワードとして自動で使われます。

暗号/復号時に確認無しに記憶パスワードで実行する

チェックを入れると、記憶パスワードを確認することなく即座に暗号/復号処理へ移行します。

パスワード強度メーターを表示する

チェックを入れると、入力されたパスワードの強度をリアルタイムに表示します。 強度メーターのアルゴリズムはDropbox社のものを利用しています。

保存

保存設定パネル

常に選択する暗号化ファイルのタイプ

常に出力する暗号化ファイル形式を選択します。パスワード省略するなど自動処理設定をしていない場合は、 メインウィンドウでファイルタイプを選択し直すことも可能です。

前に使ったファイルタイプで暗号化する

前につくった暗号化ファイルの種類を記憶し、次の処理でも同様のファイルタイプで暗号化します。

古いOSでも復号できるように自己実行ファイルを出力する

.NET Framework 4.6.2 が適用されていない古いOS(Windows7, Vista, XPなど)でも 復号できるようになります。

具体的には、チェックボックスをONにすると、 .NET Framework 4.0 で実行できる自己実行ファイルを出力するようになります。

ただし、.NET Framework 4.0 は、すでに Microsoftでサポート外となっておりますので、 これを有効にして出力した自己実行ファイルは、サポート外となりますのでご注意ください。

暗号化

暗号化設定パネル

暗号化ファイルは常に同じ場所に保存する

指定したフォルダーに、暗号化ファイルが常に保存されるようになります。

同じ名前のファイルがあるときは上書きの確認をする

チェックが入っていれば、同名ファイルは上書きの確認ダイアログが表示されます。 チェックがない場合は、そのまま上書されます。

複数ファイルの場合

  • 通常 — 暗号化するフォルダーの内容、階層を保持したまま暗号化されます。
  • 複数ファイルを一つにまとめる — 複数のファイルまたはフォルダーが投げ込まれた場合、一つにまとめられ、暗号化されます。
  • フォルダー内のファイルを一つずつ暗号化する — 投げ込まれた複数のファイルまたはフォルダーは、個別に暗号化されます。

オリジナルのファイルとフォルダーのタイムスタンプを保持する

チェックを入れると、ファイル、フォルダのタイムスタンプのまま暗号化されます。 チェックがない場合は、暗号化時点のタイムスタンプが設定されます。

暗号化ファイルに拡張子を含める

暗号化ファイルの拡張子は、通常(*.atc)ですが、 たとえば同じ名前で種類が異なる場合(企画書.doc、企画書.xlsなど)もすべて、 「企画書.atc」と同名ファイルになるため、それを避けるために拡張子を含めた形、 「企画書.doc.atc」「企画書.xls.atc」というように出力されます。

暗号化ファイル名を自動で設定

暗号化ファイル名にする書式を指定します。日付など付加したり、連番など振ったりできます。 なお、カスタム日時書式指定文字列については、Microsoftのページを参照ください。

復号する

復号設定パネル

復号したファイル/フォルダーは常に同じ場所に保存する

暗号化ファイルを復号して、元のファイルを戻す先のフォルダーを指定します。

同名ファイルの上書を確認する

チェックを入れると復号した先に同名のファイルがあれば、 上書の確認ダイアログを表示して確認を求めます。

復号時に親フォルダーを生成しない

復号時に親(ルート)フォルダーを生成せず、そのまま中身を復号先のフォルダーに展開します。

ファイル、フォルダーのタイムスタンプを復号時に合わせる

暗号化時のタイムスタンプにかかわらず、 復号した時点のタイムスタンプに合わせます(ファイルが多いと各ファイル間で多少のズレは生じます)。

削除

削除設定パネル

暗号化完了後に元ファイルを削除する

暗号化完了後に、元となったファイルまたはフォルダーを削除します。 削除の具体的な方法は、以下の「高度な削除設定」で決まります。

メインウィンドウに削除のチェックボックスを表示する

メインウィンドウに、上記の削除オプションのチェックボックスを表示します。 つまり、暗号化の途中で、削除するか否かを決めることができます。

暗号化後に削除確認メッセージを表示する

削除する前にダイアログが出て、削除するかどうかの確認を行うことができます。

復号時に暗号化ファイルを削除する

復号後に、元になった暗号化ファイルを削除します。 削除の具体的な方法は、以下の「高度な削除設定」で決まります。

メインウィンドウに削除のチェックボックスを表示する

メインウィンドウに、上記の削除オプションのチェックボックスを表示します。 つまり、復号処理の途中で、削除するか否かを決めることができます。

復号後に削除確認メッセージを表示する

削除する前にダイアログが出て、削除するかどうかの確認を行うことができます。

高度な削除設定

通常削除

ゴミ箱を経由せずにファイルまたはフォルダを削除します。 ショートカットキーでいうところの [Shift]+[Delete] になります。

ゴミ箱へ送る

ゴミ箱に送ります。ダイアログこそでませんが、ショートカットキーでいうところの[Delete]です。

完全削除

完全削除する書き込み回数」は、消去する前のファイルに何回データを上書するかを指定します。 通常削除だけですと、ただ単にハードディスク上にあるエントリー情報を消すだけです。 この設定では、削除する前に、乱数による書き込みか、 ゼロによる書き込みかを行ってから復旧のしづらい完全削除が可能になります。

回数が多ければ、ハードディスクからの復旧がしづらくなりますが、その分、処理時間は増加します。

デフォルトでは、乱数の書き込み0回、ゼロの書き込み1回としてあります。

圧縮

圧縮設定パネル

圧縮する

チェックをすると、暗号化の際にデータ圧縮を行います。

また、スライダバーを調節することで、圧縮率を設定できます。

初期設定では、 < 2 > [ 最適 ] になっています。 この設定は、圧縮操作が完了するまで時間がかかる場合でも、最適な圧縮を行います。

< 1 > [ 最速 ] を指定すると、圧縮後のファイルが最適な圧縮でなくても、 圧縮操作はできるだけ迅速に完了させます。

また、< 0 > [ 無圧縮 ] を指定したときは、チェックボックスは自動的にOFFとなり、 ファイルに対して圧縮を行いません。

システム設定

システム設定パネル

暗号化ファイル(*.atc)をアタッシェケース関連付ける

実行には管理者権限が必要です。また、関連付けを行うのは、 アタッシェケースに付属のアプリケーション(AtcSetup.exe)が起動します。 関連付けに成功すれば、*.atcファイルは、その下にある選択されたアイコンに変更されているはずです。

暗号化ファイル(*.atc)の関連付けを解除する

*.atcファイルと、アタッシェケースとの関連付けを解除します。 手動でアンインストールしたい場合などに使います。こちらも管理者権限が必要で、別アプリケーションが動作します。

「送る」フォルダーにショートカットを作成

Explorer のコンテキストメニューの「送る」に「アタッシェケース」メニューを追加します。

アタッシェケースファイルのアイコン変更

暗号化ファイルのアイコンには、プリセットのアイコンや、ユーザーさんのつくったアイコンに変更することができます。

設定の保存/復元

設定のインポートとエクスポートパネル

常に、設定ファイル「_AtcCase.ini」を読み込む

チェックすることで、常にアタッシェケースの実行ファイルがあるディレクトリーや、 暗号化ファイルのあるディレクトリーにある設定ファイル「_AtcCase.ini」を読み込もうとします。

毎回、確認のためのダイアログボックスを表示する

チェックすることで、設定ファイル「_AtcCase.ini」が見つかれば、 読み込むかどうかの確認ダイアログボックスが表示されるようになります。

現在の設定をINIファイルへ保存

現在の動作設定を、コマンドラインオプションとして、INIファイル、バッチファイル、 テキストファイルなどに出力して保存することができます。 別スクリプトファイルなどを作成するときのベースとして使えます。

なお、INIファイルとして出力し、実行ファイルやカレントディレクトリに置くことで、一時設定でアタッシェケースを起動することできます。 詳しくは、次の「.INIファイルの活用方法」の項目を参照ください。

INIファイルから現在の設定として読み込む

読み込まれた設定ファイル「_AtcCase.ini」の内容を現在の設定として読み込みます。設定はレジストリに保存されます。

一時的な設定を現在の設定に置き換える

コマンドラインオプションから起動したときの一時設定を、メインの設定に置き換え、保存します。

ただし、保存されるタイミングはアタッシェケースが終了したときです。

ちなみに、通常起動したときにはボタンは無効になっています(押せません)。

INIファイルの活用方法

アタッシェケースでは、レジストリとは別に.INIファイルとして設定を保存することができます。 また、作成したその.INIファイルを個別に読み込むことで、動作設定を起動時に切り替えることが可能です。

暗号化ファイルを各所の異なるPCで復号しなくてはならない場合や、 アタッシェケースのインストールされていない環境へUSBフラッシュメモリなどで持ち込む場合など、 常に自分好みの設定でアタッシェケースを起動したい方には便利な機能です。

INIファイルとは何か?

INIファイルアイコン

アプリケーションの設定情報を書き込むテキスト情報のことです。

拡張子こそ”.ini”となっていますが、中身はテキストファイルです。

よってエディタなどでユーザー自らの編集が可能ですが、 誤って変更すると動作の保証ができなくなるので扱いには注意が必要です。

アタッシェケースでは、iniファイルではなく、Windowsのシステム (レジストリ)に設定情報を保存していますので、 そもそもこのファイルは不要ですが、設定情報を他のPCへ持ち出したいときや、 処理ごとに設定を替えて切り出しておきたい場合に、INIファイルとして保存して利用すると便利です。

INIファイル作成の仕方

INIファイルの出力

動作設定の「システム」タブを開き、「現在の動作設定を出力する」ボタンを押します。

INIファイル形式を選択して、「_AtcCase.ini」というファイル名で出力します。 ここに現在の設定内容がすべて書き出されます。

INIファイルの読み込み方法

前の項目で出力した.INIファイルの設定内容で起動したい場合は、 「_AtcCase.ini」ファイルを以下の場所に置いてアタッシェケースを起動する必要があります。

  1. カレントディレクトリ
  2. アタッシェケース本体(AtchCase.exe)のあるディレクトリ
  3. 処理したいファイルや暗号化ファイルのあるディレクトリ

上記の順番で「_AtcCase.ini」ファイルを探索し、見つかったときに読み込まれますので、 複数箇所にINIファイルが置かれると、予期しない設定動作になることがあります。

通常、何もせずに(設定のINIファイルをどこにも置かずに)アタッシェケースを起動すると、 レジストリにある設定内容で起動します。

以下のように、アタッシェケース本体(AttacheCase.exe)のある場所に.INIファイルを置きます。

アタッシェケース本体の場所にINIファイル

あるいは、処理するファイル/または暗号化ファイルの横に.INIファイルを置きます。

暗号化ファイルの場所にINIファイル

後者の場合、ファイル/暗号化ファイルは、直接アタッシェケースアイコンにドラッグ&ドロップするか、 関連付け起動する必要があります(起動してからファイルをドロップしても、 そのディレクトリにある.INIファイルを参照しないので注意が必要です)。

そうすることで、一時的に.INIファイルの内容で動作設定が行われ、アタッシェケースは起動します。

INIファイルの内容を現在の設定に反映したいとき

前述の方法で、設定した.INIファイルを読み込んでから、動作設定の「システム」タブを開き、 「一時設定をメイン設定に置き換える」ボタンを押してください。

INIファイルが読まれている状態

そうすることで、.INIファイルの内容がレジストリへ読み込まれ、メイン設定として上書きされます。

高度な設定

パスワードファイル {#settings-password-file}

パスワードの設定パネル

パスワードファイルのドラッグ&ドロップを許可する

チェックすることで、パスワード入力のウィンドウになったとき、 文字列を入力する代わりに任意のファイルをドラッグ&ドロップすることで、 「パスワード」の代わりとすることが可能になります。

パスワードファイルの例

この例では「砂漠.jpg」というファイルが、パスワードファイルの役目を果たしています。

内部的には、投げ込まれたファイルの縮約した小さな固有データ(256bit)を生成し、 それをパスワードとしています。

なお、ファイルの縮約するメッセージダイジェストアルゴリズムにはSHA-256を使用しています。

たとえば、Word文書を暗号化する際に、My Picruesフォルダなどにある写真画像(*.jpg)を パスワードとして指定すれば、隠蔽効果が高まります。 パスワード文字列を類推される恐れもなくなりますし、 さらにパスワードファイルを別の場所(外部メディアなど)に避けておけば、 セキュリティー効果がさらに高まります。

しかし、もしパスワードとして指定したファイルを削除したり、 編集・上書き保存してしまった場合は、パスワードが失われることになります。 そのあたりは十分な注意をもっての運用が必要です。

たとえ、一文字(あるいは1byte)でも変更を加えてしまったとしても、 縮約されたデータは大きく変わる性質を持っています (詳しくは「SHA-1からSHA-256へ」を参照してください)。 パスワードに指定したファイルは、「全体」がキーそのものになっているとお考えください。

使い方を誤るとデータを失うなど、たいへん危険な機能ですので、十分注意し、自己責任で設定してください。 パスワードとして指定するファイルはあらかじめ属性を「読み取り専用」にしておくなどの対策をしておいた方がいいでしょう。

暗号化時にパスワードファイルを自動チェックする

復号時にパスワードファイルを自動チェックする

ここをチェックすると、指定のパスワードファイルを読み込み、 そのまま自動で暗号/復号化するようになります。

暗号時と復号時それぞれで、同じパスワードを使う場合は、 両方に同じファイルパスを指定します。

USBフラッシュメモリー

パスワードファイルを、外部メディア(FDやUSBフラッシュメモリ等)に保存しておけば、 擬似的な物理キーとしても機能します。

USBフラッシュメモリに指定のパスワードファイルを保存して持ち歩き、 暗号/復号化のときだけ差し、そこをチェックさせて使えば、 擬似的な物理キーとしても機能します。

直接そのファイルを読み込み、パスワードとして設定します。

ただし、パスワードファイル名がそのものズバリここに表示されることになります。 他の人が勝手にアタッシェケースを起動し、この設定パネルを見てしまえば、 パスワードファイルの在処は丸見えです。PC上でのセキュリティーを保ちたいのであれば、 扱いには注意が必要です。

パスワードファイルが丸見え

パスワードファイルの所在はもちろん、ファイル名まで丸見えです…

いずれにせよ、常に取り外す外部メディアではなく、 ローカルにあるファイルを指定するのはセキュリティー上、オススメはできません。

パスワードファイルがなくともエラーメッセージを表示しない

チェックすると、所定の場所にパスワードファイルがなかった場合でも、 エラーメッセージを表示しないようになります。

暗号化/復号時、確認無しにパスワードファイルで実行する

チェックすると、パスワード入力画面を経由せずに即座に暗号化・復号処理を実行します。

パスワード入力制限

パスワード入力制限パネル

暗号化ファイルにパスワード入力制限をかける

暗号化ファイルに、パスワード入力回数の制限を設定します。

その回数を間違えたら暗号化ファイルを破壊する

上項で設定された回数を間違えたとき、暗号化ファイルは二度と復号できないよう、 自己破壊します。

この設定を行うと、あなたの大切なデータを失うことになります。 十分注意した上で、自己責任の上で実行してください。

なお、具体的な破壊方法ですが、下図にあるように、 暗号化ファイルの先頭付近に格納されているIV部分を破壊します。

いわば、暗号部の最初のブロックを壊してしまうので、 それ以降、復号に必要なデータが得られず復旧が困難となります。

IVの破壊

データのサルベージ

データのサルベージ設定パネル

万が一、暗号化する際に、不正なファイルパス構造で暗号化されてしまい、 全ファイルが復旧困難に陥ったときに使うための非常用オプションです。

一つずつ親フォルダーを確認、生成しながら復号する

一つずつ親フォルダを確認、生成しながら復号していくので、時間がかかります。暗号化ファイル内部にあるファイルリストの不整合によるエラーでの処理中止を抑止します。

すべてのファイルを同じ階層のディレクトリーに復号する

ディレクトリ除いてすべてのファイルを復号するので、確実にサルベージできます。 同じファイル名が存在する場合は、自動で番号を振ることで重複を避けます。

ファイルのハッシュ値チェックを無視する

「ファイルのハッシュ値が異なります」というメッセージで止まってしまうことを防ぎ、 最後まで復号処理を終わらせます。しかし、いわゆるファイルの整合性が合わないというエラーですので、 すべてのファイルが正しく復号されている保証はありません。

拡張子偽装

拡張子の偽装設定パネル

暗号化ファイルの中身はそのままに、「.atc」 や、「.exe」 などではなく、指定した拡張子にします。 これにより「アタッシェケース」で暗号化されていることは一目では分からなくなります。 関連付けによるアタッシェケースの起動はできなくなりますが、 起動したアタッシェケースにドラッグ&ドロップすることで暗号化ファイルを認識します。

開発モード

開発モード設定パネル

開発コンソールウィンドウを開く

チェックを入れると、暗号化・復号時に開発コンソールウィンドウが別に開きます。 ファイルリストを含むヘッダー情報など、開発に必要な情報を抽出・閲覧することができます。 主にアタッシェケースのデータを解析して、別のアプリを開発するときなどに使用します。


コマンドラインオプション

「起動時のコマンドラインオプション」が何のことか分からないユーザーさんには、まったく関係ありません。 読み飛ばしてください。

このページでは、アタッシェケースをより高度に使いこなしたい人向けに、カスタマイズの方法を説明しています。

アタッシェケースでは、起動時に引数を渡すことで、暗号化/復号処理を行うことが可能です。 他のアプリケーションから扱ったり、バッチファイルなどから操作できます。 たとえば、アタッシェケースのショートカットを作成し、「リンク先」に書き込むことでパスワードを使い分けて、 暗号化と復号処理をするなんて使い方も便利かもしれません。

一般設定

/p=[PASSWORD] パスワード ex). /p=hirakegoma パスに空白を含む場合は、ex). “/p=hirake goma”

/mempexe=[0,1] 記憶パスワードで確認なく実行する ex). /mempexe=1 実行せず確認を行いたい場合は、ex). /mempexe=0

/psm=[0,1] パスワード強度メーターを表示 ex). /psm=0 パスワード強度メーターを表示したい場合は、ex). /psm=1

/wmin=[0,1] 常にウィンドウを最小化して処理する ex). /wmin=1 常に最小化して暗号化/復号処理を行いたくない場合は、ex). /wmin=0

/tskb=[0,1] ウィンドウを最小化したときタスクバーに表示しない ex). /tskb=1 表示しておきたい場合は、ex). /tskb=0

/tsktr=[0,1] タスクトレイにアイコンを表示する ex). /tsktr=1 アイコンを表示したくない場合は、ex). /tsktr=0

/opd=[0,1] フォルダの場合、復号後に開く ex). /opd=1 フォルダを開きたくない場合は、ex). /opd=0

/opf=[0,1] 復号したファイルを関連付けられたソフトで開く ex). /opf=1 フォルダを開きたくない場合は、ex). /opf=0

/exit=[0,1] 処理後、アタッシェケースを終了する ex). /exit=1 終了したくない場合は、ex). /exit=0

/front=[0,1] デスクトップで最前面にウィンドウを表示する ex). /front=1 前面にしたくない場合は、ex). /front=0

/nohide=[0,1] 「*」や「●」で隠さずパスワードを確認しながら入力する ex). /nohide=1 隠して入力したい場合は、ex). /nohide=0

/theme=[light, dark, auto] アタッシェケースの色テーマを選択。それぞれ「ライト」「ダーク」「自動」です。 ex). /theme=dark 「ライト」テーマで起動したい場合は、ex). /theme=light

/exeout=[0,1] 常に自己実行形式で出力する ex). /exeout=1 実行形式で出力したくない場合は、ex). /exeout=0

/chkexeout=[0,1] メインフォームにそのチェックボックスを表示する ex). /chkexeout=1 チェックボックスを表示したくない場合は、ex). /chkexeout=0

/askende=[0,1] 暗号/復号処理かを問い合わせる ex). /askende=1 問い合わせをしたくないときは、ex). /askende=0

/en=1 明示的に暗号化を指定する このオプションを指定すると起動時に「暗号化」処理に移行します。 問い合わせオプションが指定されていても無視されます。

/de=1 明示的に復号化を指定する このオプションを指定すると起動時に「復号化」処理に移行します。 問い合わせオプションが指定されていても無視されます。

/nomulti=[0,1] 複数起動しない ex). /nomulti=1 複数起動するときは、ex). /nomulti=0

/imeon=[0,1] パスワード入力用のすべてのテキストボックスでIMEをオンにする ex). /imeon=1 ONにしないときは、ex). /imeon=0

/notmaximized=[0,1] PCがタブレットモードで動作しているとき、最大化モードで起動しない ex). /notmaximized=1 タブレットモードに従ったまま最大化するなら、ex). /notmaximized=0

保存設定

/exeolder=[0,1] 古いOSでも復号できるように自己実行ファイルを出力する 具体的には、.NET Framework 4.0 ベースの自己実行ファイルを出力します。 ex). /exeolder=1 .NET Framework 4.6.2 は、ex). /exeolder=0

/saveto=[PATH] 常に同じ場所へ暗号化ファイルを保存する ex). /saveto=MyData パスに空白が含まれる場合は、“/saveto=C:\Documents and Settings\User1\My Documents”

/dsaveto=[PATH] 常に同じ場所へファイルを復号化する ex). /dsaveto=MyData パスに空白が含まれる場合は、“/saveto=C:\Documents and Settings\User1\My Documents”

/ow=[0,1] 同名ファイルの場合、上書きの確認をする ex). /ow=1 上書きを確認しない場合は、ex). /ow=0

/orgdt=[0,1] 暗号化ファイルのタイムスタンプを元ファイルに合わせる ex). /orgdt=1 タイムスタンプを生成時のままにしておくのは、ex). /orgdt=0

/now=[0,1] 復号したファイルのタイムスタンプを生成日時にする ex). /now=1 元のタイムスタンプのままは、ex). /now=0

/allpack=[0,1] 複数ファイルは一つの暗号化ファイルにまとめる ex). /allpack=1 まとめない場合は、ex). /allpack=0

/oneby=[0,1] フォルダ内のファイルは個別に暗号化/復号する ex). /oneby=1 個別に処理しない場合は、ex). /oneby=0

/nopfldr=[0,1] 復号するときに親フォルダを生成しない ex). /nopfldr=1 復号するときに親フォルダを生成する場合は、ex). /oneby=0

/withext=[0,1] 暗号化ファイル名に拡張子を含める ex). /withext=1 含めない場合は、ex). /withext=0

/autoname=[FORMAT] 自動で暗号化ファイル名を付加する

ex). /autoname=<filename>_<date:yymmdd><ext> autonameが指定されないと、この機能はOFFとなります。 パスに空白が含まれる場合は、ex). “/autoname=<filename>_<date:yymmdd><ext>“

削除設定

/del=[0,1,2,3] 暗号化した後、元ファイルを削除する 0: 削除しない / 1: 通常削除 / 2: ごみ箱への削除 / 3: 完全削除 ex). /del=1 元ファイル削除しない場合は、ex). /del=0

/delenc=[0,1,2,3] 復号化した後、暗号化ファイルを削除する 0: 削除しない / 1: 通常削除 / 2: ごみ箱への削除 / 3: 完全削除 ex). /delenc=1 元ファイル削除しない場合は、ex). /delenc=0

/chkdel=[0,1] メインフォームにそのチェックボックスを表示する ex). /chkdel=1 チェックボックスを表示したくない場合は、ex). /chkdel=0

/delrand=[0-99] 乱数を何回書き込み消去するか 0-99: 書き込み回数を指定します。 ex). /delrand=3 乱数書き込みしない場合は、ex). /delrand=0

/delnull=[0-99] NULLを何回書き込み消去するか 0-99: 書き込み回数を指定します。 ex). /delnull=3 乱数書き込みしない場合は、ex). /delnull=0

圧縮設定

/comprate=[0-9] (非推奨) 圧縮設定(圧縮率) 0-9: 圧縮率を指定します。 ex). /comprate=6 圧縮しない場合は、ex). /comprate=0 ver.4.0.2.0 から「圧縮」設定は三段階になったため、「/comprate=6」以上は「最適」、「/comprate=0」は「無圧縮」。 それ以外の「1~5」は「最速」と認識されます。そのため「圧縮」の指定には、次のパラメーターを使いましょう。

/complv=[0-2] 圧縮設定 ex). /complv=2 圧縮しない場合は、ex). /complv=0 「/complv=0」は「無圧縮」でファイルに対して圧縮を行いません。 「/complv=1」は「最速」で、圧縮後のファイルが最適な圧縮でなくても、圧縮操作はできるだけ迅速に完了させます。 「/complv=2」は「最適」で、圧縮操作が完了するまで時間がかかる場合でも、最適な圧縮を行います。

高度な設定

/pf=[0,1] パスワードにファイルの指定を許可する ex). /pf=1 許可しない場合は、ex). /pf=0

/pfile=[PATH] 暗号時のパスワードファイルパス ex). /pfile=C:\Temp\pass.txt パスに空白が含まれる場合は、“/pfile=C:\Documents and Settings\User1\My Documents\pass.txt”

/dpfile=[PATH] 復号時のパスワードファイルパス ex). /dpfile=C:\Temp\pass.txt パスに空白が含まれる場合は、“/dpfile=C:\Documents and Settings\User1\My Documents\pass.txt”

/nomsgp=[0,1] パスワードファイルがない場合エラーを出さない ex). /nomsgp=1 エラーを出す場合は、ex). /nomsgp=0

/camoext=[EXT] 暗号化ファイルの拡張子を偽装する ex). /camoext=.jpg 偽装しない場合は、ex). /camoext=null

その他(コマンドラインからのみ)

/4gbok=[0,1] 実行形式のときに出力ファイルが4GBを超えても警告メッセージを出さない 実行形式出力以外のとき、このオプションは無視されます。 ex). /4gbok=1 出す場合は、ex). /4gbok=0

/ws=[0,1,2] アタッシェケース起動時にウィンドウの状態を指定します。 0: 通常起動 / 1: 最小化 / 2: 最大化 ex). /ws=1 この指定の場合、ウィンドウは「最小化」の状態で起動します。

/list=[PATH] 別テキストファイルで暗号/復号処理するファイルリストを指定 ex). /list=C:\Temp\list.txt パスに空白が含まれる場合は、“/list=C:\Documents and Settings\User1\My Documents\list.txt”

指定するファイルリストの書式は、1行1ファイルパスです。

ex). 上記のパスに指定したlist.txtの中身:

hogehoge.bmp
hogehoge1.bmp
hogehoge2.bmp
hogehoge3.bmp
tmp\temporary.htm
C:\Documents and Settings\User1\My Documents\test.doc
  • 別途実行引数にファイルパスを直接入れても、併用できます(と言うよりも、一緒に処理されてしまいます)。
  • 当然ですが、存在しないパスがあると処理中にエラーが発生します。

/lc=[PATH] レジストレーションコードが記載されたテキストファイルパスを指定します。 ex). /lc=C:\Users\user1\Desktop\license.txt 相対パスでも書くことができます。 ex). /lc=..\license.txt パスに空白が含まれる場合は、“/list=C:\Documents and Settings\User1\My Documents\list.txt”

テキストファイルに複数レジストレーションコードが書かれている場合、一番上にあるレジストレーションコードを取得します。 一応、16進法に関係する文字列(0123456789abcdef)以外の文字は無視するので、区切り線やコメントが含まれてても認識されます。


こうして見ると、引数指定はけっこう煩雑ですが、既存の設定をそのままに、 変えたいところだけ一時的に引数指定すると考えて使うとわかりやすく便利かと思います。

たとえば、

"C:\Program Files\アタッシェケース\AtchCase.exe" 企画文書1.doc /p=hirakegoma /ow=1 /exit=1 /saveto=encrypt

とすれば、

「企画文書1.doc」を暗号化するとして、パスワードは「hirakegoma」、 上書きの確認無し、処理後終了、保存先は、「encrypt」フォルダとなります。 それ以外の未指定の動作設定については、既存の設定が適用されます。


技術情報

オープンソース化による安全性について

ユーザー様から「アタッシェケース」をオープンソース化するにあたっては「安全なの?」という懸念も少なからず、 いただきました。

「絶対安全」というのはありませんが、作者としては、むしろ以下のいくつかの理由により、オープン化した方が、 安全と考えています。

そもそも暗号化アルゴリズムがオープン

そもそも、アタッシェケースで使っている暗号アルゴリズムである AES ( Rijndael ) の仕様はオープンになっており、 全世界で広く使われています。

暗号アルゴリズムとは、ようするにデータを「秘密鍵」によって「暗号化する手順」を示したものでしかありません。 ですので、秘密鍵の管理が万全で、その手順を正しく使っているのなら暗号化は安全と言えます。

ここで言うなら、あくまで暗号化される際の「キー(パスワード)」の扱いが重要になるといえます。 パスワードさえ、あなたの手元にあれば、安全は保たれていることになります。

当然、将来的に、他の暗号アルゴリズムにあったような、脆弱性が発見されることがあるかもしれません。 どのようなパスワードを設定しても、脆弱性を突き、 かつ膨大な計算が行えるマシンを使って逆計算を行うような手法を用いれば、 元に戻せてしまうようなセキュリティーホールの発見があった場合です。

ただ、それでも全世界に公開されていることで、すぐに情報開示が行われ、 早急な対応が可能になるという利点もあります。

より透明性が高まる

みなさんの目にソースがさらされることになるため、暗号化アルゴリズム以外の箇所にある潜在的な脆弱性や、 PC全体の動作に影響を及ぼすようなメモリリークなどが発見され、その修正が行われる可能性が高まります。

すでにいくつかのメモリーリークなどが発見され、バージョンアップの度に改良・修正が行われています。

バックドアを仕掛けられていないかという懸念

オープンソースになることで、バックドアや悪意あるスクリプトが仕掛けられていないか? という懸念から解放されます。

オープンソース化した現在でも、アタッシェケースの配布には、僕の手元にあるPCでビルドし、 インストーラーに仕上げて公開・配布しています。

もちろん僕は、使っていただくユーザーさんのことを念頭において開発していますので、 誓ってウイルスやバックドアを仕掛けたり、 意図的な不具合を入れたりすることなどはしていません(もちろんそんなことをしたら犯罪なのですが)。

とはいえ — それさえもちょっと信用できない…と思われる方がいらっしゃるのもたしかです。 特に重要な機密情報を扱う政府機関、または大手の企業、 あるいはシステムに組み込みたいと思っている開発会社さんなどです。

その場合は、オープンソースですので、究極は自分の手元にソースをダウンロードしてきて、 そういった悪意ある箇所がないか確認した上で、自身の手でビルドすることが可能です。 開発環境さえあれば、そのまま同じものがつくられるはずです。

まとめ

というわけで、「アタッシェケース」はオープンソース化することで、安全性が低くなるよりも、 むしろ、透明性が増し、安全性が高まる方向に進むと考えています。

暗号アルゴリズムについて {#encryption-algorithm}

「アタッシェケース」では、暗号化アルゴリズムとして AES ( Rjindael ) を使用しています。

Rijndaelとは、ベルギーの数学者 Joan Daemen 氏と Vincent Rijmen 氏によって開発された 新しい暗号アルゴリズムで、2000年10月にアメリカ政府標準技術局(NIST)によって、 次世代の暗号化標準 AES(Advanced Encryption Standard)として選定されたものです。 一般公募として行われ、その他の暗号アルゴリズム最終候補(ファイナリスト)としては、 Twofish, RC6, MARS, Serpent があります。

それまでは、IBM が開発した DES と呼ばれる暗号アルゴリズムが広く使われていましたが、 コンピュータの著しい性能向上や、アルゴリズムの解析が進むことにより、 強度が心許ないものになってしまいました。新たな暗号アルゴリズムを採用する必要が出てきたのです。 そこへ現れたのが、AES(Rijndael)です。

「Rijndael」の特徴としては、鍵とブロックの長さをそれぞれ 128, 192, 256 ビットの中から指定できるようになっており、さらに拡張することも可能です。 AESではブロック長に限って128ビットの固定と規定されています。

また、その他ファイナリストの暗号化アルゴリズムにあるような、 暗号化中のビット変換をFeistel構造(ファイステルネットワーク)という一般的なアルゴリズムで行うのではなく、 SPN 構造といった3つの異なる独自変換を行うことで、強力な暗号化を実現しています。

AES は、仕様が公開されていることが原則です。そのため、誰でもが無料で利用でき、 自由にソースへ組み込むことができるのはもちろんですが、世界の研究者たちが常に検証を行っていますので、 暗号強度については折り紙付きです(たとえ破られたとしてもすぐに情報が得られます)。

また、AES はさまざまなプラットフォーム上で動くことも前提となっていますので、 処理速度も高く、優れたアルゴリズムとなっています。

2000年に正式採用されてから20年余り、アメリカでは DES から AES への乗り換えがだいぶ進んでいると聞きます。 また、日本でもソフトウェアなどへの組み込みが増えてきて、実績も証明されつつあるようです。

AES(Rijndael)についての情報については、以下のサイトで入手することができます。

Advanced Encryption Standard (AES) - NIST(英文)
https://www.nist.gov/publications/advanced-encryption-standard-aes

BrianGladman/aes: AES code - GitHub(英文)
https://github.com/BrianGladman/aes

また、その他、様々なプラットフォーム上で動くソースコードは以下に掲載されていますので、 興味のある方は利用されてみてはいかがでしょうか。

AES implementations - Wikipedia(英文)
https://en.wikipedia.org/wiki/AES_implementations

また、こんなインターネット、ブロードバンドのご時世ですが、 個人でも暗号化アルゴリズム(またそれを含むソフトウェア)を海外へ輸出すると、 国際条約に違反する恐れがあります。

以前に比べ、だいぶ規制は緩和されたとはいえ、アメリカなどが認定するテロ支援国家への軍事目的等の輸出は、 今でも法的に罰せられる可能性があります。たぶん明らかな意志で自ら行った場合のみでしょうけども、 念のためご注意を…。

ちなみにテロ支援国家とは2021年現在、

イラン、シリア、キューバ、北朝鮮の4カ国です。

暗号化モード

アタッシェケースは、古くは(ver.1.**)まで、 「ECB(electronic codebook:電子符号表)モード」と呼ばれる方式で暗号化していました。 単純にブロックごとに暗号化して、そのまま暗号化ファイルに書き込む方法です。 図に表すと、以下のような感じになります。

ECBモード

同じファイル、同じパスワードであれば、まったく同じ中身の暗号化ファイルが生成されます。 なのでこの方式では、その暗号化の特徴からブロック単位での解読がしやすくなってしまいます。

ただ、多少なりとも「検証のしやすさ」という弱点があることは否めません。 そこで、「アタッシェケース ver.2」から、「CBC(cipher block chaining:暗号ブロック連鎖)モード」 と呼ばれる方式で暗号化することにしました。簡単な図式にすると以下の通り。

CBCモード

上図を見れば明らかですが、まず最初に「初期化ベクトル(Initialization Vector)」と呼ばれる、 乱数によるブロックデータを生成します。

これをデータブロックと排他的論理和(XOR)をとってから、暗号化ファイルへ書き込んでいます。

つまり最初の乱数データを元に、データを連鎖的にからめ、巻き上げていくように、 暗号化データを生成していきます。この結果、最初に乱数値が与えられることで、 同じファイル、同じパスワードで暗号化しても、毎回同じ中身になることはありません。 これにより、暗号化特徴からの「検証のしやすさ」の弱点をなくすことができます。

では、最初に乱数を与えて、どうして元に戻す(復号する)ことができるのでしょうか? それは以下の図の通りです。

CBCモードによる復号

最初に与える乱数によるブロックデータも、ファイルに書き込まれているので、 元に戻すことができるのです。

では、ファイルにその乱数によるブロックデータが書き込まれてあっても、 解析の糸口にされたりしないのでしょうか?

それはできません。暗号化されたブロックデータをまず解析して復号化しない限り、 たとえ乱数データが見えていても解析の何の役に立たないからです。 乱数データが元となって、このチェインを解きほぐし、解析の端緒にすることはできません。

RFC2898によるキー派生

アタッシェケースのVer.3以降から、 RFC2898 に基づいたキー派生により、データのパスワードキーと、初期化ベクトル(IV)を導出する仕様に変更しました。

たとえば16文字までパスワード文字列を指定できるのに、「a」と一文字だけにしてしまうと、 15文字は空いてしまうということになります。

16文字の内、15文字が空いた状態に

そこで、入力されたパスワードからランダムな文字列を生成して、 きちんと16バイト埋めた状態で暗号化した方がより安全であるというわけです。

RFC2829を使ったキー導出の仕方

具体的には、 「PKCS #5: Password-Based Cryptography Specification Version 2.0(パスワードベースの暗号化仕様)」に基づき、 ソルト(まさにお塩)となる乱数を混ぜ込んでパスワードベースのキー派生を1,000回繰り返した後の、 派生キー、初期化ベクトルを順々に出力し、それぞれを暗号化の際のキー、初期化ベクトルに使用しています。

とはいえ、この対策を講じても、パスワードの総当たり攻撃(ブルートフォースアタック)に、 無力なことには変わり有りません。パスワード文字列は、できるかぎり長い文字列を推奨します。

SHA-1からSHA-256へ {#hash-algorithm}

「SHA」とは、Secure Hash Algorithm の略で、 メッセージダイジェストアルゴリズム(Message Digest Algorithm)の一つです。 大きなサイズのデータを、固定長の小さなサイズのデータ列に縮約(要約)するためのアルゴリズムです。

同じデータであれば、必ず同じ縮約されたデータになるので、そのファイルの正当性をチェックしたり、 パスワードをそのまま保存するのではなく、そのメッセージダイジェストを保存して比較したりするなどして、 セキュリティーを強化する目的で使用されます。

ファイルを少しでも編集すると(たとえ1バイト変更するだけでも)、 まったくちがうメッセージダイジェストが出力されます。たとえて言うなら、 そのファイルの「指紋」のようなもので、固有の値が生成されます。

もちろん、どのような大きなファイル(データ)であっても、小さいデータに縮約されるので、 異なるデータでも同じ結果になることは完全には否定できませんが、その可能性はきわめて低いため、 実用上問題ないとされています。

アタッシェケースでは、パスワードファイルにのみ、 SHA-1ハッシュが使われてきました。ただ、最近になってSHA-1の脆弱性が指摘されています。 脆弱性の内容から、「影響は軽微である」とする意見や、アタッシェケースでの使い方からすれば問題ないとも言えますが、 最近では、より安全性の高い、SHA-256や、SHA-3などへの移行が進んでいます。 そこで、アタッシェケースでも、パスワードファイルで使うハッシュに、SHA-256を採用することにしました。

よって、過去にパスワードファイルで暗号化したファイルは、ver.3から復号できなくなっています。 過去のものは、古いバージョンで一度復号されてから、再度ver.3以降で暗号化してください。

圧縮アルゴリズムについて

圧縮処理については、 zlib ライブラリを組み込んで使っています。 .NET Framework 4.5 にある、 「DeflateStream」を使って圧縮されているので、内部的に zlib が選択されるようです。

zlib とは、 zip や gzip に使われている圧縮アルゴリズムをライブラリ化したもので、 フリーとして公開されているものです。圧縮率が高く(lzhよりも高いと言われていますがデータの中身に依存します)、 処理も高速です。何よりもアーカイバDLLを必要とせずに、圧縮機能を独自に用意できるメリットが大きいです。

ちなみに、グラフィックデータフォーマット「PNG」でも zlib 圧縮が使われているようです。


サポート

商用利用

Windows

ベータテスト期間中は無償でお使いいただけます。また、当方としては「試用期間」を一か月としていますが、 アプリにその制限はなく試用し続けることもできます。十分試用した上で検討し、お支払ください。

価格は、**1ライセンス(1ユーザー)=550円(税込)**とする予定です。

ただし、ユーザーの皆様の反応を見て、価格は変更される可能性があります。

なお、

  • 家庭用、個人利用
  • 学生、教育機関関係者

は、フリーライセンス版として無償でお使いいただけます。

個人利用だが、お支払いいただくことで「支援」「寄付」という形で応援したいという方が いらっしゃるのなら、それも大歓迎です。その際には、商用と同様に、レジストレーションコードが発行されます。

これらに伴って、旧バージョン ver.3, 2 のサポートは今後打ち切りになります(2022年4月には完全終了)。 ただし、引き続き旧バージョンは、個人利用、商用に関わらず無償でお使いいただけます。

macOS

macOS版については、誰でもが(個人利用、商用利用に関わらず)無償で利用することができます。

ただし、それは当ウェブサイトからダウンロードされたものであって、 将来的に App Store で取り扱うものは有償になる可能性があります(個人利用、商用を問いません)。

価格はWindows版と同程度を予定しています。

macOS版も含め、なぜ当ウェブサイトからのダウンロードは無償で、App Store からは有償なのかは、 次の項目にある理由のとおりです。

商用利用が有償になった理由

理由はいろいろありますが、ウェブサイト管理・維持費用、ソフトウェア開発継続コスト、 特にWindows上で安全を証明し、警告メッセージなくインストールできるようにするため 実行ファイルに付与する「コードサイニング証明書」代金、 また、macOSでは、開発者登録料(Appleデベロッパー登録料)など、 広告収入が減る中で、とてもまかないきれなくなってきたからです。

バグや、苦情のメールはたくさんいただきますが、どのような方々が使っているのか見えず、 正直モチベーションが下がっているということもあります。

なお、ソースコードは、GPLv3ライセンスで公開されていますので(macOS版は非公開)、 野良ビルドしてのご利用に制限はありません。

あくまでこの公式サイト、または App Store からのダウンロード(※現在はベータテスト中につき公開はしておりません)に ご利用料金がかかります。 つまり開発維持コスト、コードサイニング証明書代など含め、配布されるものに関しての費用とお考えください。

著作権表示

『アタッシェケース4』 AttacheCase4 Copyright (C) M.Hibara, All rights reserved.

ひばら みつひろ

ライセンス {#license}

ソースコードのライセンスについては、 「GPLv3ライセンス」を適用します。

GPLv3ロゴ

Copyright (C) 2016- M.Hibara

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

FAQ(よくある質問) {#faq}

Q. 暗号化したときのパスワードを忘れてしまいました。復号するには、どうしたら良いでしょうか? 何か解読方法はありませんか?

どうにもなりません。あきらめてください。詳しくは、 パスワードを忘れてしまったらの項目をご覧ください。


Q. 「ファイル生成中にエラーが発生しました。""の生成に失敗しました。復号処理を中止します。」と出て、正常に復号できません。**

このエラーメッセージは、”**“というファイルを作成しようとしたときに、 何らかの原因により書き込めなかったときに表示されます。考えられる原因として、 そのファイルが別アプリケーションにより編集中、 ハードディスクまたはメディアへの書き込みができない状態などが考えられます。


Q. 関連付け設定が有効になりません(暗号化ファイルがアタッシェケースアイコンになりません)。

Windows XP以降において制限ユーザーなどでログオンしていると、関連付け設定が有効になりません。 これはセキュリティーを考慮したWindowsの仕様です。 ですので、アタッシェケースの暗号化ファイルの関連付けを有効にしたい場合は、 一度管理者権限でアタッシェケースを起動する必要があります(※起動時に関連付け設定を行っています)。


Q. 前のバージョンで自己実行形式で出力したのですが、復号できずにエラーが発生してしまいます。ファイルを戻せませんが、どうしたらいいですか?

それは以前のバージョンにあったアタッシェケースのバグが原因です。 暗号化ファイル(中身自体)は壊れていないのですが、復号化するプログラムに問題がありました。 その場合は、最新のアタッシェケースに、戻せなくなった自己実行形式ファイル(*.exe)をドロップして、 直接復号化すれば戻すことができます。


Q. 復号化処理中に「zlibからエラーを返されました! エラー番号:*」といったメッセージが表示されて中止しました。これは何?

圧縮処理で使っているライブラリからエラーを返されたようです。 考えられる原因としては、メディアへのコピー途中で暗号化ファイルが壊れたか、 暗号処理中に対象ファイルを別アプリケーションなどで編集を行っていると壊れたデータを作る可能性があります。


その他

アタッ「シュ」ケースではない

まったくどうでもいいことなんですが、最近まで作者はあのカバンのことを、 「アタッシュケース」と呼んでいました(^^; 作者以外にも、 けっこう勘違いしている方は多いのではないでしょうか?

たしかに辞書には載っていませんし、このソフトを開発するにあたり、ネーミングをつける段階で初めて知りました。 「アタッシェ」が正しい。

そもそも「アタッシェ」とはフランス語のようでして、岩波書店の広辞苑によれば、

Attache — 大使館・公使館に派遣される専門職員。古くは特に、大使館・公使館付の武官。

だ、そうです。

つまり外交官などが持つ書類カバンのことを指して「アタッシェケース」となったようですね。

ちなみにインターネットで検索すると、 「アタッシュケース」と誤記したアタッシェケース販売サイトがいくつか見つかりました(笑)。

ユーザーの方から、その昔「某ドリンク剤のCMの曲で”♪アタッシュケースは勇気の印〜“などという歌詞があって、 それで勘違いしてました」というメールをもらいました。 そういえば作者もこれが原因で勘違いしていたのかもしれません(^^;)。

開発のキッカケとオープンソース化した理由

そもそもは「自分で使いたい」と思ったのがキッカケです。

仕事でよくデータを自宅に持ち帰るとき、その当時はクラウドなんて、影形もなかったですし、 Webサイト経由で安全にデータをやりとりする方法がなかったのです(あるにはありましたが、お金がかかりました)。

当時、有償・無償にかぎらず、いろいろなソフトを試しましたが、イマイチどれも使い勝手がよくない… アルゴリズムは簡単に手に入るのに、それにGUIをくっつけるだけじゃないの? 刺身にタンポポでしょ? じゃあ、自分で作っちゃえ —

そんな気軽なキッカケから開発が始まりました。

当時はそんな「暗号化する」なんて、どっかの諜報機関ですか? どんだけ秘密データ持ってるだよ?的な、少しマニアックに見られる世界でした。 とある知り合いからは「怖い」とまで言われました。たぶん「キモい」にかぎりなく近いニュアンスでしょう。

その頃は、アルゴリズムなんてAESだけで十分なのに、「いろいろな暗号アルゴリズムが使えますよ!」と 標榜するソフトがあったりして、むしろ暗号化することが楽しい人たちが使う、そんな当時の雰囲気でした。

ところが、その何年か前に、顧客情報の漏洩事件の頻発し、個人情報保護法ができたりすることで、 「暗号化する」ということが急に一般化されたような気がします。

それを機に、アタッシェケースのユーザーが爆発的に増えました。とある政府機関であったり、地方自治体や、 大手の企業さんでも全社的に導入してくださったりと、ちらほらと大きなところからご連絡をいただくようになりました。 現在も当サイトからけっこうな数のダウンロード数があります。

そうして、ちょっと僕個人では手に負える規模ではなくなってきたな… そんな不安が少しよぎったとき、事件が起きました。


「アタッシェケース」に脆弱性が発見される

まさか、自作ソフトが脆弱性発見と報じられるなんて思ってもいませんでした。

失礼ながら、IEやFirefoxなどのブラウザーとか、有名なアプリケーション上だけに起きる 別次元の出来事と思っていました。

ネットで記事になったり、自分のサイト(当時@niftyにあったホームページ)がアクセス負荷で 一時閉鎖されてしまったり、少しだけ周囲が騒々しくなったりもしました。

そのあたりの経緯は、 ブログ記事 にしてありますので、興味ある方はどうぞ。

このときに、ある方から「オープンソースにしたら?」との一通のメールをいただき、 再び脳裏をよぎりました。ただ、このときはすぐにオープンソース化する準備もできておらず、 継ぎ足し継ぎ足ししてきたソースコードはぐちゃぐちゃで、どこがいま使われているのかもわからない状態でした。

とても見せられたもんじゃない…将来的になんとかしよう…

そう思って時間だけが過ぎていき、決定的な事件が起きました。


大病がキッカケでオープンソース化へ

大病を患ったのがキッカケです。死にかけました。

入院したときはそれどころではなかったですが、命拾いして帰ってきたとき、 大量のアタッシェケースに寄せられたメール(ほとんど不具合報告ですが(笑))を見たとき、 「これはいかん…」と思い直したのです。

もしも僕が死んだとき、拙作ながらも(正確にはわかりませんがおそらく)数万人はいるであろうユーザーさんに、 ご迷惑をおかけしたくないと。

前述の脆弱性が発見されたことも、後押しになっています。もう一人で、 閉じた世界だけでやっていくには荷が重すぎるとも思いました。

ちょうどそのとき、GitHub というプログラマーのソーシャルサービスが良い具合に成熟してきていて、

「乗るしかない、このビッグウェーブに」

さっそくアカウントをつくってしまいました。