home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_n_r / draft-rfced-info-ryckman-01.txt < prev    next >
Text File  |  1997-01-08  |  24KB  |  528 lines

  1. Internet-Draft        Expires: June 1997         Internet-Draft
  2.  
  3. Category: Informational                          S. Ryckman
  4.                                                  SIMS, Inc.
  5.  
  6.  
  7.    Security Industry Internet Protocol for Alarm Transmission (SIIPAT)     
  8.                  <draft-rfced-info-ryckman-01.txt> 
  9.  
  10. Status of this Memo 
  11.  
  12.    This memo provides information for the Internet community.  This memo 
  13.    does not specify an Internet standard of any kind.  Distribution of 
  14.    this memo is unlimited. 
  15.  
  16.    This document is an Internet-Draft.  Internet-Drafts are working
  17.    documents of the Internet Engineering task Force (IETF), its areas,
  18.    and its working groups.  Note that other groups may also distribute
  19.    working documents as Internet-Drafts.
  20.  
  21.    Internet-Drafts are draft documents valid for a maximum of six months
  22.    and may be updated, replaced, or obsoleted by other documents at any
  23.    time.  It is inappropriate to use Internet-Drafts as reference
  24.    material or to cite them other than as "work in progress".
  25.  
  26.    To learn the current status of any Internet-Draft, please check the
  27.    "1id-abstract.txt" listing contained in the Internet-Drafts Shadow
  28.    Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  29.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  30.    ftp.isi.edu (US West Coast).
  31.  
  32. Abstract 
  33.  
  34.    This document suggests a method for delivering alarm information over 
  35.    the Internet.  All communication shall use an encryption algorithm 
  36.    for transmission of the data.  An immediate response from the host  
  37.    will be used for verification of receipt of the message. 
  38.  
  39.    This transmission method may be use as a backup transmission method 
  40.    to traditional dial-up or leased line methods, or as a primary 
  41.    transmission method with traditional methods becomming the backup. 
  42.  
  43.    Due to the required security of the data being transmitted, the 
  44.    encryption algorithm used will only be released on a need to know 
  45.    basis to software developers in the Alarm/Security Industry. 
  46.    A non-disclosure agreement will be required.  Terms and conditions 
  47.    of the licensing will depend on the intended purpose for use and 
  48.    may require a non-competition agreement or licensing fees. 
  49.  
  50.    The Internet Assigned Numbers Authority (IANA) has assigned port 
  51.    1733 for the registered use of SIIPAT transmissions. 
  52.  
  53.  
  54. 1. Introduction 
  55.  
  56.    This transmission protocol was developed to eliminate the need 
  57.    for dial-up communications to send short data bursts of alarm 
  58.    information.  Many times, the amount of time it takes to seize 
  59.    the dial-up phone line, dial the number and wait for an answer 
  60.    by the alarm receiving equipment is much greater than the amount 
  61.    of time it takes to transmit the data itself (even at 300 baud). 
  62.    Since many corporations and government agencies as well as alarm 
  63.    companies already have dedicated Internet connections, it seems 
  64.    resonable that it could be used as a quick transmission method. 
  65.    Due to the inherent probability of failures of the network at  
  66.    some point between origination and reception of the alarm signal, 
  67.    it should NOT be used for the sole transmission path for any 
  68.    signal.  This transmission method can be treated with the same 
  69.    concerns as a typical radio alarm transmission, quick but not 
  70.    entirely absolute. 
  71.  
  72.    Throughout the remainder of this document the following terms 
  73.    will be used. 
  74.     
  75.    Port/Socket - Used interchangably to refer to the logical  
  76.    connection created when the client software polls the host 
  77.    on a particular port number, in this case port 1733. 
  78.     
  79.    SIIPAT - Security Industry Internet Protocol for Alarm  
  80.    Transmission (Pronounced Si-Pay).   
  81.  
  82.    Server - The software running at the Alarm Company which is 
  83.    connected to the Internet and monitoring an IP address port. 
  84.  
  85.    Subscriber - The software/device at the protected location. 
  86.  
  87.  
  88.  
  89. 2. System Philosophy 
  90.  
  91.    Proposing an alternative method of transportation of alarm signals 
  92.    is not as easy to implement as it sounds.  A very simple adoption 
  93.    of such a feat could be accomplished with normal Email.  This would 
  94.    not provide immediate notification of receipt however, and would 
  95.    open the system up to tampering from external sources.  Clearly a 
  96.    secured encryption routine must be used, to prevent people from 
  97.    creating false signals or using the protocol for sending non-alarm 
  98.    information, as is possible with existing transmission formats. 
  99.    The principle of SIIPAT is to provide security to the alarm transmission 
  100.    process not found currently.  This is security both for the originator 
  101.    of the alarm signal (increased transmission speed) and for the  
  102.    alarm company (reduction of false signals due to tampering). 
  103.    Until every home has it's own direct connection to the Internet, 
  104.    SIIPAT can not be used for every alarm system.  It's primary purpose 
  105.    is for commercial applications or where the alarm signal may 
  106.    originate from a non-customary device such as a program on a  
  107.    computer used for monitoring network or environmental conditions, 
  108.    home automation/access control computerized systems or from  
  109.    radio network providers for vehicle location/tracking purposes. 
  110.  
  111.    SIIPAT itself does not include definition for the equipment on either 
  112.    end of the transmission, only the format of the data in between. 
  113.    Implementation of SIIPAT may include a dedicated machine to 
  114.    act as the server or use of an automation software package which 
  115.    supports the SIIPAT interface directly.  The way the protocol is 
  116.    designed supports simple "generic" transmissions as well as  
  117.    emulating specific receiver signals so that an automation package 
  118.    can pass the message to an existing receiver interface. 
  119.  
  120.  
  121. 3. Why use the Internet to send alarm messages ? 
  122.  
  123.    Every day, more and more alarm companies are changing from small 
  124.    "mom and pop" companies, to nationwide or global monitoring stations. 
  125.    With the ever increasing competition from other companies, an alarm 
  126.    company must remain unique to remain in business.  Switching from 
  127.    a local geopgraphical area of coverage to a larger scale brings 
  128.    with it increased advantages, but also increased problems.  Using 
  129.    customary techniques requires either the use of "800" numbers at 
  130.    the alarm company (at great expense to the company) or long distance 
  131.    calls from the subscriber (where they eat the cost of the phone call). 
  132.    As contracts between large corporations and a single alarm company 
  133.    continue, the ability of one central location to monitor a chain 
  134.    of stores around the world becomes more and more expensive.  Sending 
  135.    open and close activity reports from a panel around the world could 
  136.    easily add up to the hundreds or thousands of dollars a month in 
  137.    customary phone long distance charages.  Because of this expense 
  138.    most sites do not implement test supervision signals unless maybe 
  139.    they are only once a day.  With SIIPAT supervision is a two-way 
  140.    street with the alarm company able to "inquiry" the status of a 
  141.    particular system at any moment, even every couple seconds if 
  142.    high-security warrants it. 
  143.  
  144.  
  145. 4. The SIIPAT Protocol 
  146.  
  147.    The SIIPAT protocol is a sequence of commands and replies, and is based 
  148.    loosely on the design of many other Internet protocols currently  
  149.    in use.  Please note that the protocol as described does not take 
  150.    into consideration the encryption process which occurs before the 
  151.    data is actually transferred across the Internet, if implemented. 
  152.  
  153.    SIIPAT has several input commands (the first 6 characters of each are 
  154.    significant) that solicit various server responses.  A "burst mode" 
  155.    transmission is also supported whereas the entire authentication 
  156.    and alarm message can be sent on the initial request for the socket. 
  157.    SIIPAT also supports several status commands which can be used by the  
  158.    server to check the status of a subscriber at any time. 
  159.  
  160.    The messages the subscriber equipment may send vary depending on the 
  161.    equipment in use.  Not all subscriber equipment may be capable of 
  162.    or have need to transmit all the various types of messages.  All 
  163.    servers should be capable of receiving them all however. 
  164.     
  165.    Each message transmitted is prefixed by an STX character (Ascii 2)  
  166.    followed by a two character alphabetic 'Message Type' code. The 
  167.    Message Type determines what the remainder of the message contains 
  168.    as well as the length of the entire message.  All messages will 
  169.    conform to the following message format: 
  170.  
  171.     <stx>    - Start of Transmission identifier (Ascii 2). 
  172.     msg type - Two character Message Type. 
  173.     length   - Two digit length of variable data to follow (01-99). 
  174.     data     - Raw data message of length characters total. 
  175.     <etx>    - End of Transmission identifier (Ascii 3). 
  176.  
  177.  
  178.    The server sends replies or status inquiries prefixed by an ENQ char- 
  179.    acter (Ascii 5) and terminated by an EOT (Ascii 4). 
  180.    The messages the server should be expected to return are grouped in 
  181.    the following catagories to make it easier for the subscriber equipment 
  182.    to determine the necessary action based solely on the first character. 
  183.  
  184.     1xxx - Success, Proceed, Verified 
  185.     2xxx - Accepted but Incomplete 
  186.     3xxx - Authentication Error 
  187.     4xxx - Protocol Error 
  188.     5xxx - Duplicate Transmission 
  189.     8xxx - Network Busy/Error 
  190.     9xxx - Status Inquiries 
  191.  
  192.  
  193.    Typically, the subscriber initiates the connection with the server.   
  194.    Upon opening the connection, the server issues a "1RDY" message  
  195.    (indicating the willingness of the server to accept SIIPAT commands).   
  196.    At that point, the subscriber sends it's data stream and awaits 
  197.    a response from the server indicating the success or failure of 
  198.    the transmission.  The subscribers unit should also be capable 
  199.    of determining no response within a set time frame and resort to 
  200.    customary alarm transmision paths or attempt to contact a differant 
  201.    server at a differant IP address. 
  202.  
  203.    Status messages can be initiated by the server if the subscriber 
  204.    unit supports it.  Each subscriber unit shall at minimum support 
  205.    the type 9999 server response for inquires.  The subscriber unit 
  206.    simply needs to respond with a status message with no variable 
  207.    length data supplied.  This signifies to the server that this  
  208.    host does not support/want additional status messages to be 
  209.    performed against it.  If the subscriber unit supports additional 
  210.    status messages, it will respond with the types of the status 
  211.    messages that it supports in the variable data.  This allows for 
  212.    multiple vendors equipments with differant capabilities or for 
  213.    the subscriber to limit the status inquires that can be performed 
  214.    on their unit. 
  215.  
  216.  
  217. 4.1 Examples of "simple" SIIPAT Transmissions 
  218.  
  219.    The following are two examples of how an alarm message may be 
  220.    sent to the server using SIIPAT.  Note that the data transferred 
  221.    between subscriber and server may be encrypted before it is sent 
  222.    which is not shown in these examples.   
  223.  
  224.    Both these examples show the authentication of site 1234 with a 
  225.    password of PASSWORD.  Two alarm messages are being sent for the 
  226.    alarm account number of 4321, one is a code 99 and the other is 
  227.    a code 31, both using the SIIPAT 4x2 format. 
  228.  
  229.  
  230. 4.1.1 Standard Transmission 
  231.  
  232.     Subscriber                         Server 
  233.     --------------------------         ----------------------------------- 
  234.     Open Connection               --> 
  235.                                   <--  1RDY17ABC ALARM COMPANYv1.00 
  236.     ID041234                      --> 
  237.                                   <--  1PW?14Enter Password 
  238.     PW08PASSWORD                  --> 
  239.                                   <--  1BGN18Begin Transmission 
  240.     AM11!!4X2432199               --> 
  241.                                   <--  1RCV11!!4X2432199         
  242.     AM11!!4X2432131               --> 
  243.                                   <--  1RCV11!!4X2432131 
  244.     CC                            --> 
  245.                                   <--  1SNT152 Messages Rcvd 
  246.     Close Connection 
  247.  
  248.  
  249. 4.1.2 Burst Transmission 
  250.  
  251.     When a burst transmission is sent, all the data is sent on one 
  252.     stream.  This stream can occur at the time of opening the connection 
  253.     or after the 1RDY message is returned depending on the subscriber 
  254.     unit and it's capabilities. 
  255.  
  256.      
  257.     Subscriber                         Server 
  258.     --------------------------         ----------------------------------- 
  259.     Open Connection               --> 
  260.                                   <--  1RDY17ABC ALARM COMPANYv1.00 
  261.     ID041234PW08PASSWORDAM11!!4X2432199AM11!!4X2432131   
  262.                                   <--  1SNT152 Messages Rcvd 
  263.     Close Connection 
  264.  
  265.  
  266. 4.2 Subscriber Messages 
  267.  
  268.     The following sections briefly describe the possible messages that 
  269.     a subscriber unit can send.  All these messages are prefixed by 
  270.     an STX character (Ascii 2) and terminated by an ETX (Ascii 3). 
  271.  
  272.  
  273. 4.2.1 "ID" Messages - Logon Information 
  274.  
  275.     Each transmission must be authenticated against a table the server     
  276.     maintains to ensure that no tampering is being attempted.  Therefore 
  277.     each transmission must include an ID type message before actual 
  278.     messages will be acknowledged from the subscriber unit. 
  279.  
  280.     ID             - Message Code. 
  281.     xx             - Length of ID to follow (01-99). 
  282.     .....          - Actual ID transmitted. 
  283.                      (This ID may or may not coincide with the 
  284.                       actual alarm number depending on preferance.) 
  285.  
  286.  
  287. 4.2.2 "PW" Messages - Password Authentication 
  288.  
  289.     In order to determine that a random ID wasn't guessed, a password 
  290.     associated with each ID must also be sent.  Whether the server 
  291.     actually verifies this information or not is normally configurable. 
  292.  
  293.     PW             - Message Code. 
  294.     xx             - Length of Password to follow (01-99). 
  295.     ......         - Actual Password transmitted. 
  296.  
  297.  
  298. 4.2.3 "MA", "MS" and "MV" Messages - Alarm Messages 
  299.  
  300.     Transmission of actual data is done with Alarm Messages.  The three 
  301.     differant types of alarm messages allows the server to sort the  
  302.     messages by priority before sending them to the host computer system. 
  303.  
  304.     MA             - Message Code.  (Alarm Messages) 
  305.         or MS                       (Status Messages) 
  306.         or MV                       (Verification Messages) 
  307.     xx             - Length of Raw Alarm Data (01-99). 
  308.     ........       - Actual Raw Data. 
  309.  
  310.     The format of the Raw Data for Alarm Type Messages varies depending 
  311.     on the transmitting and receiving equipment.  For propeitary  
  312.     implementations this could be any format desired. It is recommended 
  313.     that the following format be used for compatibility so that 
  314.     automation software can parse the Emulated Data from the string 
  315.     and send it to the existing receiver interfaces for that type 
  316.     of receiver.  This should ensure that the most current specifications 
  317.     remain in effect for SIIPAT if the manufacturer makes additions 
  318.     to their protocol. 
  319.  
  320.              !           - Identifies Emulated Data being sent 
  321.              xxxx        - Format Identifier 
  322.                 of !4X1  - SIIPAT 4x1 Format 
  323.                 or !4X2  - SIIPAT 4x2 Format 
  324.                 or !4X3  - SIIPAT 4x3 Format 
  325.                 or !CID  - SIIPAT Contact ID Format  
  326.                 or ADMC  - Ademco 685 Receiver Emulation 
  327.                 or DMP1  - DMP SCS1 Receiver Emulation 
  328.                 or FBII  - FBII CP220 Receiver Emulation 
  329.                 or ITIC  - ITI CS4000 Comp Emulation 
  330.                 of ITIG  - ITI CS4000 Generic Emulation 
  331.                 or RMII  - Radionics Modem II Emulation 
  332.                 or RSIA  - Radionics SIA Emulation 
  333.                 or SAFE  - Senses Intl. Safecom Emulation 
  334.                 or SURG  - Surgard xLR Receiver Emulation 
  335.              ..........  - Emulated Data  
  336.                            (length varies depending on the format 
  337.                             and is five less than the length of 
  338.                             the Length of Raw Data specified for 
  339.                             the Alarm Message Type.) 
  340.  
  341.  
  342. 4.2.4 "CC" Message - Close Connection 
  343.  
  344.     Requests a summary from the server and once received closes the 
  345.     connection.  All subsequent transmissions from the subscriber on 
  346.     this socket are ignored. 
  347.  
  348.  
  349. 4.2.5 "??" Message - Subscriber Status 
  350.  
  351.     The server must have sent a type 9 Status Inquiry in order for 
  352.     this message to be generated.  When the server wishes to inquire 
  353.     on a subscriber, it opens the socket with the subscriber at the 
  354.     subscribers IP address and port and sends out a 9999 response. 
  355.     At that point the subscriber unit sends out a type ?? message  
  356.     indicating it's abilities for further commands. 
  357.  
  358.     ??             - Message Code. 
  359.     xx             - Length of available commands (04-96) 
  360.     yyyy           - Number of the Server Inquiry that this 
  361.                      subscriber is capable of.  This is always 
  362.                      a four digit number (9000-9999) that repeats. 
  363.                      Ie:9990999199929993 would mean that this 
  364.                      subscriber is capable of type 9990-9993 
  365.                      status inquiries. 
  366.  
  367.  
  368. 4.2.6 "CL" Message - Cancel Last Message 
  369.  
  370.     When this message is received by the server, the last M type 
  371.     message received is thrown away.  This is used by subscriber 
  372.     units that detect the data sent back on the 1RCV message from  
  373.     the server was not the same as it sent.  Once a subscriber  
  374.     sends this message, it can then begin to retransmit the message. 
  375.  
  376.  
  377. 4.3 Server Responses 
  378.  
  379.     The following sections explain the various responses that a 
  380.     server can sent to the subscriber.  All these transmissions are 
  381.     started with an ENQ character (Ascii 5) and terminated with 
  382.     an EOT character (Ascii 4). 
  383.      
  384.     1xxx - Success, Proceed, Verified 
  385.     2xxx - Accepted but Incomplete 
  386.     3xxx - Authentication Error 
  387.     4xxx - Protocol Error 
  388.     5xxx - Duplicate Transmission 
  389.     8xxx - Network Busy/Error 
  390.     9xxx - Status Inquiries 
  391.  
  392.  
  393. 4.3.1 - Success, Proceed, Verified 
  394.  
  395.     1RDY - Tells the subscriber that the server is ready to accept 
  396.            data and provides basic information about the server 
  397.            including the servers name and SIIPAT version number. 
  398.     1PW? - Asks the subscriber unit for a password if required by 
  399.            the server. 
  400.     1BGN - Tells the subscriber that it has been authenticated and 
  401.            it should begin transmitting signals. 
  402.     1RCV - Repeats the data received back to the subscriber. 
  403.     1CAN - The last message was cancelled as requested by a CL message. 
  404.     1SNT - Tells the subscriber that the messages were sent to the 
  405.            automation system along with a comment which usually 
  406.            indicates the number of signals received.  This message 
  407.            should be recorded by the subscriber unit for display 
  408.            as it may contain other information such as a notice 
  409.            to contact the alarm company regarding an outstanding balance 
  410.            or other informational purposes. 
  411.  
  412. 4.3.2 - Accepted but Incomplete 
  413.  
  414.     2INC - The message sent was incomplete in some way but enough 
  415.            information was received to pass it on.  This is most 
  416.            likely caused by a message length field being set longer 
  417.            than the actual data received. 
  418.  
  419.  
  420. 4.3.3 - Authentication Error 
  421.  
  422.     3BID - The ID sent is not on file or is blacklisted on this server. 
  423.     3BPW - Bad or missing Password data was detected. 
  424.     3BIP - The ID sent is configured to only be accepted from one IP 
  425.            address, which was not the one this message was from. 
  426.  
  427.  
  428. 4.3.4 - Protocol Error 
  429.   
  430.     4ERR - An invalid Message Code was received or a message was 
  431.            missing relavent parts or incorrect data. 
  432.     4TME - Too Many Errors, closing connection.  This will only 
  433.            occur during busy socket usage when the same socket 
  434.            experiences more than three errors in a row. 
  435.  
  436.  
  437. 4.3.5 - Duplicate Transmissions 
  438.  
  439.     5DUP - The message sent is exactly the same as the previous message 
  440.            from this subscriber.  This can be caused when a server 
  441.            response is lost in replying to an alarm message and the 
  442.            subscriber tries again.  A time limit for expiration of this 
  443.            feature can be set, or it can be disabled globally. 
  444.  
  445. 4.3.8 - Network/Busy Errors 
  446.  
  447.     8BSY - The server is too busy to handle the request now.  This 
  448.            could be performance related or by lack of sockets available. 
  449.            Every server must be capable of at least 128 concurrent 
  450.            sockets to be approved with SIIPAT. 
  451.     8HST - An error has occured with the host computer, thus making 
  452.            it impossible for this server to pass on the alarm information. 
  453.     8TIM - Timeout waiting for message from subscriber. 
  454.  
  455.  
  456. 4.3.9 - Status Inquiries 
  457.  
  458.     All Status Inquiries with the exception of 9999 return type MS 
  459.     messages.  The format of the returned message varies depending 
  460.     on what was requested.  NOTE: The subscriber units shall normally 
  461.     be configured to only accept status inquiries from a host which 
  462.     has an IP address that the subscriber unit is programmed to send 
  463.     messages to.  This prevents anyone from being able to ask a 
  464.     subscriber unit for it's status since only valid servers for that 
  465.     subscriber can request it.  Additionally, as proposed in the 
  466.     optional extensions, programming information can be relayed upon 
  467.     additional authentication of the server by the subscriber. 
  468.     Items marked with an **** require additional authentication. 
  469.     Items marked with an !!!! also require a secondary authentication. 
  470.  
  471.     9000 - Return subscriber name. 
  472.     9001 - Check Alarm/Restore Status. 
  473.     9002 - Check Open/Close Status. 
  474.     9003 - Sends temporary message to subscriber to be displayed on keypad 
  475.            (displayed until next keypad event occurs). 
  476.     9004 - Changes the permanent keypad message. 
  477.     9970 - Check Zone Status **** 
  478.     9971 - Check Partition Status **** 
  479.     9980 - Arms the system. **** !!!! 
  480.     9981 - Disarms the system. **** !!!! 
  481.     9982 - Bypass zones. **** !!!! 
  482.     9994 - Return Configuration Switches. ****  
  483.     9997 - Return IP address list. ****  
  484.     9998 - Change the IP address list. **** !!!! 
  485.     9999 - Ask the subscriber for it's capabilities.  These are returned 
  486.            in an ?? type message. 
  487.     9GMT - Asks subscriber for GMT offset. 
  488.     9PNG - Returns 'PING'. 
  489.     9TM? - Returns the current date/time at subscriber unit. 
  490.     9TMS - Sets the current date/time at subscriber unit. 
  491.     9TST - Returns 'TEST'. 
  492.  
  493.  
  494. 4.4 Illegal Commands 
  495.  
  496.    Should the subscriber issue an illegal command, the server may respond in 
  497.    one of the two following ways: 
  498.  
  499.     4TME Too Many Errors 
  500.     4ERR Invalid Message Code 
  501.  
  502.  
  503. 4.5 Timeouts 
  504.  
  505.    The SIIPAT server can optionally have an inactivity timeout 
  506.    implemented.  At the expiration of the allotted time, the server 
  507.    responds "8TIM Timeout" and closes the connection. 
  508.  
  509.  
  510. 5. Author 
  511.  
  512.    Steven M. Ryckman, Technical Supervisor 
  513.    Security Information & Management Systems, Inc. 
  514.    3112 Teakwood Lane - C.S.M. Division 
  515.    Plano, Texas   USA   75075 
  516.  
  517.    Voice: 972-964-7019 
  518.      Fax: 972-964-0902 
  519.    Email: sryckman@pobox.com 
  520.  
  521.  
  522. 6. Additional Information 
  523.  
  524.    For more information regarding SIIPAT, contact Steve Ryckman by one of 
  525.    the above listed methods (preferably by email).  A "home page" has 
  526.    also been established with additional information on SIIPAT at 
  527.    the following URL:  http://pobox.com/~sims.support/siipat.html 
  528.