mirror of
git://anongit.mindrot.org/openssh.git
synced 2025-04-23 23:55:56 +00:00
- markus@cvs.openbsd.org 2001/02/28 21:27:48
[channels.c packet.c packet.h serverloop.c] use ignore message to simulate a SSH2_MSG_CHANNEL_DATA message use random content in ignore messages.
This commit is contained in:
parent
941ac82e16
commit
e229b25a9e
@ -85,6 +85,10 @@
|
|||||||
- markus@cvs.openbsd.org 2001/02/28 21:21:41
|
- markus@cvs.openbsd.org 2001/02/28 21:21:41
|
||||||
[sshd.c]
|
[sshd.c]
|
||||||
generate a fake session id, too
|
generate a fake session id, too
|
||||||
|
- markus@cvs.openbsd.org 2001/02/28 21:27:48
|
||||||
|
[channels.c packet.c packet.h serverloop.c]
|
||||||
|
use ignore message to simulate a SSH2_MSG_CHANNEL_DATA message
|
||||||
|
use random content in ignore messages.
|
||||||
|
|
||||||
20010304
|
20010304
|
||||||
- (bal) Remove make-ssh-known-hosts.1 since it's no longer valid.
|
- (bal) Remove make-ssh-known-hosts.1 since it's no longer valid.
|
||||||
@ -4277,4 +4281,4 @@
|
|||||||
- Wrote replacements for strlcpy and mkdtemp
|
- Wrote replacements for strlcpy and mkdtemp
|
||||||
- Released 1.0pre1
|
- Released 1.0pre1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.876 2001/03/05 06:25:23 mouring Exp $
|
$Id: ChangeLog,v 1.877 2001/03/05 06:28:06 mouring Exp $
|
||||||
|
12
channels.c
12
channels.c
@ -40,7 +40,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: channels.c,v 1.94 2001/02/28 12:55:07 markus Exp $");
|
RCSID("$OpenBSD: channels.c,v 1.95 2001/02/28 21:27:48 markus Exp $");
|
||||||
|
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
#include <openssl/dsa.h>
|
#include <openssl/dsa.h>
|
||||||
@ -768,6 +768,7 @@ channel_handle_rfd(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
int
|
int
|
||||||
channel_handle_wfd(Channel *c, fd_set * readset, fd_set * writeset)
|
channel_handle_wfd(Channel *c, fd_set * readset, fd_set * writeset)
|
||||||
{
|
{
|
||||||
|
struct termios tio;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
/* Send buffered output data to the socket. */
|
/* Send buffered output data to the socket. */
|
||||||
@ -789,16 +790,15 @@ channel_handle_wfd(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (compat20 && c->isatty) {
|
if (compat20 && c->isatty) {
|
||||||
struct termios tio;
|
|
||||||
if (tcgetattr(c->wfd, &tio) == 0 &&
|
if (tcgetattr(c->wfd, &tio) == 0 &&
|
||||||
!(tio.c_lflag & ECHO) && (tio.c_lflag & ICANON)) {
|
!(tio.c_lflag & ECHO) && (tio.c_lflag & ICANON)) {
|
||||||
/*
|
/*
|
||||||
* Simulate echo to reduce the impact of
|
* Simulate echo to reduce the impact of
|
||||||
* traffic analysis.
|
* traffic analysis. We need too match the
|
||||||
|
* size of a SSH2_MSG_CHANNEL_DATA message
|
||||||
|
* (4 byte channel id + data)
|
||||||
*/
|
*/
|
||||||
packet_start(SSH2_MSG_IGNORE);
|
packet_send_ignore(4 + len);
|
||||||
memset(buffer_ptr(&c->output), 0, len);
|
|
||||||
packet_put_string(buffer_ptr(&c->output), len);
|
|
||||||
packet_send();
|
packet_send();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
16
packet.c
16
packet.c
@ -37,7 +37,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: packet.c,v 1.53 2001/02/28 09:57:06 markus Exp $");
|
RCSID("$OpenBSD: packet.c,v 1.54 2001/02/28 21:27:47 markus Exp $");
|
||||||
|
|
||||||
#include "xmalloc.h"
|
#include "xmalloc.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
@ -1321,8 +1321,7 @@ packet_set_maxsize(int s)
|
|||||||
void
|
void
|
||||||
packet_inject_ignore(int sumlen)
|
packet_inject_ignore(int sumlen)
|
||||||
{
|
{
|
||||||
u_int32_t rand = 0;
|
int blocksize, padlen, have, need, nb, mini, nbytes;
|
||||||
int i, blocksize, padlen, have, need, nb, mini, nbytes;
|
|
||||||
Enc *enc = NULL;
|
Enc *enc = NULL;
|
||||||
|
|
||||||
if (use_ssh2_packet_format == 0)
|
if (use_ssh2_packet_format == 0)
|
||||||
@ -1350,7 +1349,16 @@ packet_inject_ignore(int sumlen)
|
|||||||
|
|
||||||
/* enqueue current message and append a ignore message */
|
/* enqueue current message and append a ignore message */
|
||||||
packet_send();
|
packet_send();
|
||||||
packet_start(SSH2_MSG_IGNORE);
|
packet_send_ignore(nbytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
packet_send_ignore(int nbytes)
|
||||||
|
{
|
||||||
|
u_int32_t rand = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
packet_start(compat20 ? SSH2_MSG_IGNORE : SSH_MSG_IGNORE);
|
||||||
packet_put_int(nbytes);
|
packet_put_int(nbytes);
|
||||||
for(i = 0; i < nbytes; i++) {
|
for(i = 0; i < nbytes; i++) {
|
||||||
if (i % 4 == 0)
|
if (i % 4 == 0)
|
||||||
|
5
packet.h
5
packet.h
@ -11,7 +11,7 @@
|
|||||||
* called by a name other than "ssh" or "Secure Shell".
|
* called by a name other than "ssh" or "Secure Shell".
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* RCSID("$OpenBSD: packet.h,v 1.20 2001/02/28 09:57:07 markus Exp $"); */
|
/* RCSID("$OpenBSD: packet.h,v 1.21 2001/02/28 21:27:47 markus Exp $"); */
|
||||||
|
|
||||||
#ifndef PACKET_H
|
#ifndef PACKET_H
|
||||||
#define PACKET_H
|
#define PACKET_H
|
||||||
@ -215,6 +215,9 @@ void packet_set_ssh2_format(void);
|
|||||||
int packet_remaining(void);
|
int packet_remaining(void);
|
||||||
|
|
||||||
/* append an ignore message */
|
/* append an ignore message */
|
||||||
|
void packet_send_ignore(int nbytes);
|
||||||
|
|
||||||
|
/* add an ignore message and make sure size (current+ignore) = n*sumlen */
|
||||||
void packet_inject_ignore(int sumlen);
|
void packet_inject_ignore(int sumlen);
|
||||||
|
|
||||||
#endif /* PACKET_H */
|
#endif /* PACKET_H */
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: serverloop.c,v 1.51 2001/02/23 15:34:53 markus Exp $");
|
RCSID("$OpenBSD: serverloop.c,v 1.52 2001/02/28 21:27:48 markus Exp $");
|
||||||
|
|
||||||
#include "xmalloc.h"
|
#include "xmalloc.h"
|
||||||
#include "packet.h"
|
#include "packet.h"
|
||||||
@ -345,9 +345,7 @@ process_output(fd_set * writeset)
|
|||||||
* Simulate echo to reduce the impact of
|
* Simulate echo to reduce the impact of
|
||||||
* traffic analysis
|
* traffic analysis
|
||||||
*/
|
*/
|
||||||
packet_start(SSH_MSG_IGNORE);
|
packet_send_ignore(len);
|
||||||
memset(buffer_ptr(&stdin_buffer), 0, len);
|
|
||||||
packet_put_string(buffer_ptr(&stdin_buffer), len);
|
|
||||||
packet_send();
|
packet_send();
|
||||||
}
|
}
|
||||||
/* Consume the data from the buffer. */
|
/* Consume the data from the buffer. */
|
||||||
|
Loading…
Reference in New Issue
Block a user