SMB

SMB2

SMB3

CIFS

Pure Java SMB Client

jNQ™

jNQ™는 SMB 파일 공유 서비스를 Java1.5 이상의 플랫폼을 기반으로 한 모든 Java 응용 프로그램에 제공하는 현재 사용할 수 있는 유일한 Java SMB 솔루션입니다.

여기 에서 jNQ™ 백서 (영어 버전)을 다운로드 할 수 있습니다.

NQE™ 기술을 바탕으로 개발 된 jNQ™는 SMBv3.1.1까지의 모든 SMB 버전을 지원합니다. jNQ™ 클라이언트는 제공된 API로 사용할 수 있는 100 % Java 라이브러리 입니다.

jNQ™가 지원하는 SMBv3.1.1의 end-to-end 암호화 기능을 통해 개발자들은 완전히 안전한 파일 공유 서비스를 제공 할 수 있습니다. SMBv3.1.1 사양의 완전한 지원을 제공하는 유일한 Java SMB 솔루션으로 jNQ™은 사용자와 제품, 그리고 고객을 기존 SMB 버전의 취약점을 악용 한 Wannacry과 Petya 등 최근의 사이버 공격으로부터 보호 할 수 있습니다. jNQ™가 제공하는 보안은 이러한 위협 이후 매우 중요한 것으로 되어 있습니다. 악의적 인 공격을 방지하기 위해서는 SMB 서명 SMB 암호화, Active Directory 인증 Kerberos 인증 Pre-Logon Integrity (사전 인증 무결성) 등 SMBv3.1.1 보안 수단이 필수적입니다.

보안 이외에 jNQ™는 Java 커뮤니티를 최신 SMB 프로토콜에 업데이트시킵니다. Microsoft는 안정성 및 성능 문제에서 Windows10 RS3는 SMBv1 프로토콜을 기본적으로 사용하고 있습니다 (2017 년 9 월) 따라서 SMBv1는 최신 Windows 버전과 SMB 통신을 할 수 없습니다.

Visuality Systems jNQ Video

jNQ™ 아키텍처

jNQ™ 가 제공하는 완전하고 직관적 인 API를 사용 할 수 있습니다.

JNQ™: A Pure Java SMB Client Architecture

 

jNQ™ 기능

  • 모든 관련 Microsoft 사양에 준거
  • NetBIOS WINS, DNS 이름 확인 기능
  • 보안 : jNQ™가 제공하는 강력한 보안 시스템
  • LM, NTLM LMv2, NTLMv2, NTLMSSP, SPNEGO 및 Kerberos에서의 인증
  • 도메인 (AD) 인증
  • SMB 암호화
  • SMB 서명
  • Pre-Logon Integrity (사전 인증 무결성)
  • 파일 폴더 조작 :( 파일 폴더) 새로 만들기, 열기, 이름 변경, 정보 표시, 독점적 설정
  • 파일 조작 : 읽기, 쓰기, 비동기 읽기 비동기 쓰기
  • 네트워크 브라우징 지원
  • DFS
  • RPC 지원 : SAMR, LSA, WINREG, SRVSVC, DSSETUP (모든 확장 가능. 일반적인 DCERPC 프레임 워크의 사용에 더 많은 RPC가 개발 가능)
  • 투명 장애 조치 (영구 지속 핸들 지원)

 

jNQ™ 시장

  • SIEM
  • 데이터 관리
  • 검색 및 인덱싱 서비스
  • eDiscovery
  • MFT 파일 전송
  • 정보 보안
  • Android 앱

jNQ™의 특징

  • SMBv3.1.1까지의 모든 SMB 버전에 대응
  • 함께 API에서 사용할 수 있는 SMB 클라이언트 소프트웨어 라이브러리
  • 100 % Java로 개발. 버전 1.5 이상의 어떤 Java 환경에서도 동작 가능
  • 최적화 된 Read 및 Write
  • 멀티 스레드와 비동기 처리에 의한 고성능

GPL 무료 상용 네트워크 스택 jNQ™를 채용하는 것으로, 고객은 귀중한 R & D에 시간과 돈을 절약하고 최신 SMB 버전을 입수 핵심 기술에 초점을 맞출 수 있습니다.

jNQ™ 샘플 코드

Mount

PasswordCredentials cr = new PasswordCredentials(
     "userName", "password", "domain");
// Create a new Mount Point
Mount mt = new Mount("IpAddress","ShareName", cr);
// Close all connections and mount points
Client.stop();
 

Open, read, write and delete file

PasswordCredentials cr = new PasswordCredentials(
     "userName", "password", "domain");
Mount mt = new Mount("IpAddress","ShareName", cr);
Params pr = new File.Params(File.ACCESS_WRITE, File.SHARE_FULL,
                                File.DISPOSITION_OPEN, false);
File file = new File(mt, "text.txt", pr);
Buffer buff = new Buffer(DATASIZE);
// read DATASIZE from the begginig of the file.
file.read(buff);
// write the buff from the offset DATASIZE.
file.write(buff);
// mark the file for delete.
file.deleteOnClose();
// close the file.
file.close();
// close the mount point 
 mt.close();
 

Delete file by name

PasswordCredentials cr = new PasswordCredentials(
      "userName", "password", "domain");
Mount mt = new Mount("IpAddress","ShareName", cr);
File.delete(mt, "text.txt");
// close the mount point 
mt.close();
 

Browsing directory

PasswordCredentials cr = new PasswordCredentials(
     "userName", "password", "domain");
Mount mt = new Mount("IpAddress","ShareName", cr);
Directory dir = new Directory(mt, "dir1");
Directory.Entry entry;
System.out.println(DIR + " scan:");
do {
    entry = dir.next();
    if (null != entry)
        System.out.println(entry.name + " : size = " + entry.info.eof);
} while (entry != null);
// close the directory browsing.
dir.close();
// close the mount point 
mt.close();
 

Access via Streaming

PasswordCredentials cr = new PasswordCredentials(
     "userName", "password", "domain");
// Create a new Mount Point
Mount mt = new Mount("IpAddress","ShareName", cr);
// create a new file.
File.Params fileParams = new File.Params(
        File.ACCESS_READ | File.ACCESS_WRITE | 
        File.ACCESS_DELETE, File.SHARE_FULL, 
        File.DISPOSITION_OPEN_IF, false);
File file = new File(mt, "myCreatedFile.txt", fileParams);
// create output stream
OutputStream outputStream = new SmbOutputStream(file);
// create some data to write
int totalAmountOfData = 1024 * 1024 * 10;
byte [] data = createByteBuffer( totalAmountOfData);

// write all the bytes -- buffering is done by TCP networking code
outputStream.write(data);
    
// alternative way of writing all the bytes with a little more control
int amountToWriteEachTime = 1024 * 1024;
int currentPosition = 0;
while (currentPosition < data.length) {
    file.setPosition( currentPosition);
    outputStream.write(data, currentPosition, amountToWriteEachTime);
    currentPosition += amountToWriteEachTime;
}
// close the stream
outputStream.close()
// close the mount point 
mt.close();
 

Follow Us

News

 December 16, 2018

The official SMB testing Plugfest will be held on January 28-31 2019 at the Sheraton Hotel Tel-Aviv. Four days of SMB client and server testing, open to any company that wishes to test their SMB implementations. Sign up in the link below.

EMEA SMB Plugfest

 November 26, 2018

Visuality Systems announces the transition to the Agile Development System which part of the many advantages include delivery of fully tested Visuality updates in a very short time cycle. Furthermore, Visuality Systems has established an online Help Desk that offers a simple and efficient customer interaction with the Visuality Systems technical support team

Helpdesk Registration

 

 November 06, 2018

Visuality Systems will be a sponsor at the SDC EMEA conference to be held at the Sheraton hotel, Tel-Aviv, Israel on January 30. The event will be co-located with an SMB3 testing Plugfest held on January 28-31.

See Link

 

   August 12, 2018

Windows XP and Server 2003 users can now seamlessly upgrade from the now-defunct SMB1 stack to the encrypted up to date SMB3 protocol with the latest NQE Server. 

 

  July 31, 2018

Visuality Systems has released jNQ™ 1.0.1 adding security features and performance improvements to the SMB3.1.1 NQ Java library.

 

 November 01, 2017

Visuality Systems has released jNQ™ 1.00, features the latest SMB 3.1.1 support in Pure JAVA

 

May 15, 2017

The WannaCry Ransomware cyber-attack succeeded due to exploiting the vulnerability of non-encrypted SMB versions – SMB1/SMB2. Moving to SMB3.1.1 has become a MUST.

See Link