web-dev-qa-db-ja.com

「Typocaptcha」-CAPTCHAの代替?

私たちは皆、CAPTCHAが嫌いですが、一部のアプリケーションにとって、CAPTCHAは必要な悪です。今日、まだ考えていないより良い代替案があるかどうか疑問に思いました。私はジレンマを考​​えました。コンピューターでは解読できないが、人間には読めるものをどのように作成しますか?

それから私は何年も前に次のような行程でラウンドをしたメールを思い出しました:

私はrdaniegであったaulaclty uesdnatnrdをクラウドしました。 Cmabrigde Uinervtisyのrseearch taemに接続します。それは、棒のLtteersが何であるかを確認する必要はありません。古いprhatat tihngは、frstとlsat ltteerがrghit pclaeであるかです。 rsetはtaotl msesにすることができ、poberbelmを使用せずに実行できます。 Tihsはbcuseaeであり、huamn mnidのdeosはistlefによってervey lteterをレイドしませんでした。 Scnu a donitionはarppoiatrely cllaed Typoglycemiaです。

上記が読めない場合:

私が読んでいるもの、つまり人間の心の驚異的な力を実際に理解できるとは信じられませんでした。ケンブリッジ大学の研究チームによると、単語の文字の順序は関係ありません。重要なことは、最初と最後の文字が正しい位置にあることです。残りは完全に混乱する可能性があり、問題なくそれを読むことができます。これは人間の心がそれ自体ですべての文字を読むのではなく、みことば全体を読むからです。このような状態は、適切にタイポグリセミアと呼ばれます。

これは Typoglycemia と呼ばれ、実際にケンブリッジで研究されたわけではありませんが、人々がそれを驚くほど読みやすいと感じるという事実の要素があります。

Typocaptchaが未来になるだろうか?次の3つの質問をお読みください。

  • Wihch anmial is bgeigr-foxまたはeplthneat?
  • Aianmlはnverr freogtにsiadですか?
  • AimnalのWhit tpyeはWlat Dsi'enys Dmbuoでしたか?

あなたがそれを推測していない場合、3つの質問すべてに対する同じ答えは-です:

考えられる質問の組み合わせは何百万とありますが、「方法」に入る前に、すべてがユーザーエクスペリエンスに要約されます。

CAPTCHAと比較した場合、Typocaptchaはユーザーエクスペリエンスを向上させるか低下させるか?

追伸CAPTCHAはそうではないのと同じように、これは視覚に障害のあるユーザーにとってあまりアクセスしにくいことを私は知っています。

55
rybo111

これは、アナグラムを解決するために/usr/share/dict/wordsなどのWordリストを使用する誰かによる標的型攻撃を防ぐには効果的ではありません。 「言語のWordリストファイルを指定して、最初と最後の文字が正しいと仮定して、標準入力で単語のスクランブルを解除する」のようなタスクは、おそらく非常に簡単なので、私たちにとって良いパズルになります コードゴルフ サイト。 couldcloudなど、すでにアナグラムである単語を並べ替えるProject Gutenbergコーパスから派生したn-gramデータベースで実行できます。次に、攻撃者は各手がかりを確認し、Mechanical Turkの助けを借りて正しい応答のデータベースを作成し、サイトにスパムを送信する技術的能力を獲得します。

このような英語能力テストが何にでも有効であるなら、それはたまたま間違った国に住んでいる人間のユーザーを締め出すためです。 (たとえば)米国の顧客にのみサービスを提供するライセンスがある場合、VPNを介して英語を母国語としない人が実際に米国に居住する可能性は低くなります。したがって、これはインターネット音楽またはビデオストリーミングサービスのサインアップページに役立つ可能性があります。これらの市場は、何十年にもわたる独占的な地域流通契約によって依然として大幅にバルカン化されている市場です。実際、この手法は実際に見られました。ゲームボーイアドバンスの最初のWarioWareゲームの2つのレベルは、日本語のタイプミステストでした。任天堂がゲームの英語版を後で北米市場にリリースするまで、コピーして再生します。

43
Damian Yerrick

皮肉なことに、bgeigrの意味を自分で理解することはできませんでしたが、万能のGoogleが助けてくれました。

したがって、このキャプチャはコンピュータが推測するのは非常に簡単ですが、人間にとっては難しいかもしれません。

また、Googleは一般的なタイプミス(文字がキーボードの隣接文字に置き換えられるなど)にエラーモデルを使用していることを覚えておいてください。アナグラムのみを考慮するようにコンピューターをプログラムすると、99パーセントの精度に簡単に到達します。

72

なぜこれがコンピュータに解読できないのでしょうか?各単語には正しい文字が含まれていますが、それらはスクランブルされているため、既知の単語と比較することで、コンピューターが文字の正しい順序を解読するのは非常に簡単に思えます。これは、この余分な障壁を持つという全体のポイントを打ち負かします。

第二に、これは失読症または他の読書障害を持つ人々にどのように影響しますか?私はこれがキャプチャよりも難しいと思うので(実際の失読症の人はご遠慮ください!) captchaが視覚障害者に影響を与えることは事実ですが、これは追加の障害に悩まされる可能性があります(明らかに、それが私の最初の考えであり、ユーザーの調査が必要になるでしょう)。

キャプチャを改善する必要があることには完全に同意しますが、これでその目的が達成されるかどうかはわかりません。

63
Rachel9494

tl; dr

優れたキャプチャは、(理想的には)可能な限り最高の保護(コンピュータでは入手困難)と使いやすさ(人間では入手しやすい)を提供する必要があります。しかし、captchaはこれが得意ではなく、「typoCaptchas」はそれらを改善するようには見えません。質問は非常に簡単に再設定でき、質問が人々にとって十分に簡単であれば、おそらくグーグルにとっても簡単です。

enter image description here

キャプチャはまだ人間にとって難しい

CAPTCHAの解決において人間はどの程度優れているか?大規模評価。スタンフォード大学

全体として、キャプチャーは多くの場合、本来あるべきものよりも難しいことがわかりました。画像キャプチャーの平均解決時間は9.8秒、3人の合意は71.0%であり、オーディオキャプチャーははるかに難しいです。 、平均解答時間は28.4秒、3人の合意は31.2%です。[...] AmazonのMechanical Turkから収集されたデータを使用して、ユーザーにとってのキャプチャの難しさに影響を与える多数の人口統計学的要因を特定しました。英語を母国語としない人は遅いですが、キャプチャが英語の単語の認識を必要としない限り、彼らは一般的に同じくらい正確でした。また、高齢のユーザーの方が遅いが正確であるという小さな傾向も見られました。

入力した内容がキャプチャと完全に一致することを確認すれば、誰でも少なくとも一度は覚えていると思いますが、それは間違いです。 それで、最初に、それはユーザーの邪魔をして、後で彼らを愚かに感じさせます、もちろん彼らは好きではありません。

以下は、従来のCAPTCHAのセキュリティに関するGoogleのサイトです。

新しいreCAPTCHA APIは簡単に聞こえるかもしれませんが、その控えめなチェックボックスの背後には高度な高度化があります。 CAPTCHAは長い間、ロボットが歪んだテキストを解決できないことに依存してきました。ただし、 最近の調査で示した その今日の人工知能技術は、 99.8%の精度で歪んだテキストの難しいバリアント。したがって、歪んだテキスト自体は、もはや信頼できるテストではありません。再キャプチャの1つの利点は、 本のデジタル化に役立っている です。

クラシックキャプチャとTypoCaptcha

私はそれらの間に同様の問題を見つけましたが、typoCaptchasが確かな利点を提供するとは思いません:

  1. あなたはまだ質問を読んで解釈する必要があります(1/2ワードではなく)これは視覚障害者の問題を修正しません
  2. さらに、答えを知っている/思い出す必要があります(ここでは、新しい変数とより認知的な負荷を導入しています)。 国際化にも対応する必要があります。
  3. 正しく入力する必要があります。これは、ユーザーがタイプミスを導入できるという意味でより良いかもしれません(@ rybo111がコメントで言及しているように)。例:象ではなく象。
  4. それらをデジタル化の媒体として使用することはできません。
  5. 最初からボットにとって難しいことではないようです。

新しいオプションがあります

enter image description here

Googleは最近、新しいreCaptchaを開発しました 、可能な場合に使いやすさを向上させます

ただし、CAPTCHAはまだ廃止されていません。リスク分析エンジンがユーザーが人間か乱用者かを自信を持って予測できない場合には、CAPTCHAにプロンプ​​トを出し、より多くの手がかりを引き出しますユーザーが有効であることを確認するためにセキュリティチェックポイントの数を増やします。キャプチャはまだ人間にとって難しい

enter image description hereenter image description here

36

マコーレーが自分がラジオで伝えていること、つまり人間の心の驚異的な力を利用できるとは信じられませんでした。 Cambridge Nervinessの調査チームによると、Wordの文字がどのような順序であるかは重要ではありません。最初の文字とスラットの文字が正しいピラフにあることだけが重要です。残りは厄介な混乱になる可能性があり、それでも問題を完全に読み取ることができます。これは、人間の心がそれ自体で神経質な手紙を読むのではなく、全体としてみことばを読むのに役立ちます。このような状態は、適宜低血糖と呼ばれます。

上記は、スペルチェッカーが例の段落をどのように見るかです。 CAPTCHAの重要な点は、人間にとっては簡単ですが、コンピュータにとっては難しいということです。この「typocaptcha」は、コンピュータが処理するのがかなり簡単であるように見えます。つまり、人間にとっての困難は無関係です。

18
Mark

いいえ、私はこれがキャプチャに代わる優れた方法であるとは思いません。代替案と見なされるために達成する必要があると思ういくつかの目標があります。


可能な限りシームレス

Captchaまたはcaptchaの代替案を設計する場合、この目標を見失うことは非常に簡単です。ユーザーが意図したことを実行できないように意図的にブロックしていることを覚えておく必要があります。壁を作成しています。この壁は、他の目標を達成しながら、できるだけ低くする必要があります。乗り越えるプロセスが面倒すぎる場合は、ユーザーは次に進みます。


完了が簡単

キャプチャの特徴の1つは、事前の知識がほとんど必要ないことです。英語をほとんど知らない人でも完成させることができます。ユーザーにパズルを完成させるか、雑学クイズに答えるように依頼すると、ユーザーが登れる壁が大きくなります。これは、ほとんどの場合、一部のユーザーが去ることになります。さらに悪いことに、入ろうとするユーザーは雑学を知らないかもしれません。 あなたがそれがどれほど簡単であると思っていても。 ディスレクシアのような多くの障害や障害には効かないことは言うまでもありません。人気のキャプチャには、オーディオキャプチャを代替として使用できるボタンがあり、この代替キャプチャをどのようにして補完するかはわかりません。


非人間をブロック

これがキャプチャが存在する完全な理由です。今日コンピュータが実行できることだけでなく、1年、5年、さらには10年で何が可能になるかを検討することが重要です。あなたが提案しているCAPTCHAの代替案はおそらく5年から10年以上前に機能したはずですが、それはもはや真実ではありません。これは、コンピュータが解決できるだけでなく、かなり得意な問題です。

私はこの特定のアイデアを処理するために構築されたプログラムを知りませんが、多くの部分を処理する利用可能なプログラムがたくさんあります。スペルチェック、予測テキスト、検索エンジン(人間よりも雑学に出題される可能性が高い)、翻訳ソフトウェアがあります。プログラマーとして、この代替手段が私を止めるのを見ることはありません。


要するに、これは人間にとっては難しく、ロボットにとってはより簡単だと思います。

9
MiniRagnarok

CAPTCHAと比較した場合、Typocaptchaはユーザーエクスペリエンスを向上させるか低下させるか?

それは本当に重要ではありません。 CAPTCHAは人間にとってのハードルです。これは意図です...それらはハードルになることを意図しています...うまくいけば、人間はジャンプできますがコンピュータはジャンプできません。しかし、ハードルは悪いユーザーエクスペリエンスであるため、ハードルなしでそれを実現する方法がある場合は、ハードルを再設計せずに、ハードルを取り除くだけです。

CAPTCHAについてのあなたの考えは、スクランブルされた文字よりも優れていますか?または画像バージョン?または他のタイプのCAPTCHAのいずれか?たぶん、たぶん。他の人にとってはそうではないかもしれません(たとえば、失読症の人や別の母国語を話す人)。

加えて、それはlessコンピュータがそれを回避するのに効果的です。結局のところ、これは基本的にスペル/文法チェッカーと同じものだからです。

8
DA01

これは、コンピュータが判断するのが非常に簡単です。問題は、自分の芝生の上でコンピューターと直接対決しないことです。ハッカーは、毎秒数百万の順列を通過できます。 l337のどのような形の会話や他のバリエーションも、ハートビートでデコードされます。文字通り。 (もしそうなら)。

編集:

プログラムは、Wordが辞書にあるかどうかを確認します。そうでない場合は、通常の置換を行います。まともな辞書には3万語あります。各単語に20のバリエーションがある場合(それよりはるかに少ない)、600,000の「単語」がチェックされます。 100万以上の推測では、1秒で段落を通過するのにどのくらい時間がかかるでしょうか。 1秒?

「ウォルトディズニーのダンボはどのような種類の動物ですか?」次に、人間の攻撃者はデータベースに入力する必要があります。米国外で生まれ、あなたのウェブサイトを使用してその質問に答えられなかった何百万もの人々がいることを覚えておいてください。それがユーザビリティの大きな問題です。

「キツネとエクジオールのどちらが大きいか」という質問は、どのアルゴリズムでも簡単です。

  • 「どちらが大きいか」というフレーズは、比較と判断されます。
  • 辞書を確認してください。
    • キツネが辞書にいます。
    • Ekdjiorは辞書にありません)
  • したがって、キツネはより大きくなります。

あなたの対戦相手は馬鹿げたコンピューターではありません。それはツールです。あなたの対戦相手は、行きたい場所に到達するためにツールを使用している非常に賢い人々のチームです。

7
Mayo

Wordリストを使用した効果をさらに詳しく説明するために、次のPythonコードは、サンプルテキストの各単語の可能性の数の概要を出力します。

import collections

with open('words.txt', 'rb') as infile:
    allwords = set(line.strip() for line in infile)

def key(Word):
    Word = Word.lower().translate(None, '.,:;-?')
    if not Word:
        return None
    return len(Word), Word[0], Word[-1], ''.join(sorted(Word[1:-1]))

words_by_letters = collections.defaultdict(set)
for Word in allwords:
    words_by_letters[key(Word)].add(Word)

def findword(Word):
    return words_by_letters[key(Word)]

if __name__ == '__main__':
    message = """
    I cdn'uolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg: the phaonmneel pweor of the hmuan mnid. Aoccdrnig to a rseearch taem at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is taht the frist and lsat ltteer be in the rghit pclae. The rset can be a taotl mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Scuh a cdonition is arppoiatrely cllaed Typoglycemia.
    """
    print sorted(collections.Counter(len(findword(Word)) for Word in message.split()).items())
    for Word in message.split():
        result = findword(Word)
        if len(result) != 1:
            print Word, len(result), result

結果(検索して見つけたWordリストを使用):

[(0, 2), (1, 90), (2, 5)]
cluod 2 set(['could', 'cloud'])
uesdnatnrd 2 set(['unstranded', 'understand'])
mttaer 2 set(['matter', 'mettar'])
frist 2 set(['frist', 'first'])
bcuseae 2 set(['besauce', 'because'])
arppoiatrely 0 set([])
Typoglycemia. 0 set([])

つまり、解読されなかったのは2ワードのみで、そのうちの1ワードは元のメッセージの誤りによるものです(「適切に」には3つのPが含まれています)。 5つの単語には複数の解決策がありますが、文脈と代替案の英語での頻度に基づいて高い信頼性で推測するのはそれほど難しいことではないでしょう。 90ワード(重複しているものもある)は明確に識別されました。

3つの質問をまとめます。

[(0, 4), (1, 21)]
eplthneat? 0 set([])
nverr 0 set([])
Dsi'enys 0 set([])
Dmbuo? 0 set([])

したがって、さらに2つのタイプミスと2つの固有名詞では失敗します。

他の人が言うように、アナグラムは英語を母国語としない人が読むのがかなり難しいです。ほんの数分の作業でさえ、ロボットが読むことがそれほど難しくはありません。人間の英語力のテストとしては優れていますが、CAPTCHAの技術としてはあまり有望ではありません。自然言語の質問に答えるのは、この量の難読化に対処するよりもはるかに難しいので、CAPTCHAを解決するのに難しい部分は新規の部分ではありません;-)

もちろん、英語を難読化するためにより多くのことを行うことができます(たとえば、私の些細なコードが解決できなかった種類の意図的な誤植を導入することによって)。しかし、最初はスペルチェッカーを使用することさえしなかったので、ロボットはこれまでよりもはるかにうまく機能します。次に、ネイティブ英語の人間でさえ解決に失敗する前に、現時点でどれだけできるかは明確ではありません。パズルも。

2
Steve Jessop

第二言語として英語を話し、英語を話す国に住んでいる人として、私はテキストを読むことができませんでした。多くのユーザーが同じ状況を持っていると想像してください。誰かがこのキャプチャを銀行に使用すると、彼らは銀行を使用できませんこれ以上説明しないので、コンピュータよりも人が理解するのは難しいと思います。

2
Amitis

http://www.anagram-solver.org/?letters=eplthneat
http://wordsolver.net/solve#!q=eplthneat

アナグラムはAIに対する脅威ではありません。
しかし、一部の文字を置き換えたり、追加したり、削除したりすると、アナグラムではなくなり、人間にも当てはまる複雑な推測アルゴリズムでしか解読できなくなります。

1
Erquint