タグ

haskellとtlsに関するigrepのブックマーク (4)

  • TLS 1.3の標準化と実装 | IIJ Engineers Blog

    IIJ-II 技術研究所 技術開発室の山です。現在技術開発室は、私を含めた4人で構成されており、主にプログラミング言語Haskellを使って開発を進めています。今回の話題である TLS(Transport Layer Security) 1.3 もHaskellで実装しました。 4年の歳月をかけて議論されてきたTLS 1.3ですが、この8月にめでたく仕様がRFC 8446となりました。貢献者リストに私の名前が載っていることを聞きつけた広報から、ブログ記事の執筆依頼がありましたので、TLS 1.3の標準化や実装の話について書いてみます。 なぜTLS 1.3を標準化する必要があったのか理由を知りたい方は、「TLSの動向」という記事や「TLS 1.3」というスライドを読んで下さい。 インターネットで使われているプロトコルは、IETFという団体で仕様が議論されて策定されます。IETFには、誰でも

    TLS 1.3の標準化と実装 | IIJ Engineers Blog
    igrep
    igrep 2018/09/25
    kazuさんがTLS 1.3の策定に関わった話!
  • TLS 1.3 開発日記 その8 開発メモ - あどけない話

    これは、http2 Advent Calendar 2016の25日目の記事です。 この記事では、HaskellでTLS 1.3を開発した際に難しかった点をまとめます。自分のための覚書です。TLS 1.3のみをフルスクラッチで書くと、そこまで難しくないのかもしれませんが、TLS 1.2以前と共存させるのは大変です。 足らない部品 TLS 1.2のコードが存在しても、TLS 1.3では TLS 1.2で利用されてない部品が必要です: RSA PSS PSS は PKCS#1 は異なるパディング方式の署名。RSAの公開鍵/秘密鍵自体は流用できる HKDF X25519 と X448 これらは、Haskell の cryptonite にすべて揃っていたので、少し(かなり?)手を入れるだけで利用できるようになりました。 拡張の再利用 TLS 1.3では、TLS 1.2 の2つの拡張を再利用してい

    TLS 1.3 開発日記 その8 開発メモ - あどけない話
    igrep
    igrep 2016/12/28
    "将来知らない値が来たときに試すのではなく、いつも知らない値を送ることで、パーサをテストし続けるというのが Applying GREASE to TLS Extensibility"
  • wreqでSSL通信が遅い場合の対処法 - Qiita

    wreq はデフォルトで http-client-tls を使ってSSL通信するのだけど、これが結構遅くてビビった1。 そこで、 tls パッケージではなく OpenSSL の Haskell バインディングである HsOpenSSL に差し替えてみたら、手元で 40 秒かかっていたバッチの実行時間が 30 秒まで短くなった。 25% の改善。 差し替えるには、 HsOpenSSL パッケージと http-client-openssl パッケージへの依存を *.cabal へ追加して、 import qualified Network.Wreq as Wreq main :: IO () main = do res <- Wreq.get uri ... import Control.Lens ((&), (.~)) import qualified Network.HTTP.Client

    wreqでSSL通信が遅い場合の対処法 - Qiita
    igrep
    igrep 2016/12/25
    おお、差し替えることを想定して作られているんだ。
  • TLS 1.3 開発日記 その1 実装状況 - あどけない話

    これは、http2 Advent Calendar 2016の1日目の記事です。 現在、IETF で TLS 1.3 の標準化が大詰めを迎えています。僕も TLS 1.3 の標準化に参加しており、仕様の分かりにくい部分を直したり、TLS 1.3 を Haskell で実装したりしています。この開発日記のシリーズでは、TLS 1.3の仕組みを説明していこうと思います。 そもそも、なぜ TLS 1.3 が必要なのかは、TLSの動向をお読み下さい。なお、次のTLSのバージョンを何にするかは、現在もめていて、1.3ではなくなる可能性もあることに注意して下さい。 現在の実装 現在利用できる TLS 1.3 の実装の一覧は、Implementationsにまとまっています。僕がクライアントとしてよく使っているのは、Firefox Nightly、Chrome Canary、および picotls です

    TLS 1.3 開発日記 その1 実装状況 - あどけない話
  • 1