diff --git a/Lib/ssl.py b/Lib/ssl.py
index febc547..d778638 100644
--- a/Lib/ssl.py
+++ b/Lib/ssl.py
@@ -625,7 +625,7 @@
             # EAGAIN.
             self.getpeername()
 
-    def read(self, len=0, buffer=None):
+    def read(self, len=1024, buffer=None):
         """Read up to LEN bytes and return them.
         Return zero-length string on EOF."""
 
@@ -636,7 +636,7 @@
             if buffer is not None:
                 v = self._sslobj.read(len, buffer)
             else:
-                v = self._sslobj.read(len or 1024)
+                v = self._sslobj.read(len)
             return v
         except SSLError as x:
             if x.args[0] == SSL_ERROR_EOF and self.suppress_ragged_eofs:
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 0f6c510..659d0df 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -2622,13 +2622,20 @@
                         # consume data
                         s.read()
 
-                # read(-1, buffer) is supported, even though read(-1) is not
                 data = b"data"
+
+                # read(-1, buffer) is supported, even though read(-1) is not
                 s.send(data)
                 buffer = bytearray(len(data))
                 self.assertEqual(s.read(-1, buffer), len(data))
                 self.assertEqual(buffer, data)
 
+                # recv/read(0) should return no data
+                s.send(data)
+                self.assertEqual(s.recv(0), b"")
+                self.assertEqual(s.read(0), b"")
+                self.assertEqual(s.read(), data)
+
                 s.write(b"over\n")
 
                 self.assertRaises(ValueError, s.recv, -1)
diff --git a/Misc/NEWS b/Misc/NEWS
index 8c193f6..11bc97e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -64,6 +64,9 @@
 - Issue #26644: Raise ValueError rather than SystemError when a negative
   length is passed to SSLSocket.recv() or read().
 
+- Issue #23804: Fix SSL recv(0) and read(0) methods to return zero bytes
+  instead of up to 1024.
+
 - Issue #24266: Ctrl+C during Readline history search now cancels the search
   mode when compiled with Readline 7.
 
