Checked vs unchecked Exceptions

Once again I had a discussion about using checked or unchecked Exceptions in Java.

In my opinion the solution could be simple:
Use checked Exceptions only for business faults. They are part of the interface contract.
But any other Exception thrown by JRE or any other framework should be derived from RuntimeException!

What do you think? Comments are welcome!