One of the things that always either amazes or amuses me, but of which I never tire, is when I recognize a solution pattern being reapplied at different levels of abstraction. For instance, I was reading Paul Graham's essay on stopping spam, and it occurred to me that Challenge-Response filtering is similar to the role of queues in the tcp stack of [at least] Solaris. Solaris has two queues up in front for incoming connections, the incomplete connection queue, and the completed connection queue. The first is a primary buffer against denial of service attacks. This requirement that the client complete the three-way handshake is very similar to the challenge-response filtering.
SSL/TLS is another place that I think is ripe for the harvest, especially in the realm of web services protocol design. The TLS protocol has a handshake in which both sides negotiate algorithms, secret keys, and the like, somewhat like dogs sniffing butts. This is analogous to the ws-metadataexchange, policy, etc, handshakes that are inevitably going to be a part of soap service life in the future. Of course, Pareto would tell you that 80% of the time, none of that would likely be necessary, and simple xml over http will do. But if you're in that other 20%, you might want to read the TLS spec, and also look into some of the holes that were found and plugged, etc. Those are likely analogs to ws-splat in some manner.
Comments