Basic RFID tags, like EPC Global tags, store a unique number that is broadcast whenever they come within reading range of an arbitrary reader. This poses some privacy threats because if you carry a tag with you all the time, the same serial number will show up at all the readers you pass. Today at the RFIDSec 2010 workshop I learnt that secret handshakes (See Czeskis et. al.) are an active area of research in RFID security. The aim is to provide some context to an RFID tag that will allow the tag to decide whether to talk or not.
In the case of secret handshakes, the aim is to allow the RFID tag to detect whether it is moved in a particular way. The tag will only respond to a reader, when it detects this movement. For example, the swipe movement you make when presenting you public transport pass to the gate can be detected, and the card will only respond if it just performed that swipe movement.
The problem with this approach is twofold. First, the tag need to have some accelerometer and some processing capabilities (that standard EPC tags do not have). Second, the detection algorithms are not very precise, so walking and swiping are hard to distinguish. This means your card can still be read when you are walking around, for example.
A much simpler approach to implement this kind of explicit consent would be to put a push-to-talk button on your transport card, that controls a switch between the actual tag and the antenna. Only when the button is pressed, the switch is closed, and the antenna and the tag are connected. Only when these two are connected, the tag receives power and is able to communicate. When disconnected, any communication is physically impossible. One thing to take care of is to make sure that the button is not accidentally pressed when it is in your pocket or your wallet. Perhaps, another approach would be to put a sensor on the card that can detect the presence of a finger (no fingerprint scanning required, btw.)
There are many more options to add context to RFID tag reading protocols. Another simple example is to construct RFID tags that only respond whenever another tag is present. That second tag then works as an unlock tag to the second. I think using context to improve the security and privacy of RFID tags is an important area of research. It could provide is with new tools and methods that allow users to exert more control over how their RFID tags are used.