1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ファイル暗号化コマンドとしての StreamRelay.jar

Last updated at Posted at 2017-06-08

java.exe -Djava.security.policy=StreamRelay.policy -jar StreamRelay.jar

StreamRelay.bat

暗号化コマンドとしてのStreamRelay.jar

圧縮と同じように、暗号化処理もjavax.crypto.CipherInputStream/javax.crypto.CipherOutputStreamクラスになっているので、StreamRelay.jarがあれば、ファイルの暗号化もできるという事

ファイル暗号化なので、入出力はファイルとなる
つまり、入力ファイル→(暗号化された)出力ファイルなので、
「local」の入力ソース(実体)にファイル、「remote」の出力ソース(実体)に暗号化ファイルとすればいい

つまり、

  • アルゴリズム : AES
  • モード : CBC
  • パディング : PKCS5Padding
  • 鍵 : abcdefgh
  • 鍵の攪拌 : SHA512 (実際の鍵は「abcdefgh」のSHA512の先頭128bit)
  • Cipherクラスのinit()に渡す初期値 : 0410e448928a9e2d81d6551a90642074019d

java.exe -Djava.security.policy=StreamRelay.policy -jar StreamRelay.jar -LocalPort 0 -RemotePort 0 -LocalInputFile a.txt -RemoteOutputFile a.txt.aes -RemoteCipherAlgorithm AES/CBC/PKCS5Padding -RemoteCipherPassword abcdefgh -RemoteCipherPasswordHashAlgorithm SHA-512 -RemoteAlgorithmParameters 0410e448928a9e2d81d6551a90642074019d

とすると、上記の条件で a.txt→(暗号化)→a.txt.aes となる

復号コマンドの代替

復号コマンドは、(暗号化された)入力ファイル→(復号された)出力ファイルなので、
「local」の入力ソース(実体)に暗号化ファイル、「remote」の出力ソース(実体)に結果ファイルとすればいい

上記の暗号化されたファイルの復号は

java.exe -Djava.security.policy=StreamRelay.policy -jar StreamRelay.jar -LocalPort 0 -RemotePort 0 -LocalInputFile a.txt.aes -RemoteOutputFile a.txt.out -LocalCipherAlgorithm AES/CBC/PKCS5Padding -LocalCipherPassword abcdefgh -LocalCipherPasswordHashAlgorithm SHA-512 -LocalAlgorithmParameters 0410e448928a9e2d81d6551a90642074019d

暗号アルゴリズムの一覧

java.exe -Djava.security.policy=StreamRelay.policy -jar StreamRelay.jar -ListCipher

鍵を攪拌するハッシュ関数の一覧

  • SHA-384
  • SHA-224
  • SHA-256
  • MD2
  • SHA
  • SHA-512
  • MD5
  • MD4

-[Local|Remote]CipherAlgorithm に渡す文字列

"暗号アルゴリズム名"/"モード"/"パディング"

Cipherクラスを作成する時の引数と一緒

モードの一覧とか、パディングの一覧は、
JavaTM 暗号化拡張機能 (JCE)リファレンスガイドを参照かな。

-[Local|Remote]AlgorithmParameters

Cipherクラスのinit()に渡すパラメータです

nullとなるようなアルゴリズムとかモードとか選ぶと楽かも(この指定をしなくてもよい)

例えば

  • RC4
  • AES/ECB/PKCS5Padding (ECBモードがポイント)

暗号通信

zebedee のような vpn の代替としての StreamRelay.jar


StreamRelay.jar で入力ダイアログで暗号鍵を与える

StreamRelay.jar で入力ダイアログで暗号鍵を与える


Rabbit(ver8.4以降)

ver8.4 以降でRabbitが使えるようになった。


目次へ戻る

目次というか最初の一歩

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?