並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 305件

新着順 人気順

ハッシュ関数の検索結果161 - 200 件 / 305件

  • [SQL]JOINの3種類のアルゴリズムについて

    SQLのJOINには3種類のアルゴリズムあるということを最近知ったのでまとめてみる。 JOINのアルゴリズム Nested Loop Sort/Merge Hash 基本知識 DBMSごとの実装状況 Oracle 3種類全部 MySQL Nested Loopのみ PostgreSQL 3種類全部 外部表(駆動表)と内部表 外部表(駆動表) JOINするときのベースになる表。以下のSQLでいえば、table1 内部表 外部表にくっつける表。以下のSQLでいえば、table2 特徴 Nested Loop Join 外部表にある全行に対して、内部表から結合キー列の値がマッチするものを探して結合する 上記に関連して、外部表にあるレコードが少ないほうがループ数を少なくできるため高速にできる 内部表の結合キー列にインデックスがある場合、インデックスを用いて検索できるため高速に処理できる Sort

      [SQL]JOINの3種類のアルゴリズムについて
    • 図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書

      『図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』 本書は公開鍵暗号や署名などの理論を基礎から詳しく解説し、 TLS1.3やHTTP/3, FIDOなどの新しい技術も紹介します。 更にブロックチェーンで注目されている秘密計算、ゼロ知識証明、量子コンピュータなど最先端の話題も扱います。 対象読者 暗号と認証を基本的なことから勉強したい人 暗号化と署名の違いがよく分からない人 TLS 1.3で利用される暗号技術を理解したい人 下記トピックに興味のある人 などなど。 トピック DH鍵共有, 公開鍵暗号, 楕円曲線暗号, XTS-AES, OAuth, AEAD, AES-GCM ChaCha20-Poly1305, TLS 1.3, QUIC, デジタル署名, ECDSA, FIDO, WPA3 ブロックチェーン, 秘密計算, 準同型暗号, ゼロ知識証明, 量子コンピュータ

      • パスワードをハッシュ化する方法:セキュリティ強化への一方通行

        認証の主な役割は、ユーザー名やパスワードなど一連の資格情報をユーザーに提供し、ユーザーがアプリケーションへのアクセスを希望するときに正しい資格情報を提供しているかどうかを検証することです。したがって、将来比較を行うときのために、データベースにこうした資格情報を格納する方法が必要となります。しかし、サーバー側に認証用のパスワードを格納するのは難しい課題です。ここではパスワードを安全かつ簡単に格納するメカニズムの1つであるハッシュ化について考えてみます。 パスワードの格納は複雑で危険であるパスワードを格納する簡単な方法は、データベースにユーザー名とパスワードをマップするテーブルを作ることです。ユーザーがログインすると、サーバーはユーザー名とパスワードを含んだペイロードで認証のリクエストを受け取ります。テーブルでユーザー名を探し、提供されたパスワードと保存されているパスワードを比較します。パスワ

          パスワードをハッシュ化する方法:セキュリティ強化への一方通行
        • 何故、パスワード暗号化だけでは不十分なのか。或いは美味しいハッシュドポテトについて。 - ようこそここは俺のチラシの裏だ。

          まぁまずはこの呟きを確認してくれ。 「パスワードを暗号化して保持する」 「その後画面に普通に表示する」 「別なユーザがパスワードを編集可能にする」 ウケるを通り越して頭痛くなってくるだろ。— える.jar(undeploying) (@ellnore_pad_267) 2019年11月11日 このツイートを見て「ヤベーじゃん」って素直に思える人はこの日記は読む必要がありません。 逆に、「ん?」って思ったけど何が悪いか解らない、みたいな非技術者サイドの人は読んだ方が良いでしょう。 暗号化とハッシュ化の違い 最大の違いは元に戻せる(=復号化可能)かどうか。 暗号化は元に戻せる。 ハッシュ化は元に戻せない。 これが最大の違い。 これを踏まえて、パスワードをはじめとするセンシティブデータ*1のシステム保存に関するセキュリティ対策の姿勢は大きく以下の3つ(+1)に分けられます。 平文*2で保存する。

            何故、パスワード暗号化だけでは不十分なのか。或いは美味しいハッシュドポテトについて。 - ようこそここは俺のチラシの裏だ。
          • 仮想通貨の仕組みとは?ブロックチェーン技術とは?わかりやすく説明!

            仮想通貨・ビットコインの仕組み 仮想通貨仕組み①仮想通貨の管理者仮想通貨には特定の管理者が存在しません。 これが最も大きな法定通貨との差と言えます。 円(¥)であれば、管理者・発行体は日本銀行になるわけですが、仮想通貨のほとんどは管理者を持っていません。 では、どのようにして仮想通貨は管理されているのか? そう、この管理にブロックチェーン技術が使われているのです。 仮想通貨仕組み②根幹技術「ブロックチェーン」では、ブロックチェーン技術とは何か? ブロックチェーン技術は、以下の技術の組み合わせということができます。 ブロックチェーン技術1 P2PネットワークP2Pネットワークは、仮想通貨が24時間稼働し続け、システムダウンを起こさないために必須の技術です。 P2Pは、Peer to Peer(ピア・トゥ・ピア または ピア・ツー・ピア)の略称のことで、複数のコンピューター間で対等の者(Pee

              仮想通貨の仕組みとは?ブロックチェーン技術とは?わかりやすく説明!
            • 暗号用語の体系的整理 | オブジェクトの広場

              署名はRSASSA-PSS 2048 SHA-1で、salt長は…なんて言われて各単語の意味や位置付けが分からず困ったことはありませんか?ややこしい暗号関連の用語を体系的に整理してすっきり理解しましょう。 はじめに 暗号の用語って似たような単語があってややこしい!と思ったことはありませんか? 本稿は暗号に関する専門用語を体系的に整理したものです。暗号に関する主要なキーワードを紹介していますが、個々の要素技術を深く掘り下げることはしません。 ネットで検索するのに適当なキーワードが思いつかない、似たような単語が複数あってイマイチ使い分けに自信がない、セキュリティに関する業務をやることになったけどどこから手を付けていいか分からない、というような方を想定読者にしています。 目次:暗号用語の体系的整理 はじめに 目次:暗号用語の体系的整理 暗号そのものに関する用語 アルゴリズムを一意に特定するために

                暗号用語の体系的整理 | オブジェクトの広場
              • 電磁波の闇に挑む特殊チーム - 叡智の三猿

                ChatGPTによる「電磁波攻撃による情報搾取」をテーマとした物語 2040年の未来、世界は電磁波の支配下にある。技術の進歩により、人々は電磁波を利用して情報を送受信し、制御する能力を持っていた。それは便利で革新的な方法であり、通信は以前に比べてはるかに迅速かつ効率的になった。 しかし、この技術は暗い側面も持っていた。悪意ある者たちは、電磁波を使って情報を盗み、操ることで権力を握ろうとしていた。彼らは巧妙な手法で、電磁波を介して個人の秘密や企業の機密情報を盗み出し、それを利用して不正行為や脅迫を行った。 主人公は、この電磁波の悪用に立ち向かうために活動する特殊なチームの一員だった。彼らは、テクノロジーと戦術を駆使して、電磁波を使って情報を搾取する犯罪者たちを追跡し、彼らの悪事を阻止する使命を負っていた。 ある日、彼らのチームは大規模な犯罪組織が企てる巨大な計画を突き止める。この組織は、電磁

                  電磁波の闇に挑む特殊チーム - 叡智の三猿
                • ブロックチェーン、ビットコイン、イーサリウムの基礎についての非エンジニア向けまとめ | せきさとカンパニー合同会社

                  ひょんな事から非エンジニアの私がブロックチェーン関連のお仕事を手伝う事になりました。 私は、ブロックチェーンを言葉では聞いた事がありますが実際に何なのかと言われると説明できないレベルです。 という事で無料セミナーを受講し、初歩の初歩を勉強してきたので非エンジニア向けに分かりやすく共有します。 ブロックチェーンって何? ブロックチェーンて何がすごいの? ブロックチェーンを支えるキーテクノロジー ブロックチェーンの応用範囲 ブロックチェーンって何? ブロックチェーンはコンピュータの OS(Operating System)のようなものと理解すると分かりやすいです。 コンピュータの OS は Windows、Linux などいくつかの種類があります。 同じようにブロックチェーンにも Ethereum、Hyperledger といったものが存在します。 これらをプラットフォームと呼んでいます。 ブ

                    ブロックチェーン、ビットコイン、イーサリウムの基礎についての非エンジニア向けまとめ | せきさとカンパニー合同会社
                  • 【小ネタ】AWS IoTのアクション設定でKinesis Data Streamsにデータを送る時、パーティションキーに指定するnewuuid()について確認してみました | DevelopersIO

                    【小ネタ】AWS IoTのアクション設定でKinesis Data Streamsにデータを送る時、パーティションキーに指定するnewuuid()について確認してみました 1 はじめに CX事業本部の平内(SIN)です。 AWS IoTでアクション設定を使用してKinesis Data Streamsにデータを送る場合、どのシャードに送るかを指定するためにパーティションキーを設定する箇所があります。 スケール目的でシャードの数を増やしても、パーティションキーを適切に設定しないと、期待通りの分散が出来ません。今回は、ここで一般に使用される newuuid() について、動作を確認してみました。 すいません、特にひねった内容ではありません。個人的に理解を深めるために、単純にドキュメントに記載されている内容をなぞっただけです。 2 検証環境 (1) Kinesis Data Streams 動作

                      【小ネタ】AWS IoTのアクション設定でKinesis Data Streamsにデータを送る時、パーティションキーに指定するnewuuid()について確認してみました | DevelopersIO
                    • CHAGEの裏側: ブルームフィルタとISONの逆引き高速化 | IIJ Engineers Blog

                      セキュリティ本部 セキュリティ情報統括室に所属 システム開発者。2000年問題で「2038年問題は定年で対応しなくていい!」とフラグを...。 CHAGE開発者のヒラマツです。 前回(CHAGEの裏側: D3.jsの紹介)同様、CHAGEの紹介と並行して、CHAGEの中が気になる人に、CHAGEで使われている技術をちょっと濃い目に解説するという企画です。 今回は、本編(CHAGE の動き)がISONネタなので、こちらもISONに関係ある話として、ブルームフィルタについて書きます。 ブルームフィルタをざっくり解説してから、ブルームフィルタの具体的な使用例としてISONでの逆引き高速化の方法を紹介していきたいと思います。 目指すのは、ちゃんとした理解ではなく、「ブルームフィルタの雰囲気を知って、利用価値をなんとなく判断できる」ところです。 今回は、以下の知識を前提にしているので、そこはご了承く

                        CHAGEの裏側: ブルームフィルタとISONの逆引き高速化 | IIJ Engineers Blog
                      • ゼロ知識証明はいいぞ

                        この記事では、暗号技術の一つであるゼロ知識証明と、その応用について簡単に解説します! ゼロ知識証明 ゼロ知識証明というのは 「秘密を所持している」という証明者の主張が正しいこと以外の情報が、検証者に漏れない ようなプロトコルのことです。ゼロ知識証明で知識を証明したい人を証明者(Prover)、証明を検証する人を検証者(Verifier)といいます。 秘密を漏らさない(ゼロ知識) 所持していることを伝える(証明) のような特徴から、ゼロ知識証明と呼ばれます。例えば本人確認のためにパスワード使う場合は、パスワードが相手が伝わってしまうと危険そうです。ここで、ゼロ知識証明を使えば、パスワードそのものの情報を漏らさずに本人確認が出来ます。 証明者の主張は「秘密を所持している」と書きましたが、実はこれは厳密ではありません。ゼロ知識証明で証明できる主張には、種類が存在します。例えば 言語への所属 知識

                          ゼロ知識証明はいいぞ
                        • マイナンバーカードと電子署名の本

                          マイナンバーカードとと 電子署名の本の本本 @hamano i 第 2 版 マイナンバーカードと電子署名の本 濱野 司 ii iii はじめに マイナンバーカードというとどんな印象があるでしょうか? 「使いみちが無い」 「なんとなく怖い」 一般的にその様な印象を持っている方が多いようです。マイナンバー(個人番号)に関 して様々な議論がありますが、この本は個人番号制度とは直接関係ありませんし触れない ようにしています。 これは自分のマイナンバーカードに搭載されている IC チップにアクセスして遊ぼう、 という趣旨の本です。具体的には OpenSC というオープンソース・ソフトウェアを使いな がら公的個人認証の仕組みとその将来性について解説します。 公的個人認証は私達のオンライン生活をより安全・便利にする可能性を持っています。 しかし、このサービスが広く活用されるにはまだ多くの課題があります。

                          • 政府基準に準拠するために「より脆弱なハッシュ関数」の使用を監査人に命じられた話

                            ユーザーパスワードなどの重要なデータを保管する企業や組織は、平文でパスワードを保存するのではなく、暗号学的ハッシュ関数で一方向のみ変換可能な「ハッシュ値」としてデータを格納します。政府の資金を用いる機関に所属していたという人物が、「政府の基準に準拠するため、従来より脆弱なハッシュ関数を使用するように監査人に指導された」と報告して話題となっています。 They want us to be compliant, not secure | Go350 https://www.go350.com/posts/they-want-us-to-be-compliant-not-secure/ They want us to be compliant, not secure | Hacker News https://news.ycombinator.com/item?id=25543818 2020年

                              政府基準に準拠するために「より脆弱なハッシュ関数」の使用を監査人に命じられた話
                            • API GatewayでAPIにIAM認証をかけて、Node.jsでSigV4署名ヘッダを作成してリクエストしてみる | DevelopersIO

                              CX事業本部の佐藤です。 API GatewayでIAM認証を設定して、Node.jsでSigV4署名を実装する機会がありましたので、知見としてまとめます。 API Gatewayの認証方式 まずは、API Gatewayの認証方式をおさらいしてみます。API Gatewayでは、APIに対して以下のような認証方式が存在します。 Cognitoを使った認証 サードパーティの認証基盤(Auth0など)とLambda Authorizerを使った認証 IAM認証 この記事では、この中のIAM認証に焦点を当てていきます。 そもそもSigV4署名とは? 正式名称は、AWS Signature V4 署名で、バージョン1〜4まであります。現在はバージョン4を使うのが推奨です。IAMのアクセスキーとハッシュ関数など用いて、AWSへのHTTPリクエストに署名する方法です。普段私たちが使っているAWS S

                                API GatewayでAPIにIAM認証をかけて、Node.jsでSigV4署名ヘッダを作成してリクエストしてみる | DevelopersIO
                              • そろそろ暗号方式やらデジタル署名やらを理解する - Qiita

                                ソフトウェアエンジニア歴そろそろ1年だしまとめる。 暗号方式2種類 (1)秘密鍵(共通鍵)暗号方式 HS256 (HMAC with SHA-256)はそのアルゴリズムの一つ(?) クライアント側とサーバー側が共通のSecretKeyを持つ。 JWT, HTTPS通信の実際のやり取りで使われる 公開鍵暗号方式より高速(1/1000)で暗号化、復号の処理ができると言われている。 (2)公開鍵暗号方式 非対称アルゴリズム(公開鍵と秘密鍵を使用) 実現したいのは「公開鍵で暗号化したものが秘密鍵を持つ人間にしか復号できない」こと このため、キーペアを発行するのはメッセージの受信者。 公開鍵暗号方式の中で「秘密鍵で暗号化、公開鍵で復元」(通常と真逆)ということができるのはRSA方式のみであり、他の公開鍵方式では不可能 JWT, デジタル署名、SSH接続、HTTPSの接続の確率に使われる 暗号化を用い

                                  そろそろ暗号方式やらデジタル署名やらを理解する - Qiita
                                • CyberChef 超入門 (例題付き) - 午前7時のしなもんぶろぐ

                                  お久しぶりです。しなもんです。 今回は最近日本でもファンを増やしている便利ツール、"CyberChef" をご紹介します。 CyberChef とは? 豊富な機能 使い始めるのが簡単 直感的に操作可能 処理を繋げて表現できる ブラウザだけで機能する 隔離された環境でも使える Recipe をセーブ/ロードできる 処理速度が微妙・大きなファイルが苦手 初めての CyberChef:〇〇などない 例題1:Coin Challenge! 例題2:Et tu, Brute? 例題3:dots&dushes 例題4:reversible hash 例題5:X-channel light rays 応用編:Emotet ダウンローダからの通信先の抽出 重要な注意点 前提 解析! まとめ 参考資料 CyberChef とは? CyberChef (サイバーシェフ) とは、英国政府通信本部 (GCHQ)

                                    CyberChef 超入門 (例題付き) - 午前7時のしなもんぶろぐ
                                  • ブロックチェーンとWebに「100年構想」はあるか - べき論からの脱却に向けて -

                                    誠実さの不足からの帰結昨年(2021年)の年末の総括の記事で、ブロックチェーンとWebの未来に関する喧騒の中で、「看板と中身を一致させる誠実さ」の必要性について述べた。今年、ブロックチェーンとその応用を取り巻く環境は、熱狂から「冬」と称される状況に大きく変化した。個人的には、この状況を「冬」と呼んでしまうこと自体、やや誠実さに欠けるのではないかと思う。太陽系の動きによって自動的に季節が巡るのと同じように、時間がこの状況を解決してくれるような淡い期待が込められているように感じられるからだ。現在の状況は、昨年の記事で指摘した状況がそのまま発生し、下限のストッパーが見えないままだ。もちろん、その時の暗号資産とフィアット通貨の交換レート(これを価格と呼ぶ人もいるようだし、それを元に時価総額とかTotal Value Locked(TVL)などの誤解を生む用語も出てくるが)が、現実世界の金融引き締め

                                    • ドロネー三角形分割の期待最速アルゴリズム - Qiita

                                      本記事はデータ構造とアルゴリズム Advent Calendar 2019 の 19日目の記事です。 18 日目は @Akazawa_Naoki さんの「ハッシュチェーン、それは歴史を抱え込みながら成長していくデータ構造」でした。 20 日目は @flare さんの「ビットコインのデータ構造」です。 本記事では、計算幾何でしばしば扱われるドロネー三角形分割という構造と、それを構築する期待最速アルゴリズムを解説し、その実装を紹介し、検証・実験の結果もお見せします。ただし、本記事ではアルゴリズムの計算量解析は解説しません。また、本記事は幾何用語を知らなくても雰囲気で読めます。 一般の三角形分割は、同アドベントカレンダーの 2 日目の @yurahuna さんによる記事「三角形分割の数え上げとランダムサンプリング」に登場しました。こちらでは、理論的に興味深い問題が扱われています。 参考資料は下記

                                        ドロネー三角形分割の期待最速アルゴリズム - Qiita
                                      • ざっくりSSL/TLS

                                        # ざっくりSSL/TLS 2018/02/05 セキュリティ 最近おしごとがインフラ屋さんではなくセキュリティ屋さん的な様相を帯びてきました。その中でも、暗号技術について「これはつかっちゃだめ、これを使いなさい」程度のことは言えるけど、それがなぜなのかはあんまり自信を持って言えなかったのが昨年末くらいの悩みでした。ちょっと勉強したのでまとめます。間違いが多々ありそうなので随時更新予定。 # SSL/TLSとは Secure Sockets LayerないしはTransport Layer Security。トランスポート層とアプリケーション層の狭間のプレゼンテーション層に存在する暗号化プロトコル。狭間なので既存のTCP/IPプロトコルスタックの上下を変更しなくていいのが強み。既存のAPの通信の暗号化も比較的簡単で、FW制御もしやすい。そのかわり、より低階層で暗号化を行うプロトコル、例えば

                                        • 【パスワード】bcryptとは

                                          bcryptとは、Blowfish暗号を基盤としたパスワードハッシュアルゴリズム(暗号学的ハッシュ関数)です。 一般的にパスワードは、元に戻すことが困難である「一方向性関数」の性質を持つハッシュ関数を用いてハッシュ値で保管します。 次の図は、パスワードを「平文」「暗号文」「ハッシュ値」で保管していた際のイメージ図です。 「平文」は漏洩したらパスワードが盗まれてしまいます。 「暗号文」は暗号化されていますが「暗号文」を復号する「鍵」があればパスワードを解読できます。パスワードが情報漏洩した時点で、もしかしたら「鍵」も漏洩しているかもしれません。そのため、パスワードを暗号文で保管するのは十分な対策とはいえません。 そして最後は「ハッシュ値」です。適切なハッシュ関数を使っていればハッシュ値へと変換した値を元に戻すことは非常に困難です。 スポンサーリンク しかし「ハッシュ値」で保管するだけでは十分

                                            【パスワード】bcryptとは
                                          • ハッシュ関数:気になる情報セキュリティ用語 - 叡智の三猿

                                            ハッシュ関数は任意のデータを入力して固定のデータを出力する関数のことです。出力したデータから入力したデータを導くことができない一方向性、異なる入力データから同じ出力結果が得られる可能性が非常に低い耐衝突性といった特徴を備えています。 代表的なハッシュ関数にSHA-256があります。 ディジタル署名などに用いるハッシュ関数の特徴はどれか。 ア 同じメッセージダイジェストを出力する異なる二つのメッセージは容易に求められる。 イ メッセージが異なっていても,メッセージダイジェストは全て同じである。 ウ メッセージダイジェストからメッセージを復元することは困難である。 エ メッセージダイジェストの長さはメッセージの長さによって異なる。 ~「基本情報技術者・平成25年秋期」より 答えを表示 答え:ウハッシュ関数は任意のデータを入力して固定のデータを出力する関数のことです。次の特徴があります。 入力デ

                                              ハッシュ関数:気になる情報セキュリティ用語 - 叡智の三猿
                                            • BTC-TAKEOFF

                                              こんにちは。 今回は仮想通貨(暗号資産)の保管方法について少しお話したいと思います。 まず、保管方法は大きく分けて2パターン。 仮想通貨の保管方法 (1)取引所に預ける 銀行に預金するのと同じイメージです。 (2)自分で管理する 自宅に金庫を構えて保管するイメージです。 基本的にどちらでもOKですがオススメは後者。 なぜなら中央集権的なシステムから脱却しようという思想がブロックチェーンの根底にあるから。 中央集権的なシステムの場合、 何かあるたびにマージンを取られる、お金の価値も決められてしまう(流通量)、 はたまた経済が不安定な国では口座凍結・出金制限なんてことも考えられます。 これは既存のシステムを批判しているわけではなく、 誰かに管理してもらうのも楽で便利だけど リスクヘッジの手段(選択肢の一つ)として管理者が存在しない資産があっても良いんじゃないの? という考え方です。 その代わり

                                                BTC-TAKEOFF
                                              • opensslコマンドでの証明書の整合性と検証結果の確認方法・オプション解説 | 株式会社ビヨンド

                                                皆様こんにちは。 寝起きの朝がこの世の終わりのように辛い、システムソリューション部所属のなかです。 今回は下記の記事に続く、opensslコマンドでSSL証明書を確認する系の第2弾な記事です。 前回の記事では、証明書で一番意識するであろう「有効期限」の確認に絞った内容でした。 opensslコマンドでの証明書の有効期限の確認方法・オプション解説 証明書を「新規」・「更新」にかかわらず発行した際は「整合性」の確認が重要です。 「整合性」についてopensslコマンドで確認する方法の説明が1点 証明書を適用後、証明書が認証局での「検証」が成功しているかも確認した方がよいため、 「検証」に問題がないかをopensslコマンドで確認する方法の説明で1点 今回の記事は、上記の2点をテーマに 「opensslコマンドでの証明書の整合性と検証結果の確認方法・オプションについて解説」 「確認方法についてな

                                                  opensslコマンドでの証明書の整合性と検証結果の確認方法・オプション解説 | 株式会社ビヨンド
                                                • インデックスとは?仕組みをわかりやすく解説

                                                  データベースにおけるインデックスとは、目的のレコードを効率よく取得するための「索引」のことです。テーブル内の特定の列を識別できる値(キー値)と、キー値によって特定された列のデータが格納されている位置を示すポインタで構成されています。インデックスを参照することで目的のデータが格納されている位置に直接アクセスすることができ、検索を高速化することができます。 テーブルのある行へのアクセスを集合住宅での荷物の配達に例えると、インデックスの有無は以下のように表現することができます。 ・インデックス無 集合住宅を歩き回り、各戸の表札を見て配達先かどうか確かめる ・インデックス有 住民の情報が書かれた見取り図で配達先を確認して向かう インデックスの効果は以下のような特徴を持つ表で特に現れやすいです。 ・行数が多い ・検索対象の項目に値の重複、偏りが少ない ・表の更新・追加・削除が少ない 一方以下のような

                                                  • HMAC正しく理解していますか?|peg

                                                    プログラマーであれば一度は目にしたことがありそうなHMACですが、どうやって算出されているかを知ってる人は少ないかと思います。少なくとも私は頻繁に使うものの知りませんでした。 BIP32等ブロックチェーンの世界でも度々登場している他、API認証としても利用しています。メッセージに加えて、パスワードとなる暗号キーを用いてハッシュ値を生成するものという認識で、自分のサービスで使用する際はもっぱらユーザ認証目的で使用しています。 ブラックボックスとしている実際の算出方法は気にしたことがありませんでしたが、正しく理解するために調べた備考録としてこれを記します。 検索した所、HMACは1997年のRFC2104で定義されていましたが、これでは古すぎて今の利用のされ方と相違した定義になっていることも考えられます。そのためWikipediaで概要を確認した後RFC2104を読んでみます。 Wikiped

                                                      HMAC正しく理解していますか?|peg
                                                    • aipicasso/emi · Hugging Face

                                                      このモデルをこのページからダウンロードするためにはHugging Faceに登録された情報を提供する必要があります。この提供された情報は画像生成AIを活用する情報を案内するために使われます。 To download this model from this page, you need to provide information registered with Hugging Face. The information provided will be used to guide you on how to utilize the image-generation AI. \n","classNames":"hf-sanitized hf-sanitized-NRsr6mDgbv2PS97qYq70K"},"gated":"auto","isLoggedIn":false,"repoId

                                                        aipicasso/emi · Hugging Face
                                                      • 転送データの暗号化  |  Documentation  |  Google Cloud

                                                        フィードバックを送信 転送データの暗号化 コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 これは Google が暗号化によってどのようにデータを保護しているかに関する 3 番目のホワイトペーパーです。このホワイトペーパーでは、Google Cloud と Google Workspace での転送データの暗号化について詳しく説明します。 Google ではすべての Google プロダクトで、顧客データを高度に保護するとともに、セキュリティ保護の方式についても可能な限り透明性を確保するよう努めています。 このコンテンツの最終更新日は 2022 年 9 月で、作成時点の状況を表しています。お客様の保護の継続的な改善のために、Google のセキュリティ ポリシーとシステムは変更される場合があります。 CIO レベルの概要 Google では転送データの信頼

                                                          転送データの暗号化  |  Documentation  |  Google Cloud
                                                        • ユースケースに応じたユニークなIDの生成 - Carpe Diem

                                                          概要 ユニークなID生成をしたい場面は多々ありますが、ユニークIDにはユースケースによって以下のような要件が出てきます。 ユニーク 短い(=データ量が少ない) 推測困難 分散性(ランダム性) 順序性(Lexicographical) 生成速度 それぞれの観点について説明し、最後にGoでオススメの選択肢を提示します。 ユニーク ユニークIDというのでそのまんまではありますが、一番満たさなければいけない要件です。 特に現代におけるサービスでは高トラフィックをさばくためにスケール性を重視し、分散システムであっても衝突しないIDを求められます。 例えばMySQLのようなDBのauto_incrementを使う場合、そのDBがスケールしにくい&SPoFといった課題があります。 Twitterで開発されたsnowflakeは以下のフォーマットになっており、 ※instance = machine id

                                                            ユースケースに応じたユニークなIDの生成 - Carpe Diem
                                                          • React.jsで簡単なユーザー認証アプリを作ろう!初心者向けガイド - deve.K's Programming Primer - プログラミング初心者のための入門ブログ

                                                            はじめに プロジェクト作成 スタイリング 親コンポーネント 子コンポーネントの実装 ログイン状態の保持 ユーザー情報の保存 ログアウト処理 注意点 最後に はじめに 本日は、ユーザー登録、ログイン、ログアウトの機能を持つ認証アプリの基本的な構成を初心者向けに解説します。 Reactでは、ユーザーの認証状態を管理するためにReact ContextやReduxなどの状態管理ライブラリを使用するのが一般的です。 初心者には、Reactの状態管理やファイル構造、データフローに関する概念を理解することは初めての課題かもしれません。 そのため、React ContextやReduxのような状態管理ライブラリを使うことが一般的ですが、これらは初心者にとっては少し複雑に感じるかもしれません。 React Contextフックを使った状態管理では、通常よりもファイル構造が複雑になることがあります。 また、

                                                              React.jsで簡単なユーザー認証アプリを作ろう!初心者向けガイド - deve.K's Programming Primer - プログラミング初心者のための入門ブログ
                                                            • 分散システムにおけるScalableな名前付けアルゴリズム「Chord Protocol」を実装してみた - Qiita

                                                              この記事はEnjoy Architectingからの転載です。 概要 分散システムを学術的に学びたくて、 Chord Protocolというアルゴリズムが面白かったので実際に論文を読んで実装してみました。 この記事では、分散システムにおける名前付けの概念と、Chord Protocolの紹介、簡単な検証について言及していこうと思います。 分散システムにおける名前付けとは? 分散システムの分野には「名前」、「名前付け」、「アドレス」と呼ばれる概念があります。 それぞれどのような意味を持っているのでしょうか? 名前付けと名前 分散システムはネットワークを通じてそれぞれのサーバ、プロセスが協調して動作しています。 この中で、各サーバ、プロセスはやり取りをする相手の「名前」を知らなければやり取りを行うことができません。 この名前の解決を行うことを「名前付け」と呼んでいます。 そして、あるリソース(

                                                                分散システムにおけるScalableな名前付けアルゴリズム「Chord Protocol」を実装してみた - Qiita
                                                              • セキュリティと暗号

                                                                前年(訳注: 2019年)のセキュリティとプライパシーの講義はコンピューターの ユーザー としてどのようによりセキュアにできるかという点に注目していました。今年は、セキュリティと暗号理論のうち、この講義で先に取り上げたツール群を理解するために関係する事柄に注目します。例えば、Gitにおけるハッシュ関数や、SSHにおける鍵導出関数と対称・非対称鍵の利用についてです。 この講義はより厳密で完全なコンピューターシステムのセキュリティ(6.858)、暗号理論(6.857 and 6.875)コースに代わるものではありません。セキュリティの正式な教育を受けずにセキュリティの仕事をしてはなりません。専門家でなければ、暗号を自作してはいけません。同じことはシステムのセキュリティにも当てはまります。 この講義ではとても簡単に(ただ実用的であると考える)基礎的な暗号理論の扱い方を示します。 どのようにセキュ

                                                                • 広く使用されているユーザー認証プロトコルを危険にさらす「Blast RADIUS攻撃」が報告される

                                                                  RADIUSはネットワーク接続の際に用いられる一般的なユーザー認証プロトコルです。元はダイヤルアップ接続を念頭に1991年に開発されたものでしたが、記事作成時点でもほぼすべてのスイッチ・ルーター・アクセスポイントなどでサポートされています。新たに報告された「Blast RADIUS攻撃」は、そんなRADIUSをバイパスして攻撃アクターがネットワークデバイスやサービスにアクセスできるようになる攻撃手法とのことです。 BLAST RADIUS https://www.blastradius.fail/ RADIUS/UDP vulnerable to improved MD5 collision attack https://blog.cloudflare.com/radius-udp-vulnerable-md5-attack New Blast-RADIUS attack breaks 3

                                                                    広く使用されているユーザー認証プロトコルを危険にさらす「Blast RADIUS攻撃」が報告される
                                                                  • GoによるTLS1.3サーバーの実装

                                                                    はじめに TLSプロトコルの理解を目的として、Go言語によりTLS1.3のフルハンドシェイクのサーバー実装を行いました。この記事では、実装の過程で得た学びをまとめたいと思います。Go言語はTLSをOpenSSLではなく自前で実装しています。暗号処理関連のパッケージが整っているため、TLSプロトコルの仕様に沿った自然な実装がしやすい言語だと思います。 実際に書いたコードはgo-tlsで公開しています。また、同内容はスライドとしてLearning-TLS1.3-with-Go-full.pdfでもまとめています。 暗号処理 TLSの内容に入る前にまず暗号処理の概要について見ていきます。次の3つの性質が重要です: 秘匿性 (Confidentiality) 通信内容が通信相手以外から読み取られないこと 完全性 (Integrity) 通信内容が途中で改ざんされていないこと 正真性 (Authen

                                                                      GoによるTLS1.3サーバーの実装
                                                                    • Ethereumの1ブロック先を予測せよ - DeFiで落ちてるお金を拾いたいブログ

                                                                      はじめに こんにちは。住民税の通知書が今日届いたビビドット🫡 (@vividot) / Twitterです。出国していいですか? 今回は知っている人は知っているし知らない人は知らない、Ethereumのブロックの時間について少し不思議な話を書きたいと思います。 地味な小ネタですが、塵も積もれば山となることは僕の住民税が保証します。 直近ではmegamiのmintにも関連する話で、狙っていたmegamiを人に取られた…という人は是非最後まで読んでみてください。 はじめに ブロックの時刻 とは 確かめてみよう それがなんだってんだい ①乱数を操作する ②セールでTXを誰よりも早く叩きつける 初心者はセールで必ず1ブロック遅れてしまう ガスの設定を覚えても、早漏TXを出して失敗しがち ほなどうしたらええねん あとがき ブロックの時刻 とは Ethereumのブロックにはそれぞれ時刻(times

                                                                        Ethereumの1ブロック先を予測せよ - DeFiで落ちてるお金を拾いたいブログ
                                                                      • フロントエンド DB で運用コストゼロ

                                                                        最近はサーバーレスの SQLite が人気みたいですが、個人的には sql.js-httpvfs が好きです。 個人開発で運用コストをゼロにしたいなら、こちらのほうが気楽です。 sql.js-httpvfs は Accept-Ranges を利用して、 DB のすべてのデータを fetch することなく、必要な時にバイト単位での fetch を実現します。 つまり DB をフロントエンドに置いた運用開発ができます。 バイト単位での fetch を実現する Accept-Ranges の仕組みは、フロントエンド新時代を支える技術になる気がしています。 静的 DB はフロントエンドへ移行する ほとんどの開発において DB / ネットワークが最初にボトルネックになります。 昔から bytes-level fetch ができればフロントエンドに DB を置けるのにとは思っていたので、 Accept

                                                                        • パスワードはハッシュ化する - 叡智の三猿

                                                                          はじめて作った顧客管理システム わたしがはじめて、顧客管理のシステムを構築したのは1999年です。間近に迫るY2K問題(西暦2000年に世界中のシステムが障害を起こし、パニックになるかもしれない問題)を抱えた緊張のときでした。 きっかけは、当時、在籍していた会社が、ある香水会社の販売代理店の契約を締結したことです。わたしは、顧客からのネット注文に応えるため、簡単なWebサイトと、注文フォームを作りました。注文情報は、sendmailコマンドにより、受注担当者が電子メールとして受付します。担当者がメールで確認した注文内容をアクセスで作った受注画面に登録します。アクセスDBには、商品、顧客などのマスタテーブルと、受注、出荷のトランザクションテーブルを関連付け、出荷情報は経理がエクセルで確認できるよう、ODBC接続をしました。 これは、突貫工事で作った仕組みです。このとき、情報セキュリティを意識

                                                                            パスワードはハッシュ化する - 叡智の三猿
                                                                          • エンジニアなら知らないとヤバいSSHの基礎

                                                                            インフラエンジニアでなくともSSH接続や公開鍵認証は基本知識として覚えといたほうがいいです。 普段めったに触ることのないiOSエンジニアでもknown_hostsや鍵生成などと接する機会は定期的に発生します。 GitHubにSSHの技術が使われています。基本知識として覚えといて損はないと思います。 この記事ではSSHの基本理解から始まり、実際にGitHubに対して公開鍵認証でSSH接続するまでを説明します。 SSHとは? SSHとは、安全にネットワーク先のコンピュータと通信するためのプロトコルです。 暗号や認証の技術を利用してセキュリティを強固にしており、このプロトコルによる通信は全て暗号化されます。 ちなみにSSHはSecure Shellの略名です。 SSHは通信元がなりすまし防止するために認証の仕組みを提供している。 SSHプロトコルを実装したソフトウェア SSHはあくまでRFCによ

                                                                              エンジニアなら知らないとヤバいSSHの基礎
                                                                            • サーバー負荷を減らすための簡易的クーポンコード発行とチェック機構のつくり方

                                                                              世の中のWebサービスの中には、抽選応募や割引クーポンのように、ユーザー獲得を狙ったり、オフラインとオンラインを結びつけたり、マーケティングの施策がいくつかあります。 本の付録に特典コードが付いており、購入者のみがWeb診断テストを受けることができるオンラインショッピングで買い物をすると、次回使える割引クーポンがメールで送られる商品のラベルやレシートに抽選IDが付いており、Webからプレゼントの抽選応募ができる 運営側の立場からすると、上記のようなクーポンコードやアクティベーションのためのアクティベートコードなど、ユニークでランダムな文字列を使って管理することがあると思います。 C6nwEPaQ 例えば上記のような文字列ですね。 このような文字列リストを生成したいとなった場合、ランダムに文字を繋ぎ合わせて、重複のない文字列を発行するプログラムを組むことで実現できるでしょう。 また、Webサ

                                                                                サーバー負荷を減らすための簡易的クーポンコード発行とチェック機構のつくり方
                                                                              • マイクロソフト、SHA-1で署名された「Windows」関連ファイルのダウンロードを停止へ

                                                                                印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます Microsoftは米国時間7月28日、SHA-1を用いてデジタル署名されたWindows関連ファイルのダウンロードを「Microsoft Download Center」から除去する計画を発表した。これらのファイルは8月3日に削除される予定だという。 同社は今回の決定について、SHA-1アルゴリズムのセキュリティ問題を理由に挙げている。 同社の発表では「SHA-1は、セキュリティコミュニティーの大半がもはやセキュアではないと確信している、レガシーな暗号化ハッシュ手段だ。デジタル署名にSHA-1のハッシュアルゴリムが用いられている場合、攻撃者はコンテンツの偽装やフィッシング攻撃の実行、中間者(Man In The Middle)攻撃が可

                                                                                  マイクロソフト、SHA-1で署名された「Windows」関連ファイルのダウンロードを停止へ
                                                                                • Rustで最速のサーバソフトウェアを目指す!

                                                                                  最速を目指さないなら、なんのためのRustなのか! メモリの安全性?信頼できる並列性?そんなものは飾り、最速あっての、Rust愛です。 サーバソフトウェアの実装を容易にする非同期処理(async/await)機能も充実してきて、「RustでHTTPサーバを書いてみよう」というような情報をたくさん見かけます。しかし、最速という観点が欠け、Rust愛が足りていないようです。 Webフレームワークなど、数多くのOSSソフトウェアに利用されている、最も人気の非同期ランタイムのTokioを試してみました。 Tokioを利用したサーバアーキテクチャTokioの公式ガイドなどを見て、同じようなコードで、HTTPサーバのような、TCPプロトコルで多数のクライアントからのリクエストを処理するようなサーバソフトウェアを実装すると、下記の図ようなアーキテクチャでリクエストが処理されます。 Tokioを使った標準

                                                                                    Rustで最速のサーバソフトウェアを目指す!