SE514769C2 - Sätt och system för autentisering av en mobilkommunikationsanordning - Google Patents

Sätt och system för autentisering av en mobilkommunikationsanordning

Info

Publication number
SE514769C2
SE514769C2 SE9902746A SE9902746A SE514769C2 SE 514769 C2 SE514769 C2 SE 514769C2 SE 9902746 A SE9902746 A SE 9902746A SE 9902746 A SE9902746 A SE 9902746A SE 514769 C2 SE514769 C2 SE 514769C2
Authority
SE
Sweden
Prior art keywords
computer system
codeword
code message
code
computer
Prior art date
Application number
SE9902746A
Other languages
English (en)
Other versions
SE9902746L (sv
SE9902746D0 (sv
Inventor
Anders Haakans
Frank Reichert
Original Assignee
Ericsson Telefon Ab L M
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9902746A priority Critical patent/SE514769C2/sv
Publication of SE9902746D0 publication Critical patent/SE9902746D0/sv
Priority to CNB008130310A priority patent/CN1153501C/zh
Priority to EP00948441A priority patent/EP1195071A1/en
Priority to AU61922/00A priority patent/AU6192200A/en
Priority to PCT/SE2000/001418 priority patent/WO2001006805A1/en
Priority to JP2001510503A priority patent/JP2003504773A/ja
Publication of SE9902746L publication Critical patent/SE9902746L/sv
Publication of SE514769C2 publication Critical patent/SE514769C2/sv

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/58Message adaptation for wireless communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

F*; "CT- DÉÅL- /UV Detta och andra syften uppnås genom ett sätt och ett system anordnat för utförande av följande steg: (I) - Generering av ett kodord i datorsystemet, vilket kodord sänds till anordningen.
(II) - Mottagning av kodordet i anordningen.
(III) - Generering av ett kodmeddelande, i anordningen, baserat på det mottagna kodordet, varvid genereringen utförs på ett förutbestämt sätt.
(IV) - Sändning av kodmeddelandet fràn anordningen till datorsystemet.
(V) - Användning av kodordet för att kontrollera kodmeddelandet, samt (VI) - Sändning av data från datorsystemet till anordningen om kodmeddelandet verifieras av datorsystemet.
Före steg (V) sänder datorsystemet information (t.ex. kodordet och ett "you've got mail"-meddelande) som används i autentiseringsprocessen, men anordningen har inte åtkomst till data i datorsystemet. Företrädesvis genererar datorsystemet ett slumpmässigt kodord. När datorsystemet sänder kodordet ill anordningen i steg (I) använder datorsystemet företrädesvis en förutbestämd adress för anordningen. Genereringen av kodmeddelandet i steg (III) utförs företrädesvis genom kryptering av det mottagna kodordet med användning av en unik krypteringsnyckel hos anordningen. Om kodmeddelandet verifieras, steg (VI), är anordningens adress autentiserad för datasändning.
Vid en föredragen utföringsform sänder anordningen kodmeddelandet med användning av ett HTTP- (Hypertext Transfer Protocol) eller SMTP- (Simple Mail Transport Protocol) protokoll. Detta är fördelaktigt eftersom en brandvägg är konstruerad för att släppa igenom trafik med användning av sådana protokoll. Med andra ord minskas inte den genom brandväggen erhållna säkerheten. Vidare sänder datorsystemet m 514 'ïé9 J företrädesvis även data i steg (VI) till den adress från vilken anordningen sände det kodade meddelandet, varvid datorsystemet exempelvis extraherar mobilkommunikationsanordningens såndaradress och sänder data till denna adress. Denna adress kan skilja sig från den adress till vilken kodordet sändes.
Genom användning av ett sådant sätt och system kan flera olika typer av autentiserad datasåndning uppnås. Automatiserad vidarebefordran av data, såsom elektronisk post (e-post), underlättad inloggning på ett säkert nätverk, såsom en bank och många andra applikationer där autentiserad sändning erfordras eller är önskvärd, kan nämnas som exempel.
Användningen av det här beskrivna systemet och sättet underlättar även autentisering ur användarens synpunkt. Det föreligger sålunda ej något behov av generator för ett engångslösenord på systemets kundsida, eftersom det slumpmässiga kodordet genereras på systemets datorsystemsida.
KORT BESKRIVNING AV RITNINGARNA Föreliggande uppfinning kommer nu att beskrivas mera detaljerat med hjälp av icke begränsande exempel och med hänvisning till åtföljande ritningar, på vilka: - Fig. 1 är en schematisk vy av ett system för automatisk överföring av e-post eller andra data med användning av internet.
- Fig. 2 är en schematisk vy av ett system för automatisk överföring av e-post eller andra data med användning av ett paketdatanät.
- Fig. 3 är en schematisk vy av ett system för automatisk autentisering av en anordning över en internetanslutning.
- Fig. 4 är ett flödesschema som åskådliggör de utförda stegen vid autentisering av en mobilkommunikationsanordning och initiering av en datatransmission i systemet enligt fig. 1.
- Fig. Sa och 5b år flödesscheman som åskådliggör de utförda stegen vid autentisering av en mobilkommunikationsanordning och initiering av en datatransmission i systemet i fig. 2. 514 769 L! - Pig. 6 är ett flödesschema åskådliggörande a» U) :egen vid autentisering av en mobilkommunikationsanordning i systemet enligt fig. 3.
BESKRIVNING Av FÖREDRAGNA UTFÖRINGSFORMER I fig. 1 visas en schematisk vy av ett system för automatisk överföring av e-post eller andra data med användning av en icke visad internetanslutning. Systemet innefattar ett datorsystem 101, som i sin tur kan innefatta ett antal olika datorer och andra anordningar. Datorsystemet 101 i fig. 1 innefattar en server 103 för elektronisk post (e-post) ansluten till ett lokalområdesnät (LAN) 107 hos datorsystemet 101. Servern 103 är anordnad att hantera elektronisk post (e-post) i datorsystemet 101. Datorsystemet 101 innefattar även en autentiseringsserver 105, som likaså är ansluten till LAN 107 och till en kommunikationsanordning 108 för sändning av meddelanden utanför datorsystemet 101.
Hela datorsystemet 101 är exempelvis beläget innanför en brandvägg 109. Det enda sättet att föra in data från utanför brandväggen 109 till datorsystemet 101 är genom brandväggen 109.
FT Brandväggen 109 är anordnad att sl ppa igenom endast datatrafi er som anländer i ett HTTP- ell En mobilkommunikationsanordning 115 är belägen utanför brandväggen. Brandväggen är ansluten till i ternet 111, som i n sin tur är anslutet till ett antal leverantörer 113 av internettjänster (ISP-Internet Service Providers).
Leverantörerna 113 av internettjänster tillhandahåller ett gränssnitt via vilket olika anordningar, såsom mobilkommunikationsanordningen 115, kan anslutas till internet.
I fig. 4 åskådliggör ett flödesschema olika steg som utförs vid autentisering av en mobilkommunikationsanordning 115 och initiering av en datatransmission från datorsystemet 101 till mobilkommunikationsanordningen 115 i det i fig. 1 visade systemet.
Först förorsakar en händelse, såsom anländande av e-post till e- post-servern 103 hos datorsystemet 101, vilken e-post är 514- 769 b adresserad till en användare av anordningen 115, triggning av upprättande av en autentiserad transmission mot anordning 115 från datorsystemet 101, steg 401. Med andra ord är datorsystemet 101 anordnat att automatiskt överföra data, i detta fall elektronisk post, som finns i datorsystemet och som är avsedd för en kund som för närvarande är belägen utanför datorsystemet 101 och sålunda även utanför brandväggen 109.
Systemet 101 genererar därpå ett slumpartat kodord, steg 403.
Kodordet genereras av autentiseringsservern 105. Det av autentiseringsservern 105 genererade kodordet sänds via kommunikationsanordningen 108, exempelvis medelst sändning av ett SMS- (Short Message Service) meddelande till anordningen 115, steg 405. Autentiseringsservern använder en förutbestämd adress för användaren, i detta fall ett SMS-nummer.
Anordningen 115 mottager kodordet från datorsystemet 101, steg 407. Som svar på denna mottagning ansluter anordningen automatiskt till en internettjänstleverantör (ISP) 113, steg 409. När anordningen 115 ansluts till ISP 113 mottager den en internetprotokoll(IP)-adress från ISP 113, steg 411. Anordningen genererar även ett kodmeddelande baserat på det mottagna kodordet, steg 414.
När anordningen har mottagit en IP-adress, upprättas en e-post- server inuti anordningen, steg 413. E-post sänds därpå till autentiseringsservern 105 hos datorsystemet, steg 415. E-posten från anordningen 115 till autentiseringsservern 105 sänds via ISP 113, internet 111, genom brandväggen 109 och via LAN 107.
E-posten från anordningen 115 till autentiseringsservern 105 innefattar åtminstone kodmeddelandet. Kodmeddelandet genereras företrädesvis genom kryptering av det mottagna kodordet med användning av en unik krypteringsnyckel. I synnerhet genereras kodmeddelandet genom kryptering av kodordet tillsammans med en del av en krypteringsnyckel.
Vid en föredragen utföringsform sänds e-posten från anordningen till autentiseringsservern 105 med användning av ett SMTP- eller HTTP-protokoll eftersom brandväggen 109 är utförd att endast 7 O / 'l ...X r\ \ Ch släppa igenom sådan datatrafik. Brandväggen 109 kan sålunda upprätthålla en hög säkerhetsnivå. Företrädesvis används SMTP- protokollet, eftersom det endast kräver användning av ett uttag för anslutningen.
Därpå mottager autentiseringsservern kodmeddelandet från anordningen, steg 417. Kodordet extraheras därpå från den mottagna e-posten, vilket kan erfordra avkryptering om kodordet är krypterat, steg 419. Därpå sker kontroll av om det översända kodordet överensstämmer med det extraherade kodordet, steg 421.
Om det extraherade kodordet ej överensstämmer med det sända kodordet avslutas sessionen, steg 423. Vid en föredragen utföringsform kan emellertid datorsystemet 101 vara anordnat att fortsätta att försöka upprätta en autentiserad anslutning till anordningen 115 senare.
Om kodordet, vid extrahering, överensstämmer med det kodord som ursprungligen sändes till anordningen 115, vet autentiseringsservern att det rör sig om den rätta anordningen.
Autentiseringsservern vet nu vart data skall sändas, i detta exempel e-post. Autentiseringsservern 105 kopierar sålunda datat från e-post-servern och sänder e-posten till anordningen 115 med användning av anordningens IP~adress, steg 425. Det sända datat är företrädesvis krypterat med användning av en unik krypteringsnyckel hos anordningen 115.
I fig. 2 visas ett annat system för automatisk överföring av elektronisk post eller annan data, som använder paketdatatransmission. Det i fig. 2 visade systemet liknar det i fig. 1 visade. Istället för att använda en ISP 113 för sändning av data mellan datorsystemet 101 och anordningen 105 används emellertid ett paketdatanät 112. Internet kan naturligtvis användas för sändningar mellan datorsystemet 101 och paketdatanätet 112.
I fig. 5a visas ett flödesschema àskådliggörande stegen som utförs vid autentisering av en mobilkommunikationsanordning i systemet enligt fig. 2. Flödesschemat i fig. 5 liknar F 4 13:13 75.19 7 flödesschemat i fig. 4. Transmissionen frän anordningen 115 till datorsystemet 101 sker emellertid via paketdatanätet 112.
Eftersom i detta fall anordningen redan är ansluten till mobilnätet när kodordet sänds, kan även kodordet sändas till en förutbestämd adress hos anordningen med användning av paketdatanätet. Kodordet kan då överföras inbäddat i ett datapaket.
I fig. Sb visas ett flödesschema åskàdliggörande ytterligare ett sätt att autentisera en mobilkommunikationsanordning, som liknar den i samband med fig. Sa beskrivna metoden.
Skillnaden mellan flödesschemat i fig. Sa och flödesschemat i fig. Sb är att autentiseringsservern extraherar kodordet (steg 419 i fig. Sa), och jämför det med kodordet, och att autentiseringsservern extraherar kodmeddelandet (steg 418 i fig. 5b) och jämför det med ett självgenererat kodmeddelande med användning av samma kodmeddelandegenererande algoritm som anordningen.
Vid mottagning av kodordet genererar sålunda anordningen ett kodmeddelande med användning av kodordet som indata i en kodmeddelandegenererande algoritm, steg 414. Systemet använder därpå samma kodmeddelandegenererande algoritm som anordningen, steg 420 i ändamål att autentisera anordningen. Anordningen genererar kodmeddelandet, steg 414, under tidsintervallet mellan mottagningen av kodordet, steg 407, och transmissionen av e- posten, steg 415. Autentiseringsservern genererar kodmeddelandet, steg 420, under tidsintervallet mellan genereringen av kodordet, steg 403, och jämförelsen av kodmeddelandena, steg 421.
I fig. 3 visas en vy av ett system för automatisk autentisering av en anordning över en internetanslutning. Systemet kan likna systemet i fig. 1 eller 2. Det i fig. 3 visade systemet innefattar även en server 104 för finansiella transaktioner, som är ansluten till LAN 107. 7\ 534 7 9 8 I fig. 6 visas ett flödesschema äskàdliggörande stegen som utförs vid autentisering av anordningen 115 till datorsystemet 101 i systemet enligt fig. 3.
När en användare av anordningen 115 önskar autentiseras av något skäl, t.ex. om användaren önskar utföra finansiella transaktioner i servern 104 för finansiella transaktioner med användning av en säker anslutning, sänder användaren e-post från anordningen 115 till autentiseringsservern 105 med begäran om att bli autentiserad, steg 400. E-posten, som innefattar information identifierande användaren, såsom ett användar-ID, sänds via ISP 113, internet 111, genom brandväggen 109, och via LAN 107 till autentiseringsservern 105.
Datorsystemet 101 mottager begäran, steg 402. Som svar på denna begäran genererar autentiseringsservern 105 ett kodord, i synnerhet ett slumpmässigt kodord, steg 403. Systemet 101 sänder därpå kodordet via kommunikationsanordningen 108, t.ex. genom överföring av ett SMS-medelande, till anordningen 115, steg 405.
Datorsystemet sänder kodordet till en förutbestämd adress för anordningen 115. Datorsystemet 101 använder den mottagna identifieringsinformationen frän användaren tillsammans med en lagrad adresslista för att erhålla (den förutbestämda) adressen.
Vid en annan föredragen utföringsform sänds det slumpartade kodordet på internet till en server eller liknande, vilken server i sin tur sänder ett SMS-meddelande till anordningen 115.
Anordningen 115 mottager kodordet från datorsystemet 101, steg 407, och genererar ett kodmeddelande. Som svar pä denna mottagning sänder anordningen automatiskt en andra e-post, innehållande kodmoddelandet, till autentiseringsservern 105 hos datorsystemet, steg 415. Den andra e-posten från anordningen 115 till autentiseringsservern 105 sänds via ISP 113, internet 111, genom brandväggen 109, och via LAN 107.
Det bör anmärkas att, till skillnad från autentiseringsproceduren som beskrivs i samband med fig. 1 och fig. 4, anordningen 115 ej behöver upprätta en ny förbindelse till internet vid överföring av e-posten, som innefattar kodmeddelandet, eftersom en internetförbindelse redan har 514, “i upprättats vid sändning av den första e-posten i steg 400. Det är emellertid naturligtvis möjligt att låta anordningen anslutas till internet en andra gång vid mottagning av kodordet i steg 407 om detta skulle visa sig vara fördelaktigt.
E-posten från anordningen 115 till autentiseringsservern 105 innefattar åtminstone kodmeddelandet. Genereringen av kodmeddelandet sker företrädesvis genom användning av en unik krypteringsnyckel. I synnerhet genereras kodmeddelandet genom kryptering av kodordet och en del av krypteringsnyckeln.
I en föredragen utföringsform överförs e-postmeddelandena från anordningen 115 till autentiseringsservern 105 med användning av ett SMTP- eller HTTP-protokoll, eftersom brandväggen 109 är konstruerad att endast släppa igenom sådan datatrafik.
Brandväggen 109 kan sålunda vidmakthålla en hög säkerhetsgrad.
Företrädesvis används SMTP~protokollet eftersom det endast kräver användning av ett uttag för anslutningen.
Därpå mottager autentiseringsservern e-posten från anordningen, steg 417. Kodordet extraheras därpå från den mottagna e-posten, t.ex. genom extrahering och avkryptering av kodmeddelandet, steg 419. Därpå sker kontroll av om det översända kodordet överensstämmer med det mottagna kodordet, steg 421.
Om det extraherade kodordet ej överensstämmer med det sända kodordet avslutas sessionen, steg 423. Vid en föredragen utföringsform kan emellertid datorsystemet 101 vara anordnat att returnera ett meddelande till anordningen för att informera användaren av anordningen att åtkomst nekats, så att användaren kan försöka uppkoppling igen om användaren så önskar.
Om det extraherade kodordet överensstämmer med kodordet som ursprungligen sändes till anordningen 115, vet autentiseringsservern att det rör sig om rätt anordning. Kunden kan sålunda börja genomföra transaktioner i servern 104, steg 425.
Anordningen 115 kan vara en godtycklig typ av mobilkommunikationsanordning, som kan mottaga och sända data.
"J1 14, 759 /O Anordningen kan sålunda vara en mobiltelefon, en dator innefattande ett trådlöst modem eller en kombination därav, såsom en handburen dator innefattande en integrerad mobiltelefon. För att anordningen 115 skall kunna arbeta korrekt mäste den laddas med ett lämpligt program, som tillåter anordningen att kommunicera med användning av ovan beskrivna metod. De funktioner som krävs för att tillåta anordningen att arbeta enligt metoden kan naturligtvis implementeras i hårdvara.
Mjukvaru- eller hårdvarusupport för autentiseringsmetoden är likaså införd i datorsystemet.
Det i samband med fig. 3 och 6 beskrivna systemet kan även användas i andra typer av transaktioner än finansiella transaktioner. Sålunda är det möjligt att använda systemet i ett flertal tillämpningar där en snabb men säker autentisering av en anordning krävs. Exempel på sådana tillämpningar är bookmakin - transaktioner, biljettbokningstransaktioner, köp och försäljnin av varor etc.
I Appendix l-12 visas slutligen en datorprogramlista åskådliggörande en mjukvaruimplementering av olika steg. I Appendix 1-6 visas sålunda en programuppställning i C++språk av vissa procedursteg i datorsystemet. Som exempel avser "lumpio" i Appendix 5-6 kodning och avkodning. I Appendix 7-12 visas en uppställning av vissa procedursteg hos kunden eller anordningen. "pushnot" i Appendix 7-8 initierar exempelvis en uppkoppling vid mottagning av en SMS med användning av funktionen "DoConnect"; "client" i Appendix ll-12 använder funktionerna "lumpIO_fputs" och "lumpIO_fgets" för kryptering och avkryptering, och funktionen "send_file" för sändning av post.
Genom användning av här beskrivna sätt och system kan flera olika typer av autentiserad datasändning uppnås. Som exempel kan nämnas automatiserad överföring av data, såsom elektronisk post (e-post), underlättad inloggning på ett säkert nät, såsom en bank och många fler tillämpningar där autentisering krävs eller är önskvärd. 01 _) __r~ '<1 (ï\ ß /I /*APPENDIX I: pat_smtp.h*/ íiifndeflint static char *rcsid_notifier__h = "$Header$"; #endíf #ifdef UNIX # define DEFAULT_LOG_FILE "/home/lmjm/pat_smtp/ log" # define DEFAULT_CONF1G_F ILE "/home/janko/pat_smtp/pat_smtp.conf“' # define DEFAULT_ACCOUNTS_FILE "/home/janko/pat_smtp/accounts" # define DEFAULT_QUEUE__DIR "/home/janko/pat_smtp/queue" # define DEFAULT_SERVER_VERSION "PAT Server l.0beta" # define MAX_ACCOUNTS 1000 #endíf #ifdef WIN32 # define DEFAULT__LOG_FILE "c/pat/logfilexxt" # define DEFAULT_CONFIG_FILE "c:/pat/pat_smtp.conf“ # define DEFAULT_ACCOUNTS_FILE "cz/pat/accountslxt" # define DEFAULT_QUEUE_DIR "c/pat/queue" # define DEFAULT_SERVER_VERSION "PAT Server l.0beta" # define MAX_ACCOUNTS 1000 #endif #define CLIENT_DOM "evvi" #define BIG_BUF 512 #define bool char #define true l #deñne false 0 extem bool smtp_listener; extem bool daemon; extem int verbose; extem char *config_file; extem char *queue_dir; extem char *server_versíon; extem char *program_name; extem int program _pid; void read_config_file(); i/*APPENDIX 2: pat_smtp.cpp *f/ /* SMTP listener * Can run either as a permanently running process. under inetd (on UNlX) orjust * from the command line.
Fk * This SMTP server expects to get either: * [[ Step (a) is NOT needed - messages will get from * the EVO server into the right place behind my back * a) "real" email from the Internet which must be sent * on to a PAT client (on EPOC) - in which case it should queue the email to be sent AND queue an SMS to be sent to the user which will contain the token used to authenticate them -X- -X- *ll * * b) "PAT" email from a PAT client (on EPOC) - this begins with * an initial "fake" SMTP incoming message ofjust: * HELO * MAIL FROMi * RCPT TO: * RCPT TO: * TURN * This is used to autlienticate the PAT client. * lfthis is successful then \\e send the pending emails and * a 'TURN so that the client can send in an) pending emails.
* Once the client lias sent an_\ einails it will end with a QlílT.
* $Log$ *ll .fiifndeflint static char *rcsid = "$Header$"; #endif iíinclude #include #ifdef UNIX # include # include # include # include # include # include # include # include # include # include /* For getopt() */ extem char *optarg; extern int optind; #endif #ifdef WlN32 L) l ...x 17:.. w (JN ffi l # include # include # include # include # include # include # include # include # include “win_support.h" #endif #include #include #include "pat_smtp.h" #include "netio.h" #include "keylib/keylib.h" #inc|ude "log.h" #include "base64.h" #include "cryptsup.h" #include "lumpIO.h" #include "hex.h" char *program_name = "pat_smtp"; int program_pid; bool smtp_listener = true; bool daemon = true; int verbose = 2; u_short smtp_port = 25; int max_listen_backlog = 5; int pulse_time = 5; /* break out of the accept loop every 5 seconds */ int keep_looping = l; int smtp_timeout = 120; /* how long to wait for input */ int skip_authentication = 1; #define MAX_DB_FIELDLEN 100 char user[ MAX_DB_FIELDLEN ], password[ MAX_DB_FIELDLEN ], evokey[ MAX_DB_FIELDLEN ], randnum[ MAX_DB_FIELDLEN ], dbtime[ MAX_DB_FIELDLEN ]; #define MAX_VERSION 100 char client_version[ MAX_VERSION ]; bool authenticated = false; void main( int argc, char **argv ); void parse_args( int argc, char **argv ); void become_daemon(); f.
...S .ßh s\'3 für. vi) .fiifdef LJNIX void process__tinder_inetd(á); char *get__m_v_login(); #endif void process_smtp( Sock io ); bool process_state( int state. NET n, char *bufi char *addr ); void process_queue_for_user( char *user_ NET n ); bool process_queue_file( char *qfilenamta NET n )1 bool filena1ne_matches( char *filename, char *user ); void to_upper( char *str 1); int mail_rcpt_addr( char *bufi char *addr ): íidefine TMPñIN 0 iidefinc TMP_OUT l FILE *create_tinp( int where. char *tmp, char *user 0): int read_smtp_reply'( NET n, char *bufi int bufsiz ); void init_winsock(); void rename_in_tempfile( char *tmp_name ); /* Does the SMTP repl) mean OK *f íidefine REPLY_OK(r) ((200 <= (r)) && ((r) <= 299)) /* States that the server is in *f íidefine ST_INIT 0 iidefine ST_HELO 1 if-"define ST_MAIL_CLIENT_VERS 2 ššdefine ST_RCPT_SERVER_\FERS 3 :tdefine ST_RC PQTOKEN 4 fidefinc ST_MAIL_OUT 5 äidefine ST_RCPT_OUT 6 iídefine ST_DATA_OUT 7 #define ST_MAIL_IN 8 #define ST_RCPT_IN 9 âfdefine ST_DATA_IN 10 void main(' int argc. char ”argv ) t frifdef wiNsz extern int _fmode; _fmode = _O_BINARY: #endif */ if( verbose ){ netio_show( verbose ); log_to_tty = l; } program_pid = getpidO; parse_args( argc, argv ); #ifdef UNIX 514 769 15 if( ! smtp_listener ){ to = get_my_|ogin(); (void)queue_request(); exit( O ); } if( daemon ){ becomevdaemonO; exit( 0 ); } process_under_inetd(); #endif itifdef WIN32 become_daemon(): #endif } void parse_args( int argc, char **argv ) { int c; char **nargv; iätifdef UNIX while( (c = getopt( argc, argv, "avkfidiz" )) != -1 ){ #endif/* UNIX */ #ifdef WIN32 while( --argc > 0 ){ char *arg = *++argv; char *optarg; c = *arg; if( c = '-' c = arg[ l ]; else { /* Not an argument - make nargv point at all the rest */ nargv = argv; retum; } switch( c ){ case '1': optarg = *argv++; } #endif/* WIN32 */ switch( c ){ case 'v': verbose++; break; case 'a': skip__authentication = false; /* Must authenticate user */ break; case 'l': log_file = optarg; if( *logwñle Y= '/' ){ fprintfl stderr, "logfile name must begin with "in" ): exit( l ); l break; case 'f': config_file = optarg; if( *config_file != '/' ){ fprintf( stderr, "config filename must begin with An" 1 exit( l ): l break: íiifdef UNIX case 'd': /* Run as a stand-alone daemon *i smtp_listener = true; daemon = true; break; case 'i': f* Run under inetd *f smtp_listener = true: daemon = false; break: fiendif default: fprintfl stdern "Usagez %s v [-l logfile] l-fconligíile] l-d--ii-c Froinl' n". program_name ): fprintfl stderr. " -v verbose inodem" l: fprintf( stdern " -l log to this Filem" ); fprintfl stderr, " -f use this configuration fileän" l; #ifdef [JNIX fprintf( stderr. " -d run as stand-alone SNITP daemomn" ): fprintfl stderr. " -i run under inetd\n" ): ifendif fprintf( stderr, " -a authenticatedm" ): exit( 0 ); } l if( verbose ) log_to_tty = l; } void become_daemon() { Sock sock, msgsock; struct sockaddr_in server; fd_set ready; struct timeval to; int on; read_config_file(); 514 769 i? logit( INFOI, "smtp daemon starting" ); #ifdef WIN32 init_winsock(); #endif if( (sock = socket( AF_INET, SOCK_STREAM, 0 )) < 0 ) logit( FATAL, "Cannot create stream socket" ); server.sin_famíly = AF_INET; server.sin_addr.s_addr = hton|( INADDR_ANY ); server.sin_por1 = htons( smtp_port ); on = 1; if( setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, (char *)(&on), sizeof( on ) ) < 0 ) logit( WARNING, "Cannot tum on SO_REUSEADDR" ); íf( bínd( sock, (struct sockaddr *)&server, sizeof( server ) ) < O ) logit( FATAL, "Cannot bind to SMTP port %d", smtp_por1 ); listen( sock, max_lísten_backlog ); while( keep_looping ){ logit( INFO, "loop waiting for SMTP connections" ); FD_ZERO( &ready ); FD_SET( sock, &ready ); to.tv_sec = pu|se_time; to.tv_usec = 0; if( select( sock + 1, &ready, 0, 0, &to ) < 0 ){ logit( WARNING, "select error" ); continue; } if( FD__ISSET( sock, &ready ) ){ if( (msgsock = accept( sock, (struct sockaddr *)0, (int *)0 )) < 0 ) logit( WARNING, "failed to accept" ); process_smtp( msgsock ); } } } void process_smtp( Sock io ) { NET n; int state = ST_INIT; char bufl BIG_BUF ]; char tmpl[ BIG_BUF ]; char tmp2[ BIG_BUF ]; char rcpt_to[ BIG_BUF ]; char mail_from[ BIG_BUF ]; char tmp_name[ BIG_BUF ]; FILE *tmp_f; struct sockaddr_in remoteßaddr: int addrlen = sizeof( remote__addr i. struct hostent *hp: char remote_host[ BIG_BUF l; logit( INFO. "process_smtp" 4): /* Figure out who is calling me */ if( getpeernanie( io, (struct sockaddr *)&remote_addr. &addrlen ) < O ){ logit( VVARNING. "Cannot find remote host details" ); strcpy( remote_host. "unknown" )L } else { hp = gethostbyaddr( (char *)&(remote_addr.sin_addr). sizeof( struct in_addr ). AFJNET ): if( hp ) (void)strncpy( remote_host_ hp->h_name, sizeof( remote_host ) l: else (void)strncpy( remote_host_ inet_ntoa( remote_addr.sin_addr ), sizeofl remote_host ) ); r login INFOI. "procesgsintp front %s". &remote_liost[ O l ): if( (n = nopen( io )) < 0 i) logit( FATAL. "cannot use connection for smtp traffic" ): /* Talk SMTP with the remote client *f nprintf( n, "220 ME PA'I“_Sl\1TP\r\n" ): while( true ){ bool rcpt_to_cmd, mail_from_cmd; rcpt_to__cmd = mail_from_cmd = false; if( timed_read_line( n. buf. sizeof( buf i). smtp_timeout ) < 0 ) break: tmpl[ 0 ] = tmp2[ O ] = '\0'; sscanf( buf, "%[^ \r\n]%*[ \t]°/0[^\n\r]", tmpl, tmp2 ); to_upper( tmpl ); logit( INFO, "cmdz %s", tmpl ); if( strcmp( tmpl. "HELP" == O ){ nprintf( n, "2l4-Commands supported:\r\n" ); nprintf( n, "213 HELO MAIL RCPT DATA TURN QUIT HELP\r\n" ); continue; } else if( strcmp( tmpl, "HELO" ) == 0 ){ state = ST_HELO; if( ! process_state( state, n, buf, "" ) ) break; continue; 514 7:3 I°ï \.. } else if( strcmp( tmpl. "MAIL" )== 0 ){ if( ! mail_rcpt_addr( buf, mail_from ) ){ nprintf( n, "500 Bad MAIL command\r\n" ); continue; } if( state == ST_HELO ) state = ST_MAIL_CLIENT_VERS; else if( state == ST_MAIL_IN ){ state = ST_MAIL_IN; /* A tad redundant! */ if( (tmp_f = create_tmp( TMP_IN, tmp_name, user )) == NULL ){ nprintf( n, "500 Cannot create tmp files\r\n" ); break; } } else { nprintf( n, "501 Unexpected MAIL command\r\n" ); continue; } if( ! process_state( state, n, buf, mail_from ) ) break; continue; } else if( strcmp( tmpl, "RCPT" )== 0 ){ if( l mail_rcpt_addr( buf, rcpt_to ) ){ nprintf( n, "500 Bad RCPT cominand\r\n" ); continue; } if( state == ST_MAIL__CLIENT_VERS ) state = ST_RCPT_SERVER_VERS; else if( state == ST_RCPT_SERVER_VERS ) state = ST_RCPT__TOKEN; else if( state = ST_MAIL_IN ){ state = ST_RCPT_IN; } else { nprintf( n, "50l Unexpected RCPT command\r\n" ); continue; } if( ! process_state( state, n, buf, rcpt_to ) ) break; continue; } else if( strcmp(tmp1, "DATA" ) == 0 ){ bool bad_end = false; char *buf_save; state = ST_MAIL_IN; /* Await more mail after this */ struct lumpIO *f = lumplO_init( key, iv, tmp_f ); nprintf( n, "354 Enter message, ending with \".\" on a line by itselflr\n" ); while( I ){ \_J xš) i - . 5 4 ß» 20 if( timed_read_line( n. butfl sizeofl buf). smtpjiineotit ') < O y; bad_end = true: break: l if( strcmp( buf, ".\r\n" ) == 0 ) break; /* lfthe line isjust skip the first */ if( strcmp( buf. "..\r\n" )== 0 ) buf_save = &buf[ l l; else buf_save = buf; luxnplO_fpt1ts( buf_save. f); f itI bad_end ) break: fclose( tmp_f); rename_in_ternpfile( tmp_name 7); nprintf( n. "250 OK\r\n" ); connnue; l l else ifl strcmp( tmpl. "TURN" l f i )-1 ifl state == ST_itp'P'li_l'OKEN ){ state = ST_lvlAlL_OUT: nprintfl n. "250 turning (sendmg mail to client)\r\n" l: /* Fall thru to the end ofthe main ifstateinent *i else l nprintf( n. "S01 Unexpected TURN comxna|1d=~r*n" ): continue: i l l else if( strcmp( tmpl, "QUIT" == 0 ){ nprintf( n. "221 closing\r\n" ); break; l else { nprintf( n. "S00 Command unrecognized\r\n" ); continue; l if( state == ST_MAIL_OUT ){ int reply; process_queue_for_user( user, n ); state = ST_MAIL_IN; nprintf( n, "TURN\r\n" ); if( (reply = read__smtp_reply( n, buf, sizeof( buf) )) < O ) break; if( REPLY_OK( reply ) ){ continue; } /* client has no email to send to me! */ nprintf( n, "QUl"f\r\n" ); 514 7-69 break; } nprintf( n, "200 So long and thanks for all the fish.\r\n" ); nc|ose( n ); logit( lNFO, "end of process_smtp" ); } bool process_state( int state, NET n, char *buf, char *addr ) l if( state == ST_HELO ){ nprintf( n, "250 \vatcha!\r\n" ); return true; } if( state == ST_MAIL_CLIENT_VERS ){ strcpy( client_version, addr ); authenticated = false; nprintf( n, "250 thanks for the client version:

Claims (20)

“ïO PATENTKRAV
1. Sätt att autentisera en mobilanordning för att sända data från ett datorsystem, innefattande åtminstone en dator, till mobilanordningen, kännetecknat av stegen att: (I) - generera ett kodord i datorsystemet, och sända kodordet till en förutbestämd adress för mobilanordningen, (II) - mottaga kodordet i mobilanordningen, (III) - generera, på ett förutbestämt sätt, ett kodmeddelande baserat på det mottagna kodordet, (IV) - sända kodmeddelandet från mobilanordningen till datorsystemet, (V) - använda kodordet för att kontrollera kodmeddelandet, (VI) - sända data från datorsystemet till mobilanordningen om kodmeddelandet är verifierat av datorsystemet.
2. Sätt enligt krav l, kännetecknat av att steg (III) innefattar steget att kryptera det mottagna kodordet med användning av en unik krypteringsnyckel. 1
3. Sätt enligt något av krav I-2, kännetecknat av steget att initiera autentiseringen från mobilanordningen genom sändning av en autentiseringsbegäran till datorsystemet.
4. , Sätt enligt något av krav 1-2, kännetecknat av steget att initiera autentiseringen från datorsystemet i ändamål att vidarebefordra data, såsom e-post, till mobilanordningen.
5. Sätt enligt krav 4, kännetecknat av stegen (I)-(VI) utförs automatiskt.
6. Sätt enligt något av krav 1-5, kännetecknat av att i steg (IV) kodmeddelandet sänds tillsammans med en sändaradress och i samband med steg (V) och steg (VI) extraherar denna sändaradress och sänder, i steg (VI), data till denna adress. 514 769 q:
7. Sätt enligt något av krav 1-6, kännetecknat av att ett HTTP- (Hypertext Transfer Protocol) eller SMTP- (Simple Mail Transport Protocol) protokoll används i kodmeddelandeöverföringen enligt steg (IV).
8. Sätt enligt något av krav 1-7, kännetecknat av att ett slumpmässigt kodord genereras i steg (I).
9. System, innefattande en mobilkommunikationsanordning och ett datorsystem innefattande åtminstone en dator, för autentisering av mobilanordningen för datasändning frán datorsystemet till mobilanordningen, kännetecknat av att: datorsystemet innefattar - medel för generering av ett kodord och för sändning av kodordet till en förutbestämd adress hos anordningen, - medel som använder kodordet för att kontrollera ett kodmeddelande, samt - medel anordnade för att sända data från datorsystemet till anordningen om kodmeddelandet verifieras av datorsystemet, vilken mobilanordning innefattar - medel för mottagning av kodordet, - medel för generering, på ett förbestämt sätt, av ett kodmeddelande baserat på det mottagna kodordet, samt - medel för sändning av kodmeddelandet till datorsystemet.
10. System enligt krav 9, kännetecknat av att nämnda medel för generering av kodmeddelandet innefattar medel för kryptering av kodordet med användning av en unik krypteringsnyckel.
11. System enligt något av krav 9-10, kännetecknat av att anordningen innefattar medel för initiering av autentiseringsproceduren.
12. System enligt något av krav 9-11, kännetecknat av att datorsystemet innefattar medel för automatisk initiering av autentiseringsproceduren om datorsystemet mottager data, som skall sändas till anordningen.
13. System enligt något av krav 9-12, kännetecknat av att medlen för sändning av kodmeddelandet till datorsystemet använder HTTP- (Hypertext Transfer Protocol) eller SMTP- (Simple Mail Transport Procotol) protokoll,
14. System enligt något av krav 9-13, kännetecknat av att datorsystemet innefattar medel för slumpvis generering av kodordet.
15. I ett system, för autentisering av en mobilanordning för datasändning från ett datorsystem, innefattande - ett datorsystem med: medel för generering av ett kodord och för sändning av kodordet till en förutbestämd adress hos anordningen; medel, utnyttjande kodordet för att kontrollera ett kodmeddelande; och medel anordnade att sända data till anordningen om kodmeddelandet verifieras av datorsystemet, en mobilkommunikationsanordning kännetecknad av ~ medel för mottagning av kodordet, - medel för generering på ett förutbestämt sätt av ett kodmeddelande baserat på det mottagna kodordet, samt - medel för sändning av kodmeddelandet till datorsystemet.
16. T ett system, för autentisering av en mobilanordning för datasändning från ett datorsystem, innefattande en mobilkommunikationsanordning uppvisande: medel för mottagning av ett kodord; medel för generering på ett förutbestämt sätt av ett kodmeddelande baserat pä det mottagna kodordet; samt medel för sändning av kodmeddelandet till datorsystemet, ett datorsystem innefattande åtminstone en dator, kännetecknat av - medel för generering av kodordet och för sändning av kodordet till en förutbestämd adress hos anordningen, ~ medel som använder kodordet för att kontrollera kodmeddelandet, samt - medel anordnade att sända data från datorsystemet till anordningen om kodmeddelandet verifieras av datorsystemet.
17. Datorprogramprodukt för autentisering av en mobilanordning, innefattande datorläsbar kod för att bringa en mobilkommunikationsanordning att exekvera följande steg: 514 769 v: (I) - mottaga ett kodord och åtminstone temporärt lagra kodordet, (II) - generera på ett förutbestämt sätt ett kodmeddelande baserat på kodordet, (III) - sända kodmeddelandet från mobilanordningen till ett datorsystem för att autentiseras för datasändning från datorsystemet.
18. Datorprogramprodukt för autentisering av en mobilanordning, innefattande datorläsbar kod för att bringa en dator att exekvera följande steg: I (I) generera ett kodord, (II) initiera sändning av kodordet till en förutbestämd adress hos mobilanordningen, (III) mottaga ett kodmeddelande, (IV) använda kodordet att kontrollera kodmeddelandet, (V) initiera en datasändning till mobilanordningen om kodmeddelandet verifieras.
19. Datorprogramprodukt enligt krav 18, kännetecknad av att den innefattar datorläsbar kod för att bringa datorn att extrahera kodmeddelandets sändaradress, som mottages i steg (III), och att initiera en datasändning, i steg (V), till denna adress.
20. Datorprogramprodukt enligt något av krav 18-19, kännetecknad av att den innefattar datorläsbar kod för att bringa en dator att generera ett slumpmässigt kodord i steg (I).
SE9902746A 1999-07-16 1999-07-16 Sätt och system för autentisering av en mobilkommunikationsanordning SE514769C2 (sv)

Priority Applications (6)

Application Number Priority Date Filing Date Title
SE9902746A SE514769C2 (sv) 1999-07-16 1999-07-16 Sätt och system för autentisering av en mobilkommunikationsanordning
CNB008130310A CN1153501C (zh) 1999-07-16 2000-07-04 用于鉴别移动通信设备的方法和系统
EP00948441A EP1195071A1 (en) 1999-07-16 2000-07-04 A method and a system for authenticating a mobile communication device
AU61922/00A AU6192200A (en) 1999-07-16 2000-07-04 A method and a system for authenticating a mobile communication device
PCT/SE2000/001418 WO2001006805A1 (en) 1999-07-16 2000-07-04 A method and a system for authenticating a mobile communication device
JP2001510503A JP2003504773A (ja) 1999-07-16 2000-07-04 移動体通信装置を認証する方法とシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9902746A SE514769C2 (sv) 1999-07-16 1999-07-16 Sätt och system för autentisering av en mobilkommunikationsanordning

Publications (3)

Publication Number Publication Date
SE9902746D0 SE9902746D0 (sv) 1999-07-16
SE9902746L SE9902746L (sv) 2001-01-17
SE514769C2 true SE514769C2 (sv) 2001-04-23

Family

ID=20416536

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9902746A SE514769C2 (sv) 1999-07-16 1999-07-16 Sätt och system för autentisering av en mobilkommunikationsanordning

Country Status (6)

Country Link
EP (1) EP1195071A1 (sv)
JP (1) JP2003504773A (sv)
CN (1) CN1153501C (sv)
AU (1) AU6192200A (sv)
SE (1) SE514769C2 (sv)
WO (1) WO2001006805A1 (sv)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2842055B1 (fr) * 2002-07-05 2004-12-24 Nortel Networks Ltd Procede pour controler l'acces a un systeme cellulaire de radiocommunication a travers un reseau local sans fil, et organe de controle pour la mise en oeuvre du procede
US20070093259A1 (en) * 2005-10-26 2007-04-26 Hyatt Edward C Methods, systems, and computer program products for secured access to list server information via SMS messaging
US8943560B2 (en) 2008-05-28 2015-01-27 Microsoft Corporation Techniques to provision and manage a digital telephone to authenticate with a network
CN108920629B (zh) * 2018-06-29 2021-10-26 郑州云海信息技术有限公司 一种文件系统的acl权限设置方法、装置、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE503752C2 (sv) * 1995-08-30 1996-08-26 Sendit Ab System och värdanordning för överföring av elektronisk post över ett mobiltelenät
US5699428A (en) * 1996-01-16 1997-12-16 Symantec Corporation System for automatic decryption of file data on a per-use basis and automatic re-encryption within context of multi-threaded operating system under which applications run in real-time
US5736932A (en) * 1996-07-03 1998-04-07 At&T Corp Security for controlled access systems
JPH10215488A (ja) * 1997-01-31 1998-08-11 Nec Corp 移動無線システムにおけるホストアクセス方法
CA2297969A1 (en) * 1997-07-30 1999-02-11 Visto Corporation System and method for globally and securely accessing unified information in a computer network

Also Published As

Publication number Publication date
EP1195071A1 (en) 2002-04-10
CN1375173A (zh) 2002-10-16
SE9902746L (sv) 2001-01-17
AU6192200A (en) 2001-02-05
SE9902746D0 (sv) 1999-07-16
JP2003504773A (ja) 2003-02-04
CN1153501C (zh) 2004-06-09
WO2001006805A1 (en) 2001-01-25

Similar Documents

Publication Publication Date Title
Andy et al. Attack scenarios and security analysis of MQTT communication protocol in IoT system
CN101390064B (zh) 利用嵌入的认证信息防止网络重置拒绝服务攻击
CN1954545A (zh) 利用tcp认证ip源地址
CN111183619B (zh) 数据发送、设备连接方法、装置和系统
US20070050630A1 (en) Authentication method and system for asynchronous eventing over the internet
EP1764975A1 (en) Distributed authentication functionality
CN101789947A (zh) 防范http post泛洪攻击的方法及防火墙
US7747694B2 (en) Low latency and assured delivery using HTTP
EP3375133B1 (fr) Procede de securisation et d&#39;authentification d&#39;une telecommunication
JP2012034396A (ja) 通信ネットワーク内の電子メール・スパムおよびウイルスの配布を電子メール・メッセージの発信元の認証によって低減する方法および装置
CN100541437C (zh) 防止网络重置拒绝服务攻击
SE514769C2 (sv) Sätt och system för autentisering av en mobilkommunikationsanordning
WO2007147031A2 (en) Push type communications system
CN101167331B (zh) 传输网络事件日志协议报文的方法、系统和装置
EP3629629B1 (fr) Procédé de gestion d&#39;itinérance par transfert multi-réseaux
WO2023151445A1 (zh) 信息处理方法、网关和通信系统
US9641533B2 (en) System and method for trusted pair security
CN105306458B (zh) 基于网络接入安全设备的认证方法及装置
Abdulmohsin Design and implementation a server receiving data in both forms TCP and UDP through the same port and its impact on the network performance
Blundo et al. Certified email: Design and implementation of a new optimistic protocol
Avenido et al. Interoperable system with authentication and authorization for IoT
CN108400985A (zh) 一种实现https请求精准侦测劫持的方法
CN112769626B (zh) 安全多链路加密代理的方法及系统
Thomas On the problem of signature authentication for network mail
Leshchenko et al. Model of a Subsystem for Securing E-Mail Against Loss using Mail Transport Agents based on Containerized Environments

Legal Events

Date Code Title Description
NUG Patent has lapsed