Downgrading your iDevice to a lower firmware version has been possible since the iPhone's release, but unfortunately has become harder and harder over the years. In the early days you could downgrade your iOS device to any firmware version you wanted to, granted you had the .IPSW. This is because firmware restores weren't checked through Apple's servers. But, starting in iOS 3.0 and continuing onwards, Apple implemented a technology called an SHSH blob.
What is an SHSH Blob?
You see, when you restore your iDevice through iTunes your device phones home to Cupertino and ensures that it is allowed to be restored to that specific firmware version. In order to enforce this limitation SHSH blobs were introduced, which is a hash signature system. Although this is getting technical, an SHSH is created by an SHSH formula with 3 or 4 TSS keys. These keys are generated by basic information that is, for the most part, specific to your device:
- The device model (example: iPhone 4 GSM)
- The firmware version being signed (example: 6.0.1)
- The device’s ECID, a unique identifier for every Apple device.
The encryption of the blobs and the nature of them having to be stored in Apple's servers coupled with the unique information that makes them up renders them impossible to reproduce or fabricate.
On every device shipped by Apple a .plist file is present; this file contains SHSH blobs for different parts of the firmware. These blobs are essentially gatekeepers and control whether or not a firmware is restorable. Whenever you upgrade or downgrade your iDevice, new SHSH blobs have to be generated and/or checked against Apple's servers.
In order to prevent firmware restores Apple only signs one firmware version at a time, which is obviously the latest firmware version available. If you try to restore to a lower firmware version, you will get an error because Apple is not signing that specific firmware version anymore. What happens is Apple's servers see that the firmware you're trying to restore to isn't being supportred, and refuses to generate the new hash, thus refusing to sign the restore and rendering it invalid.