Some other ideas of what individual ISP's or Enterprises may build
into their token-generator:
-- sleep x (pro: slows serial connections; con: easier to DoS your server)
(could make this dependent on the incidence of the requesting IP
looking for an "invalid user", or the count of requests from
the same source IP within the last x number of requests, or the
last x timeframe, etc. Could also make the response dependent on
current server load so as to reduce incidence or impact of Denial
of Service attempts, or redirect a suspect request to a 'tarpit'.)
-- No such user:
Check the filename of the URL to see if it corresponds to a valid
user. If not, many possible responses:
a. slow the token generation (accounting for current server load)
b. add remote_addr to suspect SENDER list
c. include a specific string in the token, then train
your MTA to abort connections that give such a token....(leave the
sender waiting for a response.)
d. Redirect to a 'tarpit'.
-- A token generator could do a DNSBL before creating a token. The generator
could do any number of things if a DNSBL "hit" happens. It could
error and give a message saying "you're blocked", or it could do
some of the things mentioned above to take up the spammer's time and
resources and benefit the overall Internet community.
See Project HoneyPot http:BL http://www.projecthoneypot.org/faq.php#g
-- spam-assassin interface - encrypt and post the token generator
"secret sauce" so that spam-assassin (or other external programs)
can do token verification
syntax: ---PGP encrypted package---
spam-assassin will need to have a private key to undo this package.
Package should contain a time-to-live (TTL) to check back for new
verification rule, and syntax for describing the verification
checks (i.e., what in the token does the user wish to check).
Example: http://www.x-asvp.org/X_ASVP_ORG/CHAIR.HTM
(the PGP message within contains the following
---snip---
TTL = 86400
ASVP-WEB contains abc43
---end snip---
Note: 86400 seconds is 24 hours
Note: This could easily test for substr(ASVP-WEB,1,2) eq 'CC' or
any other code your token generator inserts into