An overt channel is a communications path that is not hidden. Anyone can see that Steve connected to Stack Exchange.
A covert channel is an intentional communications path that is hidden, using a technique like steganography. This might use a technique like a dead drop, where I post a picture on eBay, you view the posting on eBay, but nobody can easily see that John sent a picture to Steve. That picture might then contain a hidden message, either encoded in the bits of the photo, or in a prearranged meaning of the photo: "if I post a picture of a teapot with the spout pointing left, that means attack at noon. If I post a picture of a teapot with the spout pointing right, that means attack at midnight. If I post a picture of a teacup, the plans are on hold." This is an example of a covert storage channel.
Another type of covert channel can be created by hiding a message by varying the timing of otherwise normal communications. Imagine a streaming video that is "suffering" from occasional interruptions in the stream; it would be easy to imagine it's just a system load problem. The timing of the interruptions could be used to convey information: a long pause followed by a short pause could be interpreted as the Morse Code letter 'N', for example. That is a covert timing channel.
The primary differences between these two types is that a storage channel leaves some evidence behind but doesn't require the recipient to be listening for the message; a timing channel leaves almost no trace of its existence, but requires the receiver to be actively listening to receive the hidden message.
A side-channel is typically a case of unintended information leakage, and not the intended means of communication. Common cases are RF emissions from keyboards or monitors (google for TEMPEST to see examples of this), timing differences (this paper: http://cr.yp.to/antiforgery/cachetiming-20050414.pdf documents a timing attack on SSL), or power consumption differences (see the paper available at this address: https://www.rambus.com/differential-power-analysis/ ). Sometimes these differences can be used to discover enough bits of an encryption key to break the encryption.