-
-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gateway: DNS resolution export with DNSSEC records #8799
Comments
Thank you for filling this @thibmeu. I'm happy to discuss design, and if you have bandwidth to implement it, also review PR. My initial thoughts / questions:
|
@thibmeu : is this something you have bandwidth to drive forward? |
I am still considering to drive it forward. Has this been made part of a roadmap or does it have strong dependencies @BigLep ? I like the proposition to implement an IPLD based DNS schema. I don't think only returning the CID would suffice, because there would be an expectation for gateways to store the content, which I don't think is a good approach. Gateway should be stateless as much as possible. This was the reasoning behind Cloudflare using a request header to understand if the client is willing to consume the DNS proof, and return it along with the content. I agree with the mobile client verification, this would be a great improvement. It's light, and makes implementation faster and easier on the browser side. The size of the resolution varies, especially in the case of a complex DNS setup. For our current implementation, we limit the number of links to 30, which can lead to an overhead in the order of 10kB maximum. This is still reasonable, especially considering this could be cached. Using dag-cbor would help indeed. |
@thibmeu this is not on our immediate roadmap, but would accept it as a contribution. |
Checklist
Description
#128 focuses on serving verifiable IPFS content. However, an important part of this content is requested via a naming system, such as DNS with DNSLink.
Ideally, users should be able to verify the way a gateway maps
example.com
todnslink=/ipfs/bafy...
. Honest gateway operators would also benefit from this work, as they can provably tell they are honest.In #6129, @Bren2010 proposed a way to serialise DNS resolution along with its DNSSEC proof, in addition to DAG content. DAG is now taken care of by CAR (#8769), so the focus should be on the serving the serialised resolution and its proof. The proof should at least be served along with CAR response.
The only requirement on the user side is to trust DNSSEC Root keys.
Proposed design
DNS and DNSSEC records should be serialised, and passed along with the answer.
Serialisation
The serialisation could be done as follow
Response
Passing the serialised DNS resolution to the answer could be done via
Retrieval of DNSSEC root Key-Signing Key
DNSSEC root keys could be included along with the IPFS node, or fetched at start. I would rather use the first option, as this would avoid issues with root resolution.
At the time of writing, this is the root I can resolve.
Non-goals
DNS is not the only name root used by IPFS nodes. Users can also leverage ENS or unstoppable for instance. These proofs cannot be serialised in such a way a user without an Ethereum nodes can validate them. Serving their proofs is not a goal of this issue.
The text was updated successfully, but these errors were encountered: