pupsaveの暗号化パスワードで使用できる文字について

5.X系のバグ、トラブル・質問

モデレータ: 暇人, YoN, nyu

返信する
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

pupsaveの暗号化パスワードで使用できる文字について

投稿記事 by ssnys »

普段よりPuppy Linux(Precise-571JP)を愛用させていただいております。 :D

Precise-571JPではpupsaveの暗号化が可能ですが、その際パスワード内の$の扱いについて気になったことがありました。

Precise-571JPをRAM Onryで起動し、終了、その際に重い暗号化で64MB、パスワードは「aa$aa」でpupsaveを作成しました。その後再び電源を入れ、作成したpupsaveを選択し、パスワード「aa$aa」をに入力するも、パスワードが異なるようでそのpupsaveを使用して起動できません。 :cry:

他のpupsaveの利用やRAM OnryでPuppy Linuxを起動した後、filemntコマンドで先ほど作成したpupsaveをマウントすることはできます。

色々なパスワードのpupsaveを作成し試してみたのですが、どうも$の後に英数字が続くとブートの際に問題が起きるのではないかと思われます。

未だにどういったパスワードのパターンだと問題が起きるかは完全には分からないのですが、これはバグでしょうか、仕様でしょうか? :? それとも当方の環境のみ起きているのでしょうか。

当方Puppy Linuxについても全くの初心者故、拙い質問本文で恐れ入りますが、ご回答頂ければ誠に幸いでございます。 :P
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

Re: pupsaveの暗号化パスワードで使用できる文字について

投稿記事 by ssnys »

パスワード入力時に入力した文字が表示されないため、誤入力が原因かと思い、initrd.gzの内のinitのread -s MYPASSをread MYPASSに書き換えて、表示できるようにし試して見たのですが、ブートできないです。入力したパスワードには問題ないため、losetupの問題でしょうか。 :?

引き続き調査していきたいと思います。 :|
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
アバター
ルビー
記事: 1240
登録日時: 14/11/24(月) 12:12

Re: pupsaveの暗号化パスワードで使用できる文字について

投稿記事 by ルビー »

私はpupsaveの暗号化をした事がないですが、571JPで試してみました。
通常(非公式?)のフルーガルインストールの手順で、パピーのシステムファイルのみのディレクトリから起動して、pupsaveを作成しました。
重い暗号化、ファイルタイプ ext4、ファイルの大きさ 256MB、パスワード abc$def。

結果は、この暗号化したpupsaveでは、入力パスワードが違うと出て起動不可でした。
他のパピーから、ROX-Filerでマウントしたら、パスワード abc$def でマウントできて中も見えました。

パスワード作成時の注意書きで、現在のキーボードレイアウトが起動時のものとは違うかもしれないので、半角英数字のみを推奨となっていますが、この辺が絡んでいるのではないでしょうか。
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

Re: pupsaveの暗号化パスワードで使用できる文字について

投稿記事 by ssnys »

ルビーさんご返信頂きまして誠にありがとうございます。 :D

色々と調査した結果、(金田一少年のように)「謎は全て解けた」とまでは行きませんが、かなりよく分かりました。 :P
ルビー さんが書きました: パスワード作成時の注意書きで、現在のキーボードレイアウトが起動時のものとは違うかもしれないので、半角英数字のみを推奨となっていますが、この辺が絡んでいるのではないでしょうか。
当方も当初キーボードレイアウトの違いや、入力するパスワードの文字コードの違いではないかと思い、initrd.gzの`/init`にデバッグコードを追加して調べていたのですが、どうも問題はここではないようです。 :|

暗号化したpupsaveを作成するときや、`filemnt`コマンドでマウントするときにはパスワード入力用のダイアログが表示されますが、そのダイアログの入力フォームでは変数が展開されてしまうようなのです。 :shock:

`filemnt`コマンドではダイアログの表示に`pupdialog`コマンドが使用されています。試しに以下のようなコマンドを実行し、入力フォームに`$HOME`と入力すると、返り値は`/root`になってしまいます。 :roll:

コード: 全て選択

pupdialog --title 'Password required' --stdout --inputbox 'Password required to open'
故にパスワードがaa$aaの場合、$aaが変数として解釈されるため、実際のパスワードはaaとなるようです。

パスワードに特殊な記号を使用する場合は、pupsaveを手動で作成した方がよいかと思われます。
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
アバター
ルビー
記事: 1240
登録日時: 14/11/24(月) 12:12

Re: pupsaveの暗号化パスワードで使用できる文字について

投稿記事 by ルビー »

ssnys さんが書きました:故にパスワードがaa$aaの場合、$aaが変数として解釈されるため、実際のパスワードはaaとなるようです。
なるほど。
パスワード abc$def 設定 → abc 入力で起動しました。

pupdialog が変数を展開するのが、仕様なのか、不具合なのかは分かりませんが、pupdialog はパピーの随所で使われています。

PupSaveConfig で、パスワードに _(アンダーバー)さえ使うなと書いてある位ですから、記号を禁止しているのは、何か理由があるのでしょう。
理由は、キーボードレイアウトだけではなくて、pupdialog もあるのかもしれないし、他にもあるのかもしれません。

いずれにしろ、注意書き以上の事をあえてやりたいのであれば、もともと無保証ですが、もう好きにしてくださいの次元の話になると思います。
ssnys さんが書きました:パスワードに特殊な記号を使用する場合は、pupsaveを手動で作成した方がよいかと思われます。
手動でpupsaveを作ると言うのは、PupSaveConfig を使わないでと言う事でしょうか?
私は、やった事ありませんが、作成したpupsaveの信頼性など、大丈夫なのでしょうか。
ssnys さんが書きました:当方Puppy Linuxについても全くの初心者故、
これまでのssnysさんの書き込みを読むと、誰もそう思わないでしょう。
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

Re: pupsaveの暗号化パスワードで使用できる文字について

投稿記事 by ssnys »

ルビーさんご返信頂きまして誠にありがとうございます。 :D
ルビー さんが書きました:
ssnys さんが書きました: パスワードに特殊な記号を使用する場合は、pupsaveを手動で作成した方がよいかと思われます。
手動でpupsaveを作ると言うのは、PupSaveConfig を使わないでと言う事でしょうか?
私は、やった事ありませんが、作成したpupsaveの信頼性など、大丈夫なのでしょうか。
以下のような流れで暗号化したpupsave(precisesave_crypta-test.2fs)を手動で作成してみました。

コード: 全て選択

~# dd if=/dev/urandom of=/mnt/home/puppy/precisesave_crypta-test.2fs bs=1024k count=64
64+0 records in
64+0 records out
67108864 bytes (67 MB) copied, 11.1032 s, 6.0 MB/s
~# modprobe cryptoloop
~# modprobe aes_generic
~# modprobe aes
~# modprobe crypto_blkcipher
~# modprobe cbc
~# testloop=`losetup-FULL -f`
~# echo 'aa$aa' | losetup-FULL -p 0 -e aes "${testloop}" /mnt/home/puppy/precisesave_crypta-test.2fs
~# mkfs.ext2 "${testloop}"
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
16384 inodes, 65536 blocks
3276 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67108864
8 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done
~# mkdir /mnt/testsave
~# mount -t ext2 "${testloop}" /mnt/testsave
~# cp -a /initrd/pup_ro1/* /mnt/testsave
~# umount /mnt/testsave
~# losetup-FULL -d "${testloop}"
一応作成したprecisesave_crypta-test.2fsでブート可能なことは確認致しました。一見した限りでは問題は確認できませんが、長期間使用していないため、信頼性については何とも言えません。もしかしたら今後問題が見つかるかもしれません。

今になって見直してみると「手動で作成した方がよいかと思われます。」というのはやや強い表現ですね。「手動で作成した方がよいかもしれません。」程度に訂正させてください。
ルビー さんが書きました:
ssnys さんが書きました: 当方Puppy Linuxについても全くの初心者故、
これまでのssnysさんの書き込みを読むと、誰もそう思わないでしょう。
Puppy Linuxはまだまだ理解しきれていない部分があり、自分の中ではまたまだ初心者だと認識していたのですが、誤解を招く表現だったことについては、申し訳ございません。お詫びさせてください。

一方で当方が投稿した幾つかの質問について、ルビーさんも含めPuppy Linuxマスターの方々がたちどころに問題を特定や、解決方法示してくださり、改めてレベルの差を痛感しているとともに、感謝している次第です。 :P

参考にしたページ
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
ssnys
記事: 64
登録日時: 14/02/19(水) 17:50

Re: pupsaveの暗号化パスワードで使用できる文字について

投稿記事 by ssnys »

ssnys さんが書きました:

コード: 全て選択

~# mkfs.ext2 "${testloop}"
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
16384 inodes, 65536 blocks
3276 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67108864
8 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
   8193, 24577, 40961, 57345

Allocating group tables: done                           
Writing inode tables: done                           
Writing superblocks and filesystem accounting information: done
一つ前の投稿では`mkfs.ext2`コマンドのオプションなしでファイルシステムを作成していますが`/etc/rc.d/rc.shutdown`では、以下のコマンドで作成しています。こちらのコマンドの方が適切かもしれません。

コード: 全て選択

mke2fs -q -m 0 $DEVLOOP
また、以下のコマンドは現在のpupsaveの内容を新たなpupsaveにコピーするものですが、コピー後に`/mnt/testsave/etc/rc.d/BOOTCONFIG`内の`PREVUNIONRECORD`と`LASTUNIONRECORD`を過去のpupsaveファイル名から、新たなpupsaveファイル名に変更したほうがよいかもしれません。
ssnys さんが書きました:

コード: 全て選択

~# cp -a /initrd/pup_ro1/* /mnt/testsave
💻Lenovo G550(CPU: Intel Celeron 900 @ 2.20GHz, RAM: 971MB, HDD: 149.05GiB) + Precise-571JP
🖥HITACHI FLORA 310 DL7(CPU: Intel Pentium III 700 MHz, RAM: 384MB) + Precise-571JP
返信する