3,211 karma · joined June 25, 2010
With new versions of BIND 10 allowing Python scripting, PowerDNS with Lua scripting and Unbound with Python, I think we'll start seeing more corps controlling DNS queries (or attempting to do so) with whitelists/blackslists, but for the time being, things are mostly wide-open.
# If you don't like non-valid characters in the hostname,
# then use hex encoding rather than base64
So far, I've not encountered a failure using b64 encoding. But that could be an issue. And as you say, other encodings could be used if that does prove to be a problem.
It's not that devs and DBAs don't care, it's that in many cases (not all) they aren't given the time to carefully test the system to see how it might be abused.
And also, many companies view security testing as an afterthought or an audit requirement. If they do not have to do it (time is money) they won't. And when they are forced to do it, they rush through it.
In some ways this is a philosophical fight between a group that wants to ship software and make a profit and a group that wants to design and test systems to make sure they are correct. Suits vs technologists.
The spec says 10 too. It's the "at least 10" part that was missed. That's very subtle, does not stand out and is easily over-looked unless someone is really auditing code and reading specs carefully.
If I don't know the answer to a question or if it is ambiguious, I tell them. For example, I was once asked to describe how a TCP sessions ends. Well, that's implementation defined. What OS? Are we talking FIN ACKs or do TCP resets count as ending a session too? The RFC may say this, but in the real-world, software sometimes does it like that. Etc, etc.
And, many times the questions aren't made to be answered, but to draw things out of you (like the one above). And in these cases, you can turn the questions back on them. Put them on the answering end ;) and that's OK, those exchanges tell both sides a lot about the other.
I do like a few black and white questions. Like, "How many bits are in an IPv4 address" or "What data structure is a C++ set typically implemented in" and if candidates have no idea on an answer, then I do have concern over that. However, if they do not know the answer, but understand types and their sizes and data structures and their pros/cons, then that's good enough in some cases as well.
"While he was at Bell Labs, Shannon proved that the cryptographic one-time pad is unbreakable in his classified research that was later published in October 1949" - http://en.wikipedia.org/wiki/Claude_Shannon
They can also be made to decrypt to any plaintext string
However, OTP does not scale to more than two or three people, they don't work at all on very large messages as the key has to be as large as the message and they have authentication issues. For two people sending small messages, one-time pads are ideal and if the pads are created, used and destroyed correctly, the encryption is, indeed, unbreakable.
It's not that hard to do either. Nice point and click convenient web interface or true privacy. Pick one.
Source - "Also known as a continuing misrepresentation, a lie by omission occurs when an important fact is left out in order to foster a misconception. Lying by omission includes failures to correct pre-existing misconceptions. When the seller of a car declares it has been serviced regularly but does not tell that a fault was reported at the last service, the seller lies by omission. It can be compared to dissimulation" http://en.wikipedia.org/wiki/Lie