The Kiwi FAQ

Index

Isn't it easy to bypass Kiwi by not including an encrypted cookie?
Why does Kiwi use strong encryption?
Is there a Windows version of Kiwi available?
Why use encryption at all? Why not a cryptographically secure psudo-random number in conjunction with a database?
Is it legal for you to release this code to the international community?

Isn't it easy to bypass Kiwi by not including an encrypted cookie?

One commonly asked question is if it is possible to bypass Kiwi by simply striping out the cookie from a email address generated by Kiwi. Bypassing Kiwi is not this simple.

Kiwi rejects emails without a valid cookie. The one exception is a "password" email address that one can give to their friends.

This can be illustrated with an example. Supposing that one's email address is in the form:

name+cookie@domain.com
mail sent to name@domain.com will be discarded. One who wishes to send you mail without knowing a valid cookie will have to know your password. If they know your password, they will send mail to an email address in the form:
name+password@domain.com

Why does Kiwi use strong encryption?

The reason to use strong encryption is because security through a system with known security is always stronger than security through obscurity. By using strong encryption, we make it more difficult for a spammer to bypass Kiwi, making them perform more work to send us unwanted email.

Is there a Windows version of Kiwi available?

The first target platforms for Kiwi are open-source platforms. Kiwi is much easier to implement on an open-source platform, since access to the source allows easy modification of the components that send out mail and news. In addition, open-source platforms are generally more modular, meaning that the changes Kiwi makes impact less programs, making debugging easier.

The full specification to Kiwi is available for programmers who make closed-source mail and news user agents for Windows. Those programmers are free to incorporate Kiwi compatibility in to their programs. The specification and software is in the public domain, and infringes on no patents.

Since I do not have access to the source of closed-sourced applications, I can not enhance these applications to have Kiwi compatibility.

Why use encryption at all? Why not a cryptographically secure psudo-random number in conjunction with a database?

There are a number of practical problems with using a database.

A database will take more machine resources than the cipher Kiwi uses, and will become slower and less efficient as we add new records to the database. The cipher that Kiwi uses, on the other hand, uses less than 50 lines of C code, using no loops. The cipher runs at a constant, very fast, speed, and places a minimum of load on a mail server. Kiwi would still stay practical if dozens upon dozens of emails were being delivered every second, each one being processed by Kiwi. The same thing can not be said for a database implementation.

A database will have to be synchronized between the machine we send mail from, the machine we post news from, the machine we serve our web pages from, the machine that we receive mail from, and any other machine that we make our email address public from. This could require that a single machine, whose purpose it is to synchronize the database, would have to be up whenever we sent an email, posted to Usenet, or have someone grab an email address from our web page. The database would have to be accessible from all machines. These factors make a database less reliable than the current system Kiwi uses.

A database would violate the principle of simplicity of code that can run with a minimum of system resources. These factors far outweigh any potential benefit we would get from running a database.

Is it legal for you to release this code to the international community?

Yes.

The ITAR regulations that stopped people from exporting crypto software are, for all intents and purposes, no more. Yipee!