generated at
EpisoPass

増井俊之 が作ってるパスワード管理システム
というかパスワードを生成するシステム
自分のエピソード記憶をもとにランダムぽい文字列を生成し、それをパスワードとして利用する
データを全部公開可能なので、秘密の何かを覚えておくストレスが無い
「増井 パスワード」でググれる!

これ使いたいんですけど、そもそも使えそうなエピソード記憶が思いつかない……takker
小学校の頃の友達?いないです……
人間のリストは問題としてはあまり良くないかもです 増井俊之
エピソードを知ってる人がいるだろうし、問題を作りにくいので
変なエピソードだと喧嘩になるかもしれないし
トップのGIFアニメは変えた方がよさそうですね
あと下手したらScrapboxに情報を流しているかも
場所の問題が良いと思ってます 増井俊之
どこかでケガしたとか、何か見たとか、粗相をしたとか
小学校のころに盛大に転んでしばらく泣いていた場所とかにすれば、確かにいけそうです
Scrapboxに「そういうことが昔あった」と書いたとしても、詳細な場所までは流石に書かない
問題なさそう
増井俊之 の場合、子供のころ額にケガしたとか右足を切ったとかがありますね
スピード違反でつかまったとか
忘れないけどわざわざ他人には言わないみたいなエピソード
場所のリストは適当に作っておきます
ダミーの場所のリストを自動生成できるようにするともっと楽に設定できそうです
そうですね。どうやればいいのか... 増井俊之
同じぐらい確からしい場所のリストを作る必要がある
いろんな粒度でかまわない
e.g. 神宮前 青山 品川 新宿 横浜 四国 九州 サンフランシスコ ニューヨーク イギリス アフリカ
粒度を揃える必要がありますね
極端な例ですが、「新潟青森目黒群馬」というリストだと、目黒が絶対に怪しいと分かる
行ったことある可能性が同じならわからないんじゃないですかね? 増井俊之
目黒でコケたか、青森でコケたか、アメリカでコケたか、同じぐらいありそうなので
ここでいう粒度はなにを表していますか?
自分の訪問履歴という意味でした 増井俊之
粒度という表現はやめます すみません 増井俊之
逆に「目黒」を不正解するのもありか?
ただそしたら「目黒はぜったい違う」とわかって選択肢が絞られてしまう
「行ったことがある可能性」で納得しました
行ったことがないものを選択肢に含めた場合、行ったことある場所は詳細に書く一方で行ったことない場所は大雑把に書かれてしまうと懸念していました
それで良いと思うのですが、問題ありますかね? 増井俊之
「他の地名は県名までなのに、この選択肢だけ町名まで書いてある」→「やけに詳しい」→「ほかは行ったことない場所だがこの選択肢は行っていそうな場所だ」→「じゃあこれが正解だろ」
と推測できてしまうのではないかと思いました
増井俊之 が湘南在住なのはすぐわかるので、湘南の細かい地名が出るのはOKかと思うわけです 増井俊之
藤沢でコケたかイギリスでコケたかはわからないと思う
確かにそうですね……じゃあ場所の細かさは関係ない?
同じぐらいありそうなら良いと思います 増井俊之
行ったことある場所なら詳しい地名だって分かる
しかし、全部行ったことある場所ならだいたい同じくらい詳しく書けるから、場所の情報の細かさが一様になる(はず)
ロンドンのKing's Cross駅、ぐらい細かく書いた方がいいてことですかね? 増井俊之
ひとつだけ駅名まで書いてあるのにほかは町名までしか書いていなかったら怪しいなと思いました
全部駅名まで書いていたり、全部町名までになっていれば気にしなくていいですが
ですが確かに藤沢でコケたかイギリスでコケたかはわからないですし、あんまり関係なさそうです
違和感を感じるのは確かなので、工夫は必要かもですね 増井俊之
「イギリス、藤沢、フランス、ロシア、…」で藤沢が正解だったら突破される可能性が高いかもです
イギリスやフランスなど、べつの選択肢が正解なら問題なさそう
いや、どこでコケたかはわからないでしょう... 増井俊之
「目立つ選択肢が押される確率が高い」と仮定するなら、ちょっとあれかも
問題は沢山利用するので大丈夫です 増井俊之
コケたのは藤沢だけどヘンなものを食べたのはイギリス、みたいに
ヘンなものを食べたのが藤沢かイギリスかは同じぐらいありそう
あ、そうか、たとえここでたまたま正解になったとしても、他にも問題があるからそこで間違えますね
たまたま正解になったのがわからないのがこの手法の醍醐味な気がするkuuote
たまたま全て正解できる確率なんてまず低すぎる
そうです。同じぐらい確からしい回答を並べられればいいんですね 増井俊之
こういうことを考えないと使えないというのは問題かもしれません 増井俊之
地名リストの候補はGoogleの移動履歴データから作れるかも
増井俊之 の場合は、いろんな県に行ったことがあるから県名を使ってますが
あんまり外出しないひとは、別の問題を作ったほうが良さそうですね
ローソンとかイトーヨーカドーとかでもいいと思います 増井俊之
ローソンでコケることもありそうだし
ローソンでコケたら恥ずかしいから忘れないし、他人には言わないでしょう
ローソンとイギリスが同レベルで並んでたら違和感あるかなー
namorみたくダミーの日本語を作ってくれるAPIがあればいいのですが……あるかな?
馴染みのある場所とか旅行で行ったことがある場所のリストを作り、それらについてのエピソードを思い出すと問題を作りやすいかもしれません 増井俊之
イギリスで何か経験したとか、新宿で何か経験したとか、小出町で転んだとか、etc.
そうやって思い出したエピソードのリストと場所のリストをシャッフルすればできあがり

逆に問題に使わない方がいいエピソード記憶
人名
他人を不快にする可能性すらあるので 増井俊之
偽回答は作りやすいんですけどね
誰かに言ったり書き込んでしまったりしそうなこと
自慢的なのはよくないです 増井俊之
しゃべってしまう可能性があるから
とするとコケた場所は結構問題に最適なのか
twitterに「うわコケた」とか書いちゃう人はだめそうだけど
w 昔の経験なら大丈夫でしょう 増井俊之
よく食べる菓子
それ秘密じゃないでしょう... 増井俊之
趣味
他人にわかるし、趣味が変わる可能性もあるので良くないです 増井俊之
「小学生のとき好きだったのは?」 という問題がわからなくなったことあります
しかし「X子ちゃんが住んでた場所は?」という問題だと間違えないです

takker
これ記号も使えるんですね 
passwordに記号入れて使っているので
大丈夫だと思います 増井俊之
シード文字列はASCIIでお願いします
!@#$%^& みたいなのは大丈夫です
使えない記号はないハズ
了解です
むしろASCIIじゃない記号使うパスワードってあるのかな……?
今のところはないでしょうね 増井俊之
あんまり下手に記号を使うとseedを覚えるのが厄介になるのか
serviceごとに (=1gwJuJ\Kp91^~S なんていうseed値は覚えられない
s=twitter&y=2020 ぐらいが良さそう
s に各種service名を入れて、 y に年号を入れる
serviceごとにhtmlを生成して保存しておけば良いのか
seed値なんて覚える必要なかった
そうです 増井俊之
赤の他人は知らないけど身内の数人は知っていることしか出てこない……
まあ身内が知っている程度なら良いか
そもそも身内でEpisoPass知っている人1人もいないし
最悪バレても身内なら別に良い
子供のころコケた、みたいなのありませんか? 増井俊之
某遊園地でコケて大泣きしてた覚えがあるkuuote
多分今後とも忘れることはない
そういう記憶の地名とか県名とかが良いのでは 増井俊之
コケたことで覚えているの一度しかないtakker
川で流されそうになったこと使うか
今後もまた川に流されそうになったら、どっちの思い出か混乱する可能性がある?
川に流される機会滅多になさそう
あっても最初の方という認識でいいのでは
「最初に川に流されたとこは?」にしよう
それいいですね 増井俊之
私もあるんです
問題作成支援に入力してから問題編集ボタン押したら何も表示されなかった
てか入力したもの全部消えた?
もう一回入力して再現できるか試してみる
ナビバーの 問題編集 ではなく文章中の 問題編集 を押さないといけなかった
押せるものだとは思っていなかった
<kdb> とかで強調表示しているだけかと勘違いしていた
いろいろすみません... 増井俊之
いえいえ。予めメモ帳にコピペしてなかったこっちもこっちですから
DASパターンはなるべく簡単にしたほうが押し間違いが減る
最初50個くらいの選択肢でランダムにパターンを選んでいたら、回答に何度も間違えて全然違うpasswordしか出てこなくなった
25 ~ 30個の選択肢(1画面に表示できる範囲)を戸惑わずに選べるようなパターンにすると良さそう
生成したhtmlファイルをscrapboxに置いておくと便利
私はGitHubにも置いてます 増井俊之
HTMLファイルはあちこち置いておいておくと安心だと思います
問題作成をランダムでやるとき
https://masui.github.io/EpisoQ/?qa=${url} でurlにJSで書いた問題データを渡せば簡単に作れる


dnin
問題作成はサクサクできた
利用ページ作成フローがちょっとわからなかった
めっちゃ固有名詞⇔問いのパターンを考えて入れたら途中で切れた
DASパターンとしてつながらない問題があった
既にあるのに、重複して地名を追加してたからっぽい
お、すみません 増井俊之
そのあたりまだ出来が悪いです
バグもあるのでしょう... スマソ
県名なぞなぞみたいにJSを書いてもらうことが可能なら、 episoq というコマンドを使えます
npm でインストールできます
問題作成を重荷と思わない人がいるのは朗報 増井俊之
遊び感覚でネタ出しができて良かったdnin
問題作成支援
「住んでいた県はどこですか?」「利用していた路線はありますか?」
に答えると、回答項目が作られると良さそう
三田線のようなページから Copy plain すればいいか


不慮の事故で記憶飛んだらダメそうdnin
物理的控えは大事だな
私は印刷して封筒に入れてフォルダに置いてあります 増井俊之
EpisoPassに限った話じゃないですが
passwordを印刷するのは……まあこの場合は他に方法がないかtakker

用途とは違うけど、「これは誰のEpisoPassでしょう?」みたいなクイズがあったら面白そうdnin

パ滅のEpisopass!!

DASを記憶させるところで,二回目の確認が引っかかるな
1回めが終了したあと,マウスカーソルがあるところを2回目の1マス目として踏んでしまう
始点=終点みたいな器用なやり方は考えられる
改良するか!

これちょっと疑問なんですが、暗号的には、「EpisoPassを使っている」と他人に知られたとして、その前後で、探索数が減らないことが必要だと思いますyuki_minoh
毎回の選択肢の数を全部掛け合わせると探索数が出ます
そこは保証されてる感じですか...?
シードが漏洩してない場合、シードの分も探索数にカウントできそうですね
シードさえ漏洩していなければ探索数の問題は解決しそう
例えば、パスワードに使える文字の種類が100種類だけあるとします。EpisoPassが10文字のパスワードを、50の選択肢がある10の質問で出力するとします。
このとき、 50^10 << 100^10 であるために、暗号の強度が著しく低下していることになります。
探索空間の大きさを維持しつつ、人間のエピソード記憶への特性を利用して効率的に記憶できる」というコンセプトが重要なのでは
シードを秘匿情報として管理しておく、ということになるんですかね
つまり、「HTMLファイルは流出させないように!!」とちゃんと伝えたほうがいいのでは
他人もHTMLファイルが見えるとやばいですよ多分
yuki_minohソースコード拝見しました。seed見えてますね。
おそらく charset が使える文字ですよね。102文字かな?
試しに、30件の選択肢10問で表示されるこちらを試してみました。常に左上を押し続けて Jglkkr77822734 という14文字が出ました。
まず持ってこの時点で、英語6字+数字8文字だと容易に推測できます。これはかなりやばいです。
「もともと受付可能なのが英数字14文字に限られていた」という良心的な仮定でも、36^14>>52^6+8^10ですので、すぐに公開を取りやめ、パスワードを変更なさったほうがいいかと。。。
どのくらいやばいかというと、攻撃者はもともとかかるはずだった労力の 0.00003530009% であなたのパスワードを攻略できるようになったというわけです。
yuki_minoh大文字を考慮していなかったので、計算に誤りがありました。訂正しました。

実際にはより深刻です(実際のパスワードには記号も使えただろうから)。
かなりやばそうなので、一旦緊急でEpisoPassのHTML公開の安全性を書かせてもらいました。問題がなければ取り下げます。
上の考察は間違っていいます。安全性に問題はありません。 増井俊之


DASを使う場合設問と回答は関係ないのでしょうか?基素
DASパターンのとおりに同じ地名が出るので、設問に関係なくそれをなぞっていくことができるということ?
例:最初に東京が出たら東京をDASパターンのとおりに押し続ける
おそらく/EpisoPass/編集ページで設問に対する回答をdefaultのままにしているのが原因だと思われますtakker
↑のページのscreenshotは古いやつなので、新しいのをここに貼っておきます
このscreenshot(defaultの状態)では 東京 がどの設問でも回答として選択されているため、DASに沿った回答も全て 東京 になってしまいます
(脱線)問題編集ページや概要ページをURLで指定できないのは面倒ですね……takker
URLで指定できるようにしてほしい
わかる基素
HTMLに引数つければ可能ですね 増井俊之
最初に書いたDASに沿って正答が出るということだと思いましたが、そうではなかったので詰まりました
/EpisoPass/編集ページで正しい回答を選択すれば、DASに沿って正答が出ますtakker
できました!ありがとうございます基素
https://episopass.com/ をひらいて手順を上からやっていけばよかった
「問題データベース編集」からやってしまったのが敗因でした
問題データベースを作成した→EpisoPassページ作成でページを作るということをやると上の疑問が出ます
手順がわかりにくいのは問題ですね... 検討します 増井俊之