The Daily WTF 日本語 フォロー A Bit of DNS DNS の CAA レコードタイプは、ドメイン所有者が、自分のドメインに対して証明書を発行することを許可されている証明書発行者を指定できるようにします。当初は RFC6844 で定義され、その後 RFC8659 で更新されましたが、コアコンセプトは同じままです。CAA レコードの重要な機能は「Issuer Critical」フラグであり、これは発行者が証明書を発行する前にレコードを検証することを意図しています。このクリティカルフラグは、フラグビットマスクのビット 0 として設計されており、有効にするには値 128 を使用する必要があります。しかし、一般的な誤解により、多くの人がビット 7 をクリティカルフラグと解釈して値 1 を使用しました。この誤解は、RFC を十分に読んでいないユーザーの間で広く見られます。Let's Encrypt のような証明書発行者はジレンマに直面しました。仕様に厳密に従って誤って設定されたレコードを拒否するか、機能性を維持するために広く見られるエラーに対応するかです。彼らは後者を選択し、事実上、値 1 をクリティカルフラグのエイリアスとして受け入れました。この決定は、元の仕様への厳密な準拠よりも、ユーザーエラーの実際的な現実を認識しています。filterCAA の提供された Go コードスニペットは、これが実際にはどのように処理されるかを示しています。「issue」および「issuewild」タグをフィルタリングし、認識されないクリティカルタグもチェックします。特に、コードは、認識されないクリティカルタグが存在するかどうかを判断するために、フラグが 128(正しい値)または 1(一般的に使用される誤った値)に設定されているかどうかをチェックします。両方の値を含めることは、クリティカルフラグに関する広く見られるユーザーエラーへの対応を反映しています。著者は、このようなフラグにビットマスクを使用することが混乱やエラーにつながる場合、その賢明さに疑問を呈し、より単純なフラグメカニズムの方が読みやすく、エラーが発生しにくい可能性があると示唆しています。ビットマスクの有用性は認めつつも、この逸話は、その複雑さが実際の実装において重大な運用上の問題を引き起こす可能性があることを強調しています。技術仕様、ユーザーの理解、および実際の間の相互作用は、繰り返されるテーマです。 A Bit of DNS thedailywtf.com The Daily WTF 日本語 RSS thenote.app
filterCAAの提供された Go コードスニペットは、これが実際にはどのように処理されるかを示しています。「issue」および「issuewild」タグをフィルタリングし、認識されないクリティカルタグもチェックします。特に、コードは、認識されないクリティカルタグが存在するかどうかを判断するために、フラグが 128(正しい値)または 1(一般的に使用される誤った値)に設定されているかどうかをチェックします。両方の値を含めることは、クリティカルフラグに関する広く見られるユーザーエラーへの対応を反映しています。著者は、このようなフラグにビットマスクを使用することが混乱やエラーにつながる場合、その賢明さに疑問を呈し、より単純なフラグメカニズムの方が読みやすく、エラーが発生しにくい可能性があると示唆しています。ビットマスクの有用性は認めつつも、この逸話は、その複雑さが実際の実装において重大な運用上の問題を引き起こす可能性があることを強調しています。技術仕様、ユーザーの理解、および実際の間の相互作用は、繰り返されるテーマです。