To summarize the idea, the project is using QNAMEs to encapsulte the client messages (encoded in base 32 as a subdomain, for example: encoded-message.dns.server.com), and the server decode the message and sends a DNS TXT reply which content is base 64 encoded.
Well it only worked on the same machine at the time (or when I had luck and had a server binded to my port 53 somehow (to have a port appear as open|filtered, something must be binded to it, and I struggled for a lot of time before understanding why my requests were answered with ICMP type 3 error, port unreachable, when going online)).
Now it's fixed, and what's even better, I can send a DNS TXT request to Googlge (8.8.8.8) about encoded-message.dns.site.com, and since I've registered as my own DNS, everything the other big DNS don't know about will be forwarded... to my server. Thus I can just use the command dig on linux to send messages to my server, from everywhere in the world, which is the main point for this project: DNS requests are often unfiltered (that doesn't mean they aren't logged by your ISP !! the goal of the project isn't to avoid log but firewall filters), thus when you have a limited connection (no access to internet), oftentimes DNS requests can still go out on the internet. Which is very interesting (but slow) to communicate from an airplane to someone on Earth, if you don't want to pay $50 to have 2GB of Wifi on the plane. There are a lot of other possible uses, and that's awesome.
PS: yes, I know about iodine, arecibo and such things. I just wanted to try to do it on my own, to learn more about the protocol
To summarize the idea, the project is using QNAMEs to encapsulte the client messages (encoded in base 32 as a subdomain, for example: encoded-message.dns.server.com), and the server decode the message and sends a DNS TXT reply which content is base 64 encoded.
Well it only worked on the same machine at the time (or when I had luck and had a server binded to my port 53 somehow (to have a port appear as open|filtered, something must be binded to it, and I struggled for a lot of time before understanding why my requests were answered with ICMP type 3 error, port unreachable, when going online)).
Now it's fixed, and what's even better, I can send a DNS TXT request to Googlge (8.8.8.8) about encoded-message.dns.site.com, and since I've registered as my own DNS, everything the other big DNS don't know about will be forwarded... to my server. Thus I can just use the command dig on linux to send messages to my server, from everywhere in the world, which is the main point for this project: DNS requests are often unfiltered (that doesn't mean they aren't logged by your ISP !! the goal of the project isn't to avoid log but firewall filters), thus when you have a limited connection (no access to internet), oftentimes DNS requests can still go out on the internet. Which is very interesting (but slow) to communicate from an airplane to someone on Earth, if you don't want to pay $50 to have 2GB of Wifi on the plane. There are a lot of other possible uses, and that's awesome.
PS: yes, I know about iodine, arecibo and such things. I just wanted to try to do it on my own, to learn more about the protocol