「パスフレーズ」を含む日記 RSS

はてなキーワード: パスフレーズとは

2025-12-18

免許の更新マイナ免許証変更に思うこと

千葉運転免許センター免許の更新を行い、マイナ免許証に切り替えた。

他の免許センターは行ったことが無いので、ここだけの話

免許センターに入る前から入口日本語中国語のみで注意書きがある。「免許手続き以外の方は駐車禁止」と。

ストリートビュー履歴を見ると2021年から中国語が追加された模様。千葉県警の苦慮が伺える。

外面切り替えが2025/10から厳格化されたとのことだったが、外面切り替えの窓口は大盛況(に見えた。以前はもっとだったのかもしれない)。自分の予約時間まで間があったので外面切り替え窓口近くのベンチに座ってると、どうやら外面切り替えの人たちは名前を呼ばれる際に国名もセットで呼ばれる

ベトナムの〇〇さんー、中国の◇◇さんーとか)ようで、しばらく座ってるとその時間帯は中国ベトナムネパールの人が多目に感じた。

受付時間が来たので予約のQRコードを読み取り機にかざすと、マイナンバーの4桁の数字利用者証明暗証番号入力を求められるのだが、お年寄り配慮しているのか、画面にデカデカと押下した番号が黄色く光り、後ろに並んでいると4桁なんてはっきりと見えてしまう。

この後あちこちの窓口に提出する受付表が印刷されるのだが、この受付表にもデカデカマイナンバーカードの4桁の暗証番号記載されていて、その後費用の支払や視力検査写真撮影等並んでいる間にも周囲も、周囲から暗証番号見えた状態でいるのが不安でその部分を親指で隠していた。

また、最後まで使い道が無かったが、受付表と同時に「暗証番号カード」なるレシート用紙も印刷され、これにもデカデカと4桁の暗証番号が印字されているのである

千葉運転免許センターと言えば、今年の9月の講習の際に「外国人映像を見るだけでいい。日本人は真面目に聞くように」の発言があったとして話題になっていたが、是正されたのか優良運転者講習だったからなのか、そういった発言は無く、普通に30分の講習は終わった。

現在免許更新は

1. 運転免許のみ

2. マイナ免許のみ

3. 運転免許マイナ免許の2枚持ち

の3パターンから選べて、それぞれに講習後の受け取り方法が違うのだが、私は 2. マイナ免許のみ のため、マイナンバーカード免許情報を書き込む手続きをするための窓口に並んだ。

窓口では多くの人が並んでおり、一部で揉めているようなので話を聞くと、ネットワーク障害が発生していて手続きが始められないとのこと。後に予定が控えているという男性は困っているようだったが、職員の方も困っているようだった。

復旧までの間にラミネート加工された手続き説明の冊子を回し読みするよう配られたのだが、近くにいた外国人女性が「ニホンゴヨメナイカライラナイ!」と大きな声で言っており、「日本語読めなくてもマイナンバーカードって持てるのか」と調べてみたら3か月の滞在許可があれば持てるようだった。

何となく日本国籍必要なんだろうと思っていたが、思っていたよりは所持ハードルは低いものだった。

ちにみにその女性は、隣に座った親切な日本人女性手続き説明冊子を読み聞かせてもらっていた。

ネットワークが復旧し、手続きが始まったがやたらと進みが遅く、窓口を見ていると、ここではマイナンバーカードの4桁の利用者証明暗証番号ではなく、6桁~16桁の英数字署名暗証番号必要で、その暗証番号が解らず詰まる人が大量に居て、手続き時間がかかっている模様。

ラミネート加工の手続き説明冊子にも記載があったし、窓口のそばで延々と音声でもその旨をループ再生説明されているのになぜ・・とも思うがこれを毎日日中対応している職員は慣れているようで「ダメなら後日手続きできる」旨を伝えて次に行こうとするも、粘る運転者・・「次間違えるとロックされますよー」と言って諦めさせる職員といった攻防が見られた。

マイナ認証アプリなどで署名暗証番号入力できた人から手続きさせるようにすればどちらもずいぶん楽に、早くなるのではないかと思った。

ただ、この署名暗証番号の窓口での入力も気になるところで、Surfaceのようなものを使うのだが、最初の受付同様、お年寄りへの配慮なのか、どデカソフトウェアキーボードで、タッチした箇所が黄色くビカビカ光るのと、周囲から丸見えな場所で打つためとても気になる。

職員もガン見しているのも気になる。飲食店小売店レジクレカ暗証番号入力するとき店員明後日の方向を向いたり、後ろを向いたりと配慮してくれるものだが、千葉県警ではそういった配慮は無いようである

警察官なんだから安心しろ・・ということなのだろうか。たとえ悪用されなかったとしても、ちょっと恥ずかしいパスフレーズを使っている私などはあまり見られたくないのであるちょっと恥ずかしいので。

だらだらと雑に書いたが、とにかくマイナンバーカード暗証番号についての扱いが雑過ぎるのではないかという部分が気になった一日だった。

グローバル化が進み、日本とは大きく違った文化で育った方も多くいる今の日本で、性善説を基に秘匿性の高い暗証番号を雑に扱うことは見直すべきではないかと思う。

出入りが自由制限もなく、手続き者以外の個人特定も出来ない今の免許センターでは特に

2025-06-24

anond:20250624185412

ざっくり言うと、

パスキー秘密鍵は、端末内でセキュアに保存されてる前提(取り出すのに生体認証等が必要)なので、パスフレーズで守る必要がない。

逆に、秘密鍵パスフレーズで守る必要がある状況のことを考えた方がわかりやすいかも。

anond:20250624185101

パスキーって公開鍵認証方式じゃなかったっけ?

パスフレーズ無しにさせられるのものすごく違和感あるんだよね…

2025-06-13

我が名はサイボーグdorawii

パーマリンク署名対象にするより堅牢自動化を作れた。

一度投稿したうえで別タブを開いてプログラム的(fetch)に送信してその別タブが閉じられる仕組み。

改めてスクリプト配布しちゃる

最初投稿してエントリページに移動した親タブ側のjsコード
// ==UserScript==
      // @name         PGP署名検出と別タブ自動編集
      // @namespace    http://tampermonkey.net/
      // @version      1.0
      // @description  PGP署名がない投稿自動編集ページへ誘導
      // @match        https://anond.hatelabo.jp/*
      // @grant        GM_setValue
      // @grant        GM_getValue
      // @grant        GM.openInTab
      // ==/UserScript==

      (function () {
        'use strict';

        const body = document.getElementById('entry-page');
        if (!body) return;

        const titleText = document.title;
        if (!titleText.includes('dorawii')) return;

        const pgpRegex = /BEGIN.*PGP(?: SIGNED MESSAGE| SIGNATURE)?/;
        const preElements = document.querySelectorAll('div.body pre');
        let hasPgpSignature = false;

        for (const pre of preElements) {
          if (pgpRegex.test(pre.textContent)) {
            hasPgpSignature = true;
            break;
          }
        }

        if (hasPgpSignature) return;

        const editLink = document.querySelector('a.edit');
        const childTab = GM.openInTab(editLink.href, { active: false, insert: true, setParent: true });

      })();
親タブから開かれる編集ページの子タブのjsコード
 // ==UserScript==
      // @name         編集ページ処理と自動送信・閉じ
      // @namespace    http://tampermonkey.net/
      // @version      1.0
      // @description  編集ページで署名処理と送信、タブ自動閉じ
      // @match        https://anond.hatelabo.jp/dorawii_31/edit?id=*
      // @grant        GM_getValue
      // @grant        GM_xmlhttpRequest
      // @grant        GM_setClipboard
      // @grant        GM_notification
      // @connect      localhost
      // ==/UserScript==

      (async function () {
        'use strict';

        const shouldRun = await GM_getValue('open-tab-for-edit', '0');

        const textareaId = 'text-body';
        const textarea = document.getElementById(textareaId);

        if (!textarea) return;

        const content = textarea.value;

        const pgpSignatureRegex = /-----BEGIN PGP SIGNED MESSAGE-----[\s\S]+?-----BEGIN PGP SIGNATURE-----[\s\S]+?-----END PGP SIGNATURE-----/;
        if (pgpSignatureRegex.test(content)) {
          console.log('[PGPスクリプト] 署名が検出されたためそのまま送信します');
          return;
        }

        const httpRequest = (url, data) => {
          return new Promise((resolve, reject) => {
            GM_xmlhttpRequest({
              method: 'POST',
              url: url,
              headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
              data: `value=${encodeURIComponent(data)}`,
              onload: function (response) {
                resolve(response.responseText);
              },
              onerror: function (error) {
                reject(error);
              }
            });
          });
        };


        // textarea の値を取得
        // 1. 現在のページのURLからURLオブジェクト作成
        const currentUrl = new URL(window.location.href);

        // 2. ベースとなる部分 (例: "https://anond.hatelabo.jp") を取得
        const origin = currentUrl.origin;

        // 3. 'id' パラメータの値 (例: "20250610184705") を取得
        const idValue = currentUrl.searchParams.get('id');

        // 4. ベース部分とIDを結合して、目的URL文字列を生成
        //    idValueが取得できた場合のみ実行する
        let newUrl = null;
        if (idValue) {
          newUrl = `${origin}/${idValue}`;
        }

        // 5. 生成されたURL変数に代入し、コンソールに出力して確認
        console.log(newUrl);
        const valueToSend = newUrl;

        try {
          const signatureText = await httpRequest('http://localhost:12345/run-batch', valueToSend);
          console.log('バッチ応答:', signatureText);
          if (!signatureText.includes('BEGIN PGP SIGNED MESSAGE')) {
            alert('PGP署名クリップボードに見つかりませんでした。');
            return;
          }

          const newText = content.replace(/\s*$/, '') + '\n' + signatureText + '\n';
          textarea.value = newText;

          console.log('[PGPスクリプト] 署名を貼り付けました。送信を再開します。');


          const form = document.forms.edit;

          const newForm = form.cloneNode(true);
          form.replaceWith(newForm);

          newForm.addEventListener('submit', async (e) => {
            e.preventDefault(); // HTML標準のsubmitをキャンセル
            const bodyText = textarea?.value || '';

            // reCAPTCHA トークンの取得
            const recaptchaToken = await new Promise((resolve) => {
              grecaptcha.enterprise.ready(() => {
                grecaptcha.enterprise.execute('hoge', { action: 'EDIT' })
                  .then(resolve);
              });
            });

            // POSTするデータの構築
            const formData = new FormData(newForm);
            formData.set('body', bodyText);
            formData.set('recaptcha_token', recaptchaToken);
            formData.set('edit', '1');
            try {
              const response = await fetch(newForm.action, {
                method: 'POST',
                body: formData,
                credentials: 'same-origin'
              });


              if (response.ok) {
                console.log('送信成功');
                window.close();


              } else {
                console.error('送信失敗', response.status);
              }
            } catch (err) {
              console.error('送信中にエラーが発生', err);
            }

          });

          // プログラム的に送信トリガー
          newForm.dispatchEvent(new Event('submit', { bubbles: true }));

        } catch (e) {
          console.error('バッチ呼び出し失敗:', e);
        }

      })();
node.jsで動かすローカルサーバーコード
const http = require('http');
const { exec } = require('child_process');
const querystring = require('querystring');

const server = http.createServer((req, res) => {
  if (req.method === 'GET' && req.url === '/ping') {
    res.writeHead(200);
    res.end('pong');
  } else if (req.method === 'POST' && req.url === '/run-batch') {
    let body = '';

    req.on('data', chunk => {
      body += chunk.toString();
    });

    req.on('end', () => {
      const parsed = querystring.parse(body);
      const value = parsed.value || 'default';

      // 値を引数としてバッチに渡す
      exec(`C:\\Users\\hoge\\Desktop\\makesign.bat "${value}"`, { encoding: 'utf8' }, (err, stdout, stderr) => {
        if (err) {
          res.writeHead(500);
          res.end('Error executing batch: ' + stderr);
        } else {
          res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
          res.end(stdout.trim());
        }
      });
    });

  } else {
    res.writeHead(404);
    res.end('Not found');
  }
});

server.listen(12345, () => {
  console.log('Batch server running at http://localhost:12345/');
});
@echo off
setlocal enabledelayedexpansion


:: 署名するファイルset "infile=%~1"
set outfile=%TEMP%\pgp_output.asc

:: 以前の出力があれば削除
if exist "%outfile%" del "%outfile%"


:signloop
:: AutoHotkeyパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)
start "" /b "C:\Users\hoge\Documents\AutoHotkey\autopass.ahk"

:: PGPクリア署名作成
echo %infile% | gpg --yes --clearsign --output "%outfile%"


:: 署名成功していればループを抜ける
if exist "%outfile%" (

    goto postprocess
) else (

    timeout /t 1 > nul
    goto signloop
)
:postprocess

powershell -nologo -command ^
  "$header = '>|'; $footer = '|<'; $body = Get-Content '%outfile%' -Raw; Write-Output ($header + \"`r`n\" + $body + $footer)"

powershell -nologo -command ^
  "$header = '>|'; $footer = '|<'; $body = Get-Content 'signed.asc' -Raw; Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"

endlocal
exit /b
AutoHotkey(以前と同じ)
#Persistent
#SingleInstance ignore
SetTitleMatchMode, 2
WinWaitActive, pinentry
SendInput password
Sleep 100
SendInput {Enter}
ExitApp

動けばいいという考えで作っているので余分なコードも含んでいるかもしれない。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://anond.hatelabo.jp/20250613185036 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEv1FQAKCRBwMdsubs4+
SHHkAQDUOLgBcdji2T6MJ7h/vlMdFfGlWAzNdXijjE1gIuEPywEAiMNMZqhrMmtl
c7UqRuggNJ/UTa5xTIcKp622+7jJQQg=
=Lgkl
-----END PGP SIGNATURE-----

2025-06-09

dorawii

ようやく(ほぼ)すべてが自動化された。

あとはローカルサーバーの起動をスタートアップに設定する(方法AIに聞いて指示に従う)だけの消化試合

ここにほとんどAI頼りのコードを公開しておく。

事前にインストールしておくもの

autohotkey

nodejs

ユーザースクリプトを実行できる拡張機能

パスとかの注意

署名要求してくるパスワードを自動入力するahkファイルドキュメントAutoHotkey配下に置いた。

バッチファイル(make.sign.bat)はデスクトップに置いた。

以下コード

autopass.ahk
#Persistent
#SingleInstance ignore
SetTitleMatchMode, 2
WinWaitActive, pinentry
SendInput お前のパスワード
Sleep 100
SendInput {Enter}
ExitApp
run-bacth-server.js
// run-batch-server.js
const http = require('http');
const { exec } = require('child_process');

const server = http.createServer((req, res) => {
  if (req.url === '/ping') {
    res.writeHead(200);
    res.end('pong');
  } else if (req.url === '/run-batch') {
    exec('C:\\Users\\you\\Desktop\\makesign.bat', (err) => {
      res.writeHead(200);
      res.end(err ? 'Error' : 'OK');
    })
    ;
  } else {
    res.writeHead(404);
    res.end('Not found');
  }
});

server.listen(12345, () => {
  console.log('Batch server running at http://localhost:12345/');
});
makesign.bat
@echo off
setlocal enabledelayedexpansion

:: ミリ秒単位UTC時刻を取得
for /f %%a in ('powershell -nologo -command "[int64]::Parse((Get-Date).ToUniversalTime().ToString('yyyyMMddHHmmssfff'))"') do set timestamp=%%a

:: 署名するファイルset infile=%TEMP%\pgp_input.txt
set outfile=%TEMP%\pgp_output.asc

:: 以前の出力があれば削除
if exist "%outfile%" del "%outfile%"

:: タイムスタンプを原文として保存
echo %timestamp% > "%infile%"

:signloop
:: AutoHotkeyパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)
start "" /b "C:\Users\infini\Documents\AutoHotkey\autopass.ahk"

:: PGPクリア署名作成
gpg --yes --clearsign --output "%outfile%" "%infile%"


:: 署名成功していればループを抜ける
if exist "%outfile%" (
    echo [INFO] 署名成功
    goto postprocess
) else (
    echo [WARN] 署名失敗、再試行します…
    timeout /t 1 > nul
    goto signloop
)
:postprocess

:: PowerShellで余計な改行なしに |< をつけてクリップボードコピー
powershell -nologo -command ^
  "$header = '>|'; $footer = '|<'; $body = Get-Content '%outfile%' -Raw; Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"

echo Done. signed.asc created and clipboard updated (no extra blank line).
endlocal
exit /b
tempermonkeyとかに登録するユーザースクリプト
// ==UserScript==
// @name         PGP署名自動付加スクリプト(GM_xmlhttpRequest版)
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  投稿前にPGP署名を付けてから送信(fetch未使用)
// @match        https://anond.hatelabo.jp/dorawii_31/edit*
// @grant        GM_xmlhttpRequest
// @grant        GM_setClipboard
// @grant        GM_notification
// / @connect      localhost
// ==/UserScript==

(function () {
  'use strict';

  const submitId = 'submit-button';
  const textareaId = 'text-body';
  const localServer = 'http://localhost:12345/run-batch';

  const pgpSignatureRegex = /-----BEGIN PGP SIGNED MESSAGE-----[\s\S]+?-----BEGIN PGP SIGNATURE-----[\s\S]+?-----END PGP SIGNATURE-----/;

  const httpRequest = (url) => {
    return new Promise((resolve, reject) => {
      GM_xmlhttpRequest({
        method: 'GET',
        url: url,
        onload: function (response) {
          resolve(response.responseText);
        },
        onerror: function (error) {
          reject(error);
        }
      });
    });
  };

  const interceptClick = () => {
    const btn = document.getElementById(submitId);
    if (!btn || btn.dataset.pgpIntercepted === 'true') return;
    btn.dataset.pgpIntercepted = 'true';

    btn.addEventListener('click', async function (e) {
      const textarea = document.getElementById(textareaId);
      if (!textarea) return;

      const content = textarea.value;

      if (pgpSignatureRegex.test(content)) {
        console.log('[PGPスクリプト] 署名が検出されたためそのまま送信します');
        return;
      }

      e.preventDefault();
      e.stopImmediatePropagation();
      console.log('[PGPスクリプト] 署名が見つからないため処理を停止し、署名を取得します');

      try {
        await httpRequest(localServer); // バッチ実行

        const signatureText = await navigator.clipboard.readText();
        if (!signatureText.includes('BEGIN PGP SIGNED MESSAGE')) {
          alert('PGP署名クリップボードに見つかりませんでした。');
          return;
        }

        const newText = content.replace(/\s*$/, '') + '\n' + signatureText + '\n';
        textarea.value = newText;

        console.log('[PGPスクリプト] 署名を貼り付けました。送信を再開します。');
        btn.click(); // イベント再発火

      } catch (err) {
        alert('PGP署名の取得または貼り付けに失敗しました。\n' + err);
      }
    }, true);
  };

  window.addEventListener('load', () => {
    setTimeout(interceptClick, 1000);
  });
})();

プロミスメソッドとか全然まだ理解してなくてそのなかに関数代入したその関数オブジェクトプロパティresponseを?いやまあそのあたりのコードが示すデータの流れが全然理解できないような人間でもここまでできちゃった。

AIすごいなと思うよ。そして思うのは今後重要になってくるのは文法とか自体に詳しいことじゃなくて、そのプログラムの処理内容を指示できるシステムエンジニア的な言語化能力のほうじゃないかなと思った。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

20250609111559680 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEbCbwAKCRBwMdsubs4+
SLueAPwOv7PBk4voAe5qlcCEvs/PJhmKc5QAb/1R43JMQFuDZgD/UTPEKsL/PhK9
jFGv2HDXK1dVjLNwvosgX9uYJh5xxwY=
=qiOE
-----END PGP SIGNATURE-----

2024-05-24

パスワードルール

古めのサイトや、Web系とは遠い系統会社アプリウェブサービス始めるとパスワード制限がひどい

8~10文字のみとか使える文字種別も限られてたり

 

中には英単語が含まれてるとダメですとか辞書チェックしてるのもある

英単語あっても英単語のみじゃなくて十分長ければいいだろう

パスフレーズ的なのが使えず辛い

2023-06-12

Web3ヤー対策 一問一答 パート2

https://anond.hatelabo.jp/20230611160913

のつづき

Web3ヤー「ブロックチェーンスマートコントラクトの仕組みを使えば、ガチャゲームロジックを透明でフェアにつくれる!!」

解答「ガチャをはじめ、ゲーム性に不可欠な乱数を扱うのはブロックチェーンではそもそも困難です。乱数を得るのに、乱数オラクルと呼ばれる外部サービス依存しなければならず、しかもそれが高価だからです。ゲームのような頻繁に乱数を要するようなユースケースには耐えられません。それを嫌って、乱数オラクルを自社運用したとすれば、ソシャゲガチャと何も変わりません。むしろ金銭利益と直結するBCGにおいては、運営側乱数操作するインセンティブが生まれるので、運営不正蔓延するでしょう。」

※別解「ゲームロジックのようなデータ量が多くて複雑な計算は、手数料が高すぎてスマートコントラクトでは実行できません。結局、重い処理は今まで通りブロックチェーンの外で行わなければいけないので、フェアなロジック実行、チート対策などが、ブロックチェーンからできるということにはなりません。」

Web3ヤー「GameFiが来る!」

解答「ゲーム資産金融商品化するせいで、ゲームギャンブルになってつまらなくなるのです。GameFiは本来ゲーム性を破壊する悪の根源です。出てってください。」

Web3ヤー「メタバースと組み合わせよう!」

解答「全く関係ありません。VR界隈から嫌われているので、はやく片思いだと気づきましょう。」

Web3ヤー「AIと組み合わせよう!」

解答「全く関係ありません。AI界隈から嫌われているので、はやく片思いだと気づきましょう。」

Web3ヤー「ブロックチェーンはRollupで無限スケールする!!」

解答「Rollupによるスケールシステミックリスクを増大させる恐れがあり、銀の弾丸とは呼べません。複雑なインセンティブ設計で維持されている流動性ブリッジ接続し合うRollupの網の目は、マネーレゴの一部品ハッキングラグプル、ブラックスワンイベントきっかけに、悪影響が波及して全体として崩壊しかねません。WEBスケールしたのは、一部の障害が全体に無影響であるからです。トークン触媒にして密結合するRollup網は、大きくなればなるほどシステミックリスクが高まり、むしろ脆くなっていくのは想像に難くありません。」

※別解「スケールすればするほど、Time-bandits攻撃と呼ばれる攻撃リスク高まるでしょう。子レイヤーで発生するMEVの合計が、親レイヤーバリデータペナルティ差し引いても十分に余るようになれば、親レイヤーの安定したコンセンサスを守るためのインセンティブ設計が成立しなくなります。」

Web3ヤー「ステーブルコインWeb3のキラープロダクト!!」

解答「Web3といいながら政府発行の法定通貨依存するのですか?恥を知りましょう。それはプロダクトキラーの間違いです。Web3がこのような新しい用語を頻繁に発明するのは、矛盾を巧妙に隠蔽するためです。ステーブルコインはそれに最も成功したバズワードの一つです。」

Web3ヤー「次はReFiが来る!!」

解答「善悪恣意的定義し、経済的インセンティブで善に誘導するのは新しい共産主義です。」

Web3ヤー「分散ストレージつくります!!」

解答「ブロックチェーンデータの保管には向いていません。ビザンチン耐性だけなら分散DBで事足ります。もし改竄耐性が欲しいのであれば証明書チェーンのような仕組みで事足ります。すでに一部の界隈ではブロックチェーンではなく、VDR(Verifiable Data Registry)という言葉が代わりに使われるようになっていますブロックチェーンはわざわざ使わなくて良いのです。」

Web3ヤー「ブロックチェーンを使ったビジネス!」

解答「ブロックチェーン必要となるのは、悪玉ピアを含む不特定多数が参加するP2Pネットワーク上で、読み書きの権限不特定多数に開放している台帳プロトコルの状態遷移のコンセンサスを取りたい場合のみです。ビジネスにおいてここまで過酷なことを要求される場面はほとんどありません。特に不特定多数相手にするという性質コンプライアンス遵守と相反するのでビジネスにならないことが殆どです。数年前からWhy Blockchain?という問いに挑んできた企業の多くがブロックチェーン事業挫折したのはここに起因します。」

Web3ヤー「インターネット黎明期バカにされていた」

解答「インターネット通信回線パソコンの普及などインフラハード面が未熟だったためその真価が発揮されるまで時間がかかりました。しかWeb3で不便とされる側面は、物理的なものではなく原理的なものに起因します。ブロックチェーントリレンマから言えば、分散性を諦めない限りスループットは上がりませんし、手数料安価にはなりません。悪名高いパスフレーズはなくせません。それらは性質として受け入れないとならないのです。また、詐欺が多いという非技術的な課題規制しか解決できませんが、Web3業界規制を目の敵にしています。自ら課題解決放棄しているのです。」

※別解「インターネットバカにしてたのは外野だけじゃん。実際に触ってた人はみんな楽しんでたよ?Web3触ってる人で楽しんでいるのは稼いでる人だけじゃん。ゼロサムゲームおつ。チュッ、ネット老人でゴ・メ・ン♫」

Web3ヤー「性欲がWEBの発展に寄与したなら、Web3は金銭欲だ。人間欲求に応える分野は伸びる!」

解答「性欲は無限です。しか資本は有限です。」

Web3ヤー「#Web3ならできる」

解答「できません」

Web3ヤー「日本規制が厳しいかドバイに行ってやる!日本ってやっぱクソだわ。」

解答「日本だけでなく世界中Web3ヤーがドバイに集まっていますあなた方が、ドバイに追いやられているのです。」

日本政府Web3を国家戦略に!」

解答「GAFAMに負けたことを悔しがるのは大切ですが、一発逆転を狙って一過性バズワードに躍らされるのはやめましょう。まずは、日本がGAFAMに負けたのではなく、アメリカ世界一人勝ちしていることに着目して戦術ではなく戦略を立ててください。」

※別解1「そのまえにマイナンバーをどうにかしてください」

※別解2「まずはこの一問一答に対する反論を考えてください。」

つづき

https://anond.hatelabo.jp/20230620124806

2022-09-17

anond:20220917040334

こういう全く改行をしないパラノイア的な文章って統合失調症兆しに見える。まぁそこまでひどくは無いだろうけど、そんな雰囲気を感じる

書いてることもちょっと独りよがりで、まぁそういう自分日記をだらだらぶちまけるのも増田ぽいっちゃぽいんだけど

それにしても自分視点というか歪んだ世界観を見ていてそれをそのままダンプしてるだけのような文章なので

ちょっとやばいかもしれない

俺はAmazonに限らず多要素認証は不便だから基本的パスワードだけにしている

いや特殊取引とかクリティカルな部分は多要素認証使うけど、単純にログインするだけどかそういったところまで多要素認証要求されたら、速攻で切る。パスワードだけでええやろがい!

まーFirefoxパスワードバックアップ使っているから、それが漏れたらおしまいだけど

まーそうなったら世界中阿鼻叫喚地獄絵図だし別にいかなって感じ

あと、不正利用されるのクレカ情報とか購入履歴とか住所とかだしな。犯罪履歴とかそういった情報別にばれないしいいやって感じ

セキュリティ絶対はないのでどのサービスからどれくらいの情報漏れるのかってのを、ざっくりとわかっていればいいんじゃないのかな

そしてその情報が実際に流出してどんな被害が起こるのか。無名一般人情報漏れたところで、大したダメージは無い気がする

違わない?

パスフレーズ20文字くらいあればほぼハッキング不可能な強度だからな、普通に20文字パスワードにしておけば一般人問題ないよ

パスフレーズ忘れるかもしれないって問題はあるかもしれんけどな

2022-05-24

anond:20220524162444

カレンダーを使う方法いいね

でも、前半はパスフレーズで良くない?

「geninnnoyukuehadaremosiranai」+20220524

とかさ。

2022-05-11

anond:20220510133205

アカウント削除と同じ30日後にすりゃいいだけでしょ

全くもってそのとおりだな。まあ優先度低いか無視してるんだろうな

自分パスワードは十分長くて一意なもの使ってるのだけど、乗っ取られたことないので、2段階認証オプションって考えてる

ツイター運営者もたぶん似た感性なんだと思うよ

実際十分な強度のパスワードパスフレーズ)なら突破ほぼ無理だし

2段階認証パスフレーズ使いまわしてる情弱救済処置オプションって感覚なっちゃ

情弱が多数な現実を考えると、本当はそれじゃだめなんだよなぁ

2020-12-24

善悪を超えて

Smoozという国産ブラウザアプリサービスを終了して、私はなんだか無性にイライラしてしまった。

WEBセキュリティを専門としないので関連記事ざっと見た感じだと、

といった感じが主とした批判理由で、批判記事が書かれた数日後、アスツール社は利用規約を変えるでもなく、サービスの一時停止でもなく、サービスを終了させた。

私のイライラの原因に、登場人物は4人いる。

Smoozを開発したアスツール社、

批判記事を書いたreliphone、

mala氏、

そしてお前ら

reliphoneへ

最初あなた記事を読んだとき、私は「こんな中華アプリみたいな情報ぶっこ抜きブラウザアプリを作るなんて、なんて腐った連中なんだ」と思いました。あなた情報小出しに勝負する様は見ていて気持ちよく、私が明るくないセキュリティに詳しいこともあって、あなた正義の見方に見えたのです。

しかし、Smoozがサービスを終了させたと聞いて、私の態度は一変しました。もしアスツール社がmala氏の言うような"面の皮が厚い連中"であったなら、最初に取る一手は利用規約を変更して、なんだかんだ理由をつけてサービスを続けるだろうと思ったからです。しかしそうではなかった。

スツール社は、アプリ使用者に「セキュリティ問題が起きたので使わないでください」というポップアップを表示する機能実装させ、ストアから削除し、サービスを終了させました。

もしかして邪悪情報売買事業者は、存在しなかったのではないでしょうか?

なぜあなたセキュリティに詳しいにもかかわらず、IPAに報告もせず(してたらごめんね)、アスツール社に報告をせず、初手でブログで開示という方法をとったのでしょう?

それはセキュリティ界隈のキャリアアップ方法が、既存サービス脆弱性を見つけて、それを指摘しSNSブログでバズらせて名を上げるという戦国時代のそれだからでしょうか?(心あたり多すぎですね?)

それとも情報セキュリティマネジメント試験には、「問:脆弱性発見した場合、これ以上被害がでないために何をすべきか」「答:SNSブログでバズらせてサービスを停止させる」という問題が出題されているのでしょうか?

不思議なことに、私の怒りはアスツールから一変、あなたに向けられることになりました。

malaさんへ

私は、このmalaさんという方が「アスツール社に脆弱性報告をしている」というのを見て、正直感しました。

なぜならセキュリティ界隈の人間戦国時代武将なので、脆弱性を見つけるや否や、スクショをとって「ここがまずい」「ここがやばい」とSNSに連投したり、なんの権限もないコールセンターとのやりとりをブログでバズらせる人ばかりだと思っていたからです。

しかし考えてもみれば、まじめに脆弱性報告をする人は目立たないのです。私はteraailでこまめに回答を書いている徳丸某氏活動には目を向けないくせに、声のでかい戦国武将活動ばかり目を向けて、セキュリティ界隈はクソだと思っていたことを恥ずかしく思いました。

しかmalaさんの以下の文言を見て、私はそれどこらではなくなりました。

似たような要件仕様が上がってきたら、多くの開発者が同じようなことをやるだろう。 上から目線評論家気取りでこれは酷いなどとのたまうばかり、火事場を外から眺めて他人事自分のことは棚に上げ、 人のふり見て我が振り直しもしない、お前もお前もお前も、漫然とインターネットをしている醜い卑しい下賤の生き物ばかり。なんとかしてくれ。

私はかつて「時間と金」を理由に、数年後に爆発する時限爆弾を見て見ぬ振りをして開発をしたことを思い出しました。そして爆発の火中に巻き込まれるのを恐れて転職しました。

そうです。私は自身仕事ぶりには棚を上げるくせに、はてなブックマークであがってきたインシデントには人一倍敏感な棚上げクソ野郎だったのです。しかmalaさん、毅然インターネットをするには人生は短すぎて、人類繁栄しすぎていますインターネットビジネスチャンスの宝庫で、殆ど人類の関心事は他者を出し抜きそのチャンスを掴むことにあります。当然、注力すべきはビジネスロジックで、セキュリティ二の次になりますあなた記事ブクマして偉そうなこと書いてる技術的に聡明な人とは違って、私のような凡人は、 あなたの書かれている脆弱性手法意味をまったく理解できていないし、関係ない話ですが機械可読性に配慮して文章を紡ぐという必要性すらも感じていません。ただ1週間の残った2日でどう人生を輝かせるかで価値が決まる人生を歩いているのです。

あなた文章を読んで、自分自身にも怒りが沸いてきました。真にクソなのは、棚上げ転職逃亡クソ野郎自分自身だったからです。確かに私はインターネットも、人生も、漫然と惰性で生きている。しかしだからといって、どうすればいいのか。ビジネス意思決定権は自分以外にあり、私にできることといったら、せいぜいが静観を決め込むぐらいだ。

残念だったのが、あなたが reliphoneに暴言を吐いたことです。セキュリティ界隈には強い言葉反論をしずらくし周りを萎縮させる重鎮が鎮座していると思っていましたが、あなたもそれになっていることです。漫然とインターネットをしない先がそれなら、蛇の道ですね。

スツール社へ

まず、私がアスツール社を知ったのは、はてブにSmoozの記事があがってからでした。

そこで私は「なんて非道アプリだ。許しておけぬ」と思い、代表取締役名前検索し、クソ野郎の顔と名前を覚えたぞ、しししと、汚い笑みを浮かべました。

その数日後、Smoozがサービス終了したとアナウンスがあり、私は驚きました。それと同時に、貴社の情報ぶっこ抜きアプリが、果たして本当に悪意によってなされたものかと考えを改め始めました。

貴社のやりたかたことは、広告収益をあげたかったので、そのために記事からキーワードを引き抜いてユーザに合った広告を出したかっただけなのでしょう。すべてのユーザがハナから有料ユーザになってくれればこんなビジネスモデルにする必要はなかったのかもしれないが、そんなことは起こりうるはずもないので、無料ユーザからは本文テキストをぶっこ抜いて、DOMをいじって広告を挿入する。これはいいアイデアだと思ったのでしょう。

今では私も同意します。これは完全にいいアイデアだ。

私も中小零細企業で働いたことのある身。凡人の自分が考えたアイデアなんて世の中にはたくさんあって、思いついたアイデアはどれもこれも上司リジェクトされる、特許で押さえられていた、法律的にアウト寄りのグレー、なんてのはありふれた話だ。会社員歴十何年の人間が、赤字部署で一度も利益を上げたことがなく嫌気が差しついには退社し増田に入り浸る、というくらいありふれた話だ。

から、多少の通信の秘密暴露がなんだというのでしょう。これは開き直ったギャグでもなんでもなく、真面目にそう思います

そうでもしないと大企業に勝てないし、潰される。あらゆることは大企業占拠している。中小ベンチャー企業にとって、それをかいくぐったビジネスモデルは死活問題だ。たとえそれが法の穴でも……タックスヘイブンで何兆もの税金を現地に還元していない大企業脱法行為に比べれば、可愛いものじゃないか

私は、設立2016年資本金1億の凡百弱小スタートアップ企業である貴社を応援したくなった。

ふてぶてしくサービスを続けてほしかった。私は クソ野郎なので、そのときはもちろん 貴社 を批判をしているだろうが、SmoozはかつてのLINEのように批判されながら成長する余地があったのではないか、という気がしました。

貴社のような弱小凡百無名スタートアップ企業セキュリティ人材を雇うのは難しいでしょう。優秀なセキュリティ人材も、 貴社を目にも止めなかったでしょう。もしかしたら、国内ブラウザの開発という、一種エンジニアの憧れを源泉にビジネススタートアップにした時点で、そのフロントエンドの複雑広大なドメイン知識キャッチアップしきれるはずもなく、セキュリティ二の次にするスタートアップ企業である貴社は必敗が約束されていた……と考えるほど、私は人の夢を悲観的に捉えてたくないのですが、やはり生き残るには、批判を跳ね返す強靭なメンタル必要なのでしょう。たとえ瑕疵が貴社にあったとしても。 "面の皮を厚く"せねば生き残れないなら。

それとも貴社は、本当は邪悪情報売買事業者で、さっさとトンズラこいたのか?

「さっさとトンズラ」なんて簡単に言ってくれる。そうですよね?

お前らへ

どっかの誰かに「漫然とインターネットをしている」とキレられたお前らへ。

はてブに聡慧たるコメントを残している皆様におかれましては、Smoozとかいう弱小ブラウザが、他ブラウザであるSafariChrome、諸Microsoft製品、その他製品諸々と比較していかevilであるかをご存知でしょう。

どんなページを見ているかがアスツール社に筒抜けであるのは嫌ですが、どんなページどころか年齢、性別検索履歴、趣味嗜好、各サービスアカウントパスワード大企業たるGAFAM様には筒抜けでも一向に構わない、という理由けがあなたの中にあるということです。アスツール批判していてLINEやってる人はいないですよね?それとも最近LINEクリーンイメージからもう大丈夫、と自分を納得させましたか

ところでChromeパスワード管理機能はすごくて、どの端末で開いても、Chrome自身アカウントログインすればその機能が使える。つまりパスワードサーバ管理されているというわけです。たとえ同期パスフレーズデフォルト有効ではなくても、Googleグローバルビッグカンパニーでnot evilなので、情報を売るなんてセコい商売をするわけがないとハナから信頼されているからこそ許される行為なのです。

Google閲覧履歴を少しずつわからないように販売している 」という発想に私たちがならないのは、Googleはそんなことしなくても事業成功しているからなのですが、「実はその心理的死角をついて」「裏をかいて」という発想すらもならないのは、やはり単純にGoogleビッグすぎるからでしょう。一方、弱小貧弱キングボンビーである中小零細企業は、少しでも怪しい所があれば、単純な知識技術不足 というよりも (弱小企業ゆえにこっちのほうがありえそうな話だとしても)、「あたりまえのように」悪意を疑われてしまます

結局、Google邪悪情報売買事業者ではなく、アスツール社は邪悪情報売買事業者で"ありうる"、という判断あなた脳内で線引きされるのは、単にアスツール社が弱小凡百零細の聞いたこと無い企業であり信頼が足りない、ということ以外に理由はなく、Googleがやっている「検索履歴やキーワードから適切な広告を表示している」というのが想像以上にドラスティックで大規模にもかかわらずグローバルスタンダードになっているので、それに比較して アスツール社が「本文をぶっこぬいて送信しているから怪しい」というのは、「やり方がせこくて本流ではなく、マナーがなっていない」程度のものしかないわけです。つまり私はマナー講師が嫌いなので、マナー講師たるお前らに腹が立っているわけです。

許せないやつはどいつだ

四者四様、いや自分を含めたら五者五様に怒りが沸いてくる。これは理不尽な、行き場のない怒りだ。大企業不祥事書類送検だが弱小企業社長懲役刑になるような理不尽さを見たときの怒り、自身の棚上げ癖と、過去爆弾を思い出したこと、それを指摘されたように感じた羞恥に似た怒り。界隈のキャリアアップ方法が、受け入れがたいにも関わらず常識になっていることへの怒り、自己矛盾、考えがまとまらない怒り……私には世界がわからない。ビジネス成功したためしがない。セキュリティもわからないし、なんなら上手な人間関係もわからない。アスツール社が邪悪かどうかの真実もわからない。ただ開発者気持ちはわかる。あの頃、やばいね、ああやばいねと隣の同僚と話していた頃を思い出す。今、Smoozの開発者の席に、私がいるような気がして、それを考えると、全ての善悪を超えて、みんな許してやってくれんかね、と思うけれど、そういうわけにはいかないだろ、とイライラが一向に収まらないんだ。

2020-10-29

anond:20201028235613

通貨というよりは金だからな。

埋蔵量が限られてるから価値保存の手段として使える。

それに中央集権的な支配が及ばないということはどこかの国の法律に触れるからと言って停止させたり差し押さえたりするのが難しいということだ。

要は犯罪組織にとって大変都合がいい技術

国際的な送金にも使えるし金を山に埋めるよりも秘密鍵なり秘密鍵復元のためのパスフレーズを隠す方がはるか簡単だ。

日本でもちょっと前にネットバンク不正送金で振込先になってた仮想通貨取引所アカウント販売した女が逮捕されてたけどフォーマル経済での需要は限られていても普通に犯罪に使われまくってるから価値が保たれてる感はある。

2020-09-10

anond:20200910183218

キャッシュカード暗証番号の4桁や、スマホパスフレーズの6桁とか、物理的な媒体と結びついてるからその程度でいいという理屈らしい。

それを設計思想理解しないでネットで使えるようにしたのが間違いってことかな。

2018-02-15

電子通貨は国が管理すれば問題がない。例を示そう。

基本的仕様

プライバシー

セキュリティ


子供

予算

他の政策

教育

メリット



データ形式

{
	'transaction':[
		'key':'some_token_like_SHA-2',
		'descriiption': 'bar',
		'from_wallet': 1234567890,
		'to_wallet': 0987654321,
		'total_amount': 9999999999999,
		'tax_amount': 999999999999,
		'timestamp': yyyymmddhhmmss
	]
}

ブロックチェーン、電子通貨は国がやるメリットが大きい。さよなら仮想通貨

2016-10-27

Surface Studioという聳え立つクソについて。

28インチ PixelSense Display, 4500 x 3000(192DPI), 10ポイントマルチタッチ, Surface ペン

これは良い。逆に、これしか良いところはない。

デュアルマイク

必要?使うとしたら何の目的で?Surface StudioSkypeとかするの?単なる音声認識だけならデュアルマイクにする必然性がないし、コストカットできる。

ドルビーオーディオプレミアム 2.1スピーカー内蔵, 3.5mmヘッドフォンジャック

標準またはそれ以下。一般的PCユーザーであればUSB有線かワイヤレスBluetoothヘッドフォン選択するはずなので、無用

Quad-Core 第6世代 Corei5 or i7

標準。Kabylake以降を待てないのは時期的に仕方がないのかも知れないが、選択としてはあまり評価できない。Surface Studioトータルスペック考慮すれば、第4世代選択した方がコストカットできるので、その方が有益

NVIDIA GeForce GTX 965M 2GB GPU GDDR5 memory or NVIDIA GeForce GTX 980M 4GB GPU GD

これがどうしようもないクソ。2in1であるがゆえ、でもあるが、このスペックでは「Photoshopお絵かき」くらいが関の山。ゲーミングには使えない。

8GB/16GB/32GB RAM

標準またはそれ以下。特に筆するべきものもない。

4 USB 3.0ポート

4ポートしかない。すぐ埋まる。HUB必須スマートではない。USB 2.0x2 でも良いので、せめて6ポートに出来ないものか。

フルサイズSDカードリーダーSDXC対応

この辺が一般的なデザイナ対象モデルであることを印象付けている。普通PCユーザーSDカードリーダーなんて求めていない。

Wi-Fi 802 11ac Wi-Fiワイヤレスネットワーク

標準またはそれ以下。有線LANがない、という判断もできるので色々とアレ。

Bluetooth 4.0 ワイヤレステクノロジー

標準。Bluetooth あるんだったらヘッドフォンジャック要らんだろ。

Xboxワイヤレス内蔵

何のためにあるのか意味不明。ゲーミングPCとしては恐ろしく低スペックなのに、Xbox連動に何の意味が?

Windows Helloサインイン

特に何も。パスフレーズ管理が面倒な人には便利なんだろうか。

5.0MPのフロントフェイスカメラ1080pHD対応

あ、やっぱりSkypeビデオチャットさせる気なんだ。無線なのに。

結論

Microsoftが何でこんなクソを販売しようと思ったのか意図が分からない。同スペックディスプレイを単体で販売すればコストダウン収益も図れそうなのに、結構馬鹿だな。

2016-04-05

ssh公開鍵認証ってパスワード認証より安全

パスワード認証やめろ公開鍵認証使えって風潮あるけどさ、この時代

公開鍵ファイルパスフレーズまれリスクって、パスワードまれリスクと大して違わなくね?

しろ秘密鍵ファイルのみ盗まれたとときローカルフレーズクラックされやすいこと考えたら逆に危なくね?

もちろんパスワード認証オンにしてて、弱パスワードや使いまわしてたりするのは論外だし、

fail2banとかのリモートブルートフォースアタック避けは当然あるとしての話だけど

何が言いたいかというと、いまやssh認証安全性は、二段階認証>>>>公開鍵認証パスワード認証で、

パスワード認証やめろっていうなら公開鍵認証もやめろよなって思うんだ

セキュリティ専門家意見が聞きたいな

 
ログイン ユーザー登録
ようこそ ゲスト さん