You can control the permissions of a MSMQ queue, including who (windows user/group) can send to a queue. If you wanted to encrypt the message, with MassTransit at least and likely NServiceBus, you can inject a custom serializer.
In most cases I'm familiar with, the messages are from trusted sources. If you are accepting messages from external sources they would go through some sort of entry point, such as a web service before hitting the queuing system. The controls that are in place within the organization are often enough.
Lastly, the "sender" is exposed in the MSMQ header. I do not know if this is accessible within NServiceBus but as long as you can access it from the MSMQ .NET wrapper I doubt it is out of the question to ask for.