Gray Girling
(Tailored Curriculum Vitae on request: Tel:
01223 561817, Email: cgg@cantab.net)
Personal details:
Dr C Gray Girling, married, two children
Address: Fulbourn, Cambridge, UK
Web: http://www.gdkc.homeip.net/work/
| Gray
is an experienced and well-regarded computing system designer and a
network security researcher who has worked at its cutting edge.
He is versatile and flexible - as happy writing embedded C
software
near to the software/hardware boundary as specifying protocols or
creating
distributed security architectures. Experienced at providing
constructive
criticism he enjoys any mix of academic supervision & review,
design,
documentation and programming. With an enquiring nature Gray is always
interested
in applying new technology and methods. A friendly and positive
attitude
makes him an excellent team player who also has the capacity to work
independently. |
Education:
Cambridge University, Ph.D. in Computer Science (Authentication in
Computer networks)
Imperial College of Science and Technology B.Sc.(Eng) in Computer
Science (2.1)
Professional status:
Chartered Engineer (C.Eng.)
Chartered IT Professional (CITP)
Member of British Computer Society (MBCS)
Associate of City and Guilds Institute (ACGI)
Areas of expertise (these are summarized
below the following Employment section
):
Software Engineering (System,
Embedded
& Application programming)
Computer system security
Project management
LAN and WAN networking,
protocol design and implementation
Hardware design
Security and communications
(OSI) related standardization
Open Distributed Processing
standardization
Formal requirements specification
Academic
Quick Summary of Recent Employment
Solarflare Communications
- User/kernel mode TCP/IP stack control plane
- Configuration system for user/kernel mode TCP/IP stack
- Windows driver course
- Test case execution software infrastructure
- Security review of user-mode TCP/IP stack
- 10Gb/s Network Interface Card (NIC) management protocols
- Created new interpreted language for utilities
- Various utilities
- Solarflare NIC test cases
Conexant
- Principle maintainer of embedded O/S used for Conexant's ADSL silicon
- Embedded O/S feature development
- Technical management of external port of code-base to VxWorks
- Technical lead in external port of code-base to Windows CE
- Teacher of software-porting course
- Technology-transfer of O/S to Indian contractors
AT&T Research
- PhD examiner
- PhD and BA supervisor
- IP quality of service Multiprotocol Label Switching (MPLS) gateway to Asynchronous Transmission Mode (ATM) network
- Linux ATM network driver
- Real-time embedded operating system main author and maintainer
- Low-power embedded (mostly off) pico-radio distributed system design/implementation and maintenance
- Web CGI interfaces
- Prolog-like language for pico-radio device management
- Driver for ATM controller in embedded device
- Embedded operating system monitor ROMs
- Remote debugging servers and clients
- TCP/IP protocol stack and various protocols for embedded system
- Network and embedded operating system maintenance and documentation
Employment:
Solarflare Communications/
Level 5 Ltd (from Jan 2005)
Designer
and implementer of the
control plane for the "onload" (shared
user/kernel mode) accelerated TCP/IP protocol stack provided to support Solarflare ethernet controllers.
This was a multi-platform modular
revision of a previous ad-hoc implementation that noticably reduced
maintenance requirements. The stack switches, as infrequently as
possible, between user-mode and kernel-mode executoin - the main
technical challenge was to minimise any additional switching.
Co-designer
and Implementer of a multi-platform (Linux, Windows, Solaris)
configuration utility
used to provide runtime per-application "onload" acceleration
parameterization.
Attended
OSR course "Writing WDM Kernel Mode Drivers" and provided control plane
and configuration support to "online" over Windows NDIS driver.
Packaged "onload" interface for the Solarflare iScsi driver.
Specified new architecture for Solarflare drivers for use on Windows
and Linux.
Author of a
security
review of the "onload" architecture.
The review summarized a number of
recommendations and defined relevant work items to improve software
integrity.
Designer and maintainer of the
test infrastructure used in
Solarflare to define test cases & their testing environment and to
create and execute compound test cases scheduled in a number of
different ways.
Over one thousand test cases are now assembled in a
single utility "snapper" and their execution in a regression suite is
one of the most significant outputs of the Cambridge software team.
It is used thousands of times daily. The extensible
infrastructure flexibly supports tests that can use a number of different
interfaces provided at specific test points. The way the
interfaces are specified, in stacked implementations, is interpreted at
run time so that the same test cases can be used in a wide variety of
different test rigs.
Specified
requirements for
management protocol implementation in Solarflare's new "Siena" 10G/s Ethernet NIC.
Implementer and tester of the DTMF's Network Controller -
Sideband Interface (NC-SI)
NIC management protocol which executes in an
embedded MIPS processor (both client and server side).
Designer and implementer of a simple closure-based
interpreted
programming language "FTL" aimed at providing script-level access to C
APIs.
This language was embedded into a number of command line
utilities and has since been released from the code base under its own
BSD license.
Implementer
of
utilitiesto configure the "onload" control plane,
to
access a wide variety of "virtual channel" implementation details at
run time,
to retrieve and print out live NIC hardware state and
registers,
to debug the embedded Management CPU (MCPU), and
to exercise NC-SI
implementations.
Implementer of various
test casesreception
functionality, hardware integrity, MCPU debug, NC-SI protocol, NIC
register specification checking.
Conexant/
GlobespanVirata (from Jul 2002)
Software activities at Conexant all involve direct interaction with
licensees and internal staff through a web-based defect tracking system, use
of a source control system (CVS), software development in the context of ISO
9001 procedures, and relatively rigid target specification and review
management.
Primary maintainer of
the embedded operating system at the heart of Conexant's line of ADSL silicon.
The "Quantum" kernel for Integrated
Systems on Silicon software
typically operates on an ARM in a dual-processor (master-slave) configuration.
Some involvement with a port of the abstraction layer to a MIPS-based hardware
base, to a Linux kernel environment, and to a emulated ARM simulated hardware
base.
Operating system development through consensual local "interest group"
meetings.
Implemented process-priority-inheritance-from-message-priority for
better performance of QoS (Quality of Service) streams in the protocol stack.
Implemented an alternative "interrupt" abstraction interface to
allow gradual migration from legacy scheme to one involving process-based
servicing, to reduce processor interrupt latency and to facilitate better
control of QoS. Provided a process "service class" abstraction in
Quantum to represent priorities and their alternatives.
Technical management of (Russian) contractors providing a port of Conexant's operating system and utilities to the "VxWorks" embedded kernel.
Technical lead
in the multi-national team that produced a port of Conexant's
operating system and utilities to the Windows CE.Net operating system
(version 4.2).
This
port
subsequently became a product. This port was the frist time the
software had been used over a kernel with dynamic page mapping, and
several intersting challenges were succesfully addressed.
Extended an embedded O/S system-object database to incorporate the limited
multiple-inheritance of object attributes.
All
named objects in Quantum (such as tasks, semaphores, interfaces) have a
set of associated attributes - this enabled the composition of objects
from several more basic ones.
Developed an upwards compatible
stream-based inter-process communication interface that can be used in operating systems using memory protection domains.
Author and presenter of the central contribution for a set of courses about
porting Conexant software to other operating systems for external users.
Cotares Ltd (from Apr to Jul 2002)
Involved, as one of the founders, with the set-up of this consulting and
research company specializing in wireless networks and vehicle information
systems. (Accepted a position elsewhere just prior its becoming a limited
company.)
AT&T Laboratories Cambridge/
Olivetti and Oracle Research Laboratory/
Olivetti Research Laboratory (from Sep 1994 to Apr 2002)
PhD examiner of distributed media streams and storage project (using Olivetti "ATMOS" hardware and software) .
Security PhD supervisor contributing to a series (2) of PhDs on Location Information
security (over the period): one concerning anonymity within a location sensing
network and the other concerning location information confidentiality beyond
such a network.
4th year
B.A. supervisor of a project involving the pragmatic use of
existing tools for the construction of a secure voice-over-IP system.
Initial design of Muti-Protocol Label Switching
(MPLS) network gateway to "Ethernet
Virtual Circuits" using an Intel IXP 1200 processor using Columbia
University's "netbind" software (involves ARM Linux).
Consumer broadband - Internet TV to home - project. This included writing a
Linux ATM network driver and substantially
improving an Ethernet one.
Liaised with
AT&T Labs in Florham Park, New Jersey - port Linux to Banyan (IDT 79RC32355)/Datapath
ATM switch. The Banyan chip was commissioned for this project.
"EEK"
real-time embedded operating system (RTOS) design & implementation (C/assembler)
including portable kernel, memory management, streams, accurate timer
service, event mechanism, portable interrupt mechanism; documentation
and user support, ports to Toshiba TLCS microprocessor and ARM and strong-ARM
hardware platforms. Development environment creation, including the system specification tool.
This
operating system and its development environment was used by a number
of research projects at AT&T including the following.
Leader of a small team implementing
Prototype Embedded Network (PEN) pico-radio
network systems - low power ad-hoc networking with no "base" station
- design & implementation (in C) of protocols - all in "EEK".
Web CGI interface to daily sensor network readings compiled by PEN nodes
(HTML/shell /expect/perl scripts & C).
"Quiver" compact
Prolog-like language design, specification and implementation
(in C) for program and data migration between embedded computer nodes
+ LINDA implementation for event communication. Ports to Linux, ARM
embedded system and Toshiba microcontroller.
Design and implementation (in C) of Linux Ethernet (ATM LAN Emulation)
driver for Virata ATM protocol processor Network Interface Card (NIC).
Monitor ROMs (c.f. "BIOS") for various ARM-based hardware platforms
and support for EEPROM & flash filing system, remote debugging
(ATM protocol), ATM support, booting from serial ROM (C/assembler).
ROM and ATMos
remote debugging servers and Unix & Windows clients
- ATM and PCI bus transport mechanisms - remote booting, breakpointing,
register modification etc. (in C).
Internet
(TCP/IP) protocol stack design and implementation (in
C/C++) for "ATMOS" embedded operating system including related protocols:
ICMP, UDP, RIP II; over AAL5 (ATM protocol) and over Ethernet; implementation
of "MIB II" SNMP management information base.
This was transferred
to a spin-out company (Conexant/GlobespanVirata above) and became a core part of its
product portfolio.
Integration of
Xpress Transport Protocol (XTP) with TCP/IP (on ATMOS)
and general protocol performance evaluation (C++).
Routine
network maintenance of two ATM networks with about 150 nodes.
Documentation of "ATMOS" kernel and development environment and
user support (Framemaker/Word/HTML).
Architecture Projects Management (from Oct 1992)
International
standardization of normal two-party communications protocol is centred
around "the OSI seven layer model" (ISO 7498). Broader
standardization to support more diverse communicatng sytems, for
example involving remote procedure calls, falls under the banner of
Open Distributed Processing (ODP). APM ran the Advanced
Network Systems Architecture (ANSA) project, the seminal source for the
main architectural standard in this area (ISO 10746).
Business unit
Open Distributed Processing (ODP) Security Standardization (over
six months) for Department of Trade and Industry (DTI) and British Standards Institute - Delivering Information
Solutions to Customers (BSI/DISC) (standards contribution, ISO meeting attendance).
R&D in Advanced Communications technologies in Europe (RACE) II "Cassiopeia"
project dealing with the application of ODP to the telecommunications industry (over
eight months) for Cray Communications Ltd (programme evaluation and recommendations).
DTI Programme of Research on Conformance
Testing (PROST) ODP scoping study (over seven months) - (report editor
and contributor).
The framework and standards for testing OSI
protocols was well established. This report summarized the way in
which a conformance testing framework can be developed for ODP
standards.
Defence Research Agency (DRA) Technology
Demonstrator - analysis of extant distributed security architectures
(over three weeks) for DMR UK (consultancy report).
Research unit:
ANSA project
work addressing the integration of heterogeneous distributed computing systems - in
particular the design, as part of a team of 4, of an advanced properties "trader"
based on extant database technology.
A
trader enables clients to find remote services that match a
formally defined specification. This advanced trader would form a
key part of a system that would be able to construct new service
instances dynamically.
Perihelion Software - Cambridge Office (from 1991)
I
chaired the BSI committee advancing the Security Framework Standard
(ISO 10181) in
the UK (continuing for the whole period) for DTI & BSI. (Chairing
committee, attendance at ISO meetings, submission of and comment on
standards contributions.)
This
is a "standard for standards" providing basic concepts and nomenclature
for the most important security services and mechanisms, including
confidentialy, integrity, access control, authentication, and auditing.
It is now referred to in a large number of security standards.
It is used in some computer security university courses.
"COMPOSITE" Commission of the European Communities (CEC) Security Investigations
project - development of security architectures/principles for distributed
computer systems (consultancy report writing).
Transputer based IED fault tolerant system demonstrator project
- fault tolerance model (for six months) for DTI (consultancy report
writing).
Analysis of security provision in "ITRON" radio-based wide area
utilities servicing network (over 1 month) for a UK Utilities consortium
(consultancy report writing).
Unix (SunOS) and Acorn RISC-OS system maintenance.
Topexpress (from 1985)
Advancement
of the Security Framework (ISO 10181) Standard and the "seven
layer model" security architecture (ISO 7498-2) in the
UK. Involvement in national, European and international standards
creation
(over three years) for DTI and BSI/DISC.
Computer security in distributed computer (Trusted NETwork) systems
- various research (over six years) for
the Communications-Electronics Security Group at Government Communications
Headquarters (GCHQ) including: formal modelling of confidentiality; specification
of a layered architecture for secure distributed systems; evaluation of US
trusted computing standards; and, a demonstration of covert-channel capacity
on LANs.
The
US produced the first national criteria for evaluating the security of
networked systems. My covert-channel paper is one of its few
references, and the only one authored in the UK.
"TopMail" extension - design of AppleTalk product extension to
interwork with X.400 (over three months) for Topexpress.
Postscript drivers for word processors and "GCAL" mark-up language (in
C).
Acorn Computers (from 1983)
Distributed mail server design and implementation (over 1 year) for
Acorn
Cambridge University Computer Laboratory (from 1978)
Work at
the computer lab revolved around the Cambridge Model Distributed System
bult over a Local Area Network type that was an early competitor to the
Ethernet and populated with a variety of client/server nodes that
supported a distributed operating system, which eventually matured to
provide a live service to students.
Distributed authentication and access control service design,
implementation and maintenance (Thesis) (over the period) (BCPL, Z80
assembler).
After a meeting with Paul Karger, a security contributor to X from MIT, the
X consortium adopted some of the ideas in this thesis and consequently
use "cookies" for authentication in the X windowing system, used in almost all *unix computers.
DTI Project "UNIVERSE" satellite network authentication experiment and demonstrations
- including of low level Cambridge Ring protocols implementation (6502
assembler, BASIC) on Acorn BBC microprocessor (over the period).
"Gyp" debugging server together with a small networking operating system
implementation (assembler) on Z80 (over 1 year).
Cambridge Distributed system maintenance, "TRIPOS" self-maintaining help system implementation (own
mark-up language).
Implementation (BCPL) and maintenance of a set of microprocessor
assemblers and linkers (over the period).
Extra-curricular activity:
Interests in travel, SCUBA diving, swimming, skiing,
food, wine, films.
Home network with many PCs, inc. "TV PC", Linux security gateway,
IEEE 802.11n radio LAN.
"FTL" programming language.
Other details:
Familiar with a number of formal definition and programming languages.
Attendance at a number of computer security conferences.
Attendance at a large number of ISO (and some CEN/CENELEC) standards
meetings.
Have published in the areas of network security, conformance assessment
and low-power protocol design.
Summaries of Areas of Expertise
The following re-arranges some of the experience listed above under separate
headings.
Software Engineering (System, Embedded &
Application programming)
Flexible test case
specification and execution framework for Solarflare Network Interface
Controllers supporting multiple test points and interfaces.
Architecture,
design and implementation of "FTL" simple closure-based interpreted
language specializing in providing scripting and command line utilities
from C APIs.
Co-design and implementation of the control plane for Solarflare "onload" (combined kernel/user-mode) NIC driver.
Per-application "onload" stack configuration management system.
FTL-based
utilities for Solarflare control plane configuration, "onload" stack
feature configuration, dynamic "onload" stack virtual channel
data-structure access, direct access to NIC registers, management CPU
remote access, and Network Control - Side-band Interface (NC-SI) NIC
management protocol use.
"Quantum" extensible interrupt system, stream I/O system,
scheduler enhancements for QoS.
Porting Operating System abstraction PI to Windows CE.Net and aiding port
to VxWorks and Linux.
Installation of "netbind" modular switch on Intel IXP 1200 processor
(using ARM-Linux) for MPLS gateway.
Linux port + ATM driver for IDT ("Banyan") MIPS processor.
Embedded Environment Kernel "EEK" (and build environment) design
& implementation including ports to various hardware bases. EEK
is a small message-based multitasking O/S based on the "µCos" kernel.
"ATMos" TCP/IP and related protocols, ATM and Ethernet design
and implementation, maintenance (subsequently used as basis of commercial
product).
ARM-based Monitor ROM modularization, implementation and porting
- remote debugging, flash filing system, booting over ATM.
Linux LAN Emulation driver for Virata ATM protocol processor.
"TRIPOS" device drivers, tasks, utilities and maintenance.
Simple Z80 operating system implementation.
Familiar with a number of programming and scripting languages
including object orientated ones.
Extensive microprocessor assembler programming.
At home: 6502 Wordstar style screen editor, Acorn "RISC-OS" modules,
tools, paginators, WIMP code, BBC basic accountancy package, Microsoft
Access/Visual Basic accountancy package (in support of a business).
Computer system security
Implementation of distributed network security on the Cambridge Distributed
Computing System
PhD in network Authentication
6 years designing secure Local Area Networks for CESG (part of
GCHQ in the UK)
Developed wide variety of security mechanisms in ISO 10181 (ISO security
frameworks standard)
Configuration & use of FreeSwan Linux IPSEC solution for home/work
networking
Supervised 2 PhDs in Location Confidentiality & Access Control and
4th year project in Secure Voice over IP.
Analysed security vulnerabilities in Solarflare "onload" TCP
LAN and WAN networking,
design and implementation
Ad-hoc Solarflare NIC Management CPU debug interface protocol clients.
Distributed
Task Management Forum's Network Controller Side-band Interface (NC-SI)
protocol client and server (for management of Solarflare's "Siena" NIC).
Protocol stack design for Prototype Embedded Network (PEN) radio-computer
nodes including low-power MAC Protocol implementation over radio
"Quiver" design and implementation - Prolog-like modular interpreted
language supporting migration in frequently partitioned networks
Remote debug and boot servers (Monitor ROM and ATMos) and clients
(MS-DOS and Unix)
Early experience with "Cambridge Ring" systems and Project Universe
satellite backbone LAN system
Authentication server and debugging server implementation (and
associated applications)
6 years distributed system design with accent on security (as
above)
TCP/IP and related protocols (e.g. ICMP, RIP II) implementation over
ATM and Ethernet
Network and Application layer architecture from OSI standards
Development of fault tolerance model
Contribution to directly relevant Open Distributed Processing
(ODP) standards
Application of ODP to Telecoms in "CASSIOPIEA" European project
Work in Advanced Network System Architecture (ANSA) programme
(including federation with OMG's "CORBA")
Design of architecture for trusted distributed network systems
Involvement in ISO/IEC JTC1/SC21, the committee that defined the OSI
"7-layer" model
Hardware Design
Outline of specification method appropriate for hardware implementation
of layered protocols in VHDL
Initial VHDL specification and animation of MAC-symbol "layer" in
FPGA to support low power radio nodes
Security and communications
(OSI) related standardization
9 year involvement in ISO security standards (especially ISO 10181)
Attendance at ISO OSI (JTC1/SC21) meetings 1988 - 1994
Contribution to CEN/CENELEC taxonomy of security standards (to
drive European work)
Analysis of various security criteria standards for government
Open Distributed Processing
standardization
Contributions to BSI ODP panel improving ODP Reference Model
Wrote security architecture for ODP Reference Model
Formal requirements specification
Large volume of Z specification for secure LAN design
Some knowledge of CSP and VDM
Project management
Technical management of 4-6 person team porting "Quantum" to
Windows CE.Net.
Technical management of (Russian) contractors providing a port of ISOS
software to VxWorks.
Lead small team implementing PEN mobile low-power device network
Chair of BSI IST/21/-/1/1 (communications security standards)
for 5 years
Management of DTI standards contract
De facto management of "PROST" project with APM, NIST, OMG, NPL
and University of Kent at Canterbury
Also of APM's "Cassiopeia" involvement
Personal management of short DMR contract
Secretary of childrens' after school club for 3 years and 7 years on
management committee
Academic
Small number of papers (Covert channels, ODP traders, Low-power
protocol design)
Ph.D./4th year student supervision (security)
MA/Ph.D. student vivas (interface design/security)
Reviewer of submitted papers in various subjects