パスワードを忘れた? アカウント作成
11918805 story
プログラミング

自分の知識があまりない分野での仕事をしている開発者、どれぐらいいる? 128

ストーリー by headless
得手 部門より
本家/.「Ask Slashdot: What Portion of Developers Are Bad At What They Do?」より

わが社ではシニア開発者/アーキテクトの候補者を探している。現在のところ私は求職者に失望しており、確保できる開発者/エンジニアの質を正直言って心配している。たとえば、今日私はパブリック/プライベートキーによる暗号化の基本的なプロセスを説明するよう、20年以上の経験を持つエンジニアに質問したが、このエンジニアは何の知識も持っていなかった。他の求職者にも同様に「あなたが非常に機密性の高い情報を私に送るとしたら、あなたは私が復号する情報をどのように暗号化しますか」といった質問をしたところ、この人はExcelファイルなのか、PDFなのかといった質問を始めた。全般的に、私が面接した開発者の大半は重要な概念を理解しておらず、とりわけデータ保護の話になると、ほとんど理解していないことがわかった。他の会社では適切な求職者を探すのに同様の問題に直面していないのだろうか。(このような開発者が安全性を要するサイトを構築すると考えると、正直なところとても恐ろしいと感じる)

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • >今日私はパブリック/プライベートキーによる暗号化の基本的なプロセス

     これって、日本なら、確か基本情報処理技術者のカリキュラムに含まれているよね。
     送りたいファイルを、自分の秘密鍵で暗号化し、さらに送付先の公開鍵で暗号化すれば、受取人しか読めないし、送付者が本当に送ったか確認できる。
     直接、そこの業務に関係しないとしても、体系的に基礎知識を身につけさせる必要はあると思うので、日本でなら情報処理技術者試験を活用すればいいかと。アメリカでも、体系的な知識を問う認定試験かなんかあるんじゃないかな。

    /*
     セキュリティ確保のため暗号化メールを使うときに、同じメールアドレスにメール本体と、別メールでカギを送ってくる人がいるけど意味が無い・・(組織のセキュリティ・ポリシーで決められていたりして)。
    */

    • RSAが偶々どちらにも使えるだけで。
      親コメント
      • RSAが、ではなく、公開鍵暗号が、では?

        実際には、署名には公開鍵暗号とハッシュ関数が、暗号化には公開鍵暗号と共通鍵暗号が、それぞれ組み合わせて使われるわけですが。

        親コメント
        • 他のアルゴリズムの例として、ElGamal暗号 (もちろん公開鍵暗号) と ElGamal署名は (基本原理は同じでも) 別物です
          ElGamal暗号は署名には使えませんし、ElGamal署名(DSA等)は暗号化には使えません。

          これに対してRSA暗号は、単一アルゴリズムで署名も暗号化もできます。
          対称性はRSA暗号の特性であり、公開鍵暗号すべてに共通する特性ではありません。

          親コメント
          • なるほど。
            公開鍵で暗号化して、秘密鍵で復号化できるのは、公開鍵暗号一般に共通する性質ではない、ってことですか。
            勉強になりました。
            ありがとう。

            親コメント
      • by Anonymous Coward

        何を言ってるんだと思ったけど、送付者が本当に送ったか確認する目的なら暗号化じゃなく署名つけとけよっー話?

    • by Anonymous Coward

      > これって、日本なら、確か基本情報処理技術者のカリキュラムに含まれているよね。

      いつものスラドらしくないコメントだな?
      その基本的な資格を持っていない連中が、集まっているところじゃないのか。

      資格試験を軽視している人に限って、自分は知らないことが多いということを知らないんだよね。

    • by Anonymous Coward

      ところがだ、本当に安全なのかどうかを説明できたら求職なんてしなくて済むんだな。

      P≠NP予想
      http://ja.wikipedia.org/wiki/P%E2%89%A0NP%E4%BA%88%E6%83%B3 [wikipedia.org]

    • by Anonymous Coward

      90年代前半の二種なら含まれてないんじゃないかな。

      •  でも、その後のカリキュラム改訂で二種レベルに含まれていると思うんだけど。
         仮に90年代前半に二種をとったとしても、IT分野で仕事をしているなら、その後の進展に追いつくようにしておくべきでは?
         たとえば二十年前に医師免許をとって、その後の医療技術について無頓着な医師がいたとする。で、今、普通に使われている医療技術を用いれば、すぐに直るけど、二十年前の医療水準で治療をして重症化するなど医療事故が起きたら、その医師の治療が適切か問われることになるでしょう。
         どの分野でも、それを生業にしているなら、その時代の一般的な水準は習得しておくべきだよね。

        親コメント
    • by Anonymous Coward

      送りたいファイルを、自分の秘密鍵で暗号化し、さらに送付先の公開鍵で暗号化すれば、受取人しか読めないし、送付者が本当に送ったか確認できる。

      自分の秘密鍵で暗号化したら、受取人は読めませんよね。

      署名と言いたいのだろうけど。

      • >> 送りたいファイルを、自分の秘密鍵で暗号化し、さらに送付先の公開鍵で暗号化すれば、受取人しか読めないし、送付者が本当に送ったか確認できる。
        > 自分の秘密鍵で暗号化したら、受取人は読めませんよね。

        いや、受取人は読めるでしょう。自分の公開鍵が公開されているなら。てか、自分の秘密鍵で暗号化されているなら、誰でも復号化出来るでしょう。

        内容を秘匿する為なら、相手の公開鍵での暗号化で十分ですね。じゃあ自分の秘密鍵での暗号化は難の為かと言えば、「送付者が本当に送ったか確認できる」なんでしょう。署名の代わりですね。

        親コメント
    • by Anonymous Coward

      海外だと「GAIT」という試験が基本情報処理技術者に近い試験内容みたいですね。

  • 専門分野は人それぞれ、経験年数だけではなく経歴も必要だということ。

    言葉だけ知っていても、実際にコードを書いてみると、想定外の暗黙の機能要件が
    あることに気づくだろう。これは、受注した後で開発量が上乗せされてしまうということだ。
    平たく言えば、デスマーチ状態になる可能性が高くなる。

    だから、全員でなくとも、数人はその分野の専門家がいることが望ましい。
    残りのメンバーには、その分野特有の概念を学習する期間を設けるべきでしょう。

  • by Anonymous Coward on 2015年02月15日 23時16分 (#2761660)

    > 自分の知識があまりない分野での仕事をしている開発者、どれぐらいいる?

    むしろ「俺は仕事で自分の知識と経験をバリバリ生かして開発してるぜ」って
    いうひとがどれぐらいいるかの方が興味がある。

    日本の一般の職場では、あまりプロフェッショナビリティが生かせないことが多い
    気がするんで。

  • by Anonymous Coward on 2015年02月16日 9時18分 (#2761757)

    うんちくなどどうでもいい。
    どう回答すべきだったかを考えよう。

    問1「パブリック/プライベートキーによる暗号化の基本的なプロセスを説明せよ」

    解答例:
    ・送り先が公開しているパブリックキーで暗号化して送り、送られた側はプラ
        イベートキーで復号化して読む。

    問2「あなたが非常に機密性の高い情報を私に送るとしたら、あなたは私が復
      号する情報をどのように暗号化しますか」

    解答例:
    ・非常に機密性が高い情報をネットで流すなどありえないので手渡し。
    ・USBメモリを2つ用意し、片方に復号用の鍵と復号化のためのツール、もう片
        方に暗号化されたデータを入れて、別々に管理しろと言って渡す。
     暗号化手段は、復号化ツールと鍵が揃っていなければ復号化が困難である
     だけでよいので、長いだけの人間が覚えられないレベルのランダム生成パス
     ワードで十分。CRC等でデータ破損がないことも確認できる手段があれば
     更に良し。

    ※解答例は例であって正答ではありません。

  • >今日私はパブリック/プライベートキーによる暗号化の基本的なプロセスを説明するよう、
    >20年以上の経験を持つエンジニアに質問したが、このエンジニアは何の知識も持っていなかった。

    仮にそれを非常に高度な技術力で実装した経験があったとしても、
    昨日今日、実装した人ばかりでは無い。むしろそうでない人の方が大多数だろう。
    仮に知識も経験もあっても、やってから10年もたてば技術は陳腐化するし、なにより
    人間は忘れる生き物だ。仮に覚えていても、突然質問されて10年前のことを上手く
    説明するのは無理。

    この求人が暗号化技術を専門とする技術者で、Requirementsの最初に
    「公開鍵暗号」となっていない限りは、質問の方が不適切だろう。

    • by Anonymous Coward on 2015年02月15日 20時27分 (#2761591)

      これは質問が悪いと思うんだよな。
      用語じゃなく「何を意図した質問なのか」がさっぱり分からない。
      仮に公開鍵と伝わったとしても、実装経験のある人間なんかおそらく0.1%もいない。

      というか、ツールでも使った事ない技術者はいくらでもいると思う。
      とりあえず20年システム屋さんやってるけど、「PGPで送りますか」って言って通じた事は残念ながら一度もないってのが正直な話。
      「どのように暗号化しますか」の質問に対しては、圧縮ファイルにパスワードを掛けると回答する技術者が大半だと思う。
      というか、企業の情報セキュリティガイドラインがそうなってる。

      喩えるなら、自動車修理工場の整備士がどんなに腕が良くて経験があろうとも、タイヤがなぜ4つなのかの理由を答えられるとは限らないという事。

      #リストランテの料理人に「なんでパスタって茹でる時に塩入れんの?」でも可

      親コメント
      • 公開鍵暗号のアルゴリズム自体はわからなくても、OpenSSLやGnuPGはソースを公開してる訳ですから、如何にして公開鍵暗号を使って暗号化し、復号化するか。と言う原理自体が分かっていれば、後はソースを見ながら実際のプロセスを実装したり、独自の関数式を暗号鍵の発行や暗号・復号に使うだけならば、当該ソフト・ミドルウェアにポーティング出来ますよね。
        # 公開鍵暗号を一から実装しなくても、とりあえず使えれる物を寄せ集めてライセンス侵害しないように作り直せればなんとかなるよね。と云うこと。

        そういう辺りの話をしたかったんだと思いますが、公開鍵暗号を意識して使ったか、もしくはそれに興味を持った経験がある人で、そこそこ業務経験があれば、意を汲んで話せる気がするんですけどね。
        現実は予想の斜め上というか、そこまで好奇心旺盛な人がいなかったという辺りが、この話の肝なんじゃないですかね。

        親コメント
        • by Anonymous Coward on 2015年02月15日 22時03分 (#2761635)
          暗号化システムの独自実装ってでっかいセキュリティホール作る一番簡単な方法ですよね。
          親コメント
          • >暗号化システムの独自実装ってでっかいセキュリティホール作る一番簡単な方法ですよね。
            確かにそうですね。
            只、そういうニーズは少なからずある訳じゃないですか。
            クローズドな暗号化手順やアルゴリズムを実装して(試験的に)内輪で使うとか、組み込む側のライセンスの関係で流用が困難だとか。
            このタレコミに引用されてる質問は、要はこういう事を出来る人を探していたのではないか?と、勝手ながら推測しておりましたので。

            親コメント
        • > そういう辺りの話をしたかったんだと思いますが、公開鍵暗号を意識して使ったか、もしくはそれに興味を持った経験がある人で、そこそこ業務経験があれば、意を汲んで話せる気がするんですけどね。

          ですね。でも、実装までは求めてないと思いますよ、元記事のramoneThePoolGuyさんは。公開鍵暗号に限らず、暗号システムの全般的な知識を要求したんだと思いますよ。なので、「3DESで暗号化して送ります、鍵は手渡しで」なのでも良かったんだと思いますね。

          > 現実は予想の斜め上というか、そこまで好奇心旺盛な人がいなかったという辺りが、この話の肝なんじゃないですかね。

          今の人達はフレームワークの使い方とかなんとか、色々お勉強が忙しいのでしょう。公開鍵暗号がどう機能するのかなんて、昔の人みたいな悠長な事をやってられないんだと思います。

          親コメント
      • ググる先生に教えてもらいました。
        パスタを茹でるときには塩を加えるべきか? [shokuikuclub.jp]
        それは塩入れて茹でた方がうまいかららしいですよ。

        親コメント
      • by Anonymous Coward

        質問が悪い、に同意だな。
        つーかさ、安全な方法で鍵を共有できるなら、共通鍵でもいいんだよね。
        目の前にいて、安全な方法で鍵を共有できる相手に送るのに、「公開鍵で答えないとダメ」ってのは何でよ。

        状況によってはAES128(MS Office)やAES256(ZIP)の方が公開鍵よりも解読しにくいんだけどねぇ。
        公開鍵の場合は、計算時間さえかければ必ずペアの鍵を見つけられるけど、
        共通鍵は複合化できたかどうかの判断基準が必要だから。

        • > 目の前にいて、安全な方法で鍵を共有できる相手に送るのに、「公開鍵で答えないとダメ」ってのは何でよ。

          ストーリーの内容を見ると...

          たとえば、今日私はパブリック/プライベートキーによる暗号化の基本的なプロセスを説明するよう、20年以上の経験を持つエンジニアに質問したが、このエンジニアは何の知識も持っていなかった。他の求職者にも同様に「あなたが非常に機密性の高い情報を私に送るとしたら、あなたは私が復号する情報をどのように暗号化しますか」といった質問をしたところ、

          公開鍵に関する質問と、面接官に情報を送る質問とは、別の質問だと思われます。

          また、面接官に情報を送る質問に対して、いまここで送る(別れてから後日送るという可能性はない、あるいは「あなた」「私」という言葉は単なる例として使った可能性はない)という意味に決めつけて解釈し、それに基づいた回答をするのが妥当でしょうか?

          親コメント
    • by Anonymous Coward

      いやいや、これは別の話題で言うなら、クイックソートの基本的な仕組みを聞かれてるのに
      「Excelですか?それならA->Zって書かれたボタンを押すんですよ」って答えてくるアホの話だろ。

      技術が陳腐化するとか求人条件に書く項目とかの話とか、そういう段階の問題じゃないね。

      # 一応断っておくが、「パブリック/プライベートキーによる暗号化の基本的なプロセス」ってのは高度な技術力で
      # 実装した経験者じゃないと分からないようなムツカシイ話じゃなくて、基本情報処理技術者レベルの試験でも聞かれる話だからね?

    • by Anonymous Coward

      いやいや、SSLの証明書をサーバに貼ったヤツのうち、PKIを本当に理解して操作したのなんて1/1000くらいだろ。
      たんに理解する気がないだけだ。
      その証拠に、ActiveDirectoryなんてできて15年経つが、まともにKerberos使えるヤツなんて見たことない。

  • by Anonymous Coward on 2015年02月15日 20時03分 (#2761577)

    私はツールを使うと答えると思う。

    クライアントはそれでは満足できなかった。
    それはしかたのないことでは。

    • 今時の圧縮ツール…rarや7zipなど…には、共通鍵暗号のオプションがあるので、それを使うか、もしくは、相手がgnupg辺りの公開鍵を出していれば、それで暗号化するでしょうね。
      神経質な場合は(どの程度有効性があるかはともかく)、gnupgの前段に圧縮ツールの暗号化を噛ませる。
      更に神経質な場合には、ワンタイムキーを(これまた暗号化して)別途やり取りするか、発行のシードを共有しておいて、圧縮ツールの復号パスワードにそこで発行したワンタイムキーを用いる。
      …というレベルならば、インターネットを能動的に使ってきてるユーザはクリア出来てるだろう…と思った私が甘かったんでしょうね。これを読むとですが。

      親コメント
    • by Anonymous Coward

      質問に答えてないので問題外です

    • by Anonymous Coward

      ツールを使うにせよ、鍵の交換が必要なのでそのプロセスを訊かれてるんでは。
      使い捨ての公開鍵を発行して電子署名付きの平文で相手に送り、相手の公開鍵を暗号化して送り返してもらう。
      使い捨ての秘密鍵で相手の公開鍵を復号。
      相手の公開鍵で自分の本当の公開鍵を暗号化して送信。
      以後の送信は交換した公開鍵で行う。
      とか。

  • by Anonymous Coward on 2015年02月15日 22時04分 (#2761636)

    設計開発したシステムにバグがあった場合...
    難しかったからバグは致し方無い
    と自分を納得させる開発者。

typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...