0

私は、暗号化の世界を実際に日常的に使用されているものとして理解しようとしています。私は足を踏み入れるのが非常に難しいと感じています、そして私が何も知らないと仮定して物事を説明するいくつかの良いリソースを誰かが持っているかどうか疑問に思いました。

たとえば、X509証明書と「SignatureValue」属性を持つファイルがあります(理解が限られているためです)。これらはSHA256でエンコードされていると思います。ただし、1つのタイムスタンプオーソリティメッセージのDER表現を含む「タイムスタンプ応答ファイル」を提供する必要があるため、私が見ているものを正確に理解したいと思います。

私がこれまでにある程度把握していること:

  • SHA256はハッシュアルゴリズムです。一方通行?
  • X509は、証明書(それが何であれ)がどのように見えるかを定義するドキュメントです。
  • ASN.1は、システム間でデータを送信する方法のグループですか?
  • DERは、データを2進数または8進数で表す方法です。

このエコシステムの鳥瞰図が欲しいので、このパズルがどのように組み合わされるかについての概念があります。そうすれば、How-Things-Workの核心をより深く掘り下げることができます。

4

2 に答える 2

3

たくさんの本を読むには、かなりの時間がかかります。私見、より速い方法は、ウィキペディアを閲覧して、次の内容を読むことです。

  • ハッシュ アルゴリズム (要するに、長いテキスト/データを固定サイズの値、ハッシュに変換します。これは (ほぼ) 一意で、この長いテキストを表します。そして、はい、それは一方向です。

  • 署名アルゴリズム - 「署名」と呼ばれるハッシュ値から何かを計算します。主なアイデアは、秘密鍵を持っている場合にのみ正しい署名を計算できるということです。そして、この署名は公開鍵で検証できます。公開鍵は人々の間で共有されるため、彼らはあなたの署名を検証できます。

したがって、有効な署名は、テキスト/データが他の誰かによって変更されていないことを証明します。

  • 証明書: これは、ユーザーの公開鍵をこの鍵に関する情報 (所有者の名前、電子メール、住所など) にバインドするデータのブロックです。通常、機関によって署名された証明書 (ルート証明書) - したがって、機関を信頼する場合、この証明書が個人を正しく表していると信じる必要があります。

  • タイムスタンプ: これは、人々が信頼する機関によって作成された署名であり、タイム マークを署名に結び付け、他のドキュメントの上に作成されます。したがって、これにより、この署名 (およびこのドキュメント) がその時点で正しかったことが証明されます。証明書が失効したり古くなったりする場合があるため、これが必要です。タイムスタンプがないと、いつ作成されたかわからないため、これが正しい署名かどうかわかりません。

  • ASN.1 - 抽象構文記法。一部のデータ構造の形式を記述するテキスト ルールを定義します。ほとんどの暗号化標準で使用されています。

  • DER encoding (Distinguished Encoding Rules): ASN.1 オブジェクト/レコードをバイナリ データにエンコードする一連のルール。ほぼ同じことを行う BER (Basic Encoding Rules) もありますが、同じ値に対して異なるエンコードを許可します (BOOL をゼロ以外の値でエンコードできるように)。さまざまな方法でエンコードでき、さまざまなハッシュを生成できます。
  • X.509 : 公開鍵証明書のフォーマット (ASN.1) に関する規格。

これが何が起こっているのかを理解するのに少し役立つことを願っています:)

実際、タイムスタンプ/x.509/署名/検証などをすべて実装した暗号化ライブラリが多数市場に出回っています。

于 2012-11-28T11:29:01.787 に答える
2

開発者が「より深い」暗号化作業を行わなければならないたびに、私は悲しくなります。彼らが「彼はコードを書くことができる、暗号は何かを安全にするコードにすぎない、彼はそれを行うことができる」と考えていることを私は知っていますが、それは間違っています。強固な、またはほぼ強固なセキュリティ バックグラウンドがなければ、暗号化ハッキング (独自のコードを記述する) は失敗します。

私はあなたがそれを勉強することをお勧めします.あなたがそれを正しくやれば大丈夫だからです. だから私は手始めに提案します:

それらの後、暗号は避けるべきものであり、それが解決する問題をさらに引き起こさない場合にのみ、細心の注意を払ってのみ使用されるというかなりしっかりした草を得るでしょう.

そしてあなたの質問について:

  • SHA25 - 暗号的に安全な一方向ハッシュ関数で、256 ビットの出力を生成します
  • X509 - デジタル証明書の形式について説明します
  • DER と PEM は証明書エンコーディングの形式です

最後にお願いしたいのは、「これは理解できたと思います」という高いレベルの視点に立ち止まって、より深く掘り下げて、何が安全で何が安全でないかを本当に理解するよう努めるべきではないということです。

于 2012-11-28T11:08:13.147 に答える