N

NOAHSOFT

KMS & License Console

권한이 있는 관리자만 접근할 수 있습니다.

모바일 보안 승인 대기 중

등록된 NOAH Guard 앱에서 [로그인 승인]을 터치하세요.

연동 기기-
유효 시간60초

모든 접속 시도는 기록되며, 연속 5회 실패 시 계정이 15분간 잠깁니다.

N
NOAHSOFT
KMS & License Hub
APK 다운로드

KEY MANAGEMENT SERVICE

KMS 및 인증키 관리

KMS 주기적 갱신(Heartbeat), 원격 킬스위치, HWID 단일 기기 귀속 및 라이선스 발급.

총 발급 키

-

유효 라이선스

-

HWID 귀속

-

KMS 활성 기기

-

오늘 인증 요청

-

인증키메모상태기기 (HWID)만료최근 인증관리
불러오는 중...
© 2026 NOAHSOFT. 아이디어를 코드로, 일상에는 여유를. KMS & License Console · TLS secured

KMS 활성 기기 현황 (실시간 Heartbeat 모니터링)

KMS 라이선스를 대여받아 주기적으로 하트비트(Heartbeat) 통신 중인 클라이언트 기기 목록입니다. 원격 회수 시 해당 기기는 즉시 비활성화됩니다.

기기명 (Host) 라이선스 키 기기 식별자 (HWID) 상태 최근 Heartbeat IP 원격 제어
기기 목록을 불러오는 중...

새 인증키 발급

발급 완료

발급된 키입니다. 고객에게 전달하세요.

계정 보안 및 2단계 인증

NOAH Sentinel Guard (모바일 승인)

기기 등록 시 로그인할 때 휴대폰에서 [승인]해야 로그인됩니다.

등록된 보안 기기가 없습니다. (비밀번호만으로 로그인 중)

비밀번호 변경

8자 이상, 영문·숫자·특수문자 포함. 변경하면 다른 기기의 로그인이 모두 해제됩니다.

모바일 보안 기기 연동

스마트폰 브라우저로 아래 링크에 접속하여 코드를 입력하거나 QR을 스캔하세요.

6자리 페어링 번호
- - - - - -
유효 시간: 5분 00초
NOAH Guard Android APK
네이티브 지문 센서 하드웨어 연동 지원
APK 다운

NOAH Sentinel Guard 안드로이드 앱

지문 생체 인증 공식 지원

PC 관리자 로그인 시 스마트폰 지문 센서 터치만으로 0.5초 만에 안전하게 승인할 수 있는 공식 안드로이드 APK가 준비되었습니다.

패키지 버전: v1.0.0 (최신 빌드)
보안 규격: ● Android BiometricPrompt HW 가속
파일 크기: 약 5.6MB
안드로이드 APK 즉시 다운로드

로그

KMS & API 연동 가이드

KMS 동작 방식 (Heartbeat Lease Renewal)

클라이언트 프로그램 실행 시 최초 1회 /api/kms/activate로 대여 토큰을 받은 뒤, 24시간마다 백그라운드 스레드에서 /api/kms/renew로 대여 기간을 연장합니다. 관리자가 대시보드에서 키를 정지하거나 기기를 회수하면 다음 갱신 시 즉시 프로그램이 차단됩니다.

1. KMS Node.js 클라이언트 연동 (Heartbeat 백그라운드 자동 갱신)

// Node.js 내장 fetch & os 모듈 사용 (별도 npm 패키지 설치 불필요)
const os = require("os");

const SERVER = "https://168-107-5-83.sslip.io";
const KEY = "HS-XXXX-XXXX-XXXX";
const HWID = "hwid-" + os.hostname();

async function initKms() {
  // 1. 최초 KMS 활성화 (7일 대여 토큰 발급)
  const res = await fetch(`${SERVER}/api/kms/activate`, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ key: KEY, hwid: HWID, hostname: os.hostname() })
  });
  const data = await res.json();
  if (!data.valid) {
    console.error("KMS 활성화 실패:", data.message);
    process.exit(1);
  }

  const leaseToken = data.lease_token;
  console.log("KMS 활성화 완료! 대여 만료:", data.lease_expires_at);

  // 2. 24시간마다 주기적 Heartbeat 대여 갱신 (원격 킬스위치 감지)
  setInterval(async () => {
    try {
      const r = await fetch(`${SERVER}/api/kms/renew`, {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ key: KEY, hwid: HWID, lease_token: leaseToken })
      });
      const renewData = await r.json();
      if (!renewData.valid) {
        console.error("라이선스 회수됨:", renewData.message);
        process.exit(1); // 즉시 프로그램 강제 종료
      }
      console.log("대여 연장 성공:", renewData.lease_expires_at);
    } catch (err) {
      console.warn("Heartbeat 일시 오류 (7일 내 재시도):", err.message);
    }
  }, 24 * 60 * 60 * 1000).unref();
}

initKms().then(() => {
  console.log("메인 프로그램 정상 가동 시작...");
});

2. Node.js 1회성 인증 검증 (단순 Verify)

const os = require("os");

async function verifyLicense() {
  const res = await fetch("https://168-107-5-83.sslip.io/api/verify", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      key: "HS-XXXX-XXXX-XXXX",
      hwid: "hwid-" + os.hostname()
    })
  });
  const result = await res.json();
  if (!result.valid) {
    console.error("인증 실패:", result.message);
    process.exit(1);
  }
  console.log("인증 성공:", result.data);
}

verifyLicense();