diff --git a/plenum/common/messages/client_request.py b/plenum/common/messages/client_request.py
index <HASH>..<HASH> 100644
--- a/plenum/common/messages/client_request.py
+++ b/plenum/common/messages/client_request.py
@@ -126,6 +126,9 @@ class ClientMessageValidator(MessageValidator):
 
     def validate(self, dct):
         super().validate(dct)
+        if dct.get(f.SIGS.nm) and dct.get(f.SIG.nm):
+            self._raise_invalid_message(
+                'Missing both signatures and identifier')
         if not (dct.get(f.IDENTIFIER.nm) or dct.get(f.SIGS.nm)):
             self._raise_invalid_message(
                 'Missing both signatures and identifier')
diff --git a/plenum/server/client_authn.py b/plenum/server/client_authn.py
index <HASH>..<HASH> 100644
--- a/plenum/server/client_authn.py
+++ b/plenum/server/client_authn.py
@@ -246,7 +246,7 @@ class CoreAuthMixin:
                           EmptyIdentifier):
                     ex = ex(req_data.get(f.IDENTIFIER.nm), req_data.get(f.SIG.nm))
                 raise ex
-        else:
+        if f.SIG.nm in req_data:
             signatures = req_data[f.SIGS.nm]
         return self.authenticate_multi(to_serialize, signatures=signatures,
                                        threshold=threshold, verifier=verifier)
INDY-<I>: Add validation of 'sig' and 'sigs' in authenticate() method