はてなキーワード: 乱数とは
1. 予め0~99999のくじ番号のそれぞれについて、どの番号ならどの排出キャラなのかを定義して、それを公開する。
2. プレイヤーへ乱数シードを割り振る。乱数シードは連番など、割り振り方に意図が介在しないことが証明できる方法で割り振る。
(それはまさに『当たりテーブル』『外れテーブル』であるため、割り振り方が恣意的であってはならない)
この情報は非公開だが、ガチャが引ける期間の終了後に公開される。
3. 0~99999のくじ番号をランダムに生成するためのアルゴリズムを作成する。これには外れが続いた場合に
当たりやすくするような仕組みを組み込んでもよい。
この情報は非公開だが、ガチャが引ける期間の終了後に公開される。
4. プレイヤーがガチャを引くとき、割り振られた乱数シードとくじ引きアルゴリズムから
0~99999のくじ番号を生成する。
この番号は常にプレイヤーに公開される。
5. くじ番号と「1.」の定義から、プレイヤーはガチャの排出キャラを入手する。
6. ガチャが引ける期間の終了後に、「2.」と「3.」が公開される。
7. プレイヤーは「2.」と「3.」の情報からガチャ結果をシミュレーションし、
シミュレーション結果と、実際にガチャを引いたときの当たり番号の発生のしかたが一致していることをもって
メリット:
ガチャ結果から乱数シードとくじ引きアルゴリズムの内容を特定できれば、今後のガチャ結果を正確に予測できる。
始めたのは13年の冬。
妻が身ごもり、仕事が少し落ち着き、格安win8タブレットが普及し始めた頃だった。
アーリーアダプターを中心に秋イベの地獄絵図は大いに盛り上がり、そのビックウェーブはクラスタが近い人々を遍く飲み込み、また揺るがした。
ソシャゲやブラゲと言った類は未経験。冬イベが簡単と見聞きしても、出来ることはイオナを使って2-4(序盤~中盤の山場)を突破するのが精々だったか。
調べれば調べるだけ出てくる熱量を持った情報にほだされ、私はどっぷりと嵌っていった。
所謂主力級キャラクターの平均lvが50を超えたころ、初めてのイベントがやってきた。
記憶が曖昧なまま書いているが、イベントと前後して、エクストラオペレーション(EO)が開放され、利根筑摩や神通が改二になった頃だ。
公式Twitterでイベントが告知され、私は初めての備蓄に挑んだ。
キラ付け、遠征、キラ付け、遠征。ネットに出回る戸愚呂提督の言葉を胸に、準備に勤しんだ。
ここであ号を達成する術を覚えた。
潜水艦の絶対数が足りなかったので、ろ号を達成したのはもう少しあとだったろうか。
そうこうして挑んだ初めてのイベント。
最高戦力はlv70~強、主力がlv60~といった所だった気がする。
あの時の充足感は物凄かった。
もともとゲームは好きで、格闘ゲームからRPG、アクション、ネトゲまでそこそこに楽しんでいた。
しかし、対人要素がなく、明確にクリアできたか出来ていないかでここまでやりごたえを感じることが出来たのはそう無かった様に思う。
実際、この頃にはゲームは艦これしかやっていなかったように思う。
以降、次のイベントを見据えた行動が増え、EOクリアによる勲章集め、レベリング、資材備蓄を並行して行っていった。
大型艦建造である。
大型艦建造は多分なコストと引き換えに一定確率で大和や大鳳と言ったレアかつ強力な艦娘が手に入るチャンスを得られるのだ。
だがその頃の私は、大和を手に入れるコストで他の艦娘を育成したほうが良いと判断し、大型艦建造には触れないでいたのである。
しかし、間もなく夏を迎えようとした6月頃だろうか、運営がTwitterで大和型二番艦武蔵を大型艦建造に追加する旨のアナウンスを行った。
私は常々武蔵が欲しいと思っていて、どんな形であれ、開放されれば何としてでも手に入れようと思っていた。
待ち望んでいた私は、メンテナンス終了後に即大型艦建造童貞を捨てた。
開発資材と資材をつぎ込み、所謂ガチャに類するものを回すこと6回。女神は舞い降りた。
悠然たる姿、少し低く落ち着いた声、そして圧倒的な装甲と火力。正しく私が望んでいた武蔵そのものであった。キャラクターは属性てんこ盛りだった。
幸い大型艦建造が6回で終わったため、資材への影響は大きくなかった。
そして迎えた14年夏イベント。AL/MI作戦。連合艦隊システム、悪名高き御札システムが導入されたイベントである。
クリアできたが、クリアするまでゲームに真剣に向き合いすぎて睡眠不足に陥り、私はめでたく父親になった。長期休暇は一瞬で過ぎ去っていった。休みなのに仕事より消耗した。
そしてその頃気づくのである。
自分がクリアできているところで苦しんでいる人が想像以上に多いことに。
私も相当ドツボにハマっているため偉そうなことは何一つ言えないのだが、ゲームを開始して半年、少なくともゲームがローンチしてから半年のビハインドは感じなくなっていた。
それから海域、任務、イベントはクリアすることが当たり前になっていった。
甲勲章システム(難易度任意選択システム)が導入されれば、全てを甲でクリアすることが当然と考え(別に誰かを煽るわけではなく、SNSに投稿するわけでなく)、時折ランカーを目指したりもした。
改修工厰が導入され、新たな任務が導入され、様々なシステムが追加されていった。それらを調べ、理解したつもりだった。
自己顕示欲を満たすため、演習艦としてドロップ艦を揃えるくらいはした。
そんな私に転機が訪れた。
このイベントの最大の目玉はクリア報酬としてアメリカ戦艦アイオワが手に入る事だった。
何としても手に入れたい、当然難易度は甲だ。そう思って私はイベントに臨んだ。
ステージは全7面、順調に進んでいたが、最終面になってその時は訪れた。新システムであった基地航空隊が全く機能しないのである。
(これはゲームを知っている人向けの補足になるが、バグや不具合に起因するものではなく、所謂ダメージの乱数で全く良い結果を引けなかった)
記念すべき3周年の大規模総力戦イベントを前に、資源はみるみる減っていった。あと一発が出れば、あと一発が出れば、と言う気持ちが強まっていき、そして考えてはいけない事が頭をよぎる。
"これはアタリを引くパチンコと一緒だ" "3回に1回の確率で成功するガチャを5回通すだけだ" "基地航空隊や連合艦隊システムでガチャを引く回数が増えた、冗長になった"そんな思いが頭を占めていった。
なんて事は無い、結局私は確率に溺れていて、自分の実力はあくまでも運が良かっただけなのだと否応なしに目の前に押し付けられつつあった。
20万以上あった資源が底を尽きかけていた。一度冷静になろうと思い、1週間備蓄に励み、燃料は10万近く回復させることが出来た。
時間ではなく気力がなくなりつつあったが、それでも最後の10万、吐き出してやろうと思った。
いよいよボスを追い詰め、大淀が連撃で仕留める(そんな記憶がある)、その筈だった。
大淀は連撃を出さなかったのだ。夜戦で一発、パスっと攻撃をミスってくれた。
その瞬間、私の中で、2年間柱にしていた何かが折れた。クリアして当たり前という前提は崩れ去った。
仕事もぼちぼちうまくやり、育児も並の父親くらいには出来ていて、ゲームも充実できている自分はワークライフバランスの組み立て方が上手、そんなちっぽけな優越感が全てぶっ飛んだ。
燃料残り2万。難易度を最低の丙に変更し、ボスを撃破。アイオワを手に入れた。
初めて甲勲章を取り逃した。気持ちは灰色を通し越して真っ黒に近かった。
そこからのイベントが甲で挑みさえすれ、堀り(新キャラ探しガチャの様なもの)もせず、淡々としたものになった。
ただ、良いか悪いか甲勲章は16春イベ以外は全て取ることができてはいた。
一方でモチベーションは上がらず、またじわりと仕事が忙しくなりつつあった。
アホかもしれないが、育てたキャラクターと別れるのが辛いのだ。
そのうち、私はゴールを探し始めた。このゲームにはサービス終了まで恐らくゴールはないだろう、それなら自分でゴールを描き、それを達成したら満足して引退しよう。
私は描いたゴールは以下である。
だ。
もはや義務になった艦これは仕事よりも遥かに大きな心理的負担になっていた。
16年には家族がもうひとり増えている。
仕事も育児もパツパツになり、艦これに割く時間は仕事が終わり、風呂に入り、リラックスして寝付く前の僅かな時間が中心となりつつあった。
ここでひとつ補足となるが、金銭的な意味で艦これは本当にお財布に優しいゲームだ。
この時点で3年程度プレイして、プレイ時間はゆうに1000時間を超えるだろうが、課金額は恐らく5万弱、どう多く見積もっても7万もいっていないはずだ。
言い換えればこのゲームは時間を食いさえすれば課金のウェイトは低いゲームデザインになっている。
友人たちがパズドラやグラブルに1月でウン万溶かしたと聞いた時はゾッとしてしまったことが少なからずある。
そして17年6月頃だろうか。由良改二が実装された頃、私は艦これにログインしなくなった。
未消化の任務は5ページを超えていた。
私の艦これは終わった。
艦これはChromeで、ウェブブラウズはFirefoxで。私はChromeを起動することが無くなった。
タスクバーに並ぶChromeアイコンを見るだけで、プライムビデオのおすすめに艦これアニメが並ぶだけで後ろめたい気持ちになった。
なんでゲームを辞めただけでなにか後ろ暗い気持ちにならなくちゃいけないのか。
そんなことを思いながら、艦これを忘れようと努めていた。努めているうちは駄目なのかもしれない、とも思っていた。
奇しくも、自分が引退する切掛となった16年春以来の大規模イベントが始まった。
twitterのホットワードには昔ほどではないが、艦これ関連のワードが並んだ。
今持っている甲勲章は9。
16年春の勲章を取り返したい。
そして勲章を10個並べてから引退しよう、もし今回全力でイベントに挑んで、それでも駄目ならそれもまた引退理由になる。
そう、一昨日の夜思った。
一ヶ月半ぶりのログイン。ゲームなのに緊張している自分が馬鹿みたいだった。
lvがカンスト寸前の武蔵や加賀が演習メンバーとして待機していた。
(運営twitterを確認したところ、lvキャップが開放され、北上もカンスト状態から開場されてしまったようだ)
キャラクターゲームとしてはこれ以上無い成功を収めている。事実、この夏のコミケでもやや減少傾向にあるが、膨大な数の艦これ同人誌が販売されている。
その本家本元のゲームがどうなっていくのか、それを見極めてやる。
自分の所属するクラスタで、艦これを今もプレイしているのは私だけになった。
今一度、やれるだけやってみよう。
本当に辞める人は、こんなとこにこんな長文を書きはしないだろう。
もう一度、自分が育てに育てたキャラクターとイライラするゲームに挑んでみよう。
最後に
やめるならかってにやめろ、こういうことを書くな、と言う人には申し訳ない。
まだやめてないので許して欲しい。
そしてもうひとつ、私の周辺だけでなく、全体としてアクティブユーザーは減りつつあるように思う。
勢いは緩やかに削がれつつある気がする。これはデータではなく、長年のプレーヤーの感覚としてだ。
攻略を求める声や掲示板での盛り上がりから、感覚として認識しているものだ。
このゲームは答えの記載がない、そして御札システムがあるかぎり、あまり多くのファジーを許さない。
このあたりも、今回本当に引退するかどうかと合わせて、見極めていきたいと思う。
この世界では自分を含め様々なプレイヤーが入り乱れ自己意思で行動している(と思われている)
この世界には物理法則などのいくつかルールが存在するが、実は1つあまり知られてはいない法則がある。
この世の中には人生がうまくいく人間とうまくいかない人間がいる。金持ちや貧乏人、恋愛や仕事、趣味においてもそうだ。
このことについて、世の中では運がある運がないと表現される。
運については何も解明されていない分野であるが、私はある事実にたどり着いた。この世は複雑怪奇な乱数でできているのだ。
例えば宝くじ。宝くじには確率の高い当たる販売所が存在する。また何度も高額当選をする人間がいる。これはなぜだろう。
それは当たった人間によって幸運を招くお守りであったり、神社への参拝と表現される。
何度お参りをしたか、どんな位置の神社を参ってどこの販売所で買ったか、そういう一見無駄にも見えること。
それはゲームでいうフィールド歩数やコマンド入力中の無駄なキー入力、起動から何秒でのエンカウントのような乱数調整に当たるのだ。
これらは事実上、無駄な行動によって当たるという結果に近付けているのだ。
他にもある。
風水と呼ばれるもの。これもどこに何を置くか、どの方角に何を配置するかによって幾億千ある乱数によってできた未来の可能性を少しだけ絞っているのだ。
ルーチンワークと呼ばれるものもそうだ。五郎丸選手のポーズや前田健太の体操で一時期話題になったが、スポーツ選手は試合時だけでなく日常生活においてもルーチンワークで縛っている。
試合を練習に近づけることや験担ぎ等の意味が取り沙汰されていたが、本人たちがどこまで意識しているか分からないがこれも乱数調整なのだ。
改修出来ずレベルのみで上がるステって
ってのは知ってると思うけど、
4〜隻の先制対潜が要求される甲はともかく、乙や丙なら先制対潜ほぼ不要。強いて言えば五十鈴だけ改二にすりゃいい(ちな50でいい)。
索敵はルート分岐がルート計算される以上ほぼ不要というか死にステ。
回避は40と80で2割変わるかどうか、連合なら回避に下駄が乗る(正確には命中が下がる)ので更に重要性が低い。
命中も砲撃戦以外はレベル参照しないし、レベル100と1の命中差が装備換算7ぐらいだから電探載せりゃいい。
先制対潜に拘ったり、改二を追いかけない限り、レベルの重要さは非常に低い。
改二で激的に性能上がるとかするならともかく、重巡や戦艦は改二でのステアップは装甲乱数の範囲程度の向上だし、そもそも改の時点で改二並の性能の有る艦が高入手性で割りと居る(雪風、島風はともかく長良、球磨や高雄、愛宕、利根、筑摩)以上、レベルは殆ど自慢要素でしかない。
いや実際これは大きな問題だよ。
かといって「もともと政治について詳しい人」にのみ投票権を与えると、
ここで求められるのは、
ランダムなくじ引きに当たった人に、選挙の仕組みや政治のことを理解するだけの
そうすれば「もともと政治について詳しい人」というバイアスを排した上で
これは国民の義務として拒否は出来ないようにする必要はあるけどね。
古代ローマでも同じようなことが行われていたらしいけれど、
現代でこれを行う場合には数学的に公平であることが証明できるくじ引きが
コンピュータで行えるという点が大きい。
アルゴリズムや使った乱数シードを公開するわけだ。当たりのくじは
何千人か何万人かという単位になるだろうから、いわゆる乱数調整的なことも
(現実的には)行えないしね。
当初は「人間的」や「キャラクターを気遣ってる」などで賞賛された艦これの疲労度システムだが、既に無用の長物となっている。
時代がそうしたとも言えるが、それ以上に運営がそういう方向にしたと言えるだろう。
状態異常というのが実態に近い。連続で出撃(MVPや旗艦などでもなければ3回程度の出撃が限度なのを連続と言えはしないが)することで、短くても5分は待機させなければ攻撃や回避などにマイナス補正がかかるようになる。このマイナス補正の大きさは凄まじく、普段からただでさえ深海棲艦よりやる気を見せない艦娘がよりサボるようになる。逆にキラキラ状態にしてもお祈り程度のバフしかかからないのとは雲泥の差だ。
このシステムがあることで、ゲームとしてはプレイヤーの拘束時間を増やしアクティブユーザーを水増しすることができる。キャラクター性などの理由もあるにせよ、実態はアクティブユーザー増いう運営の実績のためのシステムにすぎない。
当初はゲーム自体で曲がりなりにも相応の実績を出さなければならなかったが、今やその必要はないほどの規模に艦これは成長した。
アーケード版はSEGAアケ部門に巨大な利益をもたらし、アニメやアンソロなどのメディアミックスは角川にそれなりの収益をもたらしている。同人誌では未だ巨大ジャンルとして君臨している。DMMの中でも艦これほどの売上のゲームはそうそうないだろう。
アクティブユーザーは多いに越したことはないが、稼ぐというような言葉を使うほどの必要性は無いだろう。もちろんコンテンツの成長には常に稼ぐ意識を持たなければならないが、むしろそのためにも疲労度を始めとする様々な艦これの「売り」だった要素を改善していかなければならない。
結論から言えばユーザーにはかつてのように 金<時間 というやり方を絶賛する程の余裕は無い。忙しい毎日の中で放置できない一つの戦闘に加えて疲労度の回復待機時間まで捻出させるような余裕は無いということだ。
具体的に言えば、まずプレイヤーの環境変化がある。4周年を迎えた艦これだが、多くのプレイヤーは最初の一年で入ってきているだろう。そこから数えても3年だが、この3年という数字。大学生なら就活に忙しくなり、高校生なら受験真っ只中、社会人なら新人から脱して業務に学習に忙しくなる頃合いだ。始めた当時は時間で遊べることを絶賛していた層も、肝心の時間が捻出できなくなる頃合いで、その影響力は無視できるものではないだろう。
次に、競合する他のゲームの台頭だ。これは戦艦少女を意味せず、もっと幅広くソシャゲの単位で言えるものだ。グラブルにFGOといった巨人は言うに及ばない。艦これはその独自性があるものの、金と時間の奪い合いとなっている昨今のソシャゲ事情でオリジナリティだけで安定してパイを貰えるなどということは無い。他のソシャゲもイベントに時間が取られることに変わりはないが、艦これのそれよりは短時間で済む。古戦場と艦これイベント海域を同数回すことになったとして、どっちがより時間がかかるかは明白だ。
最後に、運営が時間の強制的な消費に拍車をかけた。今行われている春イベントは中規模の枠と運営は騙るが、実際には様々なギミックやゲージにより見せかけのステージ数の1.5倍はあるボリュームだ。先述のように艦これは一回一回の戦闘が放置できずまた時間がかかるということも踏まえれば、消費しなければならない時間は莫大なものとなるだろう。特に今回は多数の新しい艦娘のドロップ目当ての周回もあり、益々時間的余裕の無いものは門前払いとなってしまっている。
勘違いした高難易度を良しとする風潮に後押しされて良いものとされているが、課金アイテムによるゴリ押しが意味として微々たるものであるというのは、はっきり言って悪である。女神ガン積みをしてもゲージ破壊の段階で旗艦を潰せなければ意味はなく、乱数のご機嫌次第という事情に変わりはない。それに運が良かったとしてもイベントに多数の時間を割かなければならないことに変わりはない。
甲乙丙の難易度で確かに丙を選べば攻略はより簡単になる。しかしあくまでそれは攻略に伴う道中撤退などの危険性が少なくなるというだけで、何度も言うようにイベント全体で時間をかけなければならないことに変わりはない。おまけに新しい艦娘の掘りまで考えれば、一概に丙で攻略せよというのも難しい話だ。そこを諦めてイベント攻略だけをすれば良いと反論するならば、その論者は艦隊「これくしょん」の文字を読めないか、艦これ批判ならなんでも噛み付く迷惑な自己中クレーマーであろう。
時間をかければ金の分を補えるという方向性は筆者も否定しない。
しかし同時に、艦これ運営はそれを信条としすぎて今や金の有無に関わらず時間をかけさせることが正義だと思っている節がある。
かつてならばそれで衰退した所で一つのサービスが終了するだけだったが、今や様々な企業が絡んでいる複合コンテンツとなっている以上、艦これ自身が己のサービスを時代に合わせて変化し、プレイヤーに受け入れられるよう努めなければならない。繰り返すが、既に多数の企業が絡んでいる以上、その利益は艦これ運営だけで消して良いものではなくなってしまった。
今、多くのプレイヤーに望まれていることは、如何にして短時間で遊べるかどうかに尽きるだろう。艦これに限らず、様々なサービスが即時性・即応性を求められている。
Flashベースの艦これ自体に限界が来ているというのは事実で、艦これ2.0とでも言うべき次世代型に移行するのがもっとも手っ取り早いとは思う。システム面だけでなく、アイディア面といった所でも限界は来ていると思うが、
まず艦これ運営が変わるべき第一の点として、プレイ時間短縮に向けた様々な、プレイヤーの実情に合わせた方針転換が成されるべきだ。そうでなければ、例えこのまま艦これ2.0が実現したとしても、頭脳が変わらぬやり方ではちょうどよい引退の区切りにしかならないからだ。
その一端として、題名のようにまずは周回を前提としたイベントづくりをする癖に、周回にとって邪魔でしかない疲労度なるアクティブ稼ぎの古い施策を止めることだ。
もちろん疲労度を止めればこの運営、より周回を前提とした悪辣なマイナスアップデートに出てくるかもしれないが、それを行うのであれば、もはや運営は周辺事情が見えていない、クリエイティブに求められる最新情報を取り入れることも出来ない愚鈍さを見せつけるだけとなるだろう。
https://hyper-text.org/archives/2014/07/gmail_alias.shtml
エイリアスを受け付けてくれるサービスであれば、普通は(精確には100%)そのまま宛先として送ってくれます。その場合は、必ず受信トレイに振り分けます。そうでないサービスであれば、特に何もせず普通に受け入れます。すると、ブログ主さんのような考えを催したスパマーさんは、わざわざ迷惑メールフィルターが有効で、送ってくる人がごく限られている宛先(ゼロエイリアス)に送ってくれることになります。
そのように思ってしています。当然、スパマーさんが必ずそのような神経質な処理をするとは限らないですし、こう考えますと、流出元の特定につながる可能性は、五分五分なのではないでしょうか?
エイリアスを勝手に置き換えられるということも考えられますが、乱数ならそういうわけにはいかないでしょうし、個人を標的にするのでもなければ、そのようなことをするということも考えられません。
また、もし本当にRFCを知らないのではなくエイリアス対策として行っているのであれば、なぜそのようなエラーメッセージを返さないのでしょうか?
普通のメールアドレスが既に登録されている場合は、既に登録されているアドレスですと表示されるのが普通ですから、プライバシーやセキュリティー上も問題は起きないはずです。
実際にそのような使い方をしているわけではないのですが、流出元が明らかなスパムメールが届き始めて以来、何となくそうしています。少なくとも精神衛生上有意義なことで、ブログ主さんがこのような批判記事を書かれるのも、そういう人間に対する純粋なトローリングなのかなと勘繰ってしまいます。冒頭も、「知識」というよりは推論の問題ですので、人を挑発する気満々の野卑なワーディングに感じます。
ヤフーのことは知っていてもOutlookのことは知りませんでしたし、四種類くらいあるドメイン名を統一できるというのは興味深いです。
が、ヤフーはベースネームが一つしか設定できないのでしたら、ベースネームが本物のメールアドレスと同等の価値を持ってしまうのではないでしょうか。「ある程度固定される」というレベルは超えていると思います。
名前の部分が自由に取得できてしかもどのサービスにもドメインごと弾かれることのない、1GB程度は無料で使える優良のウェブメールがどこかにあればよいのですが。
……って書きこもうと思ったけど投稿できなかったのでここに保存しておく。
当時ドヤ顔で、標準関数のrand()を使ってるからって指摘してる連中多かったな。
大昔に書かれたC FAQってドキュメントに、rand()は質が悪いって書かれてる影響でだろう。
でもカルドセプトの事件が起きたときにはすでに21世紀でそんなrand()の質の悪い処理系なんてなかったはず。
あとだいぶ前に2chのプログラム板を見てたけど、初心者が乱数関係の質問をするたびに、乱数の質が悪いから加工して使えとか、メルセンヌ云々でとか言う連中が常駐してたな。
でもその初心者に教えてる乱数を加工するコードがバグってたりするの。
互助会ふれあいコメントクリエーターというプログラムを考えた。
配列1に
タメになりました
参考になります
今度やってみたい
今度試してみます
いいですね
これは気になる
これは面白そう
大好き
よろしくお願いします
素晴らしい
すごいですね
なるほど
参考になる
これは為になりますね
これはやばい
勉強になりました
いいねえ
大変参考になります
同感です。
参考にさせていただきます
これ読んで工夫してみます
参考になります
を入れる
配列2に
!
。
空文字
を入れる
配列3に
(^^)
φ(..)
!
(*'▽')
_φ(・_・
空文字
を入れる
すると…
参考になりますφ(..)
同感です!(^^)
勉強になりました!
のような文字列が生成されるよ。
ふれあいコメントが苦手なあなたにも互助会賛助会員風のコメントが書けます。
文字列を自動生成すれば、心にもないコメントを書くこと閾も下がるよね。
ジャンルを特定して、食べ物や食事の場合は、「おいしそう」「食べてみたい」「今度つくってみます」のような特定ジャンルにしか使えないことばが出るようにすることもできそうだ。
互助会を認定するためにこのコメントが出てきた回数をカウントして、元記事を評価する用途にも使えそう。認定しても何のメリットもないけどね。
Imagine Cup 2008のアルゴリズム部門で世界3位のchokudai先生ならVimにrand()とsrand()の必要性を力説してくれるはずだ。
その筋の人ならbramを説得できるはずだ
我々はchokudai先生を早急にVimワールドに引きずり込むべきだ。
vimmer「Vim使ってみませんか?おすすめのエディタです」
chokudai「Vim?Visual Studioで間に合ってま〜す」
vimmer「vimプラグインのomnisharp-vimを入れたらVimでC#書けますよ」
vimmer「中でもおすすめなのがShougoさんのVimプラグインです。これがあれば暗黒の力が簡単に手に入りますよ」
vimmer「neobundle.vimを入れるとプラグイン管理が楽になります」
vimmer「unite.vimを使えばもっとVimの操作が楽になります」
vimmer「更に開発中のdein.vimやdenite.nvimやdeoplete.nvimを使えばさらに強い暗黒の力が手に入りますよ」
chokudaiは唾液をゴクリと飲み込む
vimmer「暗黒に染まったプラグインを更新する度にパワーがはるかに増す・・その更新を無限にオレは残している・・その意味がわかるな?」
震えるchokudai「いきなり意味がわからないことを言いやがって!!でも怖いっ!!!!」
震えるchokudai「tanakhさん!助けて!!!」
tanakh「だめだ!暗黒の力が強烈過ぎて僕のemacsの力では太刀打ち出来無い(´・_・`)」
震えるchokudaiとtanakh「きさま!まさか!!(((((((( ;゚Д゚))))))))ガクガクブルブルガタガタブルブル」
どうも、id:BigHopeClasicです。
本当はこんな内容、自分ではてなブログに投稿したほうが見た目もきれいになるしいいんでしょうが、持続できないブログを作るのも気後れするので、増田を使います。
さて、掲題の件、はびこりそうな誤解がいくつかありそうなのが将棋ファンとして気になったので書こうと思ったものです。
「日本将棋連盟が三浦九段に対して、カンニングをしていないという悪魔の証明を求めた」
としか解釈できません。つまり、将棋連盟は三浦九段に対して、決定的な物証などを何一つ押さえないまま
この点については続報を待つ必要がありますが、あくまでも現段階での私個人の感想としては
「下策中の下策、愚の骨頂」
なるほど確かに、三浦九段が疑わしいとする複数の棋士からの申し立てはあったのでしょう。
連盟がそれを黙殺すれば、その疑惑が文春砲などで火を噴いた可能性も否定できません。
しかしながら、決定的な物証がなければ、いくら週刊誌が書きたてようが大きなダメージにはならないのは日本相撲協会と週刊ポスト、週刊現代の顛末を見れば明らかです。
大相撲八百長問題が警察からの情報提供で明らかになる前、週刊ポストは30年にわたって角界の八百長を告発する記事を書き続けてきましたが、その内容は元力士らの極めて具体的かつ迫真性のある証言に基づくものとはいえ、決定的な物証をおさえたものではなく、大相撲はそれによってはなんら決定的ダメージを負うことはありませんでした。
週刊ポストに対しては、日本相撲協会は徹底的に無視をし続けることで対応したのです。
また、週刊現代の八百長報道に関しては相撲協会と各力士は、週刊ポストとの対応とは一転して大量の名誉毀損訴訟を起こしそのことごとくに勝訴しています(週刊現代の八百長報道は週刊ポストと比較してもあまりにお粗末だった)。
日本将棋連盟は、こうした大相撲の八百長問題におけるリスクの評価と対策から何も学ぶことなく、あくまでも現段階の報道に基づくところからは、およそ愚劣な対応をしたと言わざるを得ません。
さて、上記とは別にこの問題が深刻なのは、自宅にあるパソコンを遠隔操作するまでもなく、2016年7月におけるスマホ将棋アプリの棋力は、渡辺明竜王、佐藤天彦名人、羽生善治三冠といったトップ棋士の棋力をすでに上回っているという有力な推測があるからにほかなりません。
「対局室へのスマホを含む電子機器の持ち込み禁止、昼食休憩時における将棋会館外への外出禁止」
を定め、これに違反したものは除名を含む厳しい処分を課すことを決め、さらに今週末から開幕する竜王戦では、対局者に対し対局前に金属探知機で持ち物チェックをするという対応を決めていたわけです。
(新聞報道ではこの金属探知機での調査については渡辺竜王、三浦挑戦者双方の同意の下とされています)
(なお、上記のルールは12月中旬から適用とある通り、仮にこの時点で将棋連盟が不正に関する動かぬ物証をつかんでいたとしても、それを三浦九段に対して遡及適用できないことは当然です)
この件を報じた朝日新聞の記事についていたブコメからいくつか代表的な反応を取り上げます。
b:id:temtex 仮に事実としてもだ、たかがスマホアプリでどうにかなるものなのか…と思ったら、別のとこで走らせたソフトの結果さえ判れば良いのか(但し"スマホ搭載"と記事にはある)。プロに勝てる有力なソフトってどんなの?
b:id:namnchichi スマホのアプリでタイトル取れるのか?
b:id:symbioticworm 現時点でスマホで走らせられる将棋ソフトなんてたかが知れてるから、不正があったとすれば外部との通信が必要なはずだけど。現段階では情報が少なすぎる……。
b:id:buu さすがにスマホ搭載のアプリじゃ参考にならないだろうが、協力者と連携すればカンニングは可能だろう。人間よりもソフトが強くなるとどういう将棋界になるのかと興味深かったのだが、こうきたか。
b:id:kaitoster 『対局中、スマートフォンなどに搭載された将棋ソフトを使って不正をした疑い』←スマホの将棋ゲームすでにプロのタイトルホルダーより強いソフトあるのかな?
なるほど、確かにプロ棋士とコンピュータ将棋が戦う電王戦ではコンピュータ将棋が大きく勝ち越しているとは言え、最新の事情を詳しくご存知でなければ上記のような反応は出てくるのが自然かもしれません。また、今回の当事者である三浦九段が電王戦に出場した際の対戦相手が、東大駒場の情報基盤センターの学生用iMac680台をクラスタリングしたGPS将棋であったことも、上記のような反応につながるかもしれません。そこで、これらの誤解を解消するため、コンピュータ将棋の現況について説明したいと思います。
まず、上記の三浦vsGPS将棋が行われて以降、ドワンゴ主催の電王戦では使用されるCPUが制限されています。この制限に基づき電王戦で使われたCPUは、2014年がcorei7 4960X(6コア12スレッド)、2015年がcorei7 5960X(8コア16スレッド)とここまではその時点で調達可能なcorei7シリーズのエクストリームエディションを使用していますが、今年2016年は世代こそ最新のskylakeとなったものの4コア8スレッドのcore i7 6700K、そして来年2017年の使用CPUは同じく4コア8スレッドのcorei7 6700と、使用するハードウェアの性能は年ごとに抑制されるフェーズに入りました。
ではそれによってコンピュータ将棋のパフォーマンスの伸びに制約がかかっているかというと、全くそんなことはありません。将棋ソフトponanzaの開発者の山本一成さんは、2016年電王戦開幕前に「corei7 6700K1台で動くponanzaは、iMac680台をクラスタリングしたGPS将棋より遥かに強くなった」と宣言しています。これは根拠のないことではありません。
現在フリーで入手できる将棋ソフトについては、有志が統計的に有意な手法を用いてその相互間の強さをeloレーティングを用いて計測しています。その一例として、こちらのウェブサイトがあります。eloレーティングの仕組みについては[wikipedia:イロレーティング]を参考にしていただくとして、目安としてはレート上位から見て下位に100差あれば期待勝率64%、以下同じく200差で75%、300差で85%、400差で91%、500差で95%、600差で97%、となります。
ponanzaはフリーで公開されていないため、上記のウェブサイトにはレートは計算されていません。しかし、2016年に電王戦に出場したponanzaは、このウェブサイトで「Apery twig」として掲載されているソフトに対し勝率97%を上げていることが、電王戦に出場した山崎隆之八段をサポートした千田翔太五段の調査によりわかっています。つまりこのponanzaのレートは「Apery twig」の3250に600を足した3850前後であろうと推定できます(なお、上記のサイトで検証に用いているハードウェアはIvybridgeおよびskylake世代の4コア8スレッドメモリ16GBであり、これは2016年電王戦における使用ハードと大きな差はありません)。
一方、2013年に電王戦に出場して三浦九段と対戦したGPS将棋は、この表に掲載されているGPSFish(レート2879)をスレーヴとしてこれを680台クラスタリングしたものでした(厳密に言えば電王戦に出場したGPSfishはこれより一つ前のエディションですが大きな棋力向上はないものと仮定します)。この680台クラスタリングした際の棋力向上幅については、GPS将棋開発チームの田中哲朗東大准教授が、根拠は全く無く経験に基づく推測にすぎないとしながらもレートにして400程度と語っており、これを採用します。
そうすると2013年電王戦のGPS将棋の推定レートは3279となり、2016年電王戦ponanzaとのレート差はおよそ570、ponanzaから見た期待勝率は96%となります。わずか3年の間に、コンピュータ将棋は1台のデスクトップPCで、680台のパソコンをクラスタリングした将棋システムに96%勝利する成長を遂げたのです。
(なお、コンピュータ将棋がかくも異常な速度で成長したのは、ドワンゴが電王戦において「使用ハードウェアの制限」と「提出後対局まで6ヶ月間一切のアップデート不可その間棋士は研究し放題」という条件をつけてしまったからだと考えています。こんな条件をつけなければ開発者はここまでしゃかりきに強化はしなかったはずです。ドワンゴがコンピュータ将棋の大会に出してる優勝賞金の300万円なんて開発費の元手にもなりゃしないし、強いコンピュータ将棋を作ったって売り物にはならないので、モティベーションはこんな厳しい条件のもとで恥をかかないためにはひたすら強くするしかない、ってとこだけなんですから)
もうひとつ、これらの将棋ソフトとプロ棋士の強さの関係はどうなのだということも前提として必要になります。まず、プロ棋士のレーティングについては、こちらのウェブサイトが現在最も信頼され参考にされています。eloレーティングは、基準となる値を何点に設定するかで絶対値はいくらにでも設定できますが、上記の点差と期待勝率の関係は基準値を何点にしようが変わらないので、異なる基準値をとる異なるレート表間での比較が可能になります。
さて、コンピュータ将棋の公開対局場として、GPS将棋の開発チームが開設しているfloodgateというサイトがあります。ここでも参加者の対戦成績に基づいてレーティングが計測されています。また、この対局場は、コンピュータ将棋だけでなく人間も参加することができます。このfloodgateに、一時期上記の千田五段が参戦されていました。その際に記録されたレートは2800ほどでした。千田五段が参戦されていた時期のプロ棋士レーティングにおける数値と、その当時の羽生三冠との数値の比較から、羽生三冠がfloodgateに参戦した場合の予測されるレートは3000から3100程度だろうと見込まれています。また、先に紹介したコンピュータ将棋レーティングサイトのレートは、floodgateのレートの数値と大きく変わらないようにする工夫がされています。なお、羽生三冠のここ数年のプロ棋士レーティングは時期による前後はあれど概ね1900プラスマイナス50程度であり、佐藤天彦名人や渡辺竜王の棋力もほぼこの幅に安定していて、現時点ではこの3人が名実ともにほぼ拮抗した最高レベルの棋力といえます。
ここから考えた際に、2016年電王戦ponanzaと羽生天彦渡辺といったトップ棋士の棋力差はおよそレート差800、ponanzaの期待勝率は99%超、という推測になります。第2期叡王戦本戦PVで千田五段が、羽生のponanzaに対する勝率を0.5%と仮定しているのは、まずこの推測に基づくものと考えて相違ないでしょう。もちろんすべての基準となるfloodgateでの千田五段の数値は、普通のプロ棋士の公式戦ではありえない短い持ち時間の下で行われたものであるため、実際の羽生とponanzaの実力差はこの通りではない、という反論は容易ですが、そもそも持ち時間が9時間に増えたからと言ってレート800の差は埋まるものではなく、コンピュータ将棋も持ち時間を長くすればそれだけ強くなることを考慮すれば本質的な議論とは言い難いでしょう。
ここまで長い前置きを置かないと、なかなかこの本題に説得力が出ないと思いましたが、いよいよここからが現在のスマホ将棋アプリの話題です。
これだけ強くなったコンピュータ将棋ではありますが、これまでは基本的にパソコン上で動かすものでした。スマホ用の将棋アプリも多数出てはいましたが、プロ棋士の最上位に匹敵すると見られているものはありませんでした。
ところが今年の7月、android用の将棋アプリとしてshogidroidがリリースされます。これ自体は将棋ソフトのGUIであって思考エンジンはないのですが、このshogidroidの売りは、今年の6月に一般公開された当時の最強フリー将棋ソフト「技巧」をandroidスマホの上で動かせるようにしたことでした。技巧の強さは先のコンピュータ将棋レーティングサイトで4コア8スレッドで動かした際に3578。ponanzaの3850には及ばないとは言え、今年6月当時ではponanzaに次ぐ2番めに強いソフトで、人間から見れば驚異的な棋力です。
もちろん、この技巧といえど、その棋力がCPUの能力に依存することは言うまでもありません。しかし、スマホも今日日クァッドコアは当たり前、Huawei P9のようにオクタコアを搭載してGeekbenchを用いたベンチマークテストで高い数値を出すスマホもある時代です。第4回将棋電王トーナメントで3位になったやねうら王の開発者で、皆様もよくご存知のやねうらおさんは、2016年9月時点のハイスペックのスマホに、一切のスマホ用のチューニングを行わずに思考エンジンを搭載しても、レートの落ち幅は400程度と推定しています。この推定を当てはめて技巧をshogidroidで動かした時のレートを推定すると3178。やはり羽生天彦渡辺を上回っていることになります。実際にはもちろんやってみないとわかりませんが、あくまでも推測上では、すでに電王戦はプロ棋士対スマホで十分に成立し、それでもプロ棋士の分が悪いことが予測される段階に突入しているのです。
※ちなみに、先の電王トーナメントで優勝し来年の電王戦に出場する最新のponanzaは、今年の電王戦に出場するponanzaに9割勝つとの開発者山本さんの発言がありました。これを信じるならponanzaのレートは4200となり、スマホに積んでも3800で、やはり羽生三冠の期待勝率は1%に満たないことになります。
これが2016年10月における、スマホで動かすコンピュータ将棋の現状になります。恐ろしいことには、shogidroidは無料のアプリであり、その思考エンジンの技巧もフリーウェア。それを最高スペックで動かすHuawei P9は54000円で買える、というところにあります。この状況をどう考えるかは皆様のご想像におまかせします。
さて、お気づきの方もいるかもしれませんが、疑われた三浦九段の棋譜をソフトで検証してみれば白黒はっきりするのでは?と思われるかもしれません。しかしそれは極めて困難であると申し上げましょう。
まず、Shogidroidの上で動かせるソフトは技巧に限りません。その他のソフトも動かすことが可能です。次に、同じ将棋ソフトであっても、ある局面を検討させたときに導く最善手は、CPUの性能や検討させる時間によって異なります。そもそも将棋ソフトにはある特定の局面において常に同じ結果とならないよう検討においては乱数も使用されており、一局の将棋の棋譜からではその人がカンニングしたかを導くのは容易ではありません。
さらに、将棋は二人零和有限確定完全情報ゲームである以上、ある局面における最善解というのが必ず存在します。ということは、その最善解を自力で導いたかカンニングしたかの区別は、着手から「だけ」では判定できないことになります。
以上の理由から、カンニングしたか否かの実験を第三者が行っても、その結果についてはいくらでも疑義をつけることができ、有効ではないと言えましょう。
・一般的に、守備力は相手の攻撃力から引き算される。(守備力が割合引き算になっているゲームを私は知らない)
たとえばドラクエの場合ダメージの基本的な計算式は(攻撃力÷2-守備力÷4)×乱数(0.75~1.25の間)である。
従って攻撃力100のヤツが守備力80のヤツに攻撃した場合のダメージは30×乱数である。
これが攻撃速度2倍なら実質上、ダメージは60×乱数になるが、攻撃力2倍ならばダメージは80×乱数になるので、後者の方が得である。
・もっとも、これは攻撃力や守備力やダメージの数字に上限が無い場合の話である。
攻撃力560、相手の守備力80で攻撃力の上限が999であるなら、攻撃速度2倍のダメージは520×乱数、攻撃力2倍のダメージは479×乱数だから前者の方が得である。
逆に相手の守備力がメタルキング並に高く、こちらの攻撃で通るダメージが最低値でしかない場合なども攻撃速度2倍の方が有利である。
R.ドーキンス博士の「利己的な遺伝子」「神は妄想である」を続けて読んだ感想。
進化の過程において、一部の生物は自己の遺伝子を有利に残すため、子を世話する=利他性という資質を身に付けた。
生存に有利な資質の一種、利他性を持つ個体の割合が多くなった。ここまで前提。
利他性というものが生得的資質であるならば、慈善、正義というものも本能の一種であり、生理的快感を伴うものではないか。
生理的快感に従って行為するがゆえに、「困っている人」には注目し快感の命じるままに主観的慈善行為を行い或いは正義のため糾弾し、「困っている人」でなくなったら忘却するという現象が起こるのではないか。
この仮定が正しければ、単なる生理的快感を他者に役立てるためには理性による制御が必要だということになる。
自分の頭ではここまで。
-----------------------------------------------------------------------------------
早速指摘あったので追記します。
「個体が好き勝手カオスに選択しまくった無限の乱数の結果一定の偏り(ESS)で収束が生まれる」というのは実に面白いなあ、でした。
書き方と自分の理解両方に不足があったと思います。指摘ありがとうございました。
なんでこんなエントリを書いたかというと、「おもいやりをもちましょう」と教える現行の道徳教育って思わぬ善意の落とし穴を作ってるんじゃないか、とふと思ったのが発端。
もし利己的行為を各自選択することでお互いが生存に有利に働くシステムを構築することができれば、生物学的に見て一番無理がないのではないだろうか。
プレビューまでは全文見えるんだけどな。すまんやで。しかもまだ続く anond:20160426150324
おそらく、上記のサービスを使っているシステムのうち、この問題のせいで悪用可能なものは多数あることと思います。特にデスクトップアプリでは、コンパイルされたアプリのバイナリから秘密情報がそのまま取り出せることは、サービス側で何も危険なことを要求していなくてもよくあります。Google が OAuth の使い方を多数提供しているうちで、client_secret と redirect_uri を両方受け取るエンドポイントのことが書いてあるのはたったひとつだけだというのは重要な点です。少なくとも Google の場合、redirect_uri があっても、このエンドポイントをウェブブラウザベースのアプリには推奨していません。しかし、だからといって実際に独自ブラウザでそれを使う人や、このフローを標準的なブラウザ用のエンドポイントにコピーする人が一切いなくなるはずがありません。それに加え、Google は例外なのであって、世の中にはセキュアな OAuth フローを受け入れず client_secret (や同等品) を常に渡すよう要求する愚かなサービスが今も満ちあふれており、そのフローがウェブブラウザを通るときでさえも要求しているのです。さらに悪いことに、こうしたサービスの多くはユーザのウェブブラウザを通して「しか」利用できないのですが、これは後ほど詳述します。
前掲のセキュリティ文書は、アプリの認証情報 (client_id と client_secret) を盗んだ人ができる悪行にいくつか言及しています。以下に、この攻撃と組み合わせることで (これまで筆者の知る限り公表されていない) 危険行為を実行可能にする問題をいくつか取り上げます。さらに皆様の独創性にかかれば、「秘密」のはずのものを盗んだ人が悪用できる方法は他にも発見できるはずです。
トークンベースの認証は多くの開発者にとって新しい概念です。そのため誤解も多く、EVS のようなものを設計する開発者の中にも、ただ何かの設計ガイドライン (たとえば OAuth) に従って API の動作を決めれば、あるいは他のプラットフォームのしていることをコピーすれば、自分のプラットフォームも自動的にセキュアになるはずだと考える人が少なくありません。しかし何かをセキュアにするには、その要素ひとつひとつを余さずセキュアにする必要があり、それらの組み合わせすべてをセキュアにする必要があり、全体の枠組みもセキュアにする必要があります。思い出してください、全体のセキュリティ強度はその弱点の強度に等しいのですから、何らかの大まかなフレームワークを固守することだけに頼りきって、その通りに使う限り何をやってもセキュアだ、などと安心するわけにはいきません。OAuth ベースのフレームワークそれ自体は、その内部要素のセキュリティを確保することに関しては殆ど何もしてくれません (ある種の要素で、あからさまにセキュリティを害するものだけは別)。
トークンベースのシステムで少しでもセキュリティらしさを出すには、最低でもトークン生成に暗号学的にセキュアな擬似乱数生成器 (CSPRNG) を使う必要がありますが、この話題はあまりよく理解されていません。さらに悪いことに、一般的なスクリプト言語の適切な CSPRNG 用 API は非常に少なく、しかしそうしたスクリプト言語が、人気ある最新サービスの多くを設計する際の基礎となっていることが多いのです。
もし生成されるトークンが予測可能であれば、攻撃者はトークンを推測するだけで別のユーザになりきって悪意ある行為をすることができてしまいます。筆者は、fortune 500 クラスの大企業による OAuth ベースなサービスが一種の単調増加 ID (おそらくデータベースのフィールド?) をそのままトークンに使っているのを見たことがあります。他にも、生成されるトークンがすべて単調関数の出力のようなサービスもありました。よく調べてみると、それは現在時刻に基づく非常に単純なアルゴリズムでした。こうしたシステムでは、まず自分としてログインし、現在のトークン ID を見て、その後の ID を予測すれば、続く任意のユーザになりかわってトークン交換その他の操作にそれを使うことができるでしょう。他のテクニックと組み合わせれば、もっと標的を絞った攻撃も可能です。
このクラスの攻撃は前述のセキュリティ文書で「4.5.3. オンライン推測による新規トークン取得の脅威」や「4.6.3. アクセストークン推測の脅威」に分類されています。この問題には解決策があるとはいえ、現時点でこの間違いを犯しているサービスの膨大さと、この間違いの犯しやすさを考えると、任意の OAuth ベースなサービスが外部レビューでセキュリティを証明してもらえる可能性はあまり高くありません。
本欄の主眼ではありませんが、乱数に対する攻撃の中には、セキュリティを固めた CSPRNG を使っていないと OAuth ベースのサーバを完全に破壊してしまえるものもあります。こうした問題は他のシステムでも非常に困ったものではありますが、動作のすべてが乱数のやりとりの上に成り立っている普通の OAuth 実装では、より一層この問題が際立ちます。こうしたトークンは EVS のサーバ側で生成され、「普通の実装における」OAuth がよくやる使い方ではサーバの信頼性を奪い、関連するトークンすべての予測可能性を高めていきます。最新の攻撃手法を防げるセキュリティ強化 CSPRNG が用意できないのであれば、もっとハードルの低い別のプロトコルに乗り換えたほうが良いでしょう。
一方、一部の OAuth ベースの実装は乱数の必要性をクライアント側に移すような構造になっていることも注目しましょう。色んな意味で、これは問題を別の場所に移しただけではありますが、サーバ側のアタックサーフィスを減らすのは事実です。これによって、少なくとも情報強者な利用者は、信頼できるサービスをセキュアに使うことが可能になります。ただし情報弱者は脆弱なまま放置ですが。今回の例に当てはめてみると、この種のセットアップでは AFCP の開発者が頑張って EVS をセキュアに使えるようにすることと、EVS 自体が陥落する危険を回避することは可能ですが、ABC や XYZ が EVS をセキュアに利用するかどうかは別問題です。
本論に入る前に指摘しておきたいのですが、CSRF 攻撃はその名前に反して、外部サイトからスタートする必要はありません。CSRF 攻撃というのは、自サイトへのリンクをユーザが貼れる、掲示板やメッセージングソフトのようなサイト自体からでもスタート可能なのです。
色々な手法で CSRF に立ち向かうべく設計された数々のテクニックやフレームワークがあります。これらのシステムの多くは、OAuth ベースのものと統合すると使いものにならなくなったり、サイトを攻撃にさらしかねない行為を促すことがあります。
CSRF を防止するひとつの仕組みとして、ブラウザから送られる referer (原文ママ) が外部サイトを指していないことを確認するというものがあります。多くの OAuth 実装はユーザを特定の外部サイトから連れてくるよう要求しますから、この防御策は執行できません。OAuth サーバがリダイレクトする膨大なサードパーティのドメイン、また関係する URL やドメインの完全なリストは明文化されていないうえに折々で変更があるため、EVS のドメインとページ全体をホワイトリストにするのは不可能です。
また、EVS の提供者が寝返って AFCP を攻撃しようとする可能性がないかどうかも検討する必要があります。OAuth の背後にある原則のひとつは OAuth ベースのサービス側が利用者を信用しないことです、しかし同時に、利用者側には CSRF 回避策を見なかったことにしてサービス側を完全に信用することを要求しています。理想の認証システムというものがあるとすれば、一方通行ではなく相互レベルの不信を確立するでしょうに。
転送元と転送先のどちらかだけの、部分的なホワイトリストというのも難しいことがあります。使っている CSRF 対策フレームワークによりますが、機能のオンオフに中間がなく、特定のページや転送元だけを無効にすることができないかもしれないので、その場合 EVS 利用者は CSRF 対策フレームワークを一切使用できなくなります。
OAuth は CSRF 攻撃を防ぐ CSRF トークンを指定するようにと、オプショナルな state パラメータを定義しています。しかしながら、OAuth ベースのサービスは一般的に state の長さや文字種を制限し、要求どおりそのままで返さないことがあるようです。そこで、おかしな互換性問題が起こるため、多くの OAuth ベースサービス利用者はリダイレクトのエンドポイントにおける CSRF 防御をすべてオフにせざるをえない状況に追いこまれています。これは「10.14. コード・インジェクションと入力バリデーション」に分類されています。state パラメータの別の懸念は、EVS 側で state にアクセスのある人はだれでも、リクエストを改竄して、それ以外はまったく有効なままのパラメータを付けて AFCP にブラウザを送り返すことができるという点です。
OAuth ベース API の利用者は、自分のアプリやサービスを登録する際にひとつか複数の URI をカッチリ決めておくよう求められるという制限も課せられています。これは redirect_uri に使えるホワイトリスト URI です。この仕組みにひそむ重大なユーザビリティ問題は後述するのでひとまず措くとして、この制限のせいで開発者は、state パラメータや他の潜在的に危険の伴うアイディアで姑息な工夫をこらし、泥沼に沈んでいくはめになっています。多くの OAuth ベースなサーバは、ホワイトリスト URI をひとつしか許可していなかったり redirect_uri との完全一致のみ有効でパラメータの追加を認めなかったりしています。このせいで開発者たちは CSRF 対策フレームワークの利用をやめたり、あらゆる危険なものを state パラメータに詰めこもうとし始めたり、浅薄なシステムを自前で作り出したりしています。その結果、redirect_uri と state の組み合わせによってはユーザを不適切なページに誘導する危険性が出てきます。これは「10.15. オープン・リダイレクト」に分類されます。
こうしたリダイレクトの問題は、パラメータをしっかり認証していないせいで、それ自体が悪用可能なのですが、これを前述の「OAuth サービスへの偽装」問題と組み合わせるとユーザに大惨事をもたらしかねません。盗んだ client_id と client_secret を使えば、悪いやつらは AFCP とまったく同じ情報で認証できるので、本物の AFCP にも見ぬけないようなリダイレクトを作ることができます。また、悪意あるユーザも、本来自分の持っていない AFCP 内の権限を取得するような state パラメータの利用方法や改竄方法を見つけることができるかもしれません。その際には、おそらく盗んだ認証情報も使うことでしょう。概して、「普通の実装における」OAuth の低品質な設計のせいで、また特定の分野に関する教育レベルが低い外部開発者の直面する問題のせいで、OAuth ベースの利用者に対する攻撃はしばしば、本来あるべき状態よりもずっと容易になっています。
ここで読む意義のあるものとして、さらに「3.5. リダイレクト URI」「3.6. state パラメータ」「4.4.1.8. redirect-uri に対する CSRF 攻撃の脅威」があります。
セキュリティに関して言えば、「普通の実装における」OAuth の仕事ぶりはとてもひどいです。OAuth が目指していると思われるセキュリティ目標の多くは、達成されていません。さらに、OAuth ベースなサービスの中には、種々の攻撃に対して無防備でいることを利用者に公然と要求するものがあります。サービスをセキュアに使える場合も、そのことが知られているとは限らず (サービス側の、トークン生成手法といった重要なセキュリティ詳細が明文化されていないうえにクローズドソースなため)、OAuth は今なお多くの低品質なプログラミング習慣を招いています。OAuth は外部の開発者を守る点でほとんど何もしませんが、そうした開発者が使っている各種フレームワークの方はといえば、こちらも真のセキュリティを提供していなかったり、厳しい自制と注意がなければセキュアに使えなかったりする代物です。
この記事についていえば、個人的に蔓延していると思った問題の一部を取り上げたものに過ぎません。この中には、極度に低質な、一切 OAuth の規格で義務付けられていない慣習を、他所で OAuth に使っているのを見たまま開発者がコピーした結果というものもあります。
OAuth ベースのサービス開発者もその利用者側の開発者も、OAuth ベースのプラットフォームを実装したり利用したりするためには、ここでリンクした文書をすべて読んで理解する必要があります。挙げられている 50 クラスの攻撃も、各クラスの深刻度も完全に把握する必要がありますし、そのうえで「実装の仕様書やセキュリティ・ガイドラインには漏れがないとは限らない」ことにも留意すべきです。この記事は公式文書にない問題をいくつか取り上げているとはいえ、OAuth セキュリティ問題の表面をなでているに過ぎないことも覚えておくべきです。ここに混ざって、公式 OAuth 提案に加えられる変更点はどれもまったく新たなセキュリティ問題を引き起こすものですが、残念ながら変更はよくあることなのです。そこで各々が、乱数生成やセキュリティ調査技術といった OAuth 以外のセキュリティ関連分野も理解していなければ、OAuth でそれなりのレベルのセキュリティを実現することはできません。
真のセキュリティをお探しの方には、よそを探すようお勧めします。最後の章で OAuth の代わりになる選択肢をいくつか取り上げます。
(略: ふつうの実装では、サービス側がプラグを引き抜くようにして自由に利用者を出禁にできる。ビジネス的にもまずいし、悪意あるユーザが API 利用者を騙って出禁になるとアプリへの DoS になる。)
(略: サービス側からは API 利用者という大きすぎる単位でしか見えないので、たとえばビデオカメラのアプリ単位で利用帯域などを制限せざるを得ないが、そうするとそのビデオカメラは、一部ヘビーユーザのせいで他のユーザが締め出される事態になる。OAuth 以外のサービスならふつうユーザ単位。対策としてユーザに開発者アカウントを取得してもらうのも面倒すぎる。ていうか手動プロセスを挟んでたり。)
(略: ふつうの実装は SaaS モデルしか見ていないので、URI を持たない AFCP のような社内ソフトや、ビデオカメラのようなデスクトップアプリには使えない。アプリが cURL 的なもので API を叩こうとしても、JavaScript が必要だと言い張るサービスもある。グローバル企業が地域別にドメインを分けていたら URI が足りない。客ひとりひとりにサブドメインを与える製品だと URI が足りない。足りるとしても追加・更新がメタ API で簡単にできない。ひとつの URI ですべてのリクエストをこなすのはセキュリティ問題もあり、ロードバランス等の必要性も出るし、社内ソフトやデスクトップアプリに余計なウェブサイトへの依存性を加えることになる。httpサーバをlocalhostで立てるとかアホか。)
(略: トークンが定期的に期限切れになるので可用性が下がる。たとえばビデオカメラから複数の動画をアップロードしている途中で切れたらムキーってなる。再認証して途中からできるのもそれはそれで CSRF の温床。AFCP のような場合は期限切れがあってはならないので、パスワード等を預かる認
モバゲやらGREEやらの全盛期時代から、私はソシャゲというものが大嫌いだった。
しかし、それが何故なのか、言葉にしようとしてもただただ「嫌悪感」という感情論でしか片付けられなかった。
さて、某ソシャゲが大炎上し、課金額がゲーム内通貨として返還され、その「石高」を巡って祭りが起きたのが2/25のことだ。
あれから既に2週間が経つ。
あの祭りを契機に、改めて考えなおすことができた。
そして、なんとか、この嫌悪感を説明することが出来るようになりはじめた。
きっと、私と同様にソシャゲが嫌いな人達も、同じような理由から嫌悪感を持っているのだと信じてこれを書く。
この「面白くない」は、客観的な事実としての「面白くない」だ。
ゲームを「ゲームたらしめている」要素が何か、考えたことはあるだろうか。
「ゲームとは、限られた選択肢の中で繰り返される絶え間ない自己決定である」
という言葉は私がTRPGのGMとなるべく研究をしていたとき出会ったものだが、まさに的を射た一文だと思う。
例えば人生ゲームを考えて欲しい。友人たちと遊ぶのは確かに楽しかった。
残念ながら、人生ゲームに自己決定の介入する機会はほんの数回しか訪れない。ゲーム展開の99.9%はルーレットで決まる。
ここで誤解しないで頂きたいのは、「運ゲー=クソゲー」ではないということだ。
綿密な戦略が求められるストラテジーゲームですら、最終的に攻撃が直撃するか否かは乱数に委ねられる。
しかし、私たちは「集中」とか武器補正で、その確率に影響を与えることができる。これは紛れも無くプレイヤーの自己決定によるものだ。
人生ゲームも、例えば「1ゲーム中10回までルーレットを振り直せる」みたいなルールを足せば、幾分かマシなゲームになるだろう。
仮に全力を尽くしたにも関わらず攻撃がスカったとしても、「命中率を上げようとした」という自己決定自体は確かにそこに存在している。
自分の決定が、ゲーム世界にあらゆる影響を与える。これがゲームをゲームたらしめている要素だ。
さて、ソシャゲに、そのような自己決定を促すメカニズムが十分備わっているといえるだろうか。
典型的なソシャゲには、「ガチャとパーティ編成、ちょっとしたゲームらしさ」が備わっている。
ちょっとしたゲームらしさ、というのは、パズドラやらモンストやらにあるパズルらしい要素のことだ。
左下で3コンボを確定させて・・・とか、ダメージ壁を回避するためにこの角度で・・・という作業は、確かに紛れもなく自己決定の連続だ。これは「ゲームしている」と認めざるをえない。(裏を返せば、ただ戦闘結果を待つだけの艦これ系ソシャゲはその時点で論外だ)
だが、大勢を決するのはあくまでパーティ編成であり、もっと言ってしまえばガチャ運・ドロップ運である。
どれだけ優れた操作ができたとしても、思慮深いパーティ編成を行えたとしても、初期メンバーだけでは一瞬で壁にぶち当たる。
そんな時の解決法は唯一つ。ガチャを引くこと。
これのどこが自己決定なのか?
で、そのちょこっと残ったカスみたいなゲームらしい要素に、何万もつぎ込む価値があるのか?
マクロを組んで放置していればいずれ突破できるような、人間の知性をかけらも必要としない「それ」は、本当に価値のあるゲームか?
こう言うと、間違いなくこう反論される。
「何に価値を見出すかは人それぞれ、そこにケチをつけるのはナンセンス」と。
ここで、ソシャゲを嫌うふたつ目の理由を示そう。ソシャゲの氾濫はゲーム業界にとって不健全だからだ。
「悪貨は良貨を駆逐する」という言葉がある。
そこらのソシャゲと最新の超美麗オープンワールドゲーを比較して、後者の方が作るのが簡単だと思う人はいないだろう。
しかし、現実には、超美麗ゲームではなく、前者のような極めて低い技術力・アイデアで作られたゲームに、多額の課金という不当に高い評価が与えられている。
今の市場では、本気の一作をつくり上げるよりもソシャゲに流れる方がはるかに安全なのだ。
「ガチャとパーティ編成、ちょっとしたゲームらしさ」という既存のシステムでがっぽり儲けられるなら、新しい技術やシステムは生まれない。
それどころか、数十年にわたって蓄積されてきた技術が次世代のクリエイターに引き継がれず、霧散してしまう可能性すらある。
数年後か数十年後か、もしくは意外とあっさり数カ月後になるかわからないが、とにかくソシャゲブームが終わった時に残っているのは荒廃した大地にほかならない。
これは、パブリッシャーの問題というよりは私達ゲーマーの問題だ。
さて、予め断っておくと、以下は私自身の哲学だから、主観的な内容だ。しかし、共感は得られるだろうから書いておく。
ゲームが私達の金銭状況や感情に影響を与えることがあっても、現実世界の状況がゲームに影響を与えることがあってはならない。
なぜなら、現実世界の現象がゲーム世界に影響を与えたその時点で、ゲーム世界は現実世界の一部として取り込まれ、消滅するからだ。
肉体的・経済的・社会的にどれほど劣った人間でも、ルールの下で平等を再配分され、互角に戦うことが出来る、それがゲームというものだったはずだ。
私達が真にゲームに求めているのは、「ゲーム世界内で」可能な限りの自己決定を尽くすことである。
それでいいのかゲーマーよ。我々はもう一度考え直すべきだ。
今の状況は、ゲームの進化の結果とは到底言えない。紛れも無く、プレイヤーを含めたゲームに関わる人々全員の怠慢が産んだ惨状である。
ゲームは新しい芸術の形だと信じていた、熱量に溢れた彼らはどこへ行ってしまったのか。
クリエイターになったのは、「自分の信じる最高に面白いゲーム」を沢山の人に遊んでもらうためではないのか。
別に、利益度外視・無償で提供しろと言っているわけではない。露骨に集金に走るのをやめて欲しいのだ。
売れない画家が生活に窮して空き缶を拾い集めているようで、見ていて本当に痛々しいから。
わたしのこと、愛してる?
○朝食:なし
○昼食:おにぎり三つ
○調子
ただ、昨日書いた
深堀さん(に、似ている人)と一緒の職場に移るか、一人だけで今の職場に残るのか。
という選択は今も悩み中。
正直、別に仕事上で彼女に頼り切りってことはないので、問題ないかもしれない。
ただ、精神的には結構頼ってる気がするので、やっぱり問題ありそう。
ちなみに、彼女のお茶目さを表すエピソードを一つ紹介しようと思う。
昨日の帰り道、駅まで一緒に帰ったんだけど、
この「ゲートキーパー」ってのは、自殺防止のための活動をしている団体?の広告なんだけど、
その広告を見た深堀さんは
一応補足すると、それはゲートキーパーズというアニメのオープニングの歌で
ゲートキーパーとゲートキーパーズが似てて、昔のアニメのネタが懐かしくてつい歌ってしまった。
ということらしいのだが、40代の女性として考えると、あまりにもお茶目すぎる。
このゲートキーパーズに関しては僕もたまたま知っていたので付いていけたが、
彼女が大好きで、同人誌やWeb小説を書いていたらしい、サムライトルーパーズを始めとする80年代アニメのネタはさすがに全て拾えるわけではないので、
「意味わからんこと言ってるけど、きっとアニメのネタなんだろうなあ」と思い、話を聞くことが度々ある。
そんな感じの、お茶目なオタクエピソードに、仕事とは関係ないとはいえ、僕は支えられているので、出来れば一緒にいたいなあ、とも思っているのです。
悩ましい。
「ポケモンバンク」で隠れ特性を持ったレジロック,レジアイス,レジスチルがもらえる。受け取りは3月4日から可能
http://www.4gamer.net/games/198/G019893/20160303060/
レジスチル以外の二匹は中々有用な特性だけど、バング配布って厳選無理なのがシンドイな。
まあ、悪ポケしかバトルで使わないという誓いは七世代も継続する予定なので、
コレクションとして有り難く貰っておこうと思う。
Nintendo Direct 2016.3.4
https://www.nintendo.co.jp/nintendo_direct/20160304/index.html
結構久しぶりなニンテンドーダイレクト。
僕が気になってるのは、
まずポケモン関連んだけど、
ポケモンダイレクトでサンとムーンが発表されたばっかりだから、
今回は無いかなあ。
ポッ拳の発売日が近いから、ポッ拳対応のアミーボカードの続報辺りが欲しいかな。
あとサードパーティーのタイトルだけど、モンハンストーリーズと逆転裁判6の発売日が知りたいかな。
ぐらいかな?
えーっと
高円寺女子サッカー3ってどうなってんだろ? ぶっちゃけ買う気は無いけど、アイドルと電話したい。
雷子ってちゃんと完結まで全部出るの? 完結してからまとめてプレイしたいです。
牧場物語新作に同棲婚はある? あるなら買います、ただしFEifみたいな同姓婚のために誰かを異性婚させる仕様は勘弁。
世界樹5にどんな変態行為もNGじゃない貧乳ビッチダンサーは出る? それは同人誌の設定? 知るか! 俺の知ってる世界樹の迷宮は薄い本の中にあるんだよ!
真のロックマンの発売日は? One版買う予定だから3DS版は買わないけどさ。
遊戯王のゲームはタッグフォース基準? それとも、デュエルカーニバル基準? どっちでもいいけど、魔界劇団がOCG化してなかったらオリジナルでよろしく! プラネットシリーズの残りも欲しい! あとゼアル後半のオリカも欲しいです、ドンサウザンドとかの。それと僕以外誰も望んでなさそうなんだけど、遊戯王Rのリッチーのガンマンモンスターたちもオリカで欲しいです。(普通に原作再現で十分ですからお願いします、1600のダイレクトアタッカーが強すぎる? いやいや、EMなんとかと比べてよ)
アムジーの飛べドラゴンの特集よろしく! でも、3DSに移行したときにコロぱたのセーブデータ消したこと未だに恨んでるからな!(アムジーのせいじゃない)
レイトン7はもうモバイルオンリーなんだっけ? 3DSに移行してからやってないけどさ!
あとまあ単純に、WiiU売ってない問題があるので、ポッ拳までに何とかして欲しいね。
新型は無さそうだけど。
VC版ポケモンで自作バイナリエディタの起動に成功した人がいるらしい
お、おう、まじか。
技術的に凄まじいし、そもそもこういう抜け道を潰せなかったゲーフリが悪いって話なんだけど、
なんだけど、正直、DP時代の謎の場所バグを解析したせいで、ダークライのアイテム配布イベントがぽしゃった件を思い出して、もやもやする。
現状、閉じた世界でかつ、そもそもセレクトバグとか色々なバグでほとんど操作しまくれるVC一世代だから別に良いのかもしれないけど、
将来的にはサンとムーンとバンクを経由して連動できることを考えると、
これに起因する何かしらの非正規手段で、謎の場所ダークライみたいなことが起きないか不安で不安でしょうがない。
世の中は性悪説で、プログラマはセキュリティを考えなきゃいけない、っていうのはよくわかるし、
現状不都合が起こってない以上、こういう解析をしてる人に
「辞めなくてもいいから、せめて鍵垢でやってくれません?」って言うのは間違ってるんだけど、
間違ってるんだけど、
うーん、もやもやするなあ。
「いや別に謎の場所ダークライがあるから、DPでは新月島ダークライの配布なかったけど、その分劇場配信ダークライがあるんだからええやん」
っていう意見もあるけど、
僕的にはニックネームを付けられるか否かは、とてもとてもとてもとても重要なポイントなので、
やっぱりもやもやするんだよなあ。
うーーーーーん、僕が過剰反応なだけかなあ。
そもそも、サンとムーンに悪影響を及ばすか否かなんて、まだ誰にもわからないんだし、別に気にしなくてもいいのかなあ。
そもそも、解析がなかったら、種族値とか努力値とか個体値の仕様を解明することすら出来ないんだよ、
解析は必要悪だよ。
っていう意見もありそうだしなあ。
うーーーーーーーーーーーん、メチャクチャ難しい。
難しくて、自分の中ですら線引きがちゃんと出来ない。
キリがないし、そもそも自分の中で線を引いたところで、
オンラインで繋がるシステムがある以上、誰かが使う可能性はあるし、
自分自身だって、対戦中に相手のポケモンの種族値や実数値をグーグル検索することは普通にする。
うんよし、とりあえず、自分の中の線引きは
「その非正規の動作の結果僕自身が不利益を被ったときにのみ怒りを表明する」ということにしておこう。
なので、現時点では
「謎の場所の解析によって、DPの新月島ダークライを不正に捕獲した人が居た影響で、DPにメンバーズカードが配布されず、NNを付けられるダークライを捕獲する機会が減った」(当時プラチナがメインロムで、かつ回収用サブロムとしてプラチナを買う余裕がなかったため)
というこのことにのみ怒りを表明して、
それ以外は穏やかな気持ちで接しよう。
乱数も、コードフリークも、仕様解析のためのソフトデータぶっこ抜きも、等しく穏やかに接しよう。
あと、このNN付けられるダークライが、リメイクDPでORASのデオキシスのように時期に縛られない無限回収が可能になった場合、
手のひらを返す準備はできています。