もう一人のY君

iPhoneアプリのレビューやアップデートレビューなどを書いています. たまに数学の記事も書きます.

もう一人のY君 MENU  MENU

【iPhoneショートカット】レシピにパスワードを組み込む【Tips】

f:id:thetheorier:20201029091047p:plain

 ショートカットでは色んなことができますからまぁ人に見られたくない…とかプライバシーに関わるレシピも作りたくなるでしょう.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS14.1

 

 

スポンサーリンク

 

 

 

パスワードの仕組みを段階的に考察

 今回は考察が主なので特にレシピを配布とかはありません.

 

 

基本的な考え方

 まずはパスワード処理の基本からです.

 

 

f:id:thetheorier:20201029091405p:plain

 まずはパスワードとしたい文字列を与えます.

 

 

f:id:thetheorier:20201029091439p:plain

 「入力を要求」アクションでテキストを入力させ, それが最初のテキストと一致するなら通す, 一致しないならその旨を表示して初めに戻る, これが基本的な仕組みです.

 

 実際に行いたいアクションは一致した場合の中に書き込めばいいわけです.

 

 

f:id:thetheorier:20201029091604p:plain

 誤っていれば「一致しません」…と表示され,

 

 

f:id:thetheorier:20201029091647p:plain

 一致すれば通ります.

 

 しかしこれではレシピを見ればパスワードがバレバレです.

 

 

応用1:「ファイル」アプリを使う

 そこでパスワードとなる文字列を「ファイル」アプリに置き, これを読み込んで比較します.

 

 

f:id:thetheorier:20201029091906p:plain

 パスワードとなる文字列を, 「ファイル」アプリの"Shortcuts"フォルダ内の適当な場所にテキストファイルとして保存しておきます.

 画像のようにより深くフォルダを作り, その中に入れれば多少安全性が向上します.

 

 

f:id:thetheorier:20201029092158p:plain

 メインのレシピは最初が「テキスト」アクションに直書きであったのを「ファイルを取得」アクションに置き換えるだけです.

 

 パスワードを盗み見しようとする人は「ファイル」アプリを開いてパスワードが書かれているテキストファイルを見る分の手間が生じるわけです.

 

 

応用2:パスワードを暗号化風にする

 しかしこれでも満足できない人がいるかもしれません, ファイルアプリから所定のテキストファイルを見られたらそれまでですからね.

 

 そこで着信音などで話題になったBase64エンコードを活用してパスワードの文字列を暗号化っぽくしてみます.

 

 

f:id:thetheorier:20201029092549p:plain

 新しくレシピを新規作成し, まずパスワードとなる文字列を「テキスト」アクションに入れておきます.

 これを変数で置きます(passという名の変数は結局使っていないので無かったことにしてください).

 

 

f:id:thetheorier:20201029092710p:plain

 そしてこのパスワードの文字列をエンコードしてクリップボードにコピーします.

 折角なのでコードのプレビューと同じく文字数も見てみます.

 なんとなく「予感」していたので, エンコードは指定回数繰り返しています.

 また文字数が多すぎると正しくデコードできないことを確認しているため, 1万文字を超えたときに1度エンコードして終了するようになっています.

 

 

f:id:thetheorier:20201029093010p:plain

 そして変換したBase64コードを同じ回数エンコードすると元に戻るはずです.

 

 

f:id:thetheorier:20201029093310p:plain

 まずエンコード1回の場合.

 エンコードテキストは36文字でデコードもちゃんとできました.

 

 

f:id:thetheorier:20201029093410p:plain

 繰り返し回数を2回にするとちょっと増えて48文字, デコードも正しく行えています.

 

 

f:id:thetheorier:20201029093506p:plain

 一気に繰り返し回数20回にしてみると13,436文字というとんでもな文字数になりましたがちゃんとデコードできました.

 

 これを「ファイル」アプリのテキストファイルとして書いておけば, 見られたとしてもパッと見て意味不明ですよね.

 

 

f:id:thetheorier:20201029093804p:plain

 というわけで指定回数Base64エンコードした暗号化パスワードを指定フォルダに書き込み, メインのレシピでそのテキストファイルを読み込んでその後同じ回数デコードすることで元のパスワードになる…というわけです.

 

 

応用3:とことん暗号化

 応用2ではパスワードのみ暗号化しました.

 

 ならそのパスワードが保存してあるファイルパスも, 更に繰り返し回数も同じように複数回Base64エンコードし, レシピ内で同じ回数デコードすればより一層他人に突破されづらくなります.

 

 あるいはロック画面のパスコードのように, 一定回数間違えるとパスワードファイルを空にしたりパスワードファイル自体を削除すれば相手はその先を知る術をほぼ失います.

 端末を所有するユーザーからすればこれによって失うのはたかだかパスワード(暗号化)ファイルとファイルパス(暗号化)のファイル, そして繰り返し回数(暗号化)ファイルだけで肝心な部分は失なわず, これらは再び作り直すだけです.

 ロック用の回数はレシピ内に設定するとレシピを終了することでクリアされてしまうので, 例えばData Jarを使うのが良いかもしれません.

 

 

 ここまでやっておけば突破されるまでかなりの手間を求められます.

 書き出し用のレシピも削除しておけば解析ツールから作り直しですからね.

 こちらは何がどこにあるかは知っていますし, ツールを作り直す余裕があります.

 

 あとは相手にバレるようなパスワードにしない, 忘れてしまうようなパスワードにしないことに注意することくらいです.