If you store sign locations in some form of DB, you can have basic protection on the sign easily. SignChangeEvent handling isn't that hard either (not BlockPlaceEvent because the sign is blank on place)